There are basically 4 ways to click in Selenium.
I will use this xpath
//input[@type='checkbox'][contains(@id,'ew--')]
Please check in the dev tools (Google chrome) if we have unique entry in HTML DOM or not.
Steps to check:
Press F12 in Chrome -> go to element section -> do a CTRL + F -> then paste the xpath and see, if your desired element is getting highlighted with 1/1 matching node.
Code trial 1:
time.sleep(5)
driver.find_element_by_xpath("//input[@type='checkbox'][contains(@id,'ew--')]").click()
Code trial 2:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@type='checkbox'][contains(@id,'ew--')]"))).click()
Code trial 3:
time.sleep(5)
button = driver.find_element_by_xpath("//input[@type='checkbox'][contains(@id,'ew--')]")
driver.execute_script("arguments[0].click();", button)
Code trial 4:
time.sleep(5)
button = driver.find_element_by_xpath("//input[@type='checkbox'][contains(@id,'ew--')]")
ActionChains(driver).move_to_element(button).click().perform()
Imports:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains