Esperas implícitas en Selenium Python

Selenium Python es una de las mejores herramientas para la automatización de pruebas. En estos días, la mayoría de las aplicaciones web utilizan técnicas AJAX. Cuando el navegador carga una página, los elementos dentro de esa página pueden cargarse en diferentes intervalos de tiempo. Esto dificulta la localización de elementos: si un elemento aún no está presente en el DOM, una función de localización generará una excepción ElementNotVisibleException. Usando esperas, podemos resolver este problema. La espera proporciona cierta holgura entre las acciones realizadas, principalmente la ubicación de un elemento o cualquier otra operación con el elemento. Selenium Webdriver proporciona dos tipos de esperas: implícita y explícita. Este artículo gira en torno a las esperas implícitas en Selenium Python.

Esperas
implícitas Una espera implícita le dice a WebDriver que sondee el DOM durante una cierta cantidad de tiempo cuando intenta encontrar cualquier elemento (o elementos) que no esté disponible de inmediato. La configuración predeterminada es 0. Una vez establecida, la espera implícita se establece durante la vida útil del objeto WebDriver. Consideremos un ejemplo:

# import webdriver
from selenium import webdriver
  
driver = webdriver.Firefox()
  
# set implicit wait time
driver.implicitly_wait(10) # seconds
  
# get url
driver.get("http://somedomain / url_that_delays_loading")
  
# get element after 10 seconds
myDynamicElement = driver.find_element_by_id("myDynamicElement")

Esto espera hasta 10 segundos antes de lanzar una TimeoutException a menos que encuentre el elemento para regresar dentro de los 10 segundos.

¿Cómo crear una espera implícita en Selenium Python?

La espera implícita como se define sería el conjunto que usa el método implícitamente_esperar del controlador. Implementemos esto en https://www.geeksforgeeks.org/ y esperemos 10 segundos antes de ubicar un elemento.

# import webdriver 
from selenium import webdriver 
  
# create webdriver object 
driver = webdriver.Firefox() 
    
# set implicit wait time
driver.implicitly_wait(10) # seconds
  
# get geeksforgeeks.org 
driver.get("https://www.geeksforgeeks.org/") 
    
# get element after 10 seconds
element = driver.find_element_by_link_text("Courses")
  
# click element
element.click()
  

Salida:
primero abre https://www.geeksforgeeks.org/ y luego encuentra el enlace Cursos
controlador-métodos-Selenium-Python

Hace clic en los enlaces de los cursos y se redirige a https://practice.geeksforgeeks.org/

action-chains-selenium-Python

Publicación traducida automáticamente

Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *