2016-02-26 35 views
8

Robię test przy użyciu espresso, najpierw otworzyć pasek Działanie:kliknięcie na menu w pasku akcji z espresso przy użyciu OnView (withId (...))

openActionBarOverflowOrOptionsMenu(getInstrumentation().getTargetContext()); 

wszystko ok aż do tutaj, ale chcę, aby kliknąć na menu opcji:

onView(withId(R.id.action_menu)).perform(click()); 

menu układ xml posiada opcję o identyfikatorze „action_menu”.

pojawia się błąd:

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} 

mam ten krok, aby pracować przy użyciu:

onView(withText(R.string.action_report)).perform(click()); 

Chciałbym wiedzieć, co się dzieje złego z id chociaż.

Wszelkie pomysły?

+0

Czy pozycja rzeczywiście ma id = "@ + id/action_menu"? Z matownicy withText wynika, że ​​może to być bardziej szczegółowe, np. Report_action. – siger

+0

Hi siger, tak element ma id 'android: id =" @ + id/action_menu "', ale espresso znajduje się tylko w tekście. Wciąż nie wiem dlaczego ... –

Odpowiedz

2

Wygląda na to, że widok reprezentujący menu nie zna identyfikatora, a jedynie tekst elementu. Jestem nowy w Espresso i dlatego nie mogę podać więcej szczegółów, ale ten wpis dotyczy problemu: Espresso NoMatchingViewException when using withId matcher

+0

Dzięki @Coralie B Nie udało mi się znaleźć tego postu wcześniej. –