AxeWatcherController-klasse

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Bepaal wanneer en hoe toegankelijkheidstests plaatsvinden in je Selenium- en Playwright-tests met Axe Watcher

Not for use with personal data

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, of null als 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 een describe/it-titelketen), of null.

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 Hub

Belangrijke Opmerkingen

  1. iFrames: Controllermethoden zoals analyze(), start() en stop() 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.

  2. Pagina-protocollen: Controllermethoden werken niet op pagina's met andere protocollen dan http:, https: of file:.

  3. 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.

  4. Toestandsbewustzijn: De controller houdt zijn toestand bij, dus het aanroepen van stop() als hij al gestopt is of start() als hij al gestart is, heeft geen effect.

Zie ook