无法单击单选按钮,出现“ElementClickInterceptedException”错误

Posted

技术标签:

【中文标题】无法单击单选按钮,出现“ElementClickInterceptedException”错误【英文标题】:Unable to click on Radio Button getting "ElementClickInterceptedException" error 【发布时间】:2021-05-22 15:28:49 【问题描述】:

尝试在 python 中使用 selenium Webdriver 单击单选按钮时出现以下错误

ElementClickInterceptedException: Message: element click intercepted: Element 
<input name="gender" required="" type="radio" id="gender-radio-1" class="custom-control-input" value="Male"> 
is not clickable at point (532, 370). Other element would receive the click: <label title="" for="gender-radio-1" class="custom-control-label">...</label>
  (Session info: chrome=88.0.4324.182)

下面是我的代码 页面网址:https://demoqa.com/automation-practice-form

from selenium import webdriver
driver = webdriver.Chrome(executable_path = 'chromedriver')
driver.maximize_window()
driver.get('https://demoqa.com/automation-practice-form')
btn = driver.find_element_by_xpath('//input[@name = "gender"]')
driver.implicitly_wait(7)
btn.click()

有没有办法解决这个问题?我尝试了多种方法,但无法执行任务。

【问题讨论】:

【参考方案1】:

尝试通过执行 javascript 来强制点击:

btn = driver.find_element_by_xpath('//input[@name = "gender"]')
driver.execute_script("arguments[0].click();", btn)

另外,考虑使用WebDriverWait 而不是隐式等待。

【讨论】:

谢谢,它成功了。你能解释一下为什么我们使用参数[0] 这是 javascript 语法。把它想象成 - 你传递给脚本的第一个参数是你的btn。其他人有explained it better than me

以上是关于无法单击单选按钮,出现“ElementClickInterceptedException”错误的主要内容,如果未能解决你的问题,请参考以下文章

Reactjs:我正在根据状态检查单选按钮,但在选中一个单选按钮时无法单击其他单选按钮

无法单击跨度Selenium Python中的单选按钮

Tkinter - 单击默认情况下未设置的按钮后无法获取单选按钮值

单击单选按钮时,元素内容更改为图像

jquery 在单击单选按钮时选择并激活特定类的所有项目

iOS 中单选按钮的实现