Java-Fehlerbehebung
So umgehen Sie Fehler, die durch axe DevTools Java 4.3 und höher verursacht werden. Informationen zur Fehlerbehebung bei der Java Playwright-Integration finden Sie unter Java Playwright-Fehlerbehebung.
Version 4.3.0 und höher der axe DevTools-Integrationen verwenden AxeSelenium.run
beim Aufruf eine neue Technik, 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
.
Siehe beispielsweise Folgendes:
(node:17566) UnhandledPromiseRejectionWarning: Error: Malformed type for "handle" parameter of command switchToWindow
Expected: string
Actual: undefined
Aktivierte Popup-Blocker
Pop-up-Blocker verhindern das Öffnen eines neuen Fensters beim Aufruf AxeSelenium::run
. 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.
AxeBuilder::setLegacyMode(boolean legacy)
Wenn Sie die neue AxeSelenium::run
Technik aus irgendeinem Grund nicht ohne Fehler ausführen können, stellt axe eine neue verkettbare Methode zur Verfügung, mit der Sie die Legacy-Version ausführen können AxeSelenium::run
. Bei Verwendung dieser Methode schließt axe Zugänglichkeitsprobleme aus, die in domänenübergreifenden Frames und Iframes auftreten können.
AxeBuilder::setLegacyMode
ist veraltet und wird in v5.0 entfernt. Bitte melden Sie etwaige Fehler, die beim Ausführen AxeSelenium::run
auftreten, damit diese behoben werden können, bevor die Legacy-Version entfernt wird.
Beispiel
import com.deque.html.axedevtools.selenium.AxeSelenium;
import com.deque.html.axedevtools.selenium.AxeDriver;
import com.deque.html.axecore.selenium.AxeBuilder;
public class Main {
public static void main(String[] args) {
var webDriver = ...; // open wbdriver and go to your test page
var axeDriver = new AxeDriver(webDriver);
var results = new AxeSelenium(new AxeBuilder().setLegacyMode())
.run(axeDriver);
}
}