I have a python script. When it tries to click on "https://www.etsy.com/" site language change button using selenium It navigates to "href" URL. but I want it to show the pop-up.
This is how the code look like
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get("https://www.etsy.com/")
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR,'a[id=locale-picker-trigger]'))).click()
driver.close()
What is the issue here?
Use element_to_be_clickable() instead, and js executor to click.
driver.get("https://www.etsy.com/")
lang=WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,'a[id=locale-picker-trigger]')))
driver.execute_script("arguments[0].click();", lang)
Update
driver.get("https://www.etsy.com/")
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH,"//button[contains(., 'Accept')]"))).click()
lang=WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,'a[id=locale-picker-trigger]')))
driver.execute_script("arguments[0].click();", lang)
browser snapshot