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 la nuova tecnica AxeDevToolsBuilder.analyze senza errori, axe fornisce un nuovo metodo concatenabile che ti permette di eseguire la versione legacy di AxeDevToolsBuilder.analyze. Quando si utilizza questo metodo, axe esclude i problemi di accessibilità che possono verificarsi nei frame e negli iframe cross-domain.
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
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();
})();