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


相关文章
|
5月前
|
存储 缓存 NoSQL
Gin 应用多实例部署session问题、session参数与刷新
【8月更文挑战第7天】在Gin应用多实例部署中,传统基于内存的Session存储会导致数据不一致或丢失。需采用如数据库或Redis存储、及Session同步机制确保一致性。示例代码展示了使用Redis存储Session的过程。合理选择方案对保证系统稳定和用户体验至关重要。
MybatisPlus--IService接口基本用法,MP提供了Service接口,save(T) 这里的意思是新增了一个T, saveBatch 是批量新增的意思,saveOrUpdate是增或改
MybatisPlus--IService接口基本用法,MP提供了Service接口,save(T) 这里的意思是新增了一个T, saveBatch 是批量新增的意思,saveOrUpdate是增或改
|
7月前
|
API 开发工具 git
大事件项目23---个人中心—更换头像——调用接口保存,并让Vuex更新
大事件项目23---个人中心—更换头像——调用接口保存,并让Vuex更新
|
7月前
|
Web App开发 移动开发 安全
如何做到修改 url 参数页面不刷新
如何做到修改 url 参数页面不刷新
element ui 上传图片之后跳转、刷新、保存,预览和删除丢失问题
这问题困惑了我好久,在官方的element ui 的组件库中,直接拿来使用的话,只有当前显示效果,一旦刷新页面或者保存之后,就会丢失,预览和删除功能。当保存后,保存到后端接口,再次查看,图片是能渲染出来,但是由于保存页面刷新,随之整个上传过程失败,而查看所拿到的图片只是一张静态图片,要想再次预览和查看,需要重新选中上传
277 0
移除MagenTo自动发送邮件中网址的多余部分?___store=id
移除MagenTo自动发送邮件中网址的多余部分?___store=id
|
存储
刷新adapte要注意的地方,和adapter使用的流程
刷新adapte要注意的地方,和adapter使用的流程
|
Java
【JAVA】【更新版本】当在上线新版时,又存在数据需要刷新的情况;就会导致部分接口是不能访问的,但又需要其他接口正常访问,可以在对应的接口加个版本时间限制访问。
【JAVA】【更新版本】当在上线新版时,又存在数据需要刷新的情况;就会导致部分接口是不能访问的,但又需要其他接口正常访问,可以在对应的接口加个版本时间限制访问。
156 0
dwz框架新建更新后对原表格刷新
dwz框架新建更新后对原表格刷新
162 0
|
JSON 前端开发 数据格式
bootstrap-table 前端分页,刷新事件代码实例
function renderIssueTable(){ $('#issueTable').bootstrapTable({ detailView: false,//父子表 //分...
1282 0