airtest的强制等待\全局隐式等待\显示等待时间设置

首先解释下隐式等待:在设定的时间内不停的进行元素寻找,直到过了设定的时间还没找到则报错

wait其实有这个参数的,即timeout,可以指定等待的最大时长,但只能每一次wait都去指定timeout比较麻烦,这时可以设置全局的等待时长时,可以如下这样指定:

ST.FIND_TIMEOUT=60  #设置隐式等待时长

备注:这里的全局等待时长包括touch,wait,swipe的第一张图片识别时长,assert_exists,double_click的断言时长

 

swipe的第二张图、exists、assert_not_exists的全局隐式等待时间为ST.FIND_TIMEOUT_TMP,与上边的不同

 

显示等待,就是timeout参数,单位秒,适用于几乎所有操作,如:touch、double_click、swipe、wait、exists、assert_exists、assert_not_exists。具体使用如下

 

### AirTest设置等待时间的方法 在 AirTest 中,可以通过多种方设置等待时间,具体取决于实际需求以及测试场景的不同。 #### 1. **强制等待** 如果需要让脚本暂停一段时间后再继续执行操作,则可以直接使用 `sleep` 函数实现强制等待。 ```python from time import sleep sleep(5) # 让程序休眠5秒 ``` #### 2. **显等待** 对于某些特定的操作,比如点击某个控件或者滑动屏幕之后,可能需要等待目标对象出现再进行下一步操作。此时可以利用 `wait` 或者其他带有超时机制的函数完成显等待。其中,`wait` 的核心参数之一就是 `timeout`,用于定义最大等待时限。 ```python from airtest.core.api import wait, Template template = Template(r"example.png") # 定义模板图片路径 result = wait(template, timeout=30) # 显设定最长等待时间为30秒 print(result) ``` 上述代码片段展示了如何通过传递自定义的 `timeout` 参数给 `wait` 来控制单次调用中的最长时间限制[^1]。 #### 3. **全局等待** 当项目中有大量类似的等待逻辑时,频繁地为每一个单独的 `wait` 调用指定相同的 `timeout` 值会显得冗余且不易维护。为此,AirTest 提供了一种配置选项——修改全局变量 `ST.FIND_TIMEOUT` ,从而统一管理默认的查找超时时限。 ```python from airtest.core.settings import Settings as ST ST.FIND_TIMEOUT = 60 # 将全局等待时长设为60秒 ``` 一旦设置了该属性,在后续所有的基于图像匹配的功能里都会沿用此新的默认值作为其内部处理过程的一部分,除非另有特别说明覆盖它。 另外需要注意的是,默认情况下如果没有手动调整过任何地方的话,那么大多数 API 如 touch(), exists() 等内置方法所采用的标准找图尝试周期大约维持在约二十秒钟左右[^2];而针对连续动作序列例如 swipe 则还存在额外可调节项 interval 表明两次之间最小间隔多久再次检测一次位置状态变化情况。 最后提醒一点关于选取参照物时候的小技巧:为了提高成功率并减少误判概率建议尽量挑选那些边界清晰特征明显的区域做为目标素材而不是整个复杂画面截图下来当作依据因为后者容易受到外界环境干扰影响最终效果表现不佳[^3]。 ```python # 综合示例 from airtest.core.api import * from airtest.core.settings import Settings as ST # 修改全局等待时间 ST.FIND_TIMEOUT = 60 # 使用带超时参数的显等待 button_image = Template(r"path_to_button.png") if not wait(button_image, timeout=10): raise Exception("Button did not appear within 10 seconds") # 执行一些交互... touch(button_image) # 强制延迟几秒观察结果 time.sleep(3) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值