Manejo de errores en Puppeteer
Cómo solucionar errores comunes observados en Axe DevTools para Web en Puppeteer
La versión 4.3.0 y posteriores de las integraciones de Axe DevTools para Web utilizan una nueva técnica al llamar a AxeDevToolsPuppeteer.analyze() que abre una nueva ventana al final de una ejecución. Muchos de los problemas descritos en este documento abordan problemas comunes con esta técnica y sus posibles soluciones.
Tener bloqueadores de ventanas emergentes habilitados
Los bloqueadores de ventanas emergentes nos impiden abrir la nueva ventana al llamar a AxeDevToolsPuppeteer.analyze(). La configuración predeterminada para la mayoría de las bibliotecas de pruebas automatizadas debería permitir ventanas emergentes. Por favor, asegúrate de no habilitar bloqueadores de ventanas emergentes explícitamente, ya que pueden causar un problema al ejecutar las pruebas.
AxeDevToolsPuppeteer.setLegacyMode(legacy: boolean)
Si por alguna razón no puedes ejecutar la nueva técnica AxeDevToolsPuppeteer.analyze sin errores, axe proporciona un nuevo método encadenable que te permite ejecutar la versión heredada de AxeDevToolsPuppeteer.analyze. Al usar este método, axe excluye los problemas de accesibilidad que pueden ocurrir en marcos de diferentes dominios e iframes.
AxeDevToolsPuppeteer.setLegacyMode está obsoleto y será eliminado en la versión 5.0. Por favor, informa cualquier error que puedas tener al ejecutar AxeDevToolsPuppeteer.analyze para que puedan ser corregidos antes de que la versión heredada sea eliminada.
Ejemplo
const { AxeDevToolsPuppeteer } = require('@axe-devtools/puppeteer');
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setBypassCSP(true);
await page.goto('https://dequeuniversity.com/demo/mars/');
try {
const results = await new AxeDevToolsPuppeteer(page).setLegacyMode().analyze();
console.log(results);
} catch(err) {
// do something with the error
}
await page.close();
await browser.close();
})();