Classe 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 quando e como os testes de acessibilidade ocorrem nos seus testes Selenium Java com o axe Watcher

Not for use with personal data

A classe AxeWatcherController oferece a você controle detalhado sobre quando e como o axe Watcher realiza a análise de acessibilidade durante seus testes Selenium. Ela fornece métodos para iniciar, parar, analisar e liberar resultados de teste, permitindo que você personalize o processo de teste para se adequar às suas necessidades específicas.

Ao executar testes automatizados, o axe Watcher pode operar em dois modos:

  • Modo automático (padrão): Analisa automaticamente cada página visitada pelo seu conjunto de testes
  • Modo manual: Dá a você controle sobre quais páginas e estados são analisados

O AxeWatcherController é especialmente útil quando você deseja excluir certas páginas da análise ou focar em estados de página específicos.

Acessando o Controlador

Você não instancia AxeWatcherController diretamente. Em vez disso, acesse-o através da instância encapsulada WebDriver :

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

Métodos

stop()

Interrompe a análise automática de páginas pelo axe Watcher. Após chamar este método, o axe Watcher não analisará páginas automaticamente até que você chame start().

Retorna:

  • AxeWatcherController - A instância atual para encadeamento de métodos

Exemplo:

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()

Retoma a análise automática de páginas pelo axe Watcher após ter sido interrompida. Isso reativará a análise automática de páginas conforme seu teste interage com a aplicação.

Retorna:

  • AxeWatcherController - A instância atual para encadeamento de métodos

Exemplo:

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()

Aciona uma análise manual de acessibilidade da página atual. Este método pode ser chamado explicitamente para forçar uma verificação de acessibilidade no estado atual da página, independentemente de a análise automática estar habilitada ou desabilitada.

Retorna:

  • AxeWatcherController - A instância atual para encadeamento de métodos

Exemplo:

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()

Libera os resultados da análise de acessibilidade para o axe Developer Hub. Este método deve ser chamado ao final de cada teste (normalmente em um método @AfterEach ou equivalente) para garantir que todos os resultados sejam enviados para o axe Developer Hub.

Retorna:

  • AxeWatcherController - A instância atual para encadeamento de métodos

Exemplo:

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

Encadeamento de Métodos

Todos os métodos em AxeWatcherController suportam o encadeamento de métodos, permitindo que você combine múltiplas operações:

((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: Métodos do controlador como analyze(), start(), e stop() não funcionarão quando chamados de dentro de um iframe. Sempre assegure-se de que você está no frame de nível superior ao usar esses métodos.

  2. Protocolos de Página: Métodos do controlador não funcionarão em páginas com protocolos diferentes de http:, https:, ou file:.

  3. Liberar Resultados: Sempre chame flush() ao final dos seus testes para garantir que todos os resultados de acessibilidade sejam enviados para o axe Developer Hub.

  4. **Consciência de Estado**: O controlador mantém o acompanhamento de seu estado, assim chamar stop() quando já estiver parado ou start() quando já tiver iniciado não terá efeito.

Veja Também