当前位置: 首页 > 知识库问答 >
问题:

如何修复问题-Elementclickintercepted异常

史昀
2023-03-14

我使用的是Selenium3.9.0+Geckodriver0.24+Firefox58.0.2。

当webdriver想要在我的目标站点上单击导航树中的元素时->script crashing with selenium异常:“selenium.Common.Exceptions.ElementClickInterceptedException:Message:element is not clickable at point(151,823),因为另一个元素遮蔽了它”

有什么问题,我该怎么解决?

我尝试增加DOM元素等待时间,然后单击selenium元素。但那对我没有帮助。当我使用旧版selenium(2.53)和旧版firefox(45.2.0)时,该脚本工作得很好。站点中HTML代码没有更改。

同样,如果我只启动一个测试用例->script不会崩溃并成功地完成。如果我开始了大量测试用例->script begin崩溃了,但有这些例外。

:type driver: WebDriver
:type locator: tuple
:param sleep_time: delay before click
:param expl_wait: explicit waiting time for presence of element will found
:type sleep_time: float
:type expl_wait: float
"""

time.sleep(sleep_time)
WebDriverWait(driver, expl_wait, ignored_exceptions=StaleElementReferenceException).until(
    ec.presence_of_element_located(locator))
# additional check were deleted, cause of some unexpected timeout exceptions on it
WebDriverWait(driver, 40).until(ec.element_to_be_clickable(locator))
driver.find_element(*locator).click()
wait_for_loading(driver)

Web驱动程序应该点击到元素,做一些动作并返回成功或失败的结果。但实际结果是->script crash,因为selenium无法单击到元素

共有1个答案

皇甫繁
2023-03-14
selenium exception: "selenium.common.exceptions.ElementClickInterceptedException: Message: Element is not clickable at point (151,823) because another element obscures it

要克服这个问题,请尝试使用javaScript Executor单击Element。

driver.execute_script("arguments[0].click();",driver.find_element(*locator))
 类似资料:
  • 我们在服务器和客户机模式下使用Ignite 2.7.6:两个服务器和六个客户机。 正如我们所看到的,现在所有服务器节点的CPU负载都很高,约为250%(更新前为20%),而长G1 Young Gen的停顿时间高达5毫秒(更新前为300微秒)。 服务器配置为: 在Ignite服务器节点的内存转储中,我们看到大量,大小为21MB

  • 本文向大家介绍spring cloud如何修复zuul跨域配置异常的问题,包括了spring cloud如何修复zuul跨域配置异常的问题的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要给大家介绍一下在zuul进行跨域配置的时候出现异常该如何解决的方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 异常 实例 方案 多次请求的时候,会把这些header再带过来,然后请求

  • 问题内容: 我正在尝试将XML发送到服务器并取回XML。有什么办法可以解决/忽略此异常吗? 我知道状态行为空,这会引发此错误。 问题答案: 尝试看看您的服务器实际上返回了什么!它可能不是有效的HTTP响应。您可以使用以下方式将原始的http请求发送到服务器: 响应应类似于:

  • 我正在每隔20秒启动一个基于的服务,它将数据发送到我的服务器。问题是我的堆和分配的堆大小继续增加。在分析堆转储时,我发现服务实例的数量等于对的调用数量。如何避免这个问题?

  • 我不能将Paramindex++移动到第一个for循环,因为行为将与所需的不同。 如果有人能就如何修复这种违规行为提出建议,我将不胜感激。提前谢谢你。

  • 我只是从我当地的回购协议中克隆了一个Android项目,我很难“构建”它。也许它错过了一些外部图书馆,但我不知道。 在开始等级构建时,我得到以下信息: 我试着检查“清单”文件,但我找不到。我完全迷路了... 我很确定这是一个配置错误,因此我可以在这里找到所有的配置文件: settings.gradle代码 (来自项目文件夹内)的输出如下: