【问题标题】:Recent Apps on UiAutomatorUiAutomator 上最近的应用程序
【发布时间】:2013-05-08 04:31:33
【问题描述】:

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

提前致谢。

【问题讨论】:

    标签: android android-uiautomator


    【解决方案1】:

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

    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)
    }
    

    【讨论】:

      【解决方案2】:

      试试这个:

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

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

      【讨论】:

      • 嗨 Smriti,我没有再这样做了(至少目前如此),但如果我以后再次陷入这种情况,我会尝试你的方法。谢谢你给我看:)
      • @DucTran 请接受这个答案。它在带有 Marshmallow 的模拟器和带有 Nougat 的 Nexus 6P 上完美运行。我认为这是正确的答案。
      • 新的 UiOject(UiSelector) 已弃用 - 请改用 UiDevice.findObject(UiSelector)。
      • 此方法也不适用于 Android 9 及更高版本,其中最近的应用程序也有常用应用程序的快捷方式。此方法将找到快捷方式,单击它,然后像点击应用程序图标一样有效地启动应用程序。
      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 2015-07-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多