Gestione degli errori in Puppeteer
Come risolvere gli errori comuni riscontrati in axe DevTools per Web per Puppeteer
La versione 4.3.0 e successive di axe DevTools per le integrazioni Web utilizzano una nuova tecnica durante la richiamata AxeDevToolsPuppeteer.analyze()
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.
Blocchi popup abilitati
I blocchi popup ci impediscono di aprire una nuova finestra quando chiamiamo AxeDevToolsPuppeteer.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.
AxeDevToolsPuppeteer.setLegacyMode(legacy: boolean)
Se per qualche motivo non riesci a eseguire la nuova AxeDevToolsPuppeteer.analyze
funzionalità senza errori, axe fornisce un nuovo metodo concatenabile che ti consente di eseguire la versione precedente di AxeDevToolsPuppeteer.analyze
. Utilizzando questo metodo, axe esclude i problemi di accessibilità che potrebbero verificarsi nei frame e negli iframe cross-domain.
AxeDevToolsPuppeteer.setLegacyMode
è obsoleto e verrà rimosso nella versione 5.0. Segnala eventuali errori riscontrati durante l'esecuzione AxeDevToolsPuppeteer.analyze
in modo che possano essere corretti prima che la versione legacy venga rimossa.
Esempio
const { AxeDevToolsPuppeteer } = require('@axe-devtools/puppeteer');
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setBypassCSP(true);
await page.goto('https://dequeuniversity.com/demo/mars/');
try {
const results = await new AxeDevToolsPuppeteer(page).setLegacyMode().analyze();
console.log(results);
} catch(err) {
// do something with the error
}
await page.close();
await browser.close();
})();