4.3 Fehlerbehandlung

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

So umgehen Sie Fehler, die bei der Verwendung von axe DevTools for Web für WebdriverIO auftreten können

Not for use with personal data

Version 4.3.0 und höher der axe DevTools-Integrationen verwenden beim Aufruf eine neue Technik, AxeDevToolsWebdriverIO.analyze() die am Ende eines Laufs ein neues Fenster öffnet. Viele der in diesem Dokument beschriebenen Probleme betreffen allgemeine Probleme mit dieser Technik und ihre möglichen Lösungen.

Veralteter Treiber

Ein häufiges Problem ist ein veralteter Treiber. Um dieses Problem zu beheben, stellen Sie sicher, dass Ihre lokale Installation von geckodriver oder chromedriver auf dem neuesten Stand ist.

Eine Beispielfehlermeldung für dieses Problem enthält eine Meldung über switchToWindow.

Beispiel

(node:17566) UnhandledPromiseRejectionWarning: Error: Malformed type for "handle" parameter of command switchToWindow
Expected: string
Actual: undefined

Aktivierte Popup-Blocker

Popupblocker verhindern, dass das Öffnen eines neuen Fensters beim Aufruf AxeDevToolsWebdriverIO.analyze(). Die Standardkonfiguration für die meisten Bibliotheken für automatisierte Tests sollte Popups zulassen. Bitte stellen Sie sicher, dass Sie Popup-Blocker nicht explizit aktivieren, da dies beim Ausführen der Tests zu Problemen führen könnte.

AxeDevToolsWebdriverIO.setLegacyMode(legacy: boolean)

Wenn Sie die neue AxeDevToolsWebdriverIO.analyze Technik aus irgendeinem Grund nicht ohne Fehler ausführen können, bietet axe eine neue verkettbare Methode, mit der Sie die Legacy-Version von AxeDevToolsWebdriverIO.analyze ausführen können. Bei Verwendung dieser Methode schließt axe Zugänglichkeitsprobleme aus, die in domänenübergreifenden Frames und Iframes auftreten können.

note

AxeDevToolsWebdriverIO.setLegacyMode ist veraltet und wird in v5.0 entfernt. Bitte melden Sie etwaige Fehler, die beim Ausführen von AxeDevToolsWebdriverIO.analyze auftreten, damit diese behoben werden können, bevor die Legacy-Version entfernt wird.

Beispiel

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();
})();