Clase AxeWatcherController

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Controle cuándo y cómo ocurren las pruebas de accesibilidad en sus pruebas Java de Selenium y Playwright con Axe Watcher

Not for use with personal data

La clase AxeWatcherController le brinda un control detallado sobre cuándo y cómo Axe Watcher realiza análisis de accesibilidad durante sus pruebas de Selenium. (Para Playwright, use AxeWatcherPlaywrightController, que ofrece la misma API). Proporciona métodos para iniciar, detener, analizar y enviar los resultados de las pruebas, permitiéndole personalizar el proceso de prueba según sus necesidades específicas.

Al ejecutar pruebas automatizadas, axe Watcher puede operar en dos modos:

  • Modo automático (predeterminado): analiza automáticamente cada página visitada por su conjunto de pruebas
  • Modo manual: Le brinda control sobre qué páginas y estados se analizan

El AxeWatcherController es especialmente útil cuando desea excluir ciertas páginas del análisis o enfocarse en estados específicos de la página.

Accediendo al Controlador

No se instancia AxeWatcherController directamente. En su lugar, acceda a él a través de la instancia envuelta de WebDriver:

WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));
AxeWatcherController controller = ((AxeWatcherDriver) driver).axeWatcher();

Métodos

setTestContext(String testFilePath, List<String> testLocation)

Registra qué prueba se está ejecutando actualmente para que las violaciones de accesibilidad que produce puedan atribuirse en Axe Developer Hub. Llame a esto antes de que la prueba desencadene cualquier análisis, normalmente en un hook de @BeforeEach.

Pase null, null para borrar un contexto configurado previamente.

Parámetros:

  • testFilePath - Ruta al archivo fuente de la prueba, o null si es desconocido. Las rutas absolutas se hacen relativas al directorio de inicio del usuario.
  • testLocation - La ubicación de la prueba dentro del archivo (por ejemplo, el nombre de la clase y el método, o una cadena de títulos describe/it), o null.

Devuelve:

  • AxeWatcherController - La instancia actual para el encadenamiento de métodos

Ejemplo:

@BeforeEach
public void setUp() {
    ((AxeWatcherDriver) driver).axeWatcher().setTestContext(
        "src/test/java/com/acme/LoginTest.java",
        java.util.Arrays.asList("LoginTest", "rejects bad password")
    );
}

Consulte Atribuir Violaciones a Pruebas para obtener más información.

stop()

Detiene el análisis automático de páginas por axe Watcher. Después de llamar a este método, axe Watcher no analizará páginas automáticamente hasta que llame a start().

Devuelve:

  • AxeWatcherController - La instancia actual para el encadenamiento de métodos

Ejemplo:

WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));
((AxeWatcherDriver) driver).axeWatcher().stop();

// These pages won't be analyzed automatically
driver.get("https://example.com/login");
driver.findElement(By.id("username")).sendKeys("testuser");
driver.findElement(By.id("password")).sendKeys("password");
driver.findElement(By.id("submit")).click();

start()

Reanuda el análisis automático de páginas por axe Watcher después de que se haya detenido. Esto reactivará el análisis automático de páginas a medida que su prueba interactúe con la aplicación.

Devuelve:

  • AxeWatcherController - La instancia actual para el encadenamiento de métodos

Ejemplo:

WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));

// Disable automatic analysis for login process
((AxeWatcherDriver) driver).axeWatcher().stop();
driver.get("https://example.com/login");
driver.findElement(By.id("login-button")).click();

// Re-enable automatic analysis for the main application
((AxeWatcherDriver) driver).axeWatcher().start();

// These pages will be automatically analyzed
driver.findElement(By.id("dashboard-link")).click();
driver.findElement(By.id("settings-button")).click();

analyze()

Inicia un análisis de accesibilidad manual de la página actual. Este método puede ser llamado explícitamente para forzar un escaneo de accesibilidad en el estado actual de la página, independientemente de si el análisis automático está habilitado o deshabilitado.

Devuelve:

  • AxeWatcherController - La instancia actual para el encadenamiento de métodos

Ejemplo:

WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));

// Navigate to a page
driver.get("https://example.com");

// Open a modal dialog
driver.findElement(By.id("open-modal-button")).click();

// Explicitly analyze the page with the modal open
((AxeWatcherDriver) driver).axeWatcher().analyze();

flush()

Envía los resultados del análisis de accesibilidad a axe Developer Hub. Este método debe ser llamado al final de cada prueba (normalmente en un método @AfterEach o equivalente) para asegurarse de que todos los resultados se envíen a axe Developer Hub.

Devuelve:

  • AxeWatcherController - La instancia actual para el encadenamiento de métodos

Ejemplo:

@AfterEach
public void tearDown() {
    if (driver instanceof AxeWatcherDriver) {
        ((AxeWatcherDriver) driver).axeWatcher().flush();
    }
    driver.quit();
}

Encadenamiento de Métodos

Todos los métodos en AxeWatcherController admiten encadenamiento de métodos, lo que le permite combinar múltiples operaciones:

((AxeWatcherDriver) driver).axeWatcher()
    .stop()                  // Stop automatic analysis
    .analyze()               // Perform a manual analysis
    .start()                 // Resume automatic analysis
    .flush();                // Flush results to axe Developer Hub

Notas Importantes

  1. iFrames: Los métodos del controlador como analyze(), start() y stop() no funcionarán cuando se llamen desde dentro de un iframe. Asegúrese siempre de estar en el marco de nivel superior al usar estos métodos.

  2. Protocolos de Página: Los métodos del controlador no funcionarán en páginas con protocolos distintos a http:, https:, o file:.

  3. Enviar Resultados: Siempre llame a flush() al final de sus pruebas para asegurarse de que todos los resultados de accesibilidad se envíen a axe Developer Hub.

  4. Conciencia de Estado: El controlador mantiene un seguimiento de su estado, por lo que llamar a stop() cuando ya está detenido o a start() cuando ya ha comenzado no tendrá efecto.

Véase También