Unfortunately, your ideal case could not be fulfilled. This is due to the construction of support libraries.
PopupMenu, MenuPopupHelper, MenuPopup. , .. StandardMenuPopup. MenuAdapter. 92 MenuAdapter, :
itemView.initialize(getItem(position), 0);
. ActionMenuItemView, ListMenuItemView. , id ActionMenuItemView ListMenuItemView
, MenuAdapter.getItemId(int position) position. .
Hovewer, . :
public static Matcher<View> withMenuIdOrText(@IdRes int id, @StringRes int menuText) {
Matcher<View> matcher = withId(id);
try {
onView(matcher).check(matches(isDisplayed()));
return matcher;
} catch (Exception NoMatchingViewException) {
openActionBarOverflowOrOptionsMenu(InstrumentationRegistry.getInstrumentation().getTargetContext());
return withText(menuText);
}
}
:
onView(withMenuIdOrText(R.id.menu_id, R.string.menu_text)).perform(click());