如何解决问题-Elementclickintercepted异常

时间:2019-05-23 13:35:18

标签: python selenium qa

我正在使用Selenium 3.9.0 + GeckoDriver 0.24 + FireFox 58.0.2。

当网络驱动程序想要单击目标站点上导航树中的元素时,->脚本崩溃,并出现硒异常:“ selenium.common.exceptions.ElementClickInterceptedException:消息:该元素在点(151,823)不可单击,因为另一个元素将其遮盖了”

有什么问题,我该如何解决?

在硒被单击到元素之前,我尝试增加DOM元素的等待时间。但这对我没有帮助。 当我使用旧版本的selenium(2.53)和旧版本的firefox(45.2.0)时,该脚本效果很好。该网站中的HTML代码没有人更改。

此外,如果我仅启动一个测试用例->脚本不会崩溃并成功完成。如果我开始大量测试用例,则->脚本会因该异常而崩溃。

我正在使用单独的方法来单击元素:

def单击(驱动程序,定位器,sleep_time = 5,expl_wait = 40):     “”     等待直到元素显示并单击,然后向其发送“单击”。     如果出现问题(不会出现NoSuchElementException),则会生成TimeoutException。

: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驱动程序应单击到元素,执行一些操作并返回成功或失败的结果。但是实际结果是->脚本崩溃,因为硒无法单击到元素

1 个答案:

答案 0 :(得分:1)

    data
['x','y','z']

要解决此问题,请尝试使用javaScript Executor单击element。

    dataTo    DataFrom
      x          y
      x          z
      y          z