Tenemos la mejor solución que descubrimos en internet. Deseamos que te sea de mucha ayuda y si quieres compartir algo que nos pueda ayudar a mejorar siente la libertad de hacerlo..
Solución:
La búsqueda por texto de enlace puede ayudarlo solo si su span
es un elemento secundario de la etiqueta de anclaje, por ejemplo No
. Mientras intenta hacer clic en él, creo que realmente está dentro de un ancla, pero si no, le sugiero que use XPath
con predicado que devuelve True
solo si el contenido del texto exacto coincide:
//span[text()="No"]
Tenga en cuenta que //span[contains(text(), "No")]
es una solución bastante poco fiable ya que volverá span
elementos con texto
- “Lluvia de Noviembre”
- “Sí No.”
- “Creo que Chuck Norris puede ayudarte”
etc…
Si lo consigues NoSuchElementException
es posible que deba esperar a que aparezca el elemento en DOM
:
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait
wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//span[text()='No']"))).click()
valoraciones y comentarios
Recuerda algo, que te brindamos la opción de decir si encontraste tu obstáculo justo a tiempo.