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
posted @ 2020-01-13 10:58  iSZ  阅读(2525)  评论(0编辑  收藏  举报