4.3 Gestione degli Errori

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Come aggirare gli errori che potresti incontrare utilizzando Axe DevTools for Web per WebdriverIO

Not for use with personal data

La versione 4.3.0 e successive delle integrazioni Axe DevTools utilizzano una nuova tecnica quando si chiama AxeDevToolsWebdriverIO.analyze(), la quale apre una nuova finestra alla fine di un'esecuzione. Molti dei problemi descritti in questo documento riguardano problemi comuni con questa tecnica e le loro potenziali soluzioni.

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: undefined

Avere i blocchi popup abilitati

I blocchi popup ci impediscono di aprire la nuova finestra quando si chiama AxeDevToolsWebdriverIO.analyze(). La configurazione predefinita per la maggior parte delle librerie di test automatizzati dovrebbe consentire i popup. Assicurati di non abilitare esplicitamente i blocchi popup che potrebbero causare un problema durante l'esecuzione dei test.

AxeDevToolsWebdriverIO.setLegacyMode(legacy: boolean)

Se per qualche motivo non riesci a eseguire la nuova tecnica AxeDevToolsWebdriverIO.analyze senza errori, axe fornisce un nuovo metodo concatenabile che ti permette di eseguire la versione legacy di AxeDevToolsWebdriverIO.analyze. Quando usi questo metodo, axe esclude problemi di accessibilità che possono verificarsi in frame cross-domain e iframe.

note

AxeDevToolsWebdriverIO.setLegacyMode è deprecato e sarà rimosso nella versione v5.0. Si prega di segnalare qualsiasi errore che puoi avere durante l'esecuzione di AxeDevToolsWebdriverIO.analyze in modo che possano essere risolti prima che la versione legacy venga rimossa.

Esempio

const { AxeDevToolsWebdriverIO } = require('@axe-devtools/webdriverio');
const { remote } = require('webdriverio');

(async () => {
  const client = await remote({
    logLevel: 'error',
    capabilities: {
      browserName: 'chrome'
    }
  });

  await client.url('https://dequeuniversity.com/demo/mars/');

  const builder = new AxeDevToolsWebdriverIO({ client });
  try {
    const results = await builder
      .setLegacyMode()
      .analyze();
    console.log(results);
  } catch (e) {
    // do something with the error
  }
  await client.deleteSession();
})();