Ajoutez une nouvelle dépendance pour le package Java Watcher à votre pom.xml (pour Maven) dans la section des dépendances (le package Java Watcher est disponible sur 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>Ajoutez les imports pour Java Watcher à votre code de test :
import com.deque.axe_core.commons.AxeWatcherOptions;
import com.deque.axe_core.playwright.AxeWatcherPlaywright;
import com.deque.axe_core.playwright.AxeWatcherPage;Ajoutez le code de configuration pour Java Watcher, y compris votre clé API personnelle et l'ID de projet (les deux étant stockés dans l'environnement pour la sécurité et la flexibilité) :
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 nécessite un contexte persistant Playwright. Il n'est pas compatible avec les lancements Browser non persistants. Sur Playwright Java 1.49 ou ultérieur, vous devez également appeler explicitement setHeadless(false) (ou setHeadless(true) avec setChannel("chrome") ou setChannel("chromium")). Le mode chromium-headless-shell par défaut n'est pas supporté.
Cet extrait de code crée une instance AxeWatcherPage qui enveloppe votre Page Playwright avec le test d'accessibilité activé.
Pour capturer une capture d'écran chaque fois que des violations sont trouvées, ajoutez .setTakeScreenshots(true) à votre AxeWatcherOptions. Pour également sauvegarder les captures d'écran localement, chaînez .setScreenshotDir("./axe-screenshots"). Voir Capturer des captures d'écran de violation pour plus d'informations.
Assurez-vous de définir ACCESSIBILITY_API_KEY et PROJECT_ID dans votre environnement avec votre clé API personnelle (trouvée dans votre compte axe, onglet **CLÉS API**) et votre ID de projet (indiqué en haut de ces instructions lorsque vous avez créé votre projet ou disponible sur la page Projets en choisissant **Configurer le projet** sous **Paramètres**). Si votre organisation utilise une instance Axe Developer Hub régionale, privée, ou sur site, définissez également SERVER_URL sur l’URL de base de cette instance (par exemple, https://axe-eu.deque.com); sinon, omettez SERVER_URL et la valeur par défaut https://axe.deque.com sera utilisée.
À la fin de votre session de test, appelez flush() :
page.axeWatcher().flush();Appeler flush() indique que l'exécution du test est terminée, et les résultats peuvent être traités et présentés à l'utilisateur.
Pour attribuer les violations à des tests spécifiques, appelez setTestContext() avant votre logique de test :
page.axeWatcher().setTestContext(
"src/test/java/com/acme/LoginTest.java",
java.util.Arrays.asList("LoginTest", "rejects bad password")
);Voir Attribuer les violations aux tests pour plus d'informations.