En esta publicación, exploraremos los diferentes tipos de esperas en Selenium 4, incluidas nuevas mejoras y mejores prácticas para su uso.
Tipos de esperas en Selenium 4
Selenium 4 ofrece tres tipos principales de esperas:
¡Profundicemos en cada uno!
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
En este ejemplo, Selenium esperará hasta 10 segundos para que aparezca un elemento antes de lanzar una NoSuchElementException. La espera se aplica a cada búsqueda de elementos durante toda la sesión.
Ventajas:
Fácil de implementar.
Adecuado para proyectos sencillos.
Desventajas:
Puede ralentizar la ejecución de la prueba ya que aplica la espera globalmente, incluso si no es necesaria.
Puede provocar un comportamiento de prueba impredecible cuando se usa con otros tipos de espera.
Ejemplo de código:
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(15)); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("example")));
En este ejemplo, WebDriver esperará hasta 15 segundos hasta que el elemento se vuelva visible. Si el elemento aparece antes de los 15 segundos, la espera termina antes.
Condiciones de espera explícitas comunes:
visibilidadDeElementoLocado()
elementoToBeClickable()
presenciaDeElementoUbicado()
alertaEstáPresente()
Ventajas:
Altamente personalizable y más eficiente que las esperas implícitas.
Solo espera cuando se necesitan condiciones específicas.
Desventajas:
Requiere más código, lo que puede aumentar la complejidad.
Administrar múltiples esperas explícitas puede resultar complicado en proyectos grandes.
WaitfluentWait = new FluentWait(driver) .withTimeout(Duration.ofSeconds(20)) .pollingEvery(Duration.ofMillis(500)) .ignoring(NoSuchElementException.class); WebElement element = fluentWait.until(driver -> driver.findElement(By.id("example")));
Aquí, WebDriver comprobará el elemento cada 500 milisegundos y esperará hasta 20 segundos antes de que se agote el tiempo. También ignorará NoSuchElementException durante este tiempo.
Ventajas:
Proporciona más flexibilidad y control sobre cómo se maneja la espera.
Permite personalizar los intervalos de sondeo y el manejo de excepciones.
Desventajas:
Puede ser más complejo de configurar y comprender.
La personalización excesiva puede generar código confuso y difícil de mantener.
Mejoras en Selenium 4 Waits
Selenium 4 introduce algunas mejoras, especialmente en la forma de gestionar las esperas:
Mejor sintaxis: Selenium 4 usa Duration en lugar del TimeUnit anterior, lo que lo hace más intuitivo y legible.
Localizadores relativos: ahora puede esperar elementos en relación con otros elementos (por ejemplo, a la izquierda de, cerca, etc.).
WebDriverWait mejorado: la clase WebDriverWait en Selenium 4 es más optimizada y más fácil de usar con una sintaxis moderna.
Mejores prácticas para usar esperas en Selenium 4
Utilice esperas explícitas en lugar de esperas implícitas: para obtener un mejor control y rendimiento, prefiera esperas explícitas, especialmente en escenarios complejos.
Evite mezclar esperas implícitas y explícitas: el uso de ambas puede provocar un comportamiento impredecible y mayores tiempos de espera.
Establezca valores de tiempo de espera razonables: evite establecer esperas innecesariamente largas. Analice el comportamiento de su aplicación para determinar los tiempos de espera adecuados.
Utilice esperas fluidas para elementos dinámicos: si los elementos son muy dinámicos, considere utilizar esperas fluidas con intervalos de sondeo para reducir esperas innecesarias.
Conclusión
Manejar las esperas de manera efectiva en Selenium 4 es crucial para escribir pruebas automatizadas estables y confiables. Comprender cuándo y cómo utilizar esperas implícitas, explícitas y fluidas puede mejorar en gran medida la solidez de su conjunto de pruebas. Con las mejoras en Selenium 4, tienes herramientas aún más poderosas para gestionar problemas de sincronización.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3