Aggiungi una nuova dipendenza per il pacchetto Java Watcher alla tua sezione delle dipendenze pom.xml (per Maven) (il pacchetto Java Watcher è disponibile su Maven Central):
<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>Aggiungi gli import per Java Watcher al codice di test:
import com.deque.axe_core.commons.AxeWatcherOptions;
import com.deque.axe_core.playwright.AxeWatcherPlaywright;
import com.deque.axe_core.playwright.AxeWatcherPage;Aggiungi il codice di configurazione per Java Watcher, inclusi il tuo API key personale e l'ID del progetto (entrambi memorizzati nell'ambiente per sicurezza e flessibilità):
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());Watcher richiede un contesto persistente di Playwright. Non è compatibile con i lanci Browser non persistenti. Su Playwright Java 1.49 o versioni successive, devi anche chiamare esplicitamente setHeadless(false) (o setHeadless(true) con setChannel("chrome") o setChannel("chromium")). La modalità di default chromium-headless-shell non è supportata.
Questo frammento di codice crea un'istanza AxeWatcherPage che avvolge il tuo Page di Playwright con il test di accessibilità abilitato.
Per acquisire una schermata ogni volta che vengono trovate violazioni, aggiungi .setTakeScreenshots(true) al tuo AxeWatcherOptions. Per salvare anche le schermate localmente, concatena .setScreenshotDir("./axe-screenshots"). Vedi Acquisire schermate di violazione per ulteriori informazioni.
Assicurati di impostare ACCESSIBILITY_API_KEY e PROJECT_ID nel tuo ambiente con la tua chiave API personale (trovata nel tuo account axe, nella scheda **API KEYS**) e con il tuo ID progetto (mostrato in cima a queste istruzioni quando hai creato il tuo progetto o disponibile nella pagina Progetti selezionando **Configura progetto** sotto **Impostazioni**). Se la tua organizzazione utilizza una versione regionale, cloud privata o un'istanza Axe Developer Hub on-premises, imposta anche SERVER_URL all'URL base di quella istanza (ad esempio, https://axe-eu.deque.com); altrimenti, ometti SERVER_URL e verrà utilizzato il valore predefinito https://axe.deque.com.
Alla fine della tua sessione di test, chiama flush():
page.axeWatcher().flush();Chiamare flush() indica che l'esecuzione del test è terminata e i risultati possono essere elaborati e presentati all'utente.
Per attribuire le violazioni a test specifici, chiama setTestContext() prima della logica del tuo test:
page.axeWatcher().setTestContext(
"src/test/java/com/acme/LoginTest.java",
java.util.Arrays.asList("LoginTest", "rejects bad password")
);Vedi Attribuire le violazioni ai test per ulteriori informazioni.