環(huán)境:Java version - 1.8.0_211芥牌,
錯誤截圖
錯誤原因
? 使用 uiautomator 的 uiautomatorviewer 組件獲取安卓手機(或安卓模擬器)屏幕布局信息時產(chǎn)生的報錯人断。從截圖中看到的出錯原因是:解析XML 文件時出現(xiàn)的錯誤澜公。再來看看命令行報錯截圖:
? 可以看到,大致的報錯原因是:當 uiautomatorviewer 執(zhí)行 dump 命令生成 xml 格式的布局信息文件時态贤,產(chǎn)生文件加載異常而導(dǎo)致文件提前結(jié)束端辱。至于為什么會出現(xiàn)這樣的錯誤,就不清楚了(非安卓黨)
解決方案
?獲取當前窗口布局信息脯颜,將布局信息 pull 到 PC 中指定的位置哟旗,再使用 uiautomatorviewer 獲取 pull 到本地的布局信息,再獲取相應(yīng)的元素節(jié)點信息栋操。
? 編寫 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
? 腳本解釋:
- 創(chuàng)建當前安卓界面 UI 層次結(jié)構(gòu)(布局信息)闸餐,以 XML 格式存儲到 app.iux
- 將app.iux pull 到當前 PC 的 D 盤指定路徑下 ( 可自定義)
- 使用adb screencap 獲取安卓屏幕截圖
- 將截圖 pull 到 PC 的 D 盤指定路徑下
? 如此,當直接使用 uiautomatorviewer 獲取安卓界面布局信息報錯的時候矾芙,可使用 ui.bat 腳本 和 uiautomatorviewer 結(jié)合方式完成獲取到相應(yīng)元素節(jié)點的信息舍沙。運行如下:
說在最后
? 咱是非安卓黨,解決方案可能略顯粗糙剔宪,但是也能解決眼前的問題拂铡。
? 希望我的文章對你有幫助。