4.3 Tratamento de Erros
Como contornar erros que você pode receber ao usar o Axe DevTools para Web para WebdriverIO
A versão 4.3.0 e superiores das integrações do Axe DevTools usam uma nova técnica ao chamar AxeDevToolsWebdriverIO.analyze(), que abre uma nova janela no final de uma execução. Muitos dos problemas descritos neste documento abordam questões comuns com esta técnica e suas possíveis soluções.
Driver Desatualizado
Um problema comum é ter um driver desatualizado. Para resolver esse problema, certifique-se de que sua instalação local do geckodriver ou do chromedriver esteja atualizada.
Uma mensagem de erro exemplo para este problema incluirá uma mensagem sobre switchToWindow.
Exemplo
(node:17566) UnhandledPromiseRejectionWarning: Error: Malformed type for "handle" parameter of command switchToWindow
Expected: string
Actual: undefinedBloqueadores de Pop-up Ativados
Bloqueadores de pop-up nos impedem de abrir a nova janela ao chamar AxeDevToolsWebdriverIO.analyze(). A configuração padrão para a maioria das bibliotecas de testes automatizados deve permitir pop-ups. Por favor, certifique-se de não habilitar bloqueadores de pop-up explicitamente, o que pode causar um problema durante a execução dos testes.
AxeDevToolsWebdriverIO.setLegacyMode(legacy: boolean)
Se por algum motivo você não conseguir executar a nova técnica AxeDevToolsWebdriverIO.analyze sem erros, o axe fornece um novo método encadeável que permite executar a versão legada de AxeDevToolsWebdriverIO.analyze. Ao usar este método, o axe exclui problemas de acessibilidade que podem ocorrer em frames e iframes de domínio cruzado.
AxeDevToolsWebdriverIO.setLegacyMode está obsoleto e será removido na versão 5.0. Por favor, reporte quaisquer erros que você possa ter ao executar AxeDevToolsWebdriverIO.analyze para que possam ser corrigidos antes que a versão legada seja removida.
Exemplo
const { AxeDevToolsWebdriverIO } = require('@axe-devtools/webdriverio');
const { remote } = require('webdriverio');
(async () => {
const client = await remote({
logLevel: 'error',
capabilities: {
browserName: 'chrome'
}
});
await client.url('https://dequeuniversity.com/demo/mars/');
const builder = new AxeDevToolsWebdriverIO({ client });
try {
const results = await builder
.setLegacyMode()
.analyze();
console.log(results);
} catch (e) {
// do something with the error
}
await client.deleteSession();
})();