python uiautomator2 新版本2.4.6之watcher的玩法
程序员文章站
2022-07-07 19:11:01
最近将uiautomator2升级到最新版本了,运行之前的脚本发现涉及watcher部分的全部报错,大家来看看新版本的watcher如何玩 用法举例 注册监控 # 常用写法,注册匿名监控 d.watcher.when("安装").click() # 注册名为ANR的监控,当出现ANR和Force C ......
最近将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