0%
Sélecteurs et attentes

Sélecteurs et attentes

Presque tous les tests instables viennent d'une course entre votre assertion et le navigateur

10-15 min

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

Lien copié !