Android 使用UIAutomator打开抽屉,无需修改应用程序代码

Android 使用UIAutomator打开抽屉,无需修改应用程序代码,android,ui-automation,android-uiautomator,Android,Ui Automation,Android Uiautomator,我试图在启动测试的项目之外的应用程序上使用UIAutomator运行UI测试。因为我使用的应用程序不在我的测试项目范围内,所以我不能使用浓缩咖啡(据我所知)。我想打开这个应用程序的左边抽屉。浓缩咖啡有一个非常简单的方法 openDrawer(R.id.drawer_layout) 但使用UIAutomator似乎更为复杂 有人在别处问了类似的问题,给他们的建议是,他们应该修改正在测试的应用程序源代码中的抽屉,以便UIAutomator能够更简单地打开它。但是,我无法访问要测试的应用程序的源代码

我试图在启动测试的项目之外的应用程序上使用UIAutomator运行UI测试。因为我使用的应用程序不在我的测试项目范围内,所以我不能使用浓缩咖啡(据我所知)。我想打开这个应用程序的左边抽屉。浓缩咖啡有一个非常简单的方法

openDrawer(R.id.drawer_layout)
但使用UIAutomator似乎更为复杂

有人在别处问了类似的问题,给他们的建议是,他们应该修改正在测试的应用程序源代码中的抽屉,以便UIAutomator能够更简单地打开它。但是,我无法访问要测试的应用程序的源代码,因此很遗憾,我无法这样做。看起来使用普通的拖拽和滑动功能也不太好,但我不确定这一点


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

您必须使用
ActionBarDrawerToggle
的内容描述。如果查看,您将看到
ActionBarDrawerToggle
只有两个构造函数,它们都有一个
openDrawerContentDescRes
closeDrawerContentDescRes
。因此,在不更改代码的情况下,您可以使用下面的答案。

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

  • 单击操作栏中的应用程序按钮

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

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

我在发布问题之前查看了该主题,但我认为我需要在应用程序的源代码中添加ActionBarDrawerToggle。你是说它可以在测试本身内部实现吗?你没有ActionBarDrawerToggle?我想你一定有一个,明白吗。如果你没有,也许你应该提供一个简单的代码,所以我会尽力帮助你我无法访问我要测试的应用程序的源代码,所以我无法在那里添加一个,甚至无法查看是否有。我使用uiautomatorviewer检查了应用程序,看是否可能找到ActionBarDrawerToggle元素,但在那里我没有看到。我相信我以前没有使用ActionBarDrawerToggle实现过一个导航抽屉,所以我不确定是否有。