¿Cómo puedo hacer clic en el texto "NACIONAL" con Python Selenium?
<div class="ellipsis__content"> <ul class="breadcrumb_new" id="breadcrumb"> <li> <span>NATIONAL</span> </li> </ul> </div>Intenté estas cosas a continuación,
find_element_by_xpath("//div[@id='breadcrumb']/li/span") find_element_by_css_selector("#breadcrumb > li > span")Ambos métodos no funcionan, alguna idea aquí
Prueba este, debería funcionar para ti:
ele=driver.find_element_by_xpath("//*[@id='breadcrumb']//span") ele.click()Esta pregunta ya tiene una respuesta pero agregando un par de puntos.
Intenté estas cosas a continuación,
find_element_by_xpath("//div[@id='breadcrumb']/li/span")
La ruta de breadcrumb de id es parte de la etiqueta ul , pero se refiere a la etiqueta div . Debería funcionar si lo intentas de la siguiente manera.
find_element_by_xpath("//ul[@id='breadcrumb']/li/span")find_element_by_css_selector("#breadcrumb > li > span")
No hay nada malo con el localizador CSS . Debería funcionar aún si está viendo un problema, es posible que deba depurar y ver o probar agregando algún valor explicit .
Es posible que deba esperar hasta que el elemento se represente correctamente.
Prueba de código 1:
time.sleep(5) driver.find_element_by_xpath("//div[@id='breadcrumb']/li/span").click()Prueba de código 2:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='breadcrumb']/li/span"))).click() PD: compruebe en las dev tools de desarrollo (Google Chrome) si tenemos una entrada única en HTML DOM o no.
Pasos para comprobar:
Press F12 in Chrome -> vaya a la sección de element -> haga CTRL + F -> luego pegue el xpath y vea si su element deseado se resalta con 1/1 nodo coincidente.