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

硒.common.exceptions.Element点击未接受异常: 消息: 元素点击被截获: 元素不能用硒和蟒蛇点击

左丘元徽
2023-03-14

我目前正在处理一个自动填写表格的项目。当表单填写时,下一个按钮会出现,这就是为什么它给我一个错误。

我试过:

WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,"//input[@type='button' and @class='button']")))
Next = driver.find_element_by_xpath("//input[@type='button' and @class='button']")
Next.click()

HTML:

<span class="btn">
    <input type="button" value="Next" class="button" payoneer="Button" data-controltovalidate="PersonalDetails" data-onfieldsvalidation="ToggleNextButton" data-onclick="UpdateServerWithCurrentSection();" id="PersonalDetailsButton">
     </input>
     <div class="clearfix"></div>
</span>

错误:

selenium.common.exceptions.ElementClickInterceptedException:消息:元素点击被拦截:元素在点(203,530)不可点击。其他元素将收到点击:...(会话信息:chrome=76.0.3809.132)

共有3个答案

柴瀚昂
2023-03-14

我遇到了类似的问题,.click()总是返回一个不可点击的异常。这

driver.execute_script('arguments[0].click()', button)

有魔力。您也可以使用它以这种方式执行任何其他js脚本

script = 'your JavaScript goes here'
element = driver.find_element_by_*('your element identifier goes here')
driver.execute_script(script, element)
方梓
2023-03-14

此错误消息...

selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element is not clickable at point (203, 530). Other element would receive the click: ... (Session info: chrome=76.0.3809.132)

...这意味着所需元素上的 click() 被其他元素拦截,并且所需元素不可单击。

您需要考虑以下几点:

  • 在使用Selenium进行自动化时,在没有任何特定条件的情况下使用time.sleep(secs)来实现自动化会破坏自动化的目的,应不惜任何代价避免。根据留档:

时间。睡眠(秒)在给定的秒数内暂停当前线程的执行。参数可以是浮点数,以指示更精确的睡眠时间。实际暂停时间可能小于请求的时间,因为任何捕获的信号都将在执行该信号的捕获例程后终止sleep()。此外,由于系统中其他活动的调度,暂停时间可能比请求的时间长任意量。

  • 您可以在如何在python中睡眠Webdriver几毫秒中找到详细的讨论
  • 当“网页驱动”返回“网络元素”时,您可以直接调用 click() 方法。

要单击值为“下一步”的按钮,您可以使用以下任一定位器策略:

>

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.button#PersonalDetailsButton[data-controltovalidate='PersonalDetails']"))).click()
    

    使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='button' and @id='PersonalDetailsButton'][@data-controltovalidate='PersonalDetails']"))).click()
    

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

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

  • 万选
    2023-03-14

    如果xpath的路径是正确的,也许你可以尝试这种方法来解决这个问题。将旧代码替换为以下代码:

    button = driver.find_element_by_xpath("xpath")
    driver.execute_script("arguments[0].click();", button)
    

    我以前解决过这个问题,但是说实话,我不知道原因。

     类似资料:
    • 我正在使用selenium测试脚本。我得到以下错误和这个错误随机发生。当我跑10次时,我会得到大约两次。所以它不是真的可复制的。有人知道为什么会这样吗?我试图单击的元素在浏览器中绝对可见,并且不会四处移动,因此不需要调整大小或拖动元素。我正在使用chrome webdriver,我阅读了其他故障排除策略(调试“Element is not clickable at point”错误),它们似乎与我

    • 我正在尝试自动“Tableau”登录屏幕和下载报告流程。在我到达“下载”按钮之前一切正常。第一个问题是我无法右键单击下载按钮并在Chrome进行“检查”,这很奇怪。我不知何故能够通过浏览整个页面来找到xpath。当我尝试单击它时,我得到“由:org.openqa.selenium.NoSuchElementException引起:没有这样的元素:无法定位元素:{"方法":"xpath","sele

    • 我最近将selenium升级到最新版本(2.53),将firefox升级到最新版(45.0.1)。 我在相同的网站上运行相同的代码,但我突然有很多这样的例外: Web 驱动程序异常: 消息: 元素在点 (312, 8.816665649414062) 不可单击。其他元素将收到单击: 例如: 有什么我应该注意的新东西吗?我之前的python selenium版本相当旧,而且我在Firefox 38上

    • 用我在selenium的初学者知识,我试图找到点击元素,打开链接。这些项目的链接没有href。我如何执行点击正确的元素打开链接。 我正在使用python、selenium、chrome web驱动程序、BeautifulSoup。所有库都已更新。 下面是示例html片段,其中有一个我需要使用selenium点击的标题。请让我知道,如果你需要更多的html源。此代码来自仅限“登录”的网站。

    • 最近,我用硒在网站上抓取了一些信息。我想做的只是点击“上个月的按钮”。 所以我写这样的代码 但它不起作用,我改变了很多次,像这样改变代码 这些都不管用。当我尝试使用三个试用版中的第一个时(即:web driver . find _ element _ by _ CSS _ selector(' a . ui-icon ui-icon-circle-triangle-w ')。单击()),弹出的错误

    • 我用selenium和python一起使用,我试图点击一个按钮,但它似乎不起作用。下面是html结构的图片: 这里 我已经尝试通过xpath和类单击该按钮,但没有成功。它也没有给我一个错误。我为每一个答案感到高兴!