UiAutomator uiautomatorviewer 二次开发之自动生成控件定位符和最新代码构建方式

花开 · 2018年07月09日 · 最后由 花开 回复于 2019年10月25日 · 3542 次阅读

UIautomatorvViewer

为什么又重新开一个 UIautomatorvViewer 的项目?

  1. 目前社区或能查到修改版本和开放源码的版本的基本都是基于 4.4 之前的版本,目前 Android 已经 9.x 了。
  2. 编写一个易于大家修改构建的版本,目前只需按照下面说明,直接可以从官网选择自己喜欢的版本构建。

使用方式:

方式 1.直接下载根目录下的 uiautomatorviewer.jar,替换你本地的 ${ANDROID_HOME}/tools/lib 下的 uiautomatorviewer.jar 即可

方式 2.执行 gradle jar 命令 (或 gradlew jar),编译工程,将 build 目录下编译出来的 uiautomatorviewer.jar 替换你本地的 ${ANDROID_HOME}/tools/lib 下的 uiautomatorviewer.jar 即可

目前默认使用 adb 截图和 dump xml

adb 截图使用的是LvmamaXmlKit,所以使用此功能需要把这个 #jar 导入到手机中 #,命令如下:

//复制LvmamaXmlKit.jar到本地D盘根目录下
adb push D:\LvmamaXmlKit.jar /data/local/tmp/

数据对比

adb 截图和 dump

Checking device   = 0
Creating temporary files   = 5
Dump ui and ui xml   = 2341
pull ui and ui xml   = 357
parsing UI hierarchy XML  = 5
parse device screenshot  = 32

原始截图和 dump

Checking device   = 0
Creating temporary files   = 9
================================
Deleting old UI XML snapshot   = 71
Taking UI XML snapshot   = 2596
Pull UI XML snapshot from device   = 81
================================
parsing UI hierarchy XML  = 3
taking device screenshot  = 965
parse device screenshot  = 567
背景:

在做 UI 自动化时必不可少需要使用到 uiautomatorviewer 这个工具,但是有时候我们进行元素定位的时候希望使用 xpath 定位,而这个 工具自身并没提供,为了方便自动生成 xpath。在网上找到的方法感觉不是很完整,于是打算自己亲自对该工具进行二次开发。

  • 开发环境:
    • ide:intellij idea
    • 编译环境:gradle
    • 语言环境:java
    • 还要必不可少的 android sdk
下载源码
  • 下载marshmallow uiautomatorviewer 源代码,不同版本的代码可以自己切换分支下载。
  • 依赖jar可以右键以zip形式打开uiautomatorviewer.jarMETA-INF\MANIFEST.MF找到,如下: Manifest-Version: 1.0 Class-Path: org-eclipse-jface-3.6.2.jar ddmlib.jar org-eclipse-core-c ommands-3.6.0.jar org-eclipse-equinox-common-3.6.0.jar osgi-4.0.0.jar common.jar kxml2-2.3.0.jar annotations.jar guava-18.0.jar Main-Class: com.android.uiautomator.UiAutomatorViewer 这些 jar 可以到你本地的 ${ANDROID_HOME}/tools/lib 中找到

希望添加的功能列表:

  • [x] 添加 xpath
  • [x] 增加 adb 截图
  • [x] 增加右键 add 点击事件
  • [ ] 添加 ios 版本支持
  • [ ] 添加 appium 脚本代码
  • [ ] 等等

感谢

yangzaiCN/uiautomatorviewer

源码地址

github 源代码地址

附言 1  ·  2018年07月12日

新增 adb 截图和 dump xml

共收到 12 条回复 时间 点赞

WINDOWS 下安卓 8.0 真机亲测可以,楼主 V5,谢谢!

山姆大叔 回复

主要提供一种大家可以随自己心意修改它,一同努力进步

我用 adb 方式 dump 下来的 xml 不变是为什么,截图有改变

已经修复,之前存在一个问题, 添加了右键进行点击操作

花开 回复

最新的有上传到 github 上吗,我现在用的还是 8 个月前的

你访问错项目了,项目地址是下面写的源码地址 github

花开 回复

😅 好吧,还以为那个是你的项目,没注意看

重新修改一下,弄的明显一点

仅楼主可见
仅楼主可见
花开 · #11 · 2019年10月25日 Author
仅楼主可见
花开 · #12 · 2019年10月25日 Author
仅楼主可见
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册