Selenium:ElementClickInterceptedException 元素不可点击

问题描述 投票:0回答:2

我正在使用 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]

(计划稍后缩短)

我尝试过添加睡眠计时器,尝试滚动到视图功能等,但遗憾的是没有结果。

selenium-webdriver robotframework selenium-ide
2个回答
0
投票

当您得到

ElementClickInterceptedException
时,这意味着您正在尝试单击一个元素,但另一个元素与它重叠并收到单击。错误消息中对此进行了描述。

Other element would receive the click : <div class="navigation-bar">...

在无法访问该页面的情况下,基本上我们所能做的就是猜测或给出一般性建议。你需要找到

<div class="navigation-bar">

元素并执行以下操作之一:

  1. 由于 DIV 上的类是“navigation-bar”,因此它可能是浮动导航元素,例如顶部导航、左侧导航等。如果可以,请从导航元素下方滚动所需的元素。您可能需要向上或向下滚动,具体取决于元素所在的位置。

  2. 阻塞元素可能是弹出对话框或其他一些永久阻塞。在这种情况下,您需要找到关闭或关闭按钮并单击它。

  3. 阻塞元素可能是一个临时对话框,例如正在加载...横幅等。在这种情况下,您可以等待横幅出现,然后等待它消失...然后单击您的元素。

  4. 如果这些都不起作用,您可以随时使用 JS 单击该元素。 Selenium 旨在用于模拟用户行为,因此它可以像用户一样从上到下单击元素。这就是您遇到此问题的部分原因。如果您不想模拟实际用户与您的页面交互,JS 可以完成这项工作。

    ${ele}    Get WebElement    //*[text()='Logout']
    Execute Javascript    arguments[0].click();     ARGUMENTS    ${ele} 
    

    请参阅文档了解更多信息。


0
投票

执行 JavaScript document.evaluate("//*[text()='BUTTON']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click(); 成功了!

© www.soinside.com 2019 - 2024. All rights reserved.