Ejercicio de programación: Reto explicit waits
Este ejercicio de programación está diseñado para poner a prueba tus conocimientos en Selenium. Es un ejercicio avanzado que pondrá a prueba tus conocimientos expertos.
Información adicional del ejercicio
Aprende a gestionar las esperas en Selenium para evitar fallos por UI que todavía no se ha renderizado.
Contenido del ejercicio
Objetivo
Dominar las esperas explícitas utilizando WebDriverWait y ExpectedConditions para manejar contenido dinámico y sincronización en aplicaciones web.
Escenario
Automatiza las esperas en una página de procesamiento de pedidos que simula contenido dinámico mediante el siguiente HTML:
<!DOCTYPE html>
<html>
<head>
<title>Procesamiento de Pedido - Waits Challenge</title>
<script>
function startProcessing() {
// Simular carga de contenido dinámico
setTimeout(() => {
document.getElementById('status').textContent = 'Procesando...';
document.getElementById('progress').style.display = 'block';
}, 2000);
setTimeout(() => {
document.getElementById('status').textContent = 'Completado';
document.getElementById('complete-btn').disabled = false;
document.getElementById('result-message').style.display = 'block';
}, 5000);
}
</script>
</head>
<body onload="startProcessing()">
<div id="order-container">
<h1>Procesamiento de Pedido #12345</h1>
<div id="status">Iniciando...</div>
<div id="progress" style="display: none;">
<span>Progreso en curso...</span>
</div>
<div id="result-message" style="display: none;" class="success-msg">
Pedido procesado exitosamente
</div>
<button id="complete-btn" disabled>
Finalizar Pedido
</button>
<input type="hidden" id="order-data" value="processed">
</div>
</body>
</html>
Tareas a realizar
Usa WebDriverWait y ExpectedConditions para:
- Elemento visible - Espera a que el div de progreso (
#progress
) sea visible - Cambio de texto - Espera a que el status cambie a "Completado"
- Elemento clickeable - Espera a que el botón se habilite y sea clickeable
- Elemento presente - Verifica que el input hidden esté presente en el DOM
Requisitos técnicos
- Usa
driver.get("data:text/html;charset=utf-8," + java.net.URLEncoder.encode(htmlContent, "UTF-8"));
- Todas las esperas deben usar
WebDriverWait
conDuration.ofSeconds()
- Incluye 3 asserts que verifiquen las condiciones esperadas
- Bonus: Crea una condición personalizada usando Function<WebDriver, Boolean>
Criterios de evaluación
- ✅
visibilityOfElementLocated()
para elementos dinámicos - ✅
textToBePresentInElement()
para cambios de contenido - ✅
elementToBeClickable()
para interacciones habilitadas - ✅
presenceOfElementLocated()
para elementos en DOM - ✅ Manejo adecuado de timeouts
¡Recuerda cerrar el driver con **driver.quit()**
al final!
Lección relacionada
Este ejercicio está relacionado con la lección "Explicit Wait" de Selenium. Te recomendamos revisar la lección antes de comenzar.
Ver lección relacionadaMás ejercicios de Selenium
Explora más ejercicios de programación en Selenium para mejorar tus habilidades y obtener tu certificación.
Ver más ejercicios de SeleniumSolución al ejercicio de programación en Selenium
¡Desbloquea la solución completa!
Completa el ejercicio de programación en Selenium para acceder a la solución paso a paso, explicaciones detalladas y mejores prácticas.
Practica con ejercicios de programación en Selenium
Mejora tus habilidades con cientos de ejercicios de práctica, recibe retroalimentación instantánea y obtén tu certificación cuando estés listo.
Asistente de IA
Aprende de tus errores
Progreso
Mide tu avance
Certificación
Valida tus habilidades
Únete a miles de desarrolladores mejorando sus habilidades en Selenium