AxeWatcherController-klasse
Bepaal wanneer en hoe toegankelijkheidstests plaatsvinden in je Selenium- en Playwright-tests met Axe Watcher
De klasse AxeWatcherController geeft je gedetailleerde controle over wanneer en hoe Axe Watcher toegankelijkheidsanalyse uitvoert tijdens je Selenium-tests. (Voor Playwright gebruik je AxeWatcherPlaywrightController, die dezelfde API biedt.) Het biedt methoden om testresultaten te starten, stoppen, analyseren en door te spoelen, zodat je het testproces kunt aanpassen aan je specifieke behoeften.
Bij het uitvoeren van geautomatiseerde tests kan axe Watcher in twee modi werken:
- Automatische modus (standaard): Analyseert automatisch elke pagina die door je testpakket wordt bezocht
- Handmatige modus: Geeft je controle over welke pagina's en staten worden geanalyseerd
De AxeWatcherController is vooral nuttig wanneer je bepaalde pagina's wilt uitsluiten van analyse of je wilt concentreren op specifieke paginatoestanden.
Toegang tot de Controller
Je maakt AxeWatcherController niet direct aan. In plaats daarvan krijg je toegang via de omwikkelde WebDriver-instantie:
WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));
AxeWatcherController controller = ((AxeWatcherDriver) driver).axeWatcher();Methoden
setTestContext(String testFilePath, List<String> testLocation)
Registreer welke test momenteel wordt uitgevoerd, zodat toegankelijkheidsschendingen die het produceert kunnen worden teruggekoppeld in Axe Developer Hub. Roep dit aan voordat de test enige analyse uitvoert, meestal in een @BeforeEach-hook.
Geef null, null door om een eerder ingestelde context te wissen.
Parameters:
testFilePath- Pad naar het testbronbestand, ofnullals onbekend. Absolute paden worden relatief gemaakt ten opzichte van de thuismap van de gebruiker.testLocation- De locatie van de test binnen het bestand (bijvoorbeeld de klasse- en methodenaam, of eendescribe/it-titelketen), ofnull.
Retourneert:
AxeWatcherController- De huidige instantie voor method chaining
Voorbeeld:
@BeforeEach
public void setUp() {
((AxeWatcherDriver) driver).axeWatcher().setTestContext(
"src/test/java/com/acme/LoginTest.java",
java.util.Arrays.asList("LoginTest", "rejects bad password")
);
}Zie Schendingen aan tests toewijzen voor meer informatie.
stop()
Stopt de automatische analyse van pagina's door axe Watcher. Na het aanroepen van deze methode zal axe Watcher geen pagina's meer automatisch analyseren totdat je start() aanroept.
Retourneert:
AxeWatcherController- De huidige instantie voor method chaining
Voorbeeld:
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()
Hervat de automatische analyse van pagina's door axe Watcher nadat deze is gestopt. Dit zal de automatische analyse van pagina's opnieuw activeren terwijl je test interactie heeft met de applicatie.
Retourneert:
AxeWatcherController- De huidige instantie voor method chaining
Voorbeeld:
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()
Start een handmatige toegankelijkheidsanalyse van de huidige pagina. Deze methode kan expliciet worden aangeroepen om een toegankelijkheidsscan op de huidige paginatoestand te forceren, ongeacht of automatische analyse is ingeschakeld of uitgeschakeld.
Retourneert:
AxeWatcherController- De huidige instantie voor method chaining
Voorbeeld:
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()
Leegt de resultaten van de toegankelijkheidsanalyse naar de axe Developer Hub. Deze methode moet aan het einde van elke test worden aangeroepen (meestal in een @AfterEach of gelijkwaardige methode) om ervoor te zorgen dat alle resultaten naar de axe Developer Hub worden gestuurd.
Retourneert:
AxeWatcherController- De huidige instantie voor method chaining
Voorbeeld:
@AfterEach
public void tearDown() {
if (driver instanceof AxeWatcherDriver) {
((AxeWatcherDriver) driver).axeWatcher().flush();
}
driver.quit();
}Method Chaining
Alle methoden in AxeWatcherController ondersteunen method chaining, waardoor je meerdere operaties kunt combineren:
((AxeWatcherDriver) driver).axeWatcher()
.stop() // Stop automatic analysis
.analyze() // Perform a manual analysis
.start() // Resume automatic analysis
.flush(); // Flush results to axe Developer HubBelangrijke Opmerkingen
-
iFrames: Controllermethoden zoals
analyze(),start()enstop()zullen niet werken wanneer ze vanuit een iframe worden aangeroepen. Zorg ervoor dat je je altijd in het bovenste frame bevindt wanneer je deze methoden gebruikt. -
Pagina-protocollen: Controllermethoden werken niet op pagina's met andere protocollen dan
http:,https:offile:. -
Resultaten doorspoelen: Roep altijd
flush()aan het einde van je tests aan om ervoor te zorgen dat alle toegankelijkheidsresultaten naar de axe Developer Hub worden gestuurd. -
Toestandsbewustzijn: De controller houdt zijn toestand bij, dus het aanroepen van
stop()als hij al gestopt is ofstart()als hij al gestart is, heeft geen effect.
