python uiautomator2 新版本2.4.6之watcher的玩法


最近將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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM