Sélecteurs et attentes
Presque tous les tests instables viennent d'une course entre votre assertion et le navigateur
Sélecteurs et attentes
Un test de paiement échoue une fois sur douze en intégration continue. Toujours le même, toujours à la même ligne, et jamais sur votre machine. Vous ajoutez await page.waitForTimeout(500) avant l'assertion : le test devient vert pendant trois semaines, puis casse à nouveau, un jour où l'agent est chargé. Vous portez le délai à 2 000 ms. La suite passe de six à onze minutes, et le problème reviendra.
Ce que vous avez fait, c'est parier sur une durée. Le navigateur, lui, ne suit pas d'horaire : il attend une réponse réseau, calcule une mise en page, joue une transition, remplace un nœud du DOM. Votre assertion arrive pendant l'un de ces intervalles. Un délai fixe ne supprime pas la course, il en change seulement les probabilités — et vous payez cette illusion en temps d'exécution sur chaque test vert. La sortie de ce piège tient en une phrase : n'attendez jamais une durée, attendez toujours une condition observable. Playwright fournit tout ce qu'il faut pour cela, à condition de savoir quel localisateur choisir et quelle assertion écrire.
Commentaires
Les commentaires sont alimentés par GitHub Discussions
Connectez-vous avec GitHub pour participer à la discussion