在测试期间,如果通过我的应用中的某个操作打开了另一个应用(谷歌文档),是否可以返回我的应用

时间:2019-07-30 22:56:45

标签: android-espresso

我的应用程序具有用户需要接受一些条款的功能,因此在点击按钮以开始接受该项目时,会在Google文档中打开一个pdf文件,以显示用户条款,然后他们必须在其中点击任意设备的后退按钮或在Google文档上。在Espresso中,我试图建立一个遵循此路径的测试,但是Espresso会锁定,即使我已插入pressBack命令也不会离开google文档。

我是否可以简单地恢复活动?用户在文档上按回后,他们必须在我的应用上点击“我接受”。

我考虑过使用存根意图,但不确定如何将其存根,因为这只是为了使应用程序在按下按钮时直接进入条款

1 个答案:

答案 0 :(得分:0)

如果Google文档是WebView,则必须使用Espresso Web与DOM进行交互。

 onWebView(withId(R.id.google_doc_web_view))
        .withElement(findElement(Locator.ID, "back_button"))
        .perform(webClick())

尽管如果此代码段无法退出Google文档,我会感到惊讶:

  public static void pressBack() {
        onView(isRoot()).perform(ViewActions.pressBack());
  }

AndroidX测试框架中还提供UIAutomator

UiDevice mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
mDevice.pressBack();