最近将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名称,但新版本全部去掉了

 # -*- coding:utf-8 -*-
import time
import uiautomator2 as u2
d = u2.connect()
d.watcher.when("OK").click() # 注册一个匿名watcher
for i in range(10):
time.sleep(1)
d.watcher.start() # 启动后台watcher监视,如果有监视到有弹框中有OK的就执行上面所注册的watcher并click

python uiautomator2 新版本2.4.6之watcher的玩法的更多相关文章

  1. 【Python基础】random 的高级玩法

    random 模块的高级玩法 1.python 随机产生姓名 方式一: import random xing = [ '赵', '钱', '孙', '李', '周', '吴', '郑', '王', ' ...

  2. Python的生成器进阶玩法

    Python的生成器进阶玩法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.yield的表达式形式 #!/usr/bin/env python #_*_coding:utf-8 ...

  3. python uiautomator2 watcher的使用方法

    该方是基于uiautomator2如下版本进行验证的: PS C:\windows\system32> pip show uiautomator2 Name: uiautomator2 Vers ...

  4. python安装新版本及pip

    Linux安装python: yum install zlib -yyum install zlib-devel -y yum install readline-devel -y yum instal ...

  5. Appium python Uiautomator2 多进程问题

    appium更新uiautomator后可以获取tost了,大家都尝试,课程中也讲解了,但是这些跑的时候都在单机上,当我们多机并发的时候会出现一个端口问题,因为我们appium最后会调用uiautom ...

  6. Mac 安装python 3.*新版本的详细步骤

    Mac 系统自带python,不过自带的python版本都是2.*版本.虽然不影响老版本项目的运行, 但是python最新的3.*版本的一些语法与2.*版本并不相同,我们不论是学习还是使用,当然用最新 ...

  7. Python中可避免读写乱码的一个强慷慨法

    昨天在帮同学解析一批从网络上爬取的文件时,遇到一个奇葩的问题,文件本身的编码是gbk,Eclipse编辑环境的默认编码是utf8,使用常规的open方法批量打开文件时,某些文件里存在一些不可被gbk识 ...

  8. python常用算法(6)——贪心算法,欧几里得算法

    1,贪心算法 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的的时在某种意义上的局部最优解. 贪心算法并不保证会得到最优解,但 ...

  9. 《Python编程从0到1》笔记3——欧几里得算法

    本节以欧几里得算法(这是人类历史上最早记载的算法)为示例,向读者展示注释.文档字符串(docstring).变量.循环.递归.缩进以及函数定义等Python语法要素.    欧几里得算法:“在数学中, ...

随机推荐

  1. V-Distpicker不能完整显示内容

    V-Distpicker插件在列表中,或者在dialog中只显示了第一次的内容,第二次就开始报错.这个和前篇中的地图问题其实如出一辙. 解决办法,重加载,局部刷新. <el-form-item ...

  2. jmeter --- 组件

  3. P1303 A*B Problem(高精度乘法)

    P1303 A*B Problem 模拟就好了.\(c_ {i+j} +=a_i \times b_j\).时间复杂度 \(O(n*m)\) (FFT版可以做到 \(O((n+m)\log (n+m) ...

  4. BZOJ 3876 [Ahoi2014&Jsoi2014]支线剧情

    题解: 带下界的费用流 对于x->y边权为z Addedge(x,t,1,0) Addedge(s,y,1,z) Addedge(x,y,inf,0) 然后对每个点Addedge(i,1,inf ...

  5. UVA_12697 满足条件的最短连续和 线段树维护

    好印象深刻的题,前天选拔赛给跪了.怪我这种关键题没敲出来. 题意很简单,给你一串无规则的数列,再给个m值,求出满足 数列和>=m的长度最小的连续子串...确实一开始卡住了,因为看数据肯定是nlo ...

  6. Activity LauchMode设置

    lauchMode: standard:       标准模式,每次调用startActivity()方法就会产生一个新的实例. singleTop:       如果已经有一个实例位于Activit ...

  7. Tensorflow学习教程------tensorboard网络运行和可视化

    tensorboard可以将训练过程中的一些参数可视化,比如我们最关注的loss值和accuracy值,简单来说就是把这些值的变化记录在日志里,然后将日志里的这些数据可视化. 首先运行训练代码 #co ...

  8. map/vector遍历删除

    map遍历删除 map<int, vector<int>>::iterator it = g_map.begin(); for (; it != g_map.end(); /* ...

  9. java常用第三方类库

    Guava:来自Google的常用类库 Apache Commons:来自Apache的常用类库 Mockito:主要用于单元测试的mock DBUnit:测试中管理数据库测试数据 Rest Assu ...

  10. 阿里云服务器centos下安装配置svn服务器

      阿里云服务器centos下安装配置svn服务器 1.安装svn服务器端yum install subversion      从镜像下载安装svn服务器端中间会提示是否ok,输入y,确认安装成功提 ...