為什么選用UIAutomator2?
Nemo社區UI自動化選用的Android UI自動化框架UIAutomator2,經使用發現,該框架有如下優點:
1.UI自動化編寫采用python,學習成本低
2.UI自動化腳本運行穩定
與Appium相比,又有如下突出優勢:
1.環境搭建便捷
2.UI控件識別有專業工具,可視化好
環境搭建
1.jdk安裝,建議版本1.80以上
2.Android環境
從谷歌官網下載Android Platform Tools https://developer.android.com/studio/command-line,解壓,並加包含adb.exe的目錄加入到系統的PATH中
https://developer.android.google.cn/studio/releases/platform-tools
環境安裝后驗證代碼:
3.Python3環境(3.6.5以上)
UIAutomator安裝
安裝要求Requirements
- Android版本 4.4+
- Python 3.6+
1.安裝 uiautomator2
# 鑒於uiautomator2還在開發, 可以添加前綴 --pre來安裝開發版本或升級現有版本
pip install --upgrade --pre uiautomator2
或者使用git安裝:
git clone https://github.com/openatx/uiautomator2
pip install -e uiautomator2
安裝提示success即可。
2.安裝守護進程到手機里
電腦連接上一個手機或多個手機, 確保adb已經添加到環境變量中,執行下面的命令會自動安裝本庫所需要的設備端程序:uiautomator-server 、atx-agent、openstf/minicap、openstf/minitouch
# init 所有的已經連接到電腦的設備
python -m uiautomator2 init
有時候init也會出錯,這時候需要我們手動init,安裝提示success即可。
3.安裝 weditor (UI查看器,編寫腳本時用,相當於Appium的uiautomator viewer)
因為uiautomator是獨占資源,所以當atx運行的時候uiautomatorviewer是不能用的,為了減少atx頻繁的啟停,開發了基於瀏覽器技術的weditor UI查看器。
安裝方法(備注: 目前最新的穩定版為 0.1.0)
Windows系統可以使用命令在桌面創建一個快捷方式 python -m weditor --shortcut
命令行啟動 python -m weditor 會自動打開瀏覽器,輸入設備的ip或者序列號,點擊Connect即可。
應用及操作
uiautomator2使用基本過程
1.選擇合適的方式連接手機,如usb數據線,Wi-Fi
2.使用工具,抓去手機app的控件元素
3.基於元素控件,調用uiautomator2 API編寫UI自動化腳本
手機連接方式
1.使用WIFI連接
手機獲取到手機的IP,並確保電腦可以PING通手機。手機的IP可以在設置-WIFI設置里面獲取到。華為手機無法通過Wi-Fi連接(華為系統原因)
比如手機的IP是10.242.23.215,連接設備的代碼為
import uiautomator2 as u2 //依賴包
d = u2.connect('10.242.23.215')
2.使用USB連接
手機的序列號可以通過adb devices獲取到,假設序列號是123456f,連接代碼為
import uiautomator2 as u2
import uiautomator2 as u2 //依賴包
d = u2.connect('10.242.23.215')