Espera implícita con Selenium en Python

Manav Narula 21 junio 2023
Espera implícita con Selenium en Python

El paquete selenium se utiliza para automatización y pruebas con scripts de Python. Podemos usarlo para acceder a elementos individuales de la página web y trabajar con ellos.

Hay muchos métodos disponibles en este paquete para recuperar los elementos basados en diferentes atributos. Cuando se carga una página, algunos elementos se recuperan dinámicamente.

Estos elementos pueden cargar a una velocidad diferente al resto.

Espera implícita con Selenium en Python

Si intentamos obtener un elemento que no está disponible, se genera una ExcepciónElementNotVisibleException. Esto sucede porque el elemento está definido en la fuente pero aún no está visible en el DOM.

Para esto, podemos usar esperas implícitas. Con esperas implícitas usando selenium, podemos decirle al objeto webdriver que espere el tiempo requerido antes de lanzar una excepción.

La excepción se lanza si el elemento requerido no se encuentra dentro de este período.

Usamos la función implicitly_wait() para establecer el tiempo de espera implícito. Esta función se usa con webdriver para especificar el tiempo de espera implícito.

El tiempo se especifica en segundos.

Vea el código a continuación.

from selenium import webdriver

driver = webdriver.Chrome(r"C:/path/to/chromedriver.exe")
driver.implicitly_wait(10)
driver.get("https://www.sample.org/")
e = driver.find_element_by_id("some_form")

En el ejemplo anterior, redirigimos a una página web usando el objeto webdriver e intentamos recuperar un elemento usando la función find_element_by_id(). Esta función encontrará el elemento cuyo atributo id coincida con el valor proporcionado.

Dado que este es un elemento dinámico, especificamos un tiempo implícito de diez segundos utilizando el método implicitly_wait() para garantizar que el elemento tenga tiempo de cargarse.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Python Selenium