1. Fügen Sie eine neue Abhängigkeit für das Java Watcher-Paket in den pom.xml-Abhängigkeitsbereich (für Maven) ein (das Java Watcher-Paket ist auf Maven Central verfügbar):

    <dependencies>
    
    <!-- Add this dependency: -->
      <dependency>
         <groupId>com.deque.axe_core</groupId>
         <artifactId>watcher</artifactId>
         <version>4.4.0</version> <!-- Update this as needed -->
      </dependency>
    
    </dependencies>
  2. Fügen Sie Importe für den Java Watcher in Ihren Testcode ein:

    import com.deque.axe_core.commons.AxeWatcherOptions;
    import com.deque.axe_core.playwright.AxeWatcherPlaywright;
    import com.deque.axe_core.playwright.AxeWatcherPage;
  3. Fügen Sie Setup-Code für den Java Watcher hinzu, einschließlich Ihres persönlichen API-Schlüssels und der Projekt-ID (beides zur Sicherheit und Flexibilität in der Umgebung gespeichert):

    AxeWatcherOptions options =
        new AxeWatcherOptions()
            .setApiKey(System.getenv("ACCESSIBILITY_API_KEY"))
            .setProjectId(System.getenv("PROJECT_ID"));
    // Optional: uncomment and set SERVER_URL if using a regional, private cloud, or on-premises instance:
    // options.setServerUrl(System.getenv("SERVER_URL"));
    AxeWatcherPlaywright watcher = new AxeWatcherPlaywright(options);
    BrowserType.LaunchPersistentContextOptions launchOptions =
        watcher.configure(new BrowserType.LaunchPersistentContextOptions());
    // Watcher requires a persistent context. You must set headless explicitly on Playwright 1.49+:
    launchOptions.setHeadless(false);
    BrowserContext context = browserType.launchPersistentContext(userDataDir, launchOptions);
    AxeWatcherPage page = watcher.wrapPage(context.newPage());
    important

    Watcher erfordert einen Playwright-persistenter Kontext. Es ist nicht mit nicht-persistenten Browser-Starts kompatibel. In Playwright Java 1.49 oder später müssen Sie auch explizit setHeadless(false) aufrufen (oder setHeadless(true) mit setChannel("chrome") oder setChannel("chromium")). Der Standardmodus chromium-headless-shell wird nicht unterstützt.

    Dieses Codebeispiel erstellt eine AxeWatcherPage-Instanz, die Ihren Playwright-Page mit aktivierter Barrierefreiheitstestung umschließt.

    Um einen Screenshot zu erfassen, wann immer Verstöße gefunden werden, fügen Sie .setTakeScreenshots(true) zu Ihrem AxeWatcherOptions hinzu. Um auch Screenshots lokal zu speichern, verketten Sie .setScreenshotDir("./axe-screenshots"). Siehe Verletzungs-Screenshots erfassen für weitere Informationen.

    Stellen Sie sicher, dass Sie ACCESSIBILITY_API_KEY und PROJECT_ID in Ihrer Umgebung auf Ihren persönlichen API-Schlüssel (zu finden in Ihrem Axe-Konto, **API-SCHLÜSSEL**-Tab) und Ihre Projekt-ID (angezeigt oben in diesen Anweisungen, als Sie Ihr Projekt erstellt haben, oder verfügbar auf der Seite "Projekte" durch Auswahl von **Projekt konfigurieren** unter **Einstellungen**) setzen. Wenn Ihre Organisation eine regionale, private Cloud oder eine lokale Axe Developer Hub-Instanz verwendet, setzen Sie auch SERVER_URL auf die Basis-URL dieser Instanz (zum Beispiel https://axe-eu.deque.com); andernfalls lassen Sie SERVER_URL weg und der Standard https://axe.deque.com wird verwendet.

  4. Rufen Sie am Ende Ihrer Testsitzung flush() auf:

    page.axeWatcher().flush();

    Der Aufruf von flush() zeigt an, dass der Testrun abgeschlossen ist und die Ergebnisse verarbeitet und dem Benutzer präsentiert werden können.

    Um Verstöße bestimmten Tests zuzuordnen, rufen Sie setTestContext() vor Ihrer Testlogik auf:

    page.axeWatcher().setTestContext(
        "src/test/java/com/acme/LoginTest.java",
        java.util.Arrays.asList("LoginTest", "rejects bad password")
    );

    Siehe Verstöße Tests zuordnen für weitere Informationen.