uiautomator2學習筆記

2022-09-09 18:48:20 字數 3423 閱讀 6478

要求:

android版本 4.4+

python版本3.6+

連線手機:

開啟開發者選項,

開啟usb除錯,

連線電腦,adb devices可以看到裝置號

安裝uiautomator2:python -m pip install -u uiautomator2

驗證是否連線成功:

import uiautomator2 as u2

driver = u2.connect() # connect to device

print(driver.info)

執行以上**有正確輸出

安裝: 1、install uiautomator2

python -m pip install --upgrade --pre uiautomator2

測試是否安裝成功 uiautomator2 --help

2、install weditor (ui inspector)

python -m pip install -u weditor

在命令列執行weditor --help 確認是否安裝成功

3、install daemons to a device (optional)

電腦連線上乙個手機或多個手機, 確保adb已經新增到環境變數中,執行下面的命令會自動安裝本庫所需要的裝置端程式

python -m uiautomator2 init

安裝提示success即可

裝置管理 介面裡可以檢查裝置是否正常init,起停atx-agent,抓取atx-agent.log檔案

1、通過wifi,需確保同一網路

import uiautomator2 as u2

driver = u2.connect('10.0.0.1') # alias for u2.connect_wifi('10.0.0.1')

print(driver.info)

2、通過usb線

import uiautomator2 as u2

d = u2.connect('m9n7n15930001618') # 括號內為adb devices 獲取的裝置號

print(d.info)

cmd命令:weditor

1、瀏覽器開啟

2、輸入裝置號點選連線

3、成功連線裝置後重新整理獲取最新頁面

4、滑鼠點選要找的元素,進行定位

1、截圖

uiautomator2 screenshot screenshot.jpg 截圖儲存至當前資料夾,命名為screenshot.jpg

uiautomator2 screenshot e:\liang\tools\screenshot.jpg 截圖儲存至指定資料夾,命名為screenshot.jpg

2、獲取當前包名和activity

uiautomator2 current

3、解除安裝

uiautomator2 uninstall # 解除安裝乙個包

uiautomator2 uninstall # 解除安裝多個包

uiautomator2 uninstall --all # 全部解除安裝

4、stop: 停止應用

import uiautomator2 as u2

d = u2.connect('m9n7n15930001618') #括號內為adb devices獲取的裝置號

手勢互動

點選螢幕(座標,支援相對座標)

d.click(x, y)

d.click(0.5, 0.5) #其中(0.235, 0.456) 代表 x(50%) y(50%)

雙擊d.double_click(x, y) #預設兩次點選相隔0.1秒

d.double_click(x, y, 1) #兩次點選相隔1秒

長按d.long_click(x, y) #預設按0.5秒

d.long_click(x, y, 5) # l長按5秒

滑動(滑動螢幕)

d.swipe(sx, sy, ex, ey) 從座標(sx,sy)滑動至座標(ex,ey),支援相對座標

d.swipe(sx, sy, ex, ey, 0.5) # 預設滑動時間0.5秒,可修改

swipeext 擴充套件功能

d.swipe_ext("right") # 螢幕右滑,4選1 "left", "right", "up", "down"

d.swipe_ext("right", scale=0.9) # 預設0.9, 滑動距離為螢幕寬度的90%

d.swipe_ext("right", box=(0, 0, 100, 100)) # 在 (0,0) -> (100, 100) 這個區域做滑動

d.drag(sx, sy, ex, ey) #支援相對座標

d.drag(sx, sy, ex, ey, 0.5) # 預設滑動時間0.5秒,可修改

多個點連續滑動(典型案例:9宮格解鎖)

從point(x0, y0) 滑動到point(x1, y1)然後滑動到point(x2, y2)...等等

d.swipe_points([(x0, y0), (x1, y1), (x2, y2)], 0.2)) #0.2為每次兩點之間滑動的時間,座標可以是絕對座標,也可以是相對座標

d.swipe_points([(0.235, 0.456), (0.503, 0.449), (0.509, 0.601), (0.777, 0.603), (0.771, 0.763), (0.222, 0.75)], 0.2) #其中(0.235, 0.456) 代表 x(23.5%) y(45.6%)

模擬按下-等待-移動-鬆開

d.touch.down(10, 10) # 模擬按下

time.sleep(0.01) # down 和 move 之間的延遲,自己控制

d.touch.move(15, 15) # 模擬移動

d.touch.up() # 模擬抬起

截圖d.screenshot("e:\liang\tools\screenshot.jpg")傳入路徑和名稱

元素選擇器

#定位text為'clock'並且classname為'android.widget.textview'的元素

d(text='clock', classname='android.widget.textview')

後代元素

#定位classname為"android.widget.listview"的元素下面text為"bluetooth"的元素

d(classname

UIautomator2環境搭建

1.安裝uiautomator2 pip install uiautomator2 init 2 安裝的過程中,提示pip版本和現在的版本不匹配,報錯,這時候需要公升級 pip的版本 命令為 python m pip install upgrade pip 3 在公升級命令的執行過程中,可能會提示沒...

UiAutomator2 自動化測試一 框架搭建

1 建立乙個anroid工程 2 新增androidtest的dependencies 相關jar包 需要注意下 testinstrumentationrunner是否有自動新增。testinstrumentationrunner android.support.test.runner.androi...

UI自動化 uiautomator2環境搭建

ios 自動化測試的話可以參考這個 1 首先需要一部安卓裝置 手機 pad 開啟開發者選項,裝置連線到電腦上,執行adb devices 的話可以看到連線上的裝置。確認能識別到裝置ip的話,第一步就成功了。1.通過pip 安裝 pip3 install u uiautomator2這裡加了 u 引數...