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

Selenium Python错误:元素不可点击,因为另一个元素遮挡了它

柯宜年
2023-03-14

我想点击一个按钮,这个按钮要么还不能点击,要么上面有另一个元素。

但只要它是可点击的,我就想按它。我试过这个:

button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CLASS_NAME, "likeClick")))

button.click()

但它不起作用,因为我仍然得到错误

selenium.common.exceptions.ElementClickInterceptedException: Message: Element <a class="likeClick"> is not clickable at point (400,553) because another element <div class="delete-overlay"> obscures it```

共有1个答案

谢鸿羲
2023-03-14

此错误消息...

selenium.common.exceptions.ElementClickInterceptedException: Message: Element <a class="likeClick"> is not clickable at point (400,553) because another element <div class="delete-overlay"> obscures it

…表示单击<code>

要单击所需的元素,您需要诱导WebDriver等覆盖的invisibility_of_element_located(),然后诱导WebDriver等element_to_be_clickable(),您可以使用以下任一定位器策略:

>

  • 使用CSS_SELECTOR:

    WebDriverWait(driver, 30).until(EC.invisibility_of_element_located((By.CSS_SELECTOR, "div.delete-overlay")))
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.likeClick"))).click()
    

    使用XPATH:

    WebDriverWait(driver, 30).until(EC.invisibility_of_element_located((By.XPATH, "//div[@class='delete-overlay']")))
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@class='likeClick']"))).click()
    

    注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

  •  类似资料:
    • 我正在尝试自动化访问点web配置。在此期间,我会弹出一个我想要点击的窗口(类似于“是”和“否”的叠加 我试图单击的覆盖层的HTML代码: 我试过了 但我得到以下错误: 引发exception_class(message,screen,stacktrace)selenium.common.exceptions.ElementClickInterceptedException:message:元素在点

    • 我使用了DebanjanB的答案,但没有解决这个错误: 元素不能在点(860.5999755859375,36.69999694824219)单击,因为另一个元素遮挡了它。 我大约十次得到一次错误。

    • 当试图单击appl上的按钮时,我收到以下错误: WebDriverException:在点(x,y)不能单击元素。其他元素将收到click: 操作没有发生,但对象正在被识别。然后显示错误消息而失败。 请告诉我如何解决这个问题。谢谢

    • 问题内容: 我只能在Chrome浏览器中看到。 完整的错误消息显示为: “ org.openqa.selenium.WebDriverException:元素在点(411,675)不可点击。其他元素将获得点击:…” “将获得点击”的元素位于相关元素的侧面,而不是在其顶部且不重叠,也不在页面上移动。 我曾尝试添加偏移量,但这也不起作用。该项目位于显示的窗口中,无需滚动。 问题答案: 这是由以下3种类

    • “将接收点击”的元素位于所讨论的元素的旁边,而不是在其顶部,也不是与之重叠,也不是在页面中移动。 我试过添加一个偏移量,但那也不起作用。该项目在显示的窗口上,不需要滚动。