ATX測試框架(uiautomator2)2-快速參考指南
阿新 • • 發佈:2021-10-15
import uiautomator2 as u2
d = u2.connect("--serial-here--") # 只有一個裝置也可以省略引數
d = u2.connect() # 一個裝置時
d = u2.connect("10.1.2.3") # 通過裝置的IP連線(需要在同一區域網且裝置上的atx-agent已經安裝並啟動)
d.app_current() # 獲取前臺應用 packageName, activity
d.app_start("com.example.app") # 啟動應用
d.app_start("com.example.app", stop=True) # 啟動應用前停止應用
d.app_stop("com.example.app") # 停止應用
app = d.session("com.example.app") # 啟動應用並獲取session
# session的用途是操作的同時監控應用是否閃退,當閃退時操作,會丟擲SessionBrokenError
app.click(10, 20) # 座標點選
# 無session狀態下操作
d.click(10, 20) # 座標點選
d.swipe(10, 20, 80, 90) # 從(10, 20)滑動到(80, 90)
d.swipe_ext("right") # 整個螢幕右滑動
d.swipe_ext("right", scale=0.9) # 螢幕右滑,滑動距離為螢幕寬度的90%
d.press("back") # 模擬點選返回鍵
d.press("home") # 模擬Home鍵
d.send_keys("hello world") # 模擬輸入,需要游標已經在輸入框中才可以
d.clear_text() # 清空輸入框
# 執行shell命令
output, exit_code = d.shell("ps -A", timeout=60) # 執行shell命令,獲取輸出和exitCode
output = d.shell("pwd").output # 這樣也可以
exit_code = d.shell("pwd").exit_code # 這樣也可以
# 元素操作
d.xpath("立即開戶").wait() # 等待元素,最長等10s(預設)
d.xpath("立即開戶").wait(timeout=10) # 修改預設等待時間
# 常用配置
d.settings['wait_timeout'] = 20 # 控制元件查詢預設等待時間(預設20s)
# xpath操作
d.xpath("立即開戶").click() # 包含查詢等待+點選操作,匹配text或者description等於立即開戶的按鈕
d.xpath("//*[@text='私人FM']/../android.widget.ImageView").click()
d.xpath('//*[@text="私人FM"]').get().info # 獲取控制元件資訊
for el in d.xpath('//android.widget.EditText').all():
print("rect:", el.rect) # output tuple: (left_x, top_y, width, height)
print("bounds:", el.bounds) # output tuple: (left, top, right, bottom)
print("center:", el.center())
el.click() # click operation
print(el.elem) # 輸出lxml解析出來的Node
# 監控彈窗(線上程中監控)
d.watcher.when("跳過").click()
d.watcher.start()