RobotFramework点击设置菜单弹出链接报ElementNotInteractableException求助
问题原因排查及解决方案
ElementNotInteractableException报错的核心原因是目标元素当前处于不可交互状态,结合你的使用场景,按优先级排查解决即可:
1. 修正定位语法错误
你第二步点击语句的XPath中,id属性值写为quickaccess-popover content,和第一步点击的元素idquickaccess-popover-content不一致,存在空格替换横杠的书写错误,这是触发报错的首要可能原因,先修正定位语句:
# 修正id属性值后的定位语句 Click Element //*[@id="quickaccess-popover-content"]/div[2]/div[2]/ul/li[1]/a
2. 增加弹出元素等待逻辑
点击菜单后弹出的链接列表需要一定渲染时间,直接执行点击操作会因为元素未完成加载触发不可交互报错,在两次点击之间增加显式等待即可:
Go to http://localhost/index.php?redirect=0 Click Element id:quickaccess-popover-content # 等待目标链接可见且可交互,超时时间可根据页面加载速度调整 Wait Until Element Is Visible //*[@id="quickaccess-popover-content"]/div[2]/div[2]/ul/li[1]/a timeout=5 Wait Until Element Is Enabled //*[@id="quickaccess-popover-content"]/div[2]/div[2]/ul/li[1]/a timeout=5 Click Element //*[@id="quickaccess-popover-content"]/div[2]/div[2]/ul/li[1]/a
3. 新窗口切换操作
如果点击链接后确实会打开新窗口,在点击链接后增加如下窗口切换逻辑即可:
# 等待新窗口加载完成 Wait Until New Window Opens timeout=5 # 切换到最新打开的窗口 Switch Window locator=NEW
调试技巧
如果上述操作仍未解决问题,可以调用Capture Page Screenshot关键字截图确认弹出菜单是否正常展开,也可以打印当前页面源码验证元素属性是否和定位语句一致。
内容的提问来源于stack exchange,提问作者Dayle Kelly
相关产品推荐
相关产品推荐

