Skip to main content
 首页 » 编程设计

python之为什么我会收到 ElementClickInterceptedException 错误

2025年05月04日15飞鱼

调查中的问题是:一周中的哪几天您始终有空?我想星期天检查。

我正在复制从在线视频中看到的代码,但是,我收到了此错误。有些人建议弹出窗口可能会阻止程序正常工作,但我没有看到弹出窗口。

我尝试过使用 chromedriver 和 geckodriver。两者都存在错误。

查看是否选择星期日的代码工作正常:

status=driver.find_element_by_id("RESULT_CheckBox-8_0").is_selected() 
print(status)  

输出:

False 

这是我的代码:

from selenium import webdriver  
 
driver=webdriver.Chrome(executable_path="my_webdriver_path"\\chromedriver.exe 
 
driver.get("https://fs2.formsite.com/meherpavan/form2/index.html?1537702596407") 

一周中的哪几天您始终有空?

我现在想勾选星期日框。这是我的代码:

status=driver.find_element_by_id("RESULT_CheckBox-8_0").click() 
    print(status) 

我想选中星期日框,但我收到此错误:

selenium.common.exceptions.ElementClickInterceptedException: Message: Element <input id="RESULT_CheckBox-8_0" class="multiple_choice" name="RESULT_CheckBox-8" type="checkbox"> is not clickable at point (313,599) because another element <label> obscures it 

我没有看到另一个使程序模糊不清的元素。有没有人有什么建议?我是编码新手,因此非常感谢任何帮助。

请您参考如下方法:

您遇到的问题与用于 label 和 input 标签中不同属性的相同值有关。

如您所见,即使您使用“find_element_by_id”,标签的“for”属性与“id”属性(并不一定必须是唯一值)具有相同的值。

要解决此问题,您可以使用不同的定位器,例如 XPATH。您可以通过右键单击元素(当您使用 f12 检查代码时)获得 xpath,然后选择 [copy] - [xpath]

下面是一些应该有效的代码(注意:我已将 chromedriver.exe 放在与它自身的 .py 文件相同的位置):

from selenium import webdriver 
 
driver = webdriver.Chrome() 
driver.get('https://fs2.formsite.com/meherpavan/form2/index.html?1537702596407') 
status = driver.find_element_by_id("RESULT_CheckBox-8_0").is_selected() 
 
if status: 
    pass 
else: 
    driver.find_element_by_xpath("//*[@id='q15']/table/tbody/tr/td[1]/label").click() 

不要忘记最终关闭驱动程序,否则它将作为正在运行的进程留在后台。

您可以通过以下方式做到这一点:

driver.close() 

希望这对您有所帮助!