I am trying to click a button with selenium. I have tried Chrome and Firefox console with $0.click(); and works but when testing with the selector it does not work, "undefined", document.querySelector("#td").click();.
I trying with selenium does not work.
HTML:
<td id="td" onclick="if(top.body) Len('td')" class="lenDesActiv">Date</td>
I tried the following:
driver.execute_script('document.querySelector("td#tdDos.lenguetaActiva").click();')
driver.execute_script('document.querySelector("td#").click();')
driver.execute_script('document.querySelector("#td").click();')
driver.execute_script('document.querySelector("td#td").click();')
driver.execute_script('document.getElementById("td").click();')
driver.findElement(By.id("td")).click();
document.getElementById("td").addEventListener("click", function(){
alert("hello world");
});
loginelement = driver.find_element(By.ID, 'td')
driver.execute_script("arguments[0].click();", loginelement)
The WebElement with text as Fecha is within a <frame>
so you have to:
Induce WebDriverWait for the desired frame to be available and switch to it.
Induce WebDriverWait for the desired element to be clickable.
You can use either of the following Locator Strategies:
Using CSS_SELECTOR
:
driver.get('https://your_website.com/')
WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"frame[name='body']")))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "td#tdDos.lenguetaDesActiva"))).click()
Using XPATH
:
driver.get('https://your_website.com/')
WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//frame[@name='body']")))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//td[@id='tdDos' and @class='lenguetaDesActiva']"))).click()
Note : You have to add the following imports :
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
Browser Snapshot:
You can find a couple of relevant discussions in: