Gestion des erreurs dans WebDriverJS
Comment contourner les erreurs courantes observées dans Axe DevTools pour Web WebDriverJS
La version 4.3.0 et au-delà des intégrations Axe DevTools pour le Web utilise une nouvelle technique lors de l'appel de AxeDevToolsBuilder.analyze(), qui ouvre une nouvelle fenêtre à la fin d'une exécution. De nombreux problèmes décrits dans ce document traitent des problèmes courants liés à cette technique et de leurs solutions potentielles.
Avoir un pilote obsolète
Un problème courant est de disposer d'un pilote obsolète. Pour résoudre ce problème, assurez-vous que votre installation locale de geckodriver ou chromedriver est à jour.
Un exemple de message d'erreur pour ce problème comprendra un message concernant switchToWindow.
Exemple
(node:17566) UnhandledPromiseRejectionWarning: Error: Malformed type for "handle" parameter of command switchToWindow
Expected: string
Actual: undefinedAvoir des bloqueurs de fenêtres contextuelles activés
Les bloqueurs de fenêtres contextuelles nous empêchent d'ouvrir la nouvelle fenêtre lors de l'appel de AxeDevToolsBuilder.analyze(). La configuration par défaut de la plupart des bibliothèques de tests automatisés devrait permettre les fenêtres contextuelles. Veuillez vous assurer que vous n'activez pas explicitement les bloqueurs de fenêtres contextuelles, car cela pourrait poser problème lors de l'exécution des tests.
AxeDevToolsBuilder.setLegacyMode(legacy: boolean)
Si, pour une raison quelconque, vous ne parvenez pas à exécuter la nouvelle technique AxeDevToolsBuilder.analyze sans erreurs, axe fournit une nouvelle méthode chaînable qui vous permet d'exécuter la version héritée de AxeDevToolsBuilder.analyze. En utilisant cette méthode, axe exclut les problèmes d'accessibilité qui peuvent survenir dans les frames et iframes inter-domaines.
AxeDevToolsBuilder.setLegacyMode est obsolète et sera retiré dans la version 5.0. Veuillez signaler toute erreur que vous pourriez rencontrer lors de l'exécution de AxeDevToolsBuilder.analyze afin qu'elles puissent être corrigées avant que la version héritée ne soit supprimée.
Exemple
var AxeDevToolsBuilder = require('@axe-devtools/webdriverjs');
const WebDriver = require('selenium-webdriver');
(async () => {
const driver = new WebDriver.Builder().forBrowser('chrome').build();
await driver.get('https://dequeuniversity.com/demo/mars/');
try {
const results = await new AxeDevToolsBuilder(driver)
.setLegacyMode()
.analyze();
console.log(results);
} catch (err) {
// do something with the error
}
await driver.quit();
})();