Poco1.0.87新增的节点刷新接口:refresh()

简介: Poco1.0.87新增的节点刷新接口:refresh()

此文章来源于项目官方公众号:“AirtestProject”

版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

1. 前言

有很多同学,在熟练使用我们的Poco脚本之后,会发现在一些情况下,节点会出现没成功刷新状态的情况。

比如,在进行元素定位和用例逻辑分离,使用PO模式之类的时候,提前保存了元素对象,例如:

a = poco(text="日历")

可能会出现节点状态长期不刷新的现象,今天我们就详细看一下这些情况,并且利用Poco1.0.87新增的 refresh 接口来帮助我们解决这个问题。

2. 案例1

假设我们在脚本中提前保存了一个元素对象a,这个对象表示云音乐首页的“每日推荐”这个文本对象,并且我们编写了一个脚本,每隔一秒,打印一下这个对象的存在状态:

如动图所示,尽管我们已经操作设备画面,离开了云音乐的首页,但是这个对象a的状态,仍旧没有一点点变化,一直告诉我们是存在的。

如果我们加上节点刷新接口 refresh ,看看结果会是怎样呢?

这时候就能够正常刷新对象a的状态了。

3. 案例2

Poco1.0.87之前,我们使用 wait_for_disappearance 接口,会遇到实际上节点已经消失了,但是接口没有判断到消失的问题:

image.png

但是Poco1.0.87修复了这个问题,强制重新获取节点状态,避免节点已经存在、又消失后,不会刷新节点信息导致 exists() 永远为 True 的bug。

image.png

可以看下在Poco1.0.87下的运行效果:

4. refresh的注意事项

注意该接口是节点状态刷新接口,不是poco的刷新接口:

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
# 正确用法
poco(text="日历").refresh()
# 错误用法
poco.refresh()

错误使用会导致 AttributeError: 'AndroidUiautomationPoco' object has no attribute 'refresh' 的报错:

image.png

另外,该接口为Poco1.0.87新增接口,所以我们需要在最新版的IDE,即1.2.14版本才可以使用;使用了本地python环境的同学,需要将环境里面的库更到最新:

pip install -U airtest
pip install -U pocoui

AirtestIDE下载:airtest.netease.com/

Airtest 教程官网:airtest.doc.io.netease.com/

搭建企业私有云服务:airlab.163.com/b2b


相关文章
|
Shell 测试技术
Airtest如何自动连接重启后的设备并继续执行自动化脚本呢?
Airtest如何自动连接重启后的设备并继续执行自动化脚本呢?
346 0
【资源分享】阿里云盘资源永久汇总页
不知道大家的阿里云盘现在有多少容量了?阿里为了资源也为了网盘活跃度,在九月推出限时活动,分享赢10T容量。因此带来了这一波的阿里盘分享热潮,当然大部分人都是奔着10T去的。所以网上资源翻来覆去的很多,重复的也多。正因如此空空发现了一位网友非常的有心,将分享出来网盘资源进行了梳理汇总,并且搭建了这个终极阿里云盘资源整合网站——【阿里云盘资源永久汇总页】。
246941 11
【资源分享】阿里云盘资源永久汇总页
|
前端开发 JavaScript 数据安全/隐私保护
Jmeter模拟加密密码登录
Jmeter模拟加密密码登录
595 0
|
前端开发 API Python
WebSocket技术详解:如何在Python Web应用中实现无缝实时通信
在Web开发的广阔领域中,实时通信已成为许多应用的核心需求。传统的HTTP请求-响应模型在实时性方面存在明显不足,而WebSocket作为一种在单个长连接上进行全双工通信的协议,为Web应用的实时通信提供了强有力的支持。本文将深入探讨WebSocket技术,并通过一个Python Web应用的案例分析,展示如何在Python中利用WebSocket实现无缝实时通信。
385 2
|
测试技术 开发工具 iOS开发
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
这篇文章是iOS自动化测试方案的第三部分,介绍了在没有MacOS系统条件下,如何使用WDA(WebDriverAgent)结合Python客户端库facebook-wda和tidevice工具,在Windows系统上实现iOS应用的自动化测试,包括环境准备、问题解决和扩展应用的详细步骤。
2403 1
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
|
存储 监控 NoSQL
结合通义千问对CentOS靶机进行入侵排查
本文介绍了一种在Linux系统中记录所有登录用户操作历史的方法,通过在/etc/profile中添加脚本代码,每次用户登录时会自动生成一个包含该用户操作历史的文件。同时,文章还提供了多种查看系统登录记录和日志的方法,如使用last, last -f /var/log/wtmp和cat /var/log/secure | grep 可疑IP等命令,帮助管理员监控系统活动和排查异常行为。此外,通过rpm -Va命令可检查文件完整性,识别可能存在的安全隐患。
|
Windows
显示器设置
显示器设置
313 2
gitlab删除项目
gitlab删除项目
1350 0
|
JSON 负载均衡 网络协议
RPC远程调用协议
RPC远程调用协议
316 0