You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ROBOT Framework Run Keyword And Ignore Error用法及代码示例求助

报错原因说明

MoveTargetOutOfBoundsException 报错的核心逻辑是Selenium判定目标元素不在当前视口的可交互范围内,你肉眼可见滚动到位但仍报错,常见触发场景如下:

  • 页面存在固定悬浮的顶部导航栏/底部栏,元素滚动后被悬浮元素遮挡,Selenium判定其无法交互
  • 滚动操作执行后页面元素未完成渲染,关键字校验时元素还未稳定在视口内
  • Scroll Element Into View 默认将元素对齐到视口顶部,刚好被顶部悬浮元素挤占了可视空间
方案1:优化滚动逻辑(优先使用,稳定性更高)

优先调整滚动关键字的参数从根源解决问题,不需要捕获异常:

# 指定将元素对齐到视口底部,避免被顶部悬浮栏遮挡,滚动后等待0.5秒让元素稳定
Scroll Element Into View    xpath=/html/body/section/div[3]/div    align_to_bottom=${True}
Sleep    0.5s
# 后续对该元素的操作,比如点击、取值等
方案2:使用Run Keyword And Ignore Error捕获异常

如果确认滚动实际已生效仅关键字判定报错,可以用该关键字兜底处理,写法如下:

基础写法(直接忽略异常,不处理返回结果)

# 直接执行滚动关键字,忽略所有报错
Run Keyword And Ignore Error    Scroll Element Into View    xpath=/html/body/section/div[3]/div
Sleep    0.5s
# 后续继续执行操作

进阶写法(获取执行状态,可做二次校验)

Run Keyword And Ignore Error 会返回两个值:第一个为执行状态(PASS/FAIL),第二个为返回结果或报错信息,你可以基于返回值做后续校验:

${执行状态}    ${报错信息}    Run Keyword And Ignore Error    Scroll Element Into View    xpath=/html/body/section/div[3]/div
# 可选:不管滚动关键字是否报错,都校验元素是否可见,确认滚动实际生效
Wait Until Element Is Visible    xpath=/html/body/section/div[3]/div    timeout=3s
# 后续执行元素操作
Click Element    xpath=/html/body/section/div[3]/div
注意事项
  • 优先使用方案1解决问题,忽略异常仅作为兜底方案,避免隐藏真实的元素定位错误等问题
  • 如果页面存在懒加载逻辑,滚动后可增加Wait Until Element Is Enabled关键字校验元素状态后再操作

内容的提问来源于stack exchange,提问作者Nagendran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 13:09:02