Robot Framework搭配Appium Library蓝牙测试中按当前页面执行操作的方法
实现方案
核心思路是用内置关键字Run Keyword And Return Status捕获页面检查的失败结果,不会直接标记测试失败,再将页面校准逻辑和蓝牙操作封装为独立关键字,接入Wait Until Keyword Succeeds实现重试。
步骤1:封装页面校准关键字
实现「检查页面→不符合则点击返回→最终校验页面」逻辑,支持多次点击返回适配多层级页面跳转场景:
*** Keywords *** 校准到目标页面 [Arguments] ${目标页面文本} ${最大返回次数}=3 # 循环检查页面,最多尝试指定次数返回 FOR ${i} IN RANGE ${最大返回次数} ${页面是否匹配} Run Keyword And Return Status Page Should Contain Text ${目标页面文本} Exit For Loop If ${页面是否匹配} Click Back Sleep 1s # 等待页面跳转渲染完成,可根据应用响应速度调整 END # 最终校验页面,失败则抛错触发上层重试 Page Should Contain Text ${目标页面文本}
步骤2:封装带前置校验的蓝牙执行关键字
将页面校准作为蓝牙指令的前置操作,打包为可重试的最小执行单元:
*** Keywords *** 执行蓝牙指令带前置校验 [Arguments] ${目标页面文本} ${蓝牙指令关键字} @{蓝牙指令参数} # 执行蓝牙操作前先校准到目标页 校准到目标页面 ${目标页面文本} # 执行实际的蓝牙业务指令 Run Keyword ${蓝牙指令关键字} @{蓝牙指令参数}
步骤3:接入重试逻辑
调用时直接套入Wait Until Keyword Succeeds即可实现指定次数的重试:
# 示例:重试5次,每次间隔10秒,执行蓝牙连接指令 Wait Until Keyword Succeeds 5x 10s 执行蓝牙指令带前置校验 ${my_page_text} 连接蓝牙设备 ${设备MAC地址}
如果你不需要多次返回的逻辑,去掉
校准到目标页面里的FOR循环即可,单次检查返回的逻辑和你描述的需求完全一致。
内容的提问来源于stack exchange,提问作者Gauthier
相关产品推荐
相关产品推荐

