我使用此代码调用选项菜单:
openActionBarOverflowOrOptionsMenu(getInstrumentation().getTargetContext());
之后,菜单出现了。现在我按其文本点击菜单项,这很好。
我已经注意到的问题是主题,可以改变,让我们说如果用户为不同的客户使用多种语言。因此,在长时间的测试中,它没有用。
出于这个原因,我想使用Espresso
点击具体的index
来查看特定的测试用例。
设置菜单似乎没有ID。所以我不知道如何点击特定项目'索引'在该菜单中,我们要点击第四项。
你能帮我解决一下吗?
答案 0 :(得分:6)
所以,我会尝试逐步解释它:
1)您通过以下方法打开菜单:
openActionBarOverflowOrOptionsMenu(getInstrumentation().getTargetContext());
我认为您可以通过输入以下代码打开相同的菜单:
onView(withContentDescription("More options")).perform(click());
2)你想点击Id:
项目首先,为什么不想使用'strings.xml'。 使用智能手机设置语言自动更改从此文件中提取的文本,但前提是您在准确的翻译文件之前准备好了。
代码看起来像这样:
openActionBarOverflowOrOptionsMenu(getInstrumentation().getTargetContext());
onView(withText(R.string.help)).perform(click());
或
onView(withContentDescription("More options")).perform(click());
onView(withText(R.string.help)).perform(click());
当然,正如@Rodrigo所说,你仍然可以通过它的身份识别它。代码就像这样:
onView(withContentDescription("More options")).perform(click());
onView(withId(R.id.help_item)).perform(click());
请记住,在您的xml文件中,您可以为每个“视图”声明android:id
,android:text
或android:contentDescription
。
答案 1 :(得分:0)
我刚刚根据他的ID选择了菜单项。
onView(withId(R.id.some_option_menu_id)).perform(click());