UiAutomator UiAutomator 如何 push 由 ant 生成的 jar 包在手机中运行

周小丽 · 2015年08月21日 · 最后由 木月 回复于 2015年11月13日 · 2461 次阅读

此文章为转载的,至于谁的忘记了,呵呵,莫怪

找到 SDK ID

CMD 进入\Android-sdk\tools\目录下,运行命令:

android list

查看对应 android 版本的 SDK 的 ID 值,当前是 60;

创建 build 文件

仍然在\Android-sdk\tools\目录下,运行命令:

android create uitest-project -n <name> -t <android-sdk-ID> -p <path>

比如:

android create uitest-project -n AutoRunner -t 60 -p e:\workspace\AutoRunner

上面的 name 就是将来生成的 jar 包的名字,可以自己定义,android-sdk-ID 就是上面看到的 6;path 是 Eclipse 新建的工程的路径;运行命令后,将会在工程的根目录下生成 build.xml 文件。如果没生成,检查上面的步骤。

编译生成 jar

CMD 进入项目的工程目录,然后运行 ant build,将使用 ant 编译生成 jar,成功将会提示:

然后会在 bin 目录下生成 jar 文件。

push 并运行 jar

  • adb push data/local/tmp
  • adb shell uiautomator runtest -c <工程中的类名,包含包名> 比如: bash adb push e:\workspace\AutoRunner\bin\AutoRunner.jar data/local/tmp adb shell uiautomator runtest AutoRunner.jar -c com.Runner 然后就能看到手机会按照 Runner 中的步骤自动执行。具体效果就是,进入设置菜单,然后再进入 “语言和输入法” 菜单
共收到 4 条回复 时间 点赞

最后一步,应该是要写到类名,只到包名是无法启动的。。。

我按照你的步骤来的,在虚拟机上没有问题,可以正常运行。
但是换成真机就跑不了了,直接报错。
下面是我的代码

// 我们使用该属性创建一个UiSelector 对象来定位该按钮。
 UiObject allAppsButton = new UiObject(new UiSelector().description("Apps"));
 // 模拟点击进入全部应用的屏幕
 allAppsButton.clickAndWaitForNewWindow();

第二行运行点击事件的时候报错
android.support.test.uiautomator.UiObjectNotFoundException: UiSelector[DESCRIPTION=Apps]

不知道你有没有碰到过这个问题

不要用这种方式,直接用 shell am start -n package/class 方式

@SKCLY ,你的 descreiption 字段 要在 uiautmatorviewer 中实际看得到才行;实际中,很少开发会把这么多属性都写上的,只能有什么属性用什么属性

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册