0

我在我的应用程序中有一个按钮,点击时 - 在Chrome上打开Dropbox登录页面。 我试图在打开的chrome窗口中访问视图以填充字段并继续,但因为该活动不属于我的应用程序,所以视图不在层次结构树中。Espresso android自动测试 - 如何访问其他应用程序的视图,由我的应用程序打开?

任何人都知道如何使用espresso访问外部应用程序视图?

我已经尝试过使用“UI-automator”和“espresso-web”,但无济于事。

+0

[Espresso - 测试多个应用程序的UI](https://developer.android.com/training/testing/ui-testing/uiautomator-testing.html) –

回答

0

Android支持多窗口。通常,这对用户和应用程序开发人员来说是透明的(双关语),但在某些情况下,多个窗口是可见的(例如,在搜索小部件的主应用程序窗口上绘制自动完成窗口)。为了简化你的生活,默认Espresso使用启发式来猜测你打算与哪个窗口进行交互。这种启发式几乎总是“足够好”;但是,在极少数情况下,您需要指定交互应该指向哪个窗口。您可以通过提供您自己的根窗口(又名Root)匹配器来完成此操作:例如如果您想单击具有“确定”和“取消”的弹出窗口,可以使用如下的Espresso。

onView(withText("OK")).inRoot(withDecorView(not(is(getActivity().getWindow().getDecorView())))).perform(click()); 

另一个例子是使用咖啡意图:例如:用户操作导致从自己的应用程序上的呼叫按钮,点击,你可以验证使用正在推出一个外部“手机”的活动:

androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.2' 

user.clickOnView(system.getView(R.id.callButton)); 
intended(toPackage("com.android.phone")); 

看看上提到的不同例子: Official Google Android Test Forum

相关问题