Fehlerbehandlung in Axe DevTools für Web mit Python
Erklärt, wie die Fehlerbehandlung in Axe DevTools für Web mit Python funktioniert
Umgehung von Fehlern, die durch Axe DevTools Python 4.3 verursacht werden
Ab Version 4.3.0 der Axe DevTools-Integrationen wird eine neue Technik verwendet, wenn Axe.analyze() aufgerufen wird, die am Ende eines Durchlaufs ein neues Fenster öffnet. Viele der in diesem Dokument beschriebenen Probleme beziehen sich auf häufige Probleme mit dieser Technik und deren mögliche 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 beispielhafte Fehlermeldung für dieses Problem wird eine Nachricht über switchToWindow enthalten.
Beispiel:
(node:17566) UnhandledPromiseRejectionWarning: Error: Malformed type for "handle" parameter of command switchToWindow
Expected: string
Actual: undefinedAktivierte Popup-Blocker
Popup-Blocker verhindern, dass wir das neue Fenster öffnen, wenn Axe.analyze() aufgerufen wird. Die Standardkonfiguration der meisten Automatisierungstestbibliotheken sollte Popups zulassen. Bitte stellen Sie sicher, dass Sie Popup-Blocker nicht explizit aktivieren, da dies beim Ausführen der Tests ein Problem verursachen könnte.
Axe.set_legacy_mode()
Wenn Sie die neue Technik von Axe.analyze() nicht fehlerfrei ausführen können, bietet axe eine neue kaskadierbare Methode, um die Legacy-Version von Axe.analyze() auszuführen. Bei Verwendung dieser Methode schließt axe Barrierefreiheitsprobleme aus, die in domainübergreifenden Frames und Iframes auftreten können.
Axe.set_legacy_mode() ist veraltet und wird in Version 5.0 entfernt. Bitte melden Sie alle Fehler, die beim Ausführen von Axe.analyze() auftreten, damit sie 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()