Selectores y esperas
Casi todos los tests inestables nacen de una carrera entre su aserción y el navegador
Selectores y esperas
Un test de pago falla una de cada doce veces en integración continua. Siempre el mismo, siempre en la misma línea, y nunca en su máquina. Añade await page.waitForTimeout(500) antes de la aserción: el test se pone en verde durante tres semanas y luego vuelve a romperse, un día en que el agente está cargado. Sube el retardo a 2000 ms. La suite pasa de seis a once minutos, y el problema volverá.
Lo que ha hecho es apostar por una duración. El navegador, por su parte, no sigue ningún horario: espera una respuesta de red, calcula una maquetación, reproduce una transición, sustituye un nodo del DOM. Su aserción llega durante uno de esos intervalos. Un retardo fijo no elimina la carrera, solo cambia sus probabilidades, y esa ilusión se paga en tiempo de ejecución en cada test verde. La salida de esta trampa se resume en una frase: no espere nunca una duración, espere siempre una condición observable. Playwright ofrece todo lo necesario para ello, siempre que sepa qué localizador elegir y qué aserción escribir.
Localizadores que sobreviven a los rediseños
Un localizador es una descripción de elemento que se reevalúa cada vez que se usa. Esa reevaluación es lo que le permite esperar, pero también lo que hace tan determinante su elección.
Comentarios
Los comentarios funcionan con GitHub Discussions
Inicia sesión con GitHub para participar en la discusión