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

花开 · July 09, 2018 · Last by 花开 replied at October 25, 2019 · 3913 hits

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  ·  July 12, 2018

新增 adb 截图和 dump xml

共收到 12 条回复 时间 点赞

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

花开 #2 · July 10, 2018 Author

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

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

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

花开 #4 回复

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

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

花开 #6 回复

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

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

Author only
Author only
花开 · #11 · October 25, 2019 Author
Author only
花开 · #12 · October 25, 2019 Author
Author only
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up