Tratamento de Erros no WebDriverJS
Como contornar erros comuns vistos no Axe DevTools para Web WebDriverJS
A partir da versão 4.3.0, as integrações do Axe DevTools para Web utilizam uma nova técnica ao chamar AxeDevToolsBuilder.analyze(), que abre uma nova janela no final de uma execução. Muitos dos problemas descritos neste documento abordam problemas comuns com essa 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 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 Popup Ativados
Bloqueadores de popup nos impedem de abrir a nova janela ao chamar AxeDevToolsBuilder.analyze(). A configuração padrão para a maioria das bibliotecas de teste de automação deve permitir popups. Certifique-se de não habilitar explicitamente bloqueadores de popup que podem causar problemas durante a execução dos testes.
AxeDevToolsBuilder.setLegacyMode(legacy: boolean)
Se por algum motivo você não conseguir executar a nova técnica AxeDevToolsBuilder.analyze sem erros, o axe fornece um novo método encadeável que permite executar a versão legada de AxeDevToolsBuilder.analyze. Ao usar esse método, o axe exclui problemas de acessibilidade que podem ocorrer em frames entre domínios e iframes.
AxeDevToolsBuilder.setLegacyMode está obsoleto e será removido na versão 5.0. Por favor, reporte quaisquer erros que você possa ter ao executar AxeDevToolsBuilder.analyze para que possam ser corrigidos antes que a versão legada seja removida.
Exemplo
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();
})();