我正在尝试使用新的 android-test-kit (Espresso) 编写一些测试。 .但我找不到任何关于如何检查是否显示对话框并对其执行一些操作的信息(例如单击正面和负面按钮等)。请注意,对话框也可能由 WebView
显示,而不是由它自己的应用程序显示。
任何帮助将不胜感激。我只需要一个链接,或者一些基本的示例代码:
- 检查是否出现对话框
- 点击对话框按钮
- 与对话框的内部 View 交互(如果是自定义 View )
- Preform 在对话框外单击,并检查它是否正在显示(例如,如果在对话框生成器上调用了
setCancelable(false)
并且我们想要检查它)
谢谢你的建议!
最佳答案
要验证对话框是否出现,您只需检查是否显示了带有对话框内文本的 View :
onView(withText("dialogText")).check(matches(isDisplayed()));
或者,基于带有 id 的文本
onView(withId(R.id.myDialogTextId)).check(matches(allOf(withText(myDialogText), isDisplayed()));
要单击对话框按钮,请执行以下操作(按钮 1 - 确定,按钮 2 - 取消):
onView(withId(android.R.id.button1)).perform(click());
更新
- 我认为这是可能的,因为 Espresso 有 multi window support .
- 不确定是否要在自定义对话框 View 之外单击,但要检查它是否正在显示,您必须创建自定义匹配器并在其中检查。
关于android - 检查 Espresso 是否显示对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21045509/