Невозможно щелкнуть радиокнопку, получая ошибку ElementClickInterceptedException

Я получаю следующую ошибку при попытке щелкнуть переключатель, используя selenium Webdriver в python

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)

Ниже приведен мой код URL-адрес страницы: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()

Есть ли способ обойти это? Я пробовал несколько вещей, но не смог выполнить задачу.


person Sameer    schedule 19.02.2021    source источник


Ответы (1)


Попробуйте принудительно нажать, выполнив javascript:

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

Отдельно рассмотрите возможность использования WebDriverWait вместо неявных ожиданий.

person 0buz    schedule 19.02.2021
comment
спасибо, это сработало. Не могли бы вы объяснить, почему мы использовали arguments[0] - person Sameer; 19.02.2021
comment
Это синтаксис javascript. Думайте об этом так: первый аргумент, который вы передаете сценарию, — это ваш btn. Другие объяснили это лучше меня - person 0buz; 19.02.2021