在做Android自動化時候,我們需要知道檢視有哪些元素,元素都有哪些屬性,獲取到屬性我們才能獲取到元素從而做自動化控制,所以做Android自動化獲取元素屬性是必要的第一步
獲取檢視元素屬性最便捷的方式就是使用Android SDK中的 uiautomatorviewer,當你配置好Android的開發環境後就能直接使用 uiautomatorviewer。
使用uiautomatorviewer獲取檢視元素
Windows上啟動UI Automator
確保已經安裝了Android SDK。
透過檔案資源管理器啟動
- 開啟檔案資源管理器。
- 導航到你安裝Android SDK的目錄,通常是
C:\Users\你的使用者名稱\AppData\Local\Android\Sdk\tools\bin
。 - 找到
uiautomatorviewer.bat
檔案。 - 雙擊
uiautomatorviewer.bat
檔案來啟動UI Automator Viewer。
透過命令提示符啟動
- 開啟命令提示符(CMD)。
- 如果你還沒有將Android SDK的
tools
目錄新增到環境變數中,使用以下命令Enter鍵啟動:
C:\Users\你的使用者名稱\AppData\Local\Android\Sdk\tools\bin\uiautomatorviewer.bat
- 如果tools目錄已新增到環境變數,直接輸入以下命令Enter鍵啟動:
uiautomatorviewer
Mac上啟動UI Automator
確保已經安裝了Android SDK。
透過Finder啟動
- 開啟Finder。
- 前往
/Users/你的使用者名稱/Library/Android/sdk/tools/bin
目錄。 - 雙擊
uiautomatorviewer
應用程式圖示來啟動它。
透過終端啟動
- 開啟終端(Terminal)。
- 如果你還沒有將Android SDK的
tools
目錄新增到PATH環境變數中,使用以下命令Enter鍵啟動:
/Users/你的使用者名稱/Library/Android/sdk/tools/bin/uiautomatorviewer
- 如果tools目錄已新增到PATH,直接輸入以下命令Enter鍵啟動:
uiautomatorviewer
啟動後的介面
獲取檢視元素
1. 連線手機(開啟usb除錯)
2. 擷取檢視
3. 選擇目標元素
比如我們選中微信啟動圖示後,在右下角就能檢視元素的屬性了,右上角是檢視層級
當然除了使用uiautomatorviewer獲取檢視元素外,還可以使用下面的幾個框架來獲取,就是要多花些功夫熟悉學習下
- uiautomator2
- appuim
- Airtest
拿到檢視元素屬性後,我們就可以透過屬性的text、resource-id、class、或者bounds(元素在螢幕中的位置)獲取元素來執行各種操作,甚至也可以透過檢視結構去定位獲取元素等等。
如何獲取元素以及執行各種操作?
-
透過usb連線手機裝置,透過adb命令來操作,這種方式優點是許可權高操作準確,缺點就是需要連線,對應的封裝庫可以使用adbutils
-
透過開發Android應用,繼承實現AccessibilityService無障礙輔助服務,透過AccessibilityService的api來獲取元素,獲取到元素之後就可以對元素進行點選、長按、輸入、列表滑動等操作,這種方式優點適用於無線的自動化場景,缺點就是執行操作許可權和準確度不好控制,對應的開源庫可以使用Assists