Why am I unable to click the following checkbox on the page https://realty.yandex.ru/add via Selenium in Python?
import traceback import selenium.webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC import selenium.webdriver.support import selenium.webdriver.support.ui explicit_wait_timeout_secs = 10 def wait_for_element_presence(driver, find_type, web_element): return selenium.webdriver.support.ui.WebDriverWait(driver, explicit_wait_timeout_secs).until(EC.presence_of_element_located((find_type, web_element))) def wait_for_element_clickable(driver, find_type, web_element): return selenium.webdriver.support.ui.WebDriverWait(driver, explicit_wait_timeout_secs).until(EC.element_to_be_clickable((find_type, web_element))) try: driver = selenium.webdriver.Chrome() driver.get('https://realty.yandex.ru/add/') # element = wait_for_element_clickable(driver, By.NAME, 'lift') # TimeoutException element = wait_for_element_presence(driver, By.NAME, 'lift') # WebDriverException: Message: unknown error: Element is not clickable at point (203, 899). Other element would receive the click: <span class="checkbox__box">...</span> element.click() except Exception: print('ERROR: \n' + traceback.format_exc()) try: driver.quit() except Exception: pass
If I'm trying to wait for the "clickability" of this element, it gives me TimeoutException
error. If I'm trying to wait for the presence of the element, it gives me "element is not clickable" error.
However, I can click this checkbox via Javascript:
driver.execute_script("document.getElementsByName('lift')[0].click();")
Also it works in Firefox btw.
Why? What am I doing wrong? How can I fix it?
Thanks in advance.
Firefox
driver? it works on mine