0%
Seletores e esperas

Seletores e esperas

Quase todos os testes instáveis vêm de uma corrida entre a sua asserção e o navegador

10-15 min

Seletores e esperas

Um teste de pagamento falha uma vez em doze na integração contínua. Sempre o mesmo, sempre na mesma linha, e nunca na sua máquina. Você adiciona await page.waitForTimeout(500) antes da asserção: o teste fica verde por três semanas e depois quebra de novo, num dia em que o agente está sobrecarregado. Você aumenta o atraso para 2 000 ms. A suíte passa de seis para onze minutos, e o problema vai voltar.

O que você fez foi apostar em uma duração. O navegador, por sua vez, não segue um cronograma: ele espera uma resposta de rede, calcula um layout, executa uma transição, substitui um nó do DOM. Sua asserção chega durante um desses intervalos. Um atraso fixo não elimina a corrida, apenas muda suas probabilidades — e você paga por essa ilusão em tempo de execução a cada teste verde. A saída dessa armadilha cabe em uma frase: nunca espere uma duração, espere sempre uma condição observável. O Playwright oferece tudo o que é necessário para isso, desde que você saiba qual localizador escolher e qual asserção escrever.

Localizadores que sobrevivem a redesenhos

Um localizador é uma descrição de elemento, reavaliada a cada uso. É essa reavaliação que permite a ele esperar, mas também é o que torna sua escolha decisiva.

Comentários

Os comentários são alimentados pelo GitHub Discussions

Conecte-se com o GitHub para participar da discussão

Link copiado!