在真实设备上运行Android UiAutomator

在真实设备上运行Android UiAutomator,android,device,android-uiautomator,Android,Device,Android Uiautomator,我能够在emulator上轻松地运行Uiautomator测试用例,包括API 16和17 如果我在真实设备上运行相同的测试用例,它只会卡在第1行 我不确定在真正的设备上运行的步骤 我想UiScrollable有一些问题。当我写getUiDevice()时,按home()它可以工作,但在那之后什么都不起作用。我正在使用Android开发者网站上为Uiautomator()编写的相同代码 可能它在您的真实设备上找不到描述为“Apps”的对象,您需要提供详细信息的日志使用uiautomatorvie

我能够在emulator上轻松地运行Uiautomator测试用例,包括API 16和17

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

  • 我不确定在真正的设备上运行的步骤
  • 我想UiScrollable有一些问题。当我写
    getUiDevice()时,按home()它可以工作,但在那之后什么都不起作用。我正在使用Android开发者网站上为Uiautomator()编写的相同代码

  • 可能它在您的真实设备上找不到描述为“Apps”的对象,您需要提供详细信息的日志

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

    您还必须记住,来自android开发者网站的示例要求设备打开屏幕,并且不存在屏幕锁定。可通过以下方式确保屏幕处于打开状态:

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

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

    使用“
    adb shell uiautomator dump
    ”命令获取窗口转储。然后转到sd卡并查找转储xml。这里将查找节点的content desc属性,并根据该值编写代码。内容DESC在不同的设备上可以是不同的,对于三星的应用来说,它是“应用程序”,但是在HTC One中它是“所有的应用程序”。

    我不能帮助,但是你可以考虑给我们精确的版本号,如4.1.2。