Ein Konsolenfehler ist keine unbehandelte Ausnahme.
Sammeln Sie Konsolenmeldungen und Seitenfehler getrennt und prüfen Sie das Ergebnis.

Übersetzte Ausgabe. Technische Kennungen bleiben in ihrer ursprünglichen Form.

Ein Test besteht, obwohl die Seite während der Aktion einen Fehler protokolliert. Ein anderer Lauf wirft eine unbehandelte Ausnahme, während die erwartete Überschrift sichtbar bleibt. Beide Signale brauchen Untersuchung, aber ein Listener für eines beschreibt nicht das andere.
Die Page-API dokumentiert console für Konsolenaufrufe und pageerror für unbehandelte Ausnahmen. ConsoleMessage hat Typ und Text. Erhalten Sie den Kanal, damit eine Fehlermeldung nicht zur erfundenen Ausnahmediagnose wird.
Vor der Aktion zuhören
Unsere erfundene Seite hat einen console.error-Button und einen Button für einen geplanten Error. Keine externen Ressourcen oder Kundendaten. Der Test wartet vor dem Klick und prüft den passenden Kanal.
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');Der Code braucht Playwright-Runner, importiertes expect und die lokale Fixture. Das Warten beginnt vor dem Klick für schnelle Ereignisse. Es trifft eine feste erfundene Meldung, nicht jeden echten Fehler. Registrieren Sie pageerror separat.
Der lokale console.error erzeugt die ausgewählte Meldung ohne pageerror. Ein separater geplanter throw erzeugt pageerror mit dem kontrollierten Text. Das bestätigt diese Fixture, nicht jede Browserdiagnose oder Bibliotheksregel.
Sammlung und Freigaberegel trennen
Ein empfangenes Ereignis ist allein keine fehlgeschlagene Assertion. Definieren Sie, welche unerwarteten Ereignisse den Ablauf scheitern lassen, welche bekannten erlaubt sind und wer Ausnahmen besitzt. Enge überprüfbare Erlaubnislisten dürfen nicht den ganzen Kanal abschalten.
Prüfen Sie Ursprung und Aktion vor einer Ursachenzuweisung. Eine Meldung kann einen behandelten Zustand beschreiben, eine Ausnahme andere Arbeit betreffen. Beides allein beweist keine gespeicherte Datenzeile. Behalten Sie Ergebnisassertions.
Geschah Setup oder Navigation vor der Registrierung, ist die Liste für diesen Zeitraum unvollständig. Nennen Sie das Beobachtungsfenster. Eine leere Liste beweist keine saubere Anwendung bei unbeobachtetem Start oder einer anderen Seite.
Diagnoseartefakte schützen
Argumente und Fehlertexte können Datensätze, Tokens oder URLs enthalten. Sammeln Sie nur Benötigtes und redigieren Sie vor dem Teilen. Lesbare Argumente sind keine Erlaubnis zur öffentlichen Serialisierung. Hier gibt es nur feste erfundene Texte.
Prüfen Sie bei generierten Tests Listenerzeitpunkt, Filter und auswertende Assertion. AnyTest beschreibt Erkundung und Tests für menschliche Prüfung. Eine bestimmte Konsolenfunktion wird nicht behauptet. Nennen Sie Kanal, Aktion, Ergebnis und fehlende Evidenz.
Ein Listener auf einer Seite beschreibt kein separat geöffnetes Fenster. Ordnen Sie Daten der Seite und Zeitspanne zu. Prüfen Sie Abdeckungslücken vor einer gemeinsamen Freigabeaussage.
Häufige Fragen
Bedeutet console.error immer eine unbehandelte Ausnahme?
Nein. Meldungen und Ausnahmen verwenden verschiedene Kanäle.
Lässt Zuhören den Test scheitern?
Nein. Eine Assertion oder ausdrückliche Regel muss die Daten auswerten.