【问题标题】:Open drawer with UIAutomator without modifying application code使用 UIAutomator 打开抽屉而不修改应用程序代码
【发布时间】:2015-06-07 15:05:32
【问题描述】:

我正在尝试使用 UIAutomator 在我启动测试的项目之外存在的应用程序上运行 UI 测试。因为我正在使用测试项目之外的应用程序,所以我不能将 Espresso 与它一起使用(据我所知)。我想打开此应用程序的左侧抽屉。 Espresso 有一个非常简单的方法

openDrawer(R.id.drawer_layout)

但 UIAutomator 似乎更复杂。

有人在其他地方问过类似的问题,给他们的建议是他们应该修改他们正在测试的应用程序的源代码中的抽屉,以便 UIAutomator 可以更简单地打开它。不过,我无权访问我想要测试的应用程序的源代码,所以很遗憾我不能这样做。使用一般的拖动和滑动功能似乎也不能很好地工作,但我不确定。

是否可以使用 UIAutomator 打开抽屉?如果是这样,最好的方法是什么?

【问题讨论】:

    标签: android ui-automation android-uiautomator


    【解决方案1】:

    您必须使用ActionBarDrawerToggle 的内容描述。如果你查看doc,你会看到ActionBarDrawerToggle 有两个构造函数,它们都有openDrawerContentDescRescloseDrawerContentDescRes。因此,无需更改代码,您就可以使用topic 的答案。

    【讨论】:

    • 我在发布我的问题之前查看了该主题,但我认为我需要在应用程序的源代码中添加 ActionBarDrawerToggle。您是说它可以在测试本身内部实现吗?
    • 您没有 ActionBarDrawerToggle 吗?我想你一定有一个,见here。如果你没有,也许你应该提供一个简单的代码,所以我会尽力帮助你
    • 我无权访问我正在尝试测试的应用程序的源代码,因此我无法在其中添加一个,甚至无法查看是否有一个。我使用 uiautomatorviewer 检查了该应用程序,看看是否可以找到 ActionBarDrawerToggle 元素,但在那里我没有看到。我相信我之前在没有使用 ActionBarDrawerToggle 的情况下实现了一个导航抽屉,所以我不确定是否有。
    【解决方案2】:

    如果您只想打开侧抽屉,您可以像用户那样做:

    • 点击操作栏中的应用按钮

    • 从左边缘向右滑动(到屏幕中间应该足够了,但我发现有时它不会完全打开它会立即关闭。所以我建议你滑动到右边缘,例如)

    使用第二个选项,您甚至不必知道任何元素的 id。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-12
      • 1970-01-01
      • 2016-12-05
      • 2017-11-17
      相关资源
      最近更新 更多