UI 自動化測試時,先要定位到需要操作的元素,然后才能執行指令。 在網頁端可以非常方便的通過 devtools 工具(也就是經常說的 F12) 獲取和編寫元素定位表達式。
但是在移動端自動化時,這種輔助工具都還有比較大的優化空間。下面列舉 5 種我經常使用的元素定位輔助工具,以及他們的優劣。
1、 Appium Inspector
Appium Inspector 是 Appium 實現的頁面元素查看器,老版本中直接集成進了 appium 的桌面應用中,新版本將它直接獨立出來,做成了一個小工具,就算不使用 appium 做自動化測試,也可以使用這個工具定位元素,也是我默認使用的輔助定位工具。
他的優點有:
·獨立工具,可以單獨下載
· 驗證元素表達式是否正確
· 既可以定位原生應用,也可以定位混合應用和web頁面
缺點是啟動比較麻煩,需要配置參數,響應速度也比較慢,web頁面定位功能比較雞肋,精度不夠。
下載安裝,像普通軟件安裝完成就可以,啟動之后需要配置參數表示你連接的手機、平臺信息,也是這個工具麻煩的地方。
這個是示例,完成后點擊 “start session" 就可以連接手機開始定位了。如果覺得每次都要填參數比較麻煩,可以直接保存下來,下次直接用。
{
"platformName": "Android",
"appium:automationName": "Uiautomator2",
"appium:packageName": "com.package.name",
"appium:activity": ".lauchable.activity",
"
appium:chromedriverExecutable": "path/to/chromedriver.exe",
"appium:deviceName": "emulator-5554"
}
在頁面中獲取元素的表達式之后,可以通過搜索按鈕驗證是否能在頁面中找到指定元素,這個功能還是比較好用的。
2、Uiautomatorviewer
這是安卓 sdk 中自帶的頁面查看工具,安裝好安卓 sdk 后,直接在 toolsbin 目錄下找到 uiautomatorviewer.bat 文件點擊運行就可以了。 它的優勢在于安卓自帶,開箱即用,可以把文件設置快捷方式,直接點擊運行;劣勢在于功能比較簡陋,只能獲取基本元素信息。
3、Weditor
weditor 是在 atx 生態下的一個小工具,目前由阿里巴巴維護,它支持自從生成 Python uiautomator2 的代碼,但是如果你不用 u2,那這個功能沒什么用。它也支持直接在界面上操作 app,但是這個工具不是很穩定,連接非常容易斷開,而且和 appium 不兼容,要定位先要把 appium 服務斷開,appium 運行時也需要把 weditor 斷開,操作起來比較繁瑣。
4、chrome inspect
這是定位 app 中嵌入網頁時需要用到的工具,常見于混合應用和 web 應用。當 app 進入一個網頁時,直接在 chrome 瀏覽器的 url 欄輸入 chrome://inspect 就可以進入網頁調試工具,頁面中會顯示有哪些手機設備連接上了。它不需要安裝任何的擴展,瀏覽器內置功能。點擊頁面就可以直接打開 devtools 工具,和在瀏覽中按 F12 沒有什么區別。
5、UC Devtools
這是 UC 瀏覽器開發的網頁調試工具,作用和 chrome inspect 一樣,主要定位 app 中的網頁元素。 打開官網 plus.ucweb.com/download/ 完成下載。