AxeWatcherController-Klasse
Steuern Sie, wann und wie Barrierefreiheitstests in Ihren Selenium- und Playwright-Java-Tests mit Axe Watcher durchgeführt werden
Die AxeWatcherController-Klasse gibt Ihnen eine fein abgestimmte Kontrolle darüber, wann und wie Axe Watcher während Ihrer Selenium-Tests Barrierefreiheitsanalysen durchführt. (Für Playwright verwenden Sie AxeWatcherPlaywrightController, die dieselbe API bietet.) Sie bietet Methoden zum Starten, Stoppen, Analysieren und Fluten von Testergebnissen, sodass Sie den Testprozess an Ihre spezifischen Bedürfnisse anpassen können.
Beim Ausführen automatisierter Tests kann Axe Watcher in zwei Modi arbeiten:
- Automatischer Modus (Standard): Analysiert automatisch jede Seite, die von Ihrer Testsuite besucht wird
- Manueller Modus: Gibt Ihnen die Kontrolle darüber, welche Seiten und Zustände analysiert werden
Der AxeWatcherController ist besonders nützlich, wenn Sie bestimmte Seiten von der Analyse ausschließen oder sich auf bestimmte Seitenzustände konzentrieren möchten.
Zugriff auf den Controller
Sie instanziieren AxeWatcherController nicht direkt. Greifen Sie stattdessen über die umschlossene WebDriver-Instanz darauf zu:
WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));
AxeWatcherController controller = ((AxeWatcherDriver) driver).axeWatcher();Methoden
setTestContext(String testFilePath, List<String> testLocation)
Speichert, welcher Test derzeit läuft, damit Barrierefreiheitsverletzungen, die er produziert, im Axe Developer Hub darauf zurückgeführt werden können. Rufen Sie dies auf, bevor der Test eine Analyse auslöst, typischerweise in einem @BeforeEach-Hook.
Übergeben Sie null, null, um einen zuvor festgelegten Kontext zu löschen.
Parameter:
testFilePath- Pfad zur Testquellendatei odernull, falls unbekannt. Absolute Pfade werden relativ zum Benutzerverzeichnis gemacht.testLocation- Die Position des Tests innerhalb der Datei (zum Beispiel der Klassen- und Methodenname oder einedescribe/it-Titelschrift), odernull.
Rückgabe:
AxeWatcherController- Die aktuelle Instanz für Method-Chaining
Beispiel:
@BeforeEach
public void setUp() {
((AxeWatcherDriver) driver).axeWatcher().setTestContext(
"src/test/java/com/acme/LoginTest.java",
java.util.Arrays.asList("LoginTest", "rejects bad password")
);
}Siehe Zuordnung von Verstößen zu Tests für weitere Informationen.
stop()
Stoppt die automatische Analyse von Seiten durch Axe Watcher. Nach dem Aufruf dieser Methode wird Axe Watcher Seiten nicht mehr automatisch analysieren, bis Sie start() aufrufen.
Rückgabe:
AxeWatcherController- Die aktuelle Instanz für Method-Chaining
Beispiel:
WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));
((AxeWatcherDriver) driver).axeWatcher().stop();
// These pages won't be analyzed automatically
driver.get("https://example.com/login");
driver.findElement(By.id("username")).sendKeys("testuser");
driver.findElement(By.id("password")).sendKeys("password");
driver.findElement(By.id("submit")).click();start()
Setzt die automatische Analyse von Seiten durch Axe Watcher fort, nachdem sie gestoppt wurde. Dies reaktiviert die automatische Analyse von Seiten, während Ihr Test mit der Anwendung interagiert.
Rückgabe:
AxeWatcherController- Die aktuelle Instanz für Method-Chaining
Beispiel:
WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));
// Disable automatic analysis for login process
((AxeWatcherDriver) driver).axeWatcher().stop();
driver.get("https://example.com/login");
driver.findElement(By.id("login-button")).click();
// Re-enable automatic analysis for the main application
((AxeWatcherDriver) driver).axeWatcher().start();
// These pages will be automatically analyzed
driver.findElement(By.id("dashboard-link")).click();
driver.findElement(By.id("settings-button")).click();analyze()
Löst eine manuelle Barrierefreiheitsanalyse der aktuellen Seite aus. Diese Methode kann explizit aufgerufen werden, um einen Barrierefreiheitsscan des aktuellen Seitenzustands zu erzwingen, unabhängig davon, ob die automatische Analyse aktiviert oder deaktiviert ist.
Rückgabe:
AxeWatcherController- Die aktuelle Instanz für Method-Chaining
Beispiel:
WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));
// Navigate to a page
driver.get("https://example.com");
// Open a modal dialog
driver.findElement(By.id("open-modal-button")).click();
// Explicitly analyze the page with the modal open
((AxeWatcherDriver) driver).axeWatcher().analyze();flush()
Leert die Ergebnisse der Barrierefreiheitsanalyse in den Axe Developer Hub. Diese Methode sollte am Ende jedes Tests aufgerufen werden (typischerweise in einer @AfterEach oder äquivalenten Methode), um sicherzustellen, dass alle Ergebnisse an den Axe Developer Hub gesendet werden.
Rückgabe:
AxeWatcherController- Die aktuelle Instanz für Method-Chaining
Beispiel:
@AfterEach
public void tearDown() {
if (driver instanceof AxeWatcherDriver) {
((AxeWatcherDriver) driver).axeWatcher().flush();
}
driver.quit();
}Method-Chaining
Alle Methoden in AxeWatcherController unterstützen Method-Chaining, sodass Sie mehrere Operationen kombinieren können:
((AxeWatcherDriver) driver).axeWatcher()
.stop() // Stop automatic analysis
.analyze() // Perform a manual analysis
.start() // Resume automatic analysis
.flush(); // Flush results to axe Developer HubWichtige Hinweise
-
iFrames: Controllermethoden wie
analyze(),start()undstop()funktionieren nicht, wenn sie aus einem iFrame heraus aufgerufen werden. Stellen Sie immer sicher, dass Sie sich im oberen Rahmen befinden, wenn Sie diese Methoden verwenden. -
Seitenprotokolle: Controllermethoden funktionieren nicht auf Seiten mit anderen Protokollen als
http:,https:oderfile:. -
Ergebnisse leeren: Rufen Sie am Ende Ihrer Tests immer
flush()auf, um sicherzustellen, dass alle Barrierefreiheitsergebnisse an den Axe Developer Hub gesendet werden. -
Statusbewusstsein: Der Controller verfolgt seinen Zustand, sodass das Aufrufen von
stop(), wenn er bereits gestoppt ist, oderstart(), wenn er bereits gestartet ist, keine Wirkung hat.
