android - 如何使用 Eclipse 调试 UIAutomator 脚本

标签 android android-uiautomator

据我所知,当 UIAutomator 脚本被编译成 jar 文件并使用 adb shell 命令运行时。我可以看到有一个 -e 调试命令行选项,它在启动之前等待调试器连接,但我如何从 Eclipse 将它连接到调试器以便调试我的 UI Automator 脚本?

最佳答案

我已经解决了。这个过程有点冗长,但它有效!

关键是了解如何使用 Dalvik Debug Monitor Server (DDMS)了解使用 Java 和 Eclipse 进行远程调试。简而言之,请按照以下步骤操作:

  1. 通过单击 Window > Open Perspective > Other... > DDMS 在 Eclipse 中设置 DDMS 透视图。假设您有一个正在运行的模拟器/设备,您应该会在“设备”选项卡中看到您的设备。
  2. 设置远程调试配置。为此,请转至 Run > Debug Configurations...
  3. 在左侧面板中右键单击“远程 Java 应用程序”,然后单击“新建”以创建新配置。
  4. 在连接属性中使用本地主机和端口 8700。在我的例子中,我使用的是在本地开发机器上运行的模拟器。 DDMS 的默认端口是 8700。如果您的设置不是这种情况,您可以在 UI Automator 脚本以 Debug模式运行后从 DDMS 的角度检查需要的端口。 (见下面的步骤 7-9) Remote Java Application
  5. 确保您选择的项目是您将要运行的 UI 自动化项目。在“源”选项卡中,您还可以在那里添加 UI 自动化项目。 (不确定这是否是强制性的)
  6. 点击“应用”然后关闭。
  7. 现在我们将开始使用命令行运行带有调试选项的 UI Automator 脚本。对于我的示例,命令是(全部在一行中):

    adb shell uiautomator runtest AndroidUIAutomation.jar -c com.example.uiautomation.TestUiAutomation -e debug true

  8. 然后它会说:

    发送 WAIT block

  9. 在 Eclipse 中进入 DDMS 透视图。在“设备”选项卡下,您应该会看到一个带有红色小错误符号的进程。旁边将是一个问号。在表的最后一列中将有两个端口号,例如 8602/8700。端口 8700 是您将远程调试 session 连接到的端口。这是上面第 4 步中应该配置的内容。

  10. 现在您可以开始远程调试了。在 UI Automator 脚本中的某处设置断点。然后通过转到 Run > Debug Configurations... 进行调试,然后选择您之前创建的远程 Java 应用程序配置,然后单击“调试”。

如果一切顺利,那么您应该能够调试 UI Automator 脚本!

关于android - 如何使用 Eclipse 调试 UIAutomator 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21978292/

相关文章:

android - 图片太大无法显示

java - 在 Android Activity 中从 Firebase 检索数据

java - 如何处理 GooglePlayServicesRepairableException 和 GooglePlayServicesNotAvailableException

android - 在 UIAutomator 中处理变音符号

android - 谷歌API支付-安卓

php - 将 android 与 MYSQL 和 PHP localhost 连接

listview - 使用 selenium xpath 从 Android 应用程序的元素列表中查找 Web 元素的子元素

android - 真实设备与模拟器 : uiautomator does not show resource-id for the app

java - 为什么要得到这个堆栈跟踪?

android - 如何通过 uiautomator 设置密码字段的文本