我正在尝试使用新的android-test-kit (Espresso)编写一些测试。但是我找不到有关的任何信息,如何检查是否显示了对话框并对其执行一些操作(例如,单击肯定和否定按钮,例如e.t.c.)。请注意,对话框也可能由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()));
    
  • 要单击对话框按钮,请执行以下操作(button1-OK,button2-取消):
    onView(withId(android.R.id.button1)).perform(click());
    

    更新
  • 我认为有可能,因为Espresso具有multi window support
  • 不确定是否要在自定义对话框 View 之外单击,但是要检查它是否显示,您必须创建自定义匹配器并在其中进行检查。
  • 10-08 07:24
    查看更多