Tratamento de Erros no Puppeteer
Como contornar erros comuns observados no Axe DevTools para Web no Puppeteer
A versão 4.3.0 e superiores das integrações Axe DevTools para Web usam uma nova técnica ao chamar AxeDevToolsPuppeteer.analyze(), que abre uma nova janela ao final de uma execução. Muitos dos problemas descritos neste documento abordam problemas comuns com esta técnica e suas possíveis soluções.
Bloqueadores de Pop-up Ativados
Bloqueadores de pop-up nos impedem de abrir a nova janela ao chamar AxeDevToolsPuppeteer.analyze(). A configuração padrão para a maioria das bibliotecas de teste de automação deve permitir pop-ups. Certifique-se de não ativar bloqueadores de pop-up explicitamente, pois isso pode causar um problema ao executar os testes.
AxeDevToolsPuppeteer.setLegacyMode(legacy: boolean)
Se por algum motivo você não conseguir executar a nova técnica AxeDevToolsPuppeteer.analyze sem erros, o axe fornece um novo método encadeável que permite executar a versão legada de AxeDevToolsPuppeteer.analyze. Ao usar este método, o axe exclui problemas de acessibilidade que podem ocorrer em frames e iframes entre domínios.
AxeDevToolsPuppeteer.setLegacyMode está obsoleto e será removido na versão 5.0. Por favor, relate quaisquer erros que você possa encontrar ao executar AxeDevToolsPuppeteer.analyze para que possam ser corrigidos antes que a versão legada seja removida.
Exemplo
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();
})();