Classe AxeWatcherController
Controle quando e como os testes de acessibilidade ocorrem nos seus testes Selenium Java com o axe Watcher
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 HubNotas Importantes
-
iFrames: Métodos do controlador como
analyze(),start(), estop()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. -
Protocolos de Página: Métodos do controlador não funcionarão em páginas com protocolos diferentes de
http:,https:, oufile:. -
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. -
**Consciência de Estado**: O controlador mantém o acompanhamento de seu estado, assim chamar
stop()quando já estiver parado oustart()quando já tiver iniciado não terá efeito.
