2016-02-26 15 views
8

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?

+0

L'elemento ha veramente id = "@ + id/action_menu"? Sembra dal matcher withText che potrebbe essere più specifico, come report_action. – siger

+0

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é ... –

risposta

2

Sembra che la vista che rappresenta il menu non conosca l'ID, ma solo il testo di un elemento. Sono nuovo di Espresso e quindi non posso fornire ulteriori dettagli, ma questo post è correlato al tuo problema: Espresso NoMatchingViewException when using withId matcher

+0

Grazie @Coralie B Non ero stato in grado di trovare quel post prima. –

Problemi correlati