Robot Framework 持续刷新页面直到指定元素出现的实现方法
Robot Framework 实现刷新页面直至元素出现的自定义关键字
完整代码实现
*** Settings *** Library SeleniumLibrary *** Keywords *** 刷新页面直至元素出现 [Arguments] ${target_locator} ${max_retry_times}=10 ${wait_after_refresh}=2 # 按设置的最大重试次数循环检查 FOR ${retry_count} IN RANGE ${max_retry_times} ${element_exists} Run Keyword And Return Status Page Should Contain Element ${target_locator} # 元素已存在直接退出循环 Exit For Loop If ${element_exists} # 元素不存在则刷新页面,等待后进入下一轮检查 Reload Page Sleep ${wait_after_refresh} # 也可以将Sleep替换为 Wait Until Page Is Loaded 适配页面加载逻辑 END # 重试次数耗尽后最终校验,未找到则抛出异常 Page Should Contain Element ${target_locator} message=重试${max_retry_times}次后仍未找到目标元素
使用示例
直接调用关键字,传入元素定位即可,也可自定义重试次数和刷新后等待时长:
# 示例:检查xpath为//*[@class="result"]的元素,最多重试15次,每次刷新后等3秒 刷新页面直至元素出现 //*[@class="result"] 15 3
注意事项
- 必须设置最大重试次数,避免元素永远无法加载时进入死循环
- 刷新后的等待时长可根据自身页面加载速度调整,避免页面还没加载完成就开始检查元素
- 如果页面有异步加载逻辑,可在刷新后新增对应等待逻辑再做元素检查
内容的提问来源于stack exchange,提问作者VIVIO
相关产品推荐
相关产品推荐

