1. Agrega una nueva dependencia para el paquete Java Watcher en tu sección de dependencias de 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.5.1</version> <!-- Update this as needed -->
      </dependency>
    
    </dependencies>
  2. Agrega las importaciones para Java Watcher en tu código de pruebas:

    import com.deque.axe_core.commons.AxeWatcherOptions;
    import com.deque.axe_core.selenium.AxeWatcher;
    import com.deque.axe_core.selenium.AxeWatcherDriver;
  3. 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"));
    AxeWatcher watcher = new AxeWatcher(options);
    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions = watcher.configure(chromeOptions);
    WebDriver wrappedDriver = watcher.wrapDriver(new ChromeDriver(chromeOptions));

    Este fragmento de código crea una nueva instancia WebDriver llamada wrappedDriver que necesitas convertir para usar los métodos del controlador de axe.

    Para ejecutar sus pruebas en Microsoft Edge en su lugar, pase una instancia EdgeOptions a configure() y una instancia EdgeDriver a wrapDriver() (ambos se importan desde org.openqa.selenium.edge). Todo lo demás, incluidos los métodos del controlador y flush(), funciona de la misma manera:

    AxeWatcherOptions options =
        new AxeWatcherOptions()
            .setApiKey(System.getenv("ACCESSIBILITY_API_KEY"))
            .setProjectId(System.getenv("PROJECT_ID"));
    AxeWatcher watcher = new AxeWatcher(options);
    EdgeOptions edgeOptions = new EdgeOptions();
    edgeOptions = watcher.configure(edgeOptions);
    WebDriver wrappedDriver = watcher.wrapDriver(new EdgeDriver(edgeOptions));
    important

    El soporte para Microsoft Edge requiere Watcher 4.5.1 o posterior y Selenium 4 o posterior. Los EdgeOptions de Selenium 3 están dirigidos al navegador antiguo EdgeHTML, que Axe Watcher no admite, por lo que llamar a configure() con EdgeOptions en Selenium 3 lanza un IllegalStateException. Chrome for Testing y Chromium siguen siendo compatibles con Selenium 3.141.59 y posteriores.

    Asegúrate de configurar ACCESSIBILITY_API_KEY y PROJECT_ID en tu entorno con tu clave de API personal (que se encuentra en tu cuenta de Axe, pestaña API KEYS) y tu ID de proyecto (mostrado en la parte superior de estas instrucciones cuando creaste tu proyecto o disponible en la página de Proyectos eligiendo Configurar proyecto en Configuración). Si tu organización utiliza una instancia local, privada o en la nube regional de Axe Developer Hub, también configura SERVER_URL con la URL base de esa instancia (por ejemplo, https://axe-eu.deque.com); de lo contrario, omite SERVER_URL y se usará el https://axe.deque.com predeterminado.

  4. Al final de tu sesión de pruebas, llama a flush():

    ((AxeWatcherDriver) wrappedDriver).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.