ElementClickInterceptedException: Message: element click intercepted: Element <label> is not clickable with Selenium and Python
Solution 1:
You need WebDriverWait
to make sure the element visibility_of_element_located
, then scroll to Searchable Database
section, and you can use locator by xpath
.
Please import :
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
Try the bellow code.
chromedriver_path = r"C:\Users\path\to\chromedriver.exe"
browser = webdriver.Chrome(executable_path=chromedriver_path)
url = "http://www.ncsl.org/research/transportation/autonomous-vehicles-legislative-database.aspx"
topics_xpath = "//div[@class='divTopicsSection1']//span//label[text()='All Topics']"
states_xpath = "//div[@class='divStatesSection1']//span//label[text()='All States']"
dBase_xpath = "//h4[text()='Searchable Database']"
browser.get(url)
WebDriverWait(browser, 10).until(expected_conditions.visibility_of_element_located((By.XPATH, topics_xpath)))
elem = browser.find_element_by_xpath(dBase_xpath)
browser.execute_script("arguments[0].scrollIntoView(true);", elem)
browser.find_element_by_xpath(topics_xpath).click()
browser.find_element_by_xpath(states_xpath).click()
Solution 2:
This error message...
ElementClickInterceptedException: Message: element click intercepted
...implies that the click method invoked on the desired element was intercepted by some other element.
To click()
on the checkboxes associated with text as All Topics and All States you have to induce WebDriverWait for the element_to_be_clickable()
and you can use either of the following Locator Strategies:
-
Using
CSS_SELECTOR
:driver.get("http://www.ncsl.org/research/transportation/autonomous-vehicles-legislative-database.aspx") WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "label[for$='_StateNetDB_ckBxAllTopics']"))).click() driver.find_element_by_css_selector("label[for$='_StateNetDB_ckBxAllStates']").click()
-
Using
XPATH
:driver.get("http://www.ncsl.org/research/transportation/autonomous-vehicles-legislative-database.aspx") WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//label[contains(@for, '_StateNetDB_ckBxAllTopics')]"))).click() driver.find_element_by_xpath("//label[contains(@for, '_StateNetDB_ckBxAllStates')]").click()
Browser Snapshot: