我正在使用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驱动程序应单击到元素,执行一些操作并返回成功或失败的结果。但是实际结果是->脚本崩溃,因为硒无法单击到元素
答案 0 :(得分:1)
data
['x','y','z']
要解决此问题,请尝试使用javaScript Executor单击element。
dataTo DataFrom
x y
x z
y z