环境:Java version - 1.8.0_211,
错误截图
错误原因
使用 uiautomator 的 uiautomatorviewer 组件获取安卓手机(或安卓模拟器)屏幕布局信息时产生的报错。从截图中看到的出错原因是:解析XML 文件时出现的错误。再来看看命令行报错截图:
可以看到,大致的报错原因是:当 uiautomatorviewer 执行 dump 命令生成 xml 格式的布局信息文件时,产生文件加载异常而导致文件提前结束。至于为什么会出现这样的错误,就不清楚了(非安卓党)
解决方案
解决思路:获取当前窗口布局信息,将布局信息pull到PC中指定的位置,再使用 uiautomatorviewer 获取 pull 到本地的布局信息,再获取相应的元素节点信息。
编写 ui.bat 脚本:
@echo on
adb shell uiautomator dump /sdcard/app.uix
adb pull /sdcard/app.uix D:\Uiautomator\app.uix
adb shell screencap -p /sdcard/app.png
adb pull /sdcard/app.png D:\Uiautomator\app.png
脚本解释:
- 创建当前安卓界面 UI 层次结构(布局信息),以 XML 格式存储到 app.iux
- 将app.iux pull 到当前 PC 的 D 盘指定路径下 ( 可自定义)
- 使用adb screencap 获取安卓屏幕截图
- 将截图 pull 到 PC 的 D 盘指定路径下
如此,当直接使用 uiautomatorviewer 获取安卓界面布局信息报错的时候,可使用 ui.bat 脚本 和 uiautomatorviewer 结合方式完成获取到相应元素节点的信息。运行如下:
说在最后
咱是非安卓党,解决方案可能略显粗糙,但是也能解决眼前的问题。
希望我的文章对你有帮助。
网友评论