当前位置: 首页 > news >正文

【python自动化测试】uiautomator2中watcher的使用问题

在做app自动化测试的时候,经常遇到弹窗,有些弹窗不处理的话每次打开app都会弹出,严重影响自动化测试的成功率。
以前用uiautomator2做安卓app自动化的时候,也知道watcher(监视器)功能,但是一直没有用,想着睁一只眼闭一只眼,脚本能跑就行。
这几天app弹窗太多,也是把watcher给用上了。
刚开始用watcher的时候,使用下面的代码,经常会报错

点击查看代码
import time
import uiautomator2devices_id = ''class ToastTest(object):def __init__(self):self.d = uiautomator2.connect(devices_id)def watcher_toast(self, toast_name):try:if self.d(text=toast_name).exists(timeout=5):self.d(text=toast_name).click()print('点击%s' % toast_name)else:print('弹窗:%s不存在' % toast_name)except Exception as e:print('error:%s' % e)print("点击失败,元素可能消失")def main(self):self.d.watcher("升级弹窗").when('稍后再说').call(self.watcher_toast('稍后再说'))self.d.watcher("设备弹窗").when('忽略').call(self.watcher_toast('忽略'))self.d.watcher.start()print('开始时停等待')time.sleep(100)self.d.watcher.stop()self.d.watcher.remove()a = ToastTest()
a.main()
运行的时候会出现下面这种报错: error:{'code': -32002, 'data': "Selector [text='稍后再说']", 'method': 'wait'} 点击失败,元素可能消失 error:{'code': -32002, 'data': "Selector [text='忽略']", 'method': 'wait'} 点击失败,元素可能消失

好像每次启动watcher的时候,call调用的函数都要执行一遍,然后出现'稍后再说'.'忽略'这种目标元素的时候,又会出现下面的报错:
_run_watchers exception: None is not a callable object

所以感觉应该是call后面的参数传错了,在网上找了一会答案,发现是传入函数带括号的话,会直接被调用,然后直接释放了大概,就像用threading做多进程的时候,传入的方法带括号也会直接报错
找了一下解决方法,加上 lambda 可调用对象就可以完美解决这个问题了
修改代码如下,只是加上了一个 lambda 包装:

点击查看代码
import time
import uiautomator2devices_id = ''class ToastTest(object):def __init__(self):self.d = uiautomator2.connect(devices_id)def watcher_toast(self, toast_name):try:if self.d(text=toast_name).exists(timeout=5):self.d(text=toast_name).click()print('点击%s' % toast_name)else:print('弹窗:%s不存在' % toast_name)except Exception as e:print('error:%s' % e)print("点击失败,元素可能消失")def main(self):self.d.watcher("升级弹窗").when('稍后再说').call(lambda:self.watcher_toast('稍后再说'))self.d.watcher("设备弹窗").when('忽略').call(lambda:self.watcher_toast('忽略'))self.d.watcher.start()print('开始时停等待')time.sleep(100)self.d.watcher.stop()self.d.watcher.remove()a = ToastTest()
a.main()
http://www.zskr.cn/news/77755.html

相关文章:

  • 01 安装与运行
  • 2025年云南少数民族美食推荐,正宗云南美食攻略全解析
  • 2025年重庆电力总包资质代办和转让机构排行榜,电力总包资质
  • 在 Pycharm 中 debug Scrapy 项目
  • 2025 年 12 月噻唑膦生产厂家最新推荐榜:专业防治土传病害、死苗烂根(年终盘点)
  • 2025年上海晶体炉装置服务商排名:晶体炉供应企业哪家专业
  • 2025年昆明AI软件搜索广告营销公司TOP5推荐:信誉好的
  • 2025年12月油烟净化设备品牌推荐榜:厨房/无烟管/商用/家用/复合式/内循环/小型/油烟净化厂家,上海多环用技术破局安装难题,成餐饮商户新选择
  • work8
  • 2025年12月噻唑膦农药品牌厂家最新推荐:微囊悬浮剂、安全种衣剂科学防控土传病害,告别死苗烂根
  • 18.基础语法-数据类型
  • 2025年中国口碑好的外墙砖品牌推荐:外墙砖设计搭配与耐污抗
  • 2025年膜结构遮阳棚定制厂家权威推荐榜单:膜结构汽车棚‌/车棚膜结构‌/膜结构车棚‌‌源头厂家精选
  • 2025年北京融资顾问公司排行榜:融资顾问哪家强?新测评精选
  • 2025年真空炉生产厂哪家专业?稳定性好且可长期合作的真空炉
  • 2025年长三角地区五大泡沫混凝土公司推荐:看哪家产品质好
  • 16.基础语法-字符存储原理
  • 2025年盘点:家用PPR管哪个牌子质量最好?PPR管加盟厂家有哪些中亿百年引领行业标杆
  • 2025年宁波寺庙修缮装修公司电话推荐:本地靠谱的门店面装修
  • 本地安装ssh
  • 2025年度五大矿用开关柜品牌排行榜,推荐矿用开关柜GKD优
  • 2026 公司纠纷律师事务所权威测评:海淀靠谱机构口碑排名与专业解析
  • 如何科学应对土传病害难题?绿德地等农药研发企业盘点,聚焦根际健康
  • 移动端设备上稀奇古怪的前端问题收集(一)
  • 2025 茂名企业购买商标平台不踩坑:筛选 3 大标准 + 高适配选项测评
  • 创客匠人万人峰会总操盘手媛姐专访:高势能打法成IP破局新引擎,AI+IP时代已至
  • MQ消息乱序问题解析与实战解决方案
  • 2025年4g远程遥控开关工厂权威推荐:智能开关/手机遥控开关/4G远程启动停止控制增氧机开关源头厂家精选
  • 2025年真空包装袋行业优质厂商排行榜发布,行业内真空包装袋供应商技术领航者深度解析
  • 2025 年乌鲁木齐搬运机构最新推荐榜,聚焦企业服务专业性与用户满意度深度解析,涵盖多场景搬运需求乌鲁木齐家具搬运/乌鲁木齐设备搬运/乌鲁木齐工厂搬运/乌鲁木齐货物搬运服务商推荐