Manejo de Errores en WebDriverJS
Cómo solucionar errores comunes vistos en Axe DevTools para Web WebDriverJS
La versión 4.3.0 y superior de las integraciones de Axe DevTools para Web utilizan una nueva técnica cuando se llama a AxeDevToolsBuilder.analyze() que abre una nueva ventana al final de una ejecución. Muchos de los problemas expuestos en este documento abordan problemas comunes con esta técnica y sus posibles soluciones.
Tener un Controlador Desactualizado
Un problema común es tener un controlador desactualizado. Para solucionar este problema, asegúrese de que su instalación local de geckodriver o chromedriver esté actualizada.
Un mensaje de error de ejemplo para este problema incluirá un mensaje sobre switchToWindow.
Ejemplo
(node:17566) UnhandledPromiseRejectionWarning: Error: Malformed type for "handle" parameter of command switchToWindow
Expected: string
Actual: undefinedTener Bloqueadores de Ventanas Emergentes Habilitados
Los bloqueadores de ventanas emergentes nos impiden abrir la nueva ventana al llamar a AxeDevToolsBuilder.analyze(). La configuración predeterminada para la mayoría de las bibliotecas de pruebas de automatización debería permitir ventanas emergentes. Por favor, asegúrese de no habilitar bloqueadores de ventanas emergentes que puedan causar un problema al ejecutar las pruebas.
AxeDevToolsBuilder.setLegacyMode(legacy: boolean)
Si por alguna razón no puede ejecutar la nueva técnica de AxeDevToolsBuilder.analyze sin errores, axe proporciona un nuevo método encadenable que le permite ejecutar la versión heredada de AxeDevToolsBuilder.analyze. Al usar este método, axe excluye problemas de accesibilidad que pueden ocurrir en frames entre dominios e iframes.
AxeDevToolsBuilder.setLegacyMode está obsoleto y se eliminará en la versión 5.0. Por favor, informe de cualquier error que pueda tener al ejecutar AxeDevToolsBuilder.analyze para que puedan solucionarse antes de que se elimine la versión heredada.
Ejemplo
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();
})();