Classe AxeWatcherController
Controle quando e como os testes de acessibilidade ocorrem em seus testes Java com Selenium e Playwright usando Axe Watcher
A classe AxeWatcherController oferece controle detalhado sobre quando e como o Axe Watcher realiza a análise de acessibilidade durante seus testes Selenium. (Para Playwright, use AxeWatcherPlaywrightController, que fornece a mesma API.) Ela oferece métodos para iniciar, parar, analisar e descarregar resultados de testes, permitindo que você personalize o processo de teste de acordo com 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 pela sua suíte de testes
- Modo manual: Dá a você controle sobre quais páginas e estados são analisados
O AxeWatcherController é especialmente útil quando você quer excluir certas páginas da análise ou focar em estados específicos de página.
Acessando o Controller
Você não instancia AxeWatcherController diretamente. Em vez disso, acesse-o através da instância WebDriver encapsulada:
WebDriver driver = watcher.wrapDriver(new ChromeDriver(chromeOptions));
AxeWatcherController controller = ((AxeWatcherDriver) driver).axeWatcher();Métodos
setTestContext(String testFilePath, List<String> testLocation)
Registra qual teste está em execução no momento para que as violações de acessibilidade geradas possam ser atribuídas a ele no Axe Developer Hub. Chame isso antes que o teste acione qualquer análise, tipicamente em um gancho @BeforeEach.
Passe null, null para limpar um contexto previamente definido.
Parâmetros:
testFilePath- Caminho para o arquivo de origem do teste, ounullse desconhecido. Caminhos absolutos são transformados em relativos ao diretório inicial do usuário.testLocation- A localização do teste dentro do arquivo (por exemplo, o nome da classe e do método, ou um títulodescribe/it), ounull.
Retorna:
AxeWatcherController- A instância atual para encadeamento de métodos
Exemplo:
@BeforeEach
public void setUp() {
((AxeWatcherDriver) driver).axeWatcher().setTestContext(
"src/test/java/com/acme/LoginTest.java",
java.util.Arrays.asList("LoginTest", "rejects bad password")
);
}Veja Atribuindo Violações aos Testes para mais informações.
analyze()
Aciona uma análise de acessibilidade manual da página atual. Este método pode ser chamado explicitamente para forçar uma varredura de acessibilidade no estado atual da página, independentemente de a análise automática estar ou não habilitada.
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()
Descarrega os resultados da análise de acessibilidade para o Axe Developer Hub. Este método deve ser chamado ao final de cada teste (tipicamente em um método @AfterEach ou equivalente) para garantir que todos os resultados sejam enviados ao 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();
}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 à medida que seu teste interage com o aplicativo.
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();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á as 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();Encadeamento de Métodos
Todos os métodos em AxeWatcherController suportam 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 estar no quadro 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:. -
Resultados de Descarregamento: Sempre chame
flush()ao final de seus testes para garantir que todos os resultados de acessibilidade sejam enviados ao Axe Developer Hub. -
Consciência de Estado: O controlador mantém o controle de seu estado, então chamar
stop()quando já estiver parado oustart()quando já estiver iniciado não terá efeito.
