es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

raise exception_class(mensaje, pantalla, rastreo) selenium.common.exceptions.WebDriverException: Mensaje:

raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Mensaje: No se ha visto la referencia del elemento: f8561f1c-43e9-474a-88f3-22b3e0c813b7

Tengo múltiples datos en una lista y cuando ingreso estos datos en la lista uno por uno, me da esta excepción. Si ingreso valores de código duro como “send_keys(” 100 & quot;)”, entonces funciona bien. Pero cuando quiero enviar valores en tiempo de ejecución, me da una excepción.

    listas = driver.find<em>elements</em>by<em>xpath("//*[@class= 'gradeA']/td[1]")
    for elemento_lista in listas:
        print(len(listas))
        print(elemento_lista.text)</em>

<pre><code>    driver.find_element_by_xpath("//span[normalize-space()='Eventos']").click()
    time.sleep(3)
    driver.find_element_by_xpath("//span[normalize-space()='Eventos del organizador']").click()
    time.sleep(5)
    driver.refresh()
    time.sleep(3)
    codigo_evento = driver.find_element_by_xpath("//input[@id='nombre_evento']").send_keys(elemento_lista.text)
</code></pre>

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    La excepción generada es una WebDriverException con el mensaje “Elemento de referencia no visto antes: f8561f1c-43e9-474a-88f3-22b3e0c813b7”. Esto ocurre cuando el programa intenta enviar un valor dinámico, obtenido en tiempo de ejecución (en este caso de una lista), a un elemento HTML usando el método send_keys() proporcionado por el controlador de Selenium. El mensaje de error sugiere que el elemento HTML no está presente en el DOM (Modelo de Objeto del Documento), por lo que la referencia al elemento no se ha visto antes, lo que resulta en la excepción.

    Para resolver este problema, es necesario asegurarse de que el elemento esté presente en el DOM antes de enviar cualquier valor a través de send_keys(). Una posible solución es esperar a que el elemento esté presente utilizando alguna de las funciones de espera incorporadas proporcionadas por Selenium (por ejemplo, WebDriverWait, expected_conditions). Otra solución es utilizar bloques try-except para capturar la excepción y manejarla de manera adecuada (por ejemplo, registrando el error y continuando con el resto del código).

Comments are closed.