Python-Fehlerbehandlung in axe DevTools für Web
Erklärt, wie die Fehlerbehandlung in axe DevTools für Web mit Python funktioniert
So umgehen Sie Fehler, die durch axe DevTools Python 4.3 verursacht werden
Version 4.3.0 und höher der axe DevTools-Integrationen verwenden beim Aufruf von Axe.analyze()
eine neue Technik, die am Ende eines Durchlaufs 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 wir ein neues Fenster beim Aufruf Axe.analyze()
öffnen können. 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 kann.
Axe.set_legacy_mode()
Wenn Sie die neue Axe.analyze()
Technik nicht ohne Fehler ausführen können, bietet axe eine neue verkettbare Methode zum Ausführen der Legacy-Version von Axe.analyze()
. Bei Verwendung dieser Methode schließt axe Zugänglichkeitsprobleme aus, die in domänenübergreifenden Frames und Iframes auftreten können.
Axe.set_legacy_mode()
ist veraltet und wird in v5.0 entfernt. Bitte melden Sie alle Fehler, die Sie beim Ausführen von Axe.analyze()
haben, damit diese behoben werden können, bevor die Legacy-Version entfernt wird.
Beispiel
from axe_devtools_api import Axe
driver = ... # open webdriver and go to your page
results = Axe(driver).set_legacy_mode().analyze()