Gestione degli errori in WebDriverJS
Come aggirare gli errori comuni riscontrati in Axe DevTools per Web WebDriverJS
Dalla versione 4.3.0 in poi, le integrazioni di Axe DevTools per Web utilizzano una nuova tecnica quando si chiama AxeDevToolsBuilder.analyze() che apre una nuova finestra al termine di un'esecuzione. Molti dei problemi descritti in questo documento affrontano problemi comuni con questa tecnica e le loro potenziali soluzioni.
Avere un driver non aggiornato
Un problema comune è avere un driver non aggiornato. Per risolvere questo problema, assicurati che la tua installazione locale di geckodriver o chromedriver sia aggiornata.
Un esempio di messaggio di errore per questo problema includerà un messaggio su switchToWindow.
Esempio
(node:17566) UnhandledPromiseRejectionWarning: Error: Malformed type for "handle" parameter of command switchToWindow
Expected: string
Actual: undefinedAvere i blocchi popup abilitati
I blocchi popup ci impediscono di aprire la nuova finestra quando si chiama AxeDevToolsBuilder.analyze(). La configurazione di default per la maggior parte delle librerie di test automatizzati dovrebbe consentire i popup. Assicurati di non abilitare esplicitamente i blocchi popup, poiché potrebbero causare problemi durante l'esecuzione dei test.
AxeDevToolsBuilder.setLegacyMode(legacy: boolean)
Se per qualche motivo non riesci a eseguire il nuovo AxeDevToolsBuilder.analyze senza errori, Axe fornisce un nuovo metodo concatenabile che ti permette di eseguire la versione precedente di AxeDevToolsBuilder.analyze. Quando utilizzi questo metodo, Axe esclude i problemi di accessibilità che possono verificarsi nei frame e iframes di domini incrociati.
AxeDevToolsBuilder.setLegacyMode è obsoleto e sarà rimosso nella v5.0. Segnala eventuali errori che potresti riscontrare durante l'esecuzione di AxeDevToolsBuilder.analyze in modo che possano essere risolti prima che la versione legacy venga rimossa.
Esempio
const { 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();
})();