Moo*_*ody 7 android automated-tests menu android-espresso
我使用以下代码调用选项菜单:
openActionBarOverflowOrOptionsMenu(getInstrumentation().getTargetContext());
之后,菜单出现了.现在我按其文本点击菜单项,这很好.
我已经注意到的问题是主题,可以改变,假设用户是否为不同的客户端使用多种语言.所以在长时间的测试中它没用.
出于这个原因,我想用来Espresso点击index具体的测试用例.
设置菜单似乎没有ID.所以我不知道如何点击该菜单中的特定项目"索引",假设我想点击第四项.
你能帮我解决一下吗?
所以,我会尝试一步一步地解释它:
1)您通过以下方法打开菜单:
openActionBarOverflowOrOptionsMenu(getInstrumentation().getTargetContext());
Run Code Online (Sandbox Code Playgroud)
我认为你可以通过这个代码打开相同的菜单:
onView(withContentDescription("More options")).perform(click());
Run Code Online (Sandbox Code Playgroud)
2)你想点击Id上的项目:
首先,为什么不想使用'strings.xml'.使用智能手机设置语言自动更改从此文件中提取的文本,但前提是您在准确的翻译文件之前准备好了.
代码看起来像这样:
openActionBarOverflowOrOptionsMenu(getInstrumentation().getTargetContext());
onView(withText(R.string.help)).perform(click());
Run Code Online (Sandbox Code Playgroud)
要么
onView(withContentDescription("More options")).perform(click());
onView(withText(R.string.help)).perform(click());
Run Code Online (Sandbox Code Playgroud)
当然,你仍然可以通过它的id来捕捉视图,就像@Rodrigo说的那样.比代码更像是这样的:
onView(withContentDescription("More options")).perform(click());
onView(withId(R.id.help_item)).perform(click());
Run Code Online (Sandbox Code Playgroud)
请记住,在xml文件中,您可以为每个"视图"声明android:id,android:text或者android:contentDescription.
我只是根据他的 ID 选择了菜单项。
onView(withId(R.id.some_option_menu_id)).perform(click());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3869 次 |
| 最近记录: |