Agrega una nueva dependencia para el paquete Java Watcher en la sección de dependencias de tu pom.xml (para Maven) (el paquete Java Watcher está disponible en 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>Añade las importaciones para Java Watcher en tu código de prueba:
import com.deque.axe_core.commons.AxeWatcherOptions;
import com.deque.axe_core.playwright.AxeWatcherPlaywright;
import com.deque.axe_core.playwright.AxeWatcherPage;Agrega el código de configuración para Java Watcher, incluyendo tu clave API personal y el ID del proyecto (ambos almacenados en el entorno para seguridad y flexibilidad):
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 requiere un contexto persistente de Playwright. No es compatible con lanzamientos Browser no persistentes. En Playwright Java 1.49 o posterior, también debes llamar explícitamente a setHeadless(false) (o setHeadless(true) con setChannel("chrome") o setChannel("chromium")). El modo chromium-headless-shell predeterminado no es compatible.
Este fragmento de código crea una instancia de AxeWatcherPage que envuelve tu Page de Playwright con pruebas de accesibilidad habilitadas.
Para capturar una captura de pantalla cada vez que se encuentren violaciones, añade .setTakeScreenshots(true) a tu AxeWatcherOptions. Para también guardar capturas de pantalla localmente, encadena .setScreenshotDir("./axe-screenshots"). Consulta Capturar capturas de pantalla de violaciones para más información.
Asegúrese de configurar ACCESSIBILITY_API_KEY y PROJECT_ID en su entorno con su clave API personal (que se encuentra en su cuenta de axe, pestaña API KEYS) y su ID de proyecto (mostrado en la parte superior de estas instrucciones cuando creó su proyecto o disponible en la página de Proyectos eligiendo Configurar proyecto bajo Configuración). Si su organización utiliza una instancia regional, nube privada o local de Axe Developer Hub, configure también SERVER_URL con la URL base de esa instancia (por ejemplo, https://axe-eu.deque.com); de lo contrario, omita SERVER_URL y se usará el https://axe.deque.com predeterminado.
Al final de tu sesión de pruebas, llama a flush():
page.axeWatcher().flush();Llamar a flush() indica que la ejecución de la prueba ha finalizado y los resultados pueden ser procesados y presentados al usuario.
Para atribuir violaciones a pruebas específicas, llama a setTestContext() antes de tu lógica de prueba:
page.axeWatcher().setTestContext(
"src/test/java/com/acme/LoginTest.java",
java.util.Arrays.asList("LoginTest", "rejects bad password")
);Consulta Atribuir violaciones a pruebas para más información.