我正在使用 RED(机器人框架编辑器),当前正在处理一个项目,当尝试单击 href 时,出现错误
ElementClickInterceptedException,元素在点(616,304)处不可点击。其他元素将收到点击:
代码
Wait Until Keyword Succeeds 4x 5s Wait Until Element is Enabled ${button_locator}
Click Element ${button_locator}`
HTML
<a href="#" role="button" class="rs-nav-item">
<div class="segment-control-item-cat divider-text active">BUTTON</div>
<span class="rs-ripple-pond">..</span>
</div>
我为 ${button_locator} 使用的 XPath 是:
//*[@id="root"]/section[2]/div/div[1]/div[2]/div[2]/a[1]
(计划稍后缩短)
我尝试过添加睡眠计时器,尝试滚动到视图功能等,但遗憾的是没有结果。
当您得到
ElementClickInterceptedException
时,这意味着您正在尝试单击一个元素,但另一个元素与它重叠并收到单击。错误消息中对此进行了描述。
Other element would receive the click : <div class="navigation-bar">...
在无法访问该页面的情况下,基本上我们所能做的就是猜测或给出一般性建议。你需要找到
<div class="navigation-bar">
元素并执行以下操作之一:
由于 DIV 上的类是“navigation-bar”,因此它可能是浮动导航元素,例如顶部导航、左侧导航等。如果可以,请从导航元素下方滚动所需的元素。您可能需要向上或向下滚动,具体取决于元素所在的位置。
阻塞元素可能是弹出对话框或其他一些永久阻塞。在这种情况下,您需要找到关闭或关闭按钮并单击它。
阻塞元素可能是一个临时对话框,例如正在加载...横幅等。在这种情况下,您可以等待横幅出现,然后等待它消失...然后单击您的元素。
如果这些都不起作用,您可以随时使用 JS 单击该元素。 Selenium 旨在用于模拟用户行为,因此它可以像用户一样从上到下单击元素。这就是您遇到此问题的部分原因。如果您不想模拟实际用户与您的页面交互,JS 可以完成这项工作。
${ele} Get WebElement //*[text()='Logout']
Execute Javascript arguments[0].click(); ARGUMENTS ${ele}
请参阅文档了解更多信息。
执行 JavaScript document.evaluate("//*[text()='BUTTON']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click(); 成功了!