Sto facendo un test utilizzando Espresso, prima apro la barra delle operazioni:Facendo clic su una voce di menu nella barra di azione con Espresso quando si utilizza OnView (withId (...))
openActionBarOverflowOrOptionsMenu(getInstrumentation().getTargetContext());
Tutto ok fino a qui, ma poi voglio fare clic su un menu di opzioni:
onView(withId(R.id.action_menu)).perform(click());
menu Layout XML ha un'opzione con id: "action_menu".
ottengo un errore:
android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with id: ***.********.******.android.debug:id/action_menu
If the target view is not part of the view hierarchy, you may need to use Espresso.onData to load it from one of the following AdapterViews:android.support.v7.widget.ListPopupWindow$DropDownListView{43fd3f58 VFED.VC. .F...... 24,24-612,168}
Ho ottenuto questo passo a lavorare utilizzando:
onView(withText(R.string.action_report)).perform(click());
Vorrei sapere cosa c'è di sbagliato con l'id però.
Qualche idea?
L'elemento ha veramente id = "@ + id/action_menu"? Sembra dal matcher withText che potrebbe essere più specifico, come report_action. – siger
Ciao siger, sì l'elemento ha l'ID 'android: id =" @ + id/action_menu "' ma l'espresso sta trovando solo per testo. Ancora non so perché ... –