4

我现在正在使用 Android UiAutomator 在我的 Android 应用程序上进行 UI 测试。我的应用程序有一个功能需要用户验证电子邮件才能继续,所以我尝试这样做:到达该功能后 -> getUiDevice.pressHome -> 浏览器 -> 尝试登录电子邮件 -> PressHome 再次 - > 按RecentApps 然后我卡在这里,我无法按我的应用程序再次返回它。我通过单击我的应用程序图标尝试另一种方式,但它再次启动我的应用程序,而不是之前的状态。谁能建议我解决这个问题?任何帮助表示赞赏。

提前致谢。

4

4 回答 4

6

尝试这个 :

UiObject appBackground = new UiObject(new UiSelector().description("ABC"));
appBackground.click();

它没有通过“uiautomatorviewer”命令显示任何描述,但这对我有用。

于 2013-12-06T09:04:17.567 回答
2

我可以设法通过以下方式创建此行为:

fun backgroundAndForeground() {
    val device = UiDevice.getInstance(getInstrumentation())
    device.pressHome()
    // Pressing app switch two times makes the last app put on background come to foreground.
    device.pressKeyCode(KeyEvent.KEYCODE_APP_SWITCH)
    device.pressKeyCode(KeyEvent.KEYCODE_APP_SWITCH)
}
于 2020-11-02T11:57:59.637 回答
0

在这种情况下,我认为 android 只有在单击最近的应用程序图像时才会恢复应用程序。它不适用于单击显示文本或应用程序图标。因此,我们需要在最近的应用列表中单击您的应用的图像。那时你需要写如下。对于类似的情况,我总是这样做。

// Take all image view by class type and click by instance no.
new UiObject(new UiSelector().className("android.widget.ImageView").instance(3)).click();

您需要计算您最近的应用程序图像视图的实例数。在最近的应用滚动视图中不是应用图标图像。请试试这个。谢谢。

于 2014-11-27T04:42:18.977 回答
0

我花了半天时间,得出结论我需要发布一个device.click(). 由于我的用例是我的应用程序是最后一个运行的应用程序(而不是像你这样切换到浏览器),我可以安全地单击屏幕中间,它总是可以工作的。

如果您是倒数第二个运行的应用程序,您可能可以执行 x:0和 y: device.displayHeight/2

我没有在很多操作系统上测试过这个,只有 9 个。

于 2019-10-03T23:05:17.763 回答