Une erreur console n'est pas une exception non interceptée.
Collectez messages console et erreurs de page séparément, puis vérifiez le résultat.

Édition traduite. Les identifiants techniques restent sous leur forme originale.

Un test passe alors que la page écrit une erreur pendant l'action. Dans un autre lancement, un script lance une exception non interceptée mais le titre attendu reste visible. Ce sont des signaux différents. Collecter un seul ne décrit pas l'autre.
L'API Page documente console pour les appels à la console et pageerror pour les exceptions non interceptées. ConsoleMessage fournit type et texte. Conservez le canal pour éviter un diagnostic d'exception inventé à partir d'un message.
Écouter avant l'action
Notre page inventée a un bouton console.error et un autre qui programme un Error. Aucun contenu externe ou client. Le test attend avant le clic et vérifie le canal correspondant.
const pending = page.waitForEvent('console', message =>
message.type() === 'error' && message.text() === 'demo diagnostic'
);
await page.getByRole('button', { name: 'Log demo error' }).click();
const message = await pending;
expect(message.text()).toBe('demo diagnostic');Il faut le runner Playwright, expect importé et la fixture locale. L'attente commence avant le clic pour capter un événement rapide. Elle vise une chaîne inventée exacte, pas toutes les erreurs réelles. Attachez pageerror séparément.
Le console.error contrôlé produit le message choisi sans pageerror. Un throw programmé distinct produit pageerror avec le texte attendu. Cela confirme cette fixture, pas toute politique de diagnostic ou de journalisation.
Séparer collecte et décision
Recevoir un événement ne crée pas seul une assertion en échec. Définissez quels événements inattendus bloquent le parcours, quels diagnostics sont permis et qui possède les exceptions. La liste permise doit rester étroite et vérifiable.
Examinez origine et action avant d'attribuer une cause. Une console peut rapporter un état traité ; une exception peut venir d'un travail sans rapport avec le titre visible. Aucun ne prouve seul une sauvegarde. Gardez les assertions de résultat.
Si préparation ou navigation précèdent l'écoute, la liste est incomplète pour cette période. Notez la fenêtre. Une liste vide ne certifie pas une application si le démarrage ou une autre page n'était pas observé.
Protéger les diagnostics
Arguments et erreurs peuvent contenir dossiers, tokens ou URL. Collectez le nécessaire et masquez avant partage. Pouvoir lire un argument n'autorise pas sa publication. Ici, seulement des chaînes inventées fixes.
Revoyez heure d'attachement, filtre et assertion utilisant le résultat. AnyTest décrit exploration et tests pour revue humaine. Aucune fonction console particulière n'est revendiquée. Notez canal, action, résultat attendu et preuves manquantes.
Un écouteur sur une page ne décrit pas une fenêtre distincte. Reliez données à page et période. Examinez les lacunes avant de réunir les listes pour une décision de version.
Questions courantes
console.error signifie-t-il toujours une exception ?
Non. Messages et exceptions utilisent des canaux distincts.
Écouter fait-il échouer le test ?
Non. Une assertion ou une règle doit exploiter les observations.