Gestion des erreurs dans Playwright
Comment contourner les erreurs susceptibles de survenir avec Axe DevTools for Web pour Playwright
Les versions 4.3.0 et supérieures des intégrations Axe DevTools for Web utilisent une nouvelle technique lors de l'appel à AxeBuilder.analyze() qui ouvre une nouvelle fenêtre à la fin d'une exécution. De nombreux problèmes décrits dans ce document abordent les problèmes courants liés à cette technique et leurs solutions potentielles.
Activer les bloqueurs de pop-up
Les bloqueurs de pop-up nous empêchent d'ouvrir la nouvelle fenêtre lors de l'appel à AxeBuilder.analyze(). La configuration par défaut de la plupart des bibliothèques de tests automatisés devrait autoriser les pop-up. Veuillez vous assurer que vous n'avez pas explicitement activé les bloqueurs de pop-up, ce qui pourrait poser un problème lors de l'exécution des tests.
AxeBuilder.setLegacyMode(legacy: boolean)
Si, pour une raison quelconque, vous n'êtes pas en mesure d'exécuter la nouvelle technique AxeBuilder.analyze sans erreurs, axe fournit une nouvelle méthode chaînable qui vous permet d'exécuter la version héritée de AxeBuilder.analyze. Lors de l'utilisation de cette méthode, axe exclut les problèmes d'accessibilité susceptibles de survenir dans les cadres croisés et les iframes.
AxeBuilder.setLegacyMode est obsolète et sera supprimé dans la version 5.0. Veuillez signaler toutes les erreurs que vous pourriez rencontrer lors de l'exécution de AxeBuilder.analyze afin qu'elles puissent être corrigées avant la suppression de la version héritée.
Exemple
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()
})()