Gestione degli errori in WebDriverJS
Come risolvere gli errori comuni riscontrati in axe DevTools per Web WebDriverJS
La versione 4.3.0 e successive di axe DevTools per le integrazioni Web utilizzano una nuova tecnica durante la chiamata AxeDevToolsBuilder.analyze()
[missing verb] che apre una nuova finestra al termine di un'esecuzione. Molti degli argomenti trattati in questo documento riguardano problemi comuni di questa tecnica e le loro possibili soluzioni.
Driver obsoleto
Un problema comune è avere un driver obsoleto. Per risolvere questo problema, assicurati che l'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: undefined
Blocchi popup abilitati
I blocchi popup ci impediscono di aprire una nuova finestra quando chiamiamo AxeDevToolsBuilder.analyze()
. La configurazione predefinita per la maggior parte delle librerie di test di automazione dovrebbe consentire i popup. Assicuratevi 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 AxeDevToolsBuilder.analyze
tecnica senza errori, axe fornisce un nuovo metodo concatenabile che ti consente di eseguire la versione legacy di AxeDevToolsBuilder.analyze
. Utilizzando questo metodo, axe esclude i problemi di accessibilità che potrebbero verificarsi nei frame e negli iframe cross-domain.
AxeDevToolsBuilder.setLegacyMode
è obsoleto e verrà rimosso nella versione 5.0. Segnala eventuali errori riscontrati durante l'esecuzione AxeDevToolsBuilder.analyze
in modo che possano essere corretti 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();
})();