介紹一種Android UI自動化框架UIAutomator2,使用發(fā)現(xiàn)該框架有如下優(yōu)點(diǎn):
1.環(huán)境搭建便捷
2.UI控件識別有專業(yè)工具顶滩,可視化好
3.UI自動化編寫采用python乔遮,學(xué)習(xí)成本低
4.UI自動化腳本運(yùn)行穩(wěn)定
缺點(diǎn):
存在設(shè)備兼容性問題遵蚜,如:
華為手機(jī)呼盆,無法通過IP離線執(zhí)行UI自動化
三星S8手機(jī)微信webview頁面無法識別元素
環(huán)境搭建
Android環(huán)境
從谷歌官網(wǎng)下載Android Platform Tools https://developer.android.com/studio/releases/platform-tools.html坎匿,解壓盾剩,并加包含adb.exe
的目錄加入到系統(tǒng)的PATH中
環(huán)境安裝后驗(yàn)證代碼
adb devices
python3環(huán)境
python3環(huán)境搭建參考先前的文章
http://www.reibang.com/p/da803d5f7ccd
UIAutomator安裝
python2安裝命令
pip install --pre -U uiautomator2
python3安裝命令
pip3 install --pre -U uiautomator2
手機(jī)設(shè)備環(huán)境
手機(jī)鏈接pc,輸入adb命令adb devices
發(fā)現(xiàn)設(shè)備后表明設(shè)備已連接成功
pc終端輸入命令替蔬,以安裝atx-agent至手機(jī)
python3 -m uiautomator2 init
安裝成功如下圖
應(yīng)用及操作
uiautomator2使用基本過程
1.選擇合適的方式連接手機(jī)告私,如usb數(shù)據(jù)線,Wi-Fi
2.使用工具承桥,抓去手機(jī)app的控件元素
3.基于元素控件驻粟,調(diào)用uiautomator2 API編寫UI自動化腳本
手機(jī)連接方式
1.使用WIFI連接
手機(jī)獲取到手機(jī)的IP,并確保電腦可以PING通手機(jī)凶异。手機(jī)的IP可以在設(shè)置-WIFI設(shè)置里面獲取到蜀撑。華為手機(jī)無法通過Wi-Fi連接(華為系統(tǒng)原因)
比如手機(jī)的IP是10.242.23.215,連接設(shè)備的代碼為
import uiautomator2 as u2 //依賴包
d = u2.connect('10.242.23.215')
2.使用USB連接
手機(jī)的序列號可以通過adb devices獲取到剩彬,假設(shè)序列號是123456f酷麦,連接代碼為
import uiautomator2 as u2
d = u2.connect_usb('xxxxx')
控件識別
使用weditor進(jìn)行元素識別,
安裝方法如下:
pip3 install --pre weditor
使用方法
1.手機(jī)連接pc襟衰,adb命令保證能正確讀取到設(shè)備
2.pc終端輸入python3 -m webditor
贴铜,瀏覽器自動打開網(wǎng)頁http://atx.open.netease.com
3.網(wǎng)頁對應(yīng)位置輸入手機(jī)設(shè)備ip,點(diǎn)擊connect連接手機(jī)設(shè)備瀑晒,最后根據(jù)需要獲取手機(jī)/app對應(yīng)元素
正常啟動頁面如下:
設(shè)備id輸入/Connect連接/reload刷新頁面
UI自動化編寫
具體參考git:
https://github.com/openatx/uiautomator2
操作控件
# click
d(text="Settings").click()
# long click
d(text="Settings").long_click()
# 等待元素的出現(xiàn)
d(text="Settings").wait(timeout=10.0)
中文字符輸入
d(text="Settings").set_text("你好")