在真实设备上运行Android UiAutomator

时间:2013-05-17 08:49:13

标签: android device uiautomator

我可以在API 16和17上轻松地在模拟器上运行我的Uiautomator测试用例。

如果我在真实设备上运行相同的测试用例,它只会卡在第一行。

  1. 我不确定在真实设备上运行的步骤
  2. UiScrollable有一些问题,我想。当我写getUiDevice().pressHome();它有效时,但之后没有任何作用。我使用的是Android开发者网站上为Uiautomator编写的相同代码(http://developer.android.com/tools/testing/testing_ui.html

3 个答案:

答案 0 :(得分:1)

使用uiautomatorviewer转储设备主屏幕的UI层次结构。正如user2575698所说,很可能没有带有描述“Apps”的UiObject。

此外,您必须记住,Android开发者网站上的示例要求设备启用屏幕并且不存在屏幕锁定。确保屏幕打开可以通过以下方式完成:

UiDevice device = getUiDevice();
if (!device.isScreenOn()) {
    device.wakeUp();
}
device.pressHome();

可以在“设置”中禁用屏幕锁定。

答案 1 :(得分:0)

也许它无法在您的真实设备上找到描述“应用”的对象,您需要为详细信息提供日志

答案 2 :(得分:0)

使用“adb shell uiautomator dump”命令获取窗口转储。然后到SD卡并寻找转储xml。根据该值查找节点和代码的content-desc属性。 content-desc在不同的设备上可能会有所不同,因为在三星应用中它是“应用程序”,但在HTC中它是“所有应用程序”。