Seletores e esperas
Quase todos os testes instáveis vêm de uma corrida entre a sua asserção e o navegador
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