Fehlerbehandlung in Playwright
Wie man mit Fehlern umgeht, die bei Axe DevTools für Web für Playwright auftreten können
Version 4.3.0 und höher der Axe DevTools für Web-Integrationen verwendet eine neue Technik beim Aufrufen von AxeBuilder.analyze(), die am Ende eines Durchlaufs ein neues Fenster öffnet. Viele der in diesem Dokument beschriebenen Probleme adressieren häufige Schwierigkeiten mit dieser Technik und deren mögliche Lösungen.
Popup-Blocker sind aktiviert
Popup-Blocker verhindern, dass wir beim Aufrufen von AxeBuilder.analyze() das neue Fenster öffnen können. Die Standardeinstellung der meisten Automatisierungstest-Bibliotheken sollte Popups erlauben. Bitte stellen Sie sicher, dass Sie Popup-Blocker nicht ausdrücklich aktivieren, um Probleme beim Ausführen der Tests zu vermeiden.
AxeBuilder.setLegacyMode(legacy: boolean)
Falls es Ihnen aus irgendeinem Grund nicht möglich ist, die neue AxeBuilder.analyze-Technik ohne Fehler auszuführen, bietet axe eine neue kaskadierbare Methode, die es Ihnen ermöglicht, die Legacy-Version von AxeBuilder.analyze auszuführen. Bei der Verwendung dieser Methode schließt axe Barrierefreiheitsprobleme aus, die in domainübergreifenden Frames und iframes auftreten können.
AxeBuilder.setLegacyMode ist veraltet und wird in Version 5.0 entfernt. Bitte melden Sie alle Fehler, die beim Ausführen von AxeBuilder.analyze auftreten, damit diese behoben werden können, bevor die Legacy-Version entfernt wird.
Beispiel
const { AxeDevToolsBuilder } = require('@axe-devtools/playwright')
const playwright = require('playwright')
;(async () => {
const browser = await playwright.chromium.launch()
const context = await browser.newContext()
const page = await context.newPage()
await page.goto('https://dequeuniversity.com/demo/mars/')
try {
const results = await new AxeDevToolsBuilder({ page }).setLegacyMode().analyze();
console.log(results)
} catch (e) {
// do something with the error
}
await browser.close()
})()