最近將uiautomator2升級到最新版本了,運行之前的腳本發現涉及watcher部分的全部報錯,大家來看看新版本的watcher如何玩
用法舉例 注冊監控 # 常用寫法,注冊匿名監控 d.watcher.when("安裝").click() # 注冊名為ANR的監控,當出現ANR和Force Close時,點擊Force Close d.watcher("ANR").when(xpath="ANR").when("Force Close").click() # 其他回調例子 d.watcher.when("搶紅包").press("back") d.watcher.when("//*[@text = 'Out of memory']").call(lambda d: d.shell('am force-stop com.im.qq')) 監控操作 # 移除ANR的監控 d.watcher.remove("ANR") # 移除所有的監控 d.watcher.remove() # 開始后台監控 d.watcher.start() d.watcher.start(2.0) # 默認監控間隔2.0s # 強制運行所有監控 d.watcher.run() # 停止監控 d.watcher.stop() # 停止並移除所有的監控,常用於初始化 d.watcher.reset()
從上面截出來的可以看出,主要是when()這個條件和click()操作跟之前舊版本不一樣,之前舊版本是可以在when()和click()里面帶上具體selector名稱,但新版本全部去掉了
1 # -*- coding:utf-8 -*- 2 import time 3 import uiautomator2 as u2 4 d = u2.connect() 5 d.watcher.when("OK").click() # 注冊一個匿名watcher 6 for i in range(10): 7 time.sleep(1) 8 d.watcher.start() # 啟動后台watcher監視,如果有監視到有彈框中有OK的就執行上面所注冊的watcher並click