Classe AxeWatcherOptions
Configure o Axe Watcher para testes de acessibilidade em testes Java com Selenium e Playwright com opções personalizáveis
A classe AxeWatcherOptions fornece opções de configuração para as integrações Axe Watcher com Selenium e Playwright em Java. Esta classe permite que você personalize como o Axe Watcher realiza testes de acessibilidade durante os testes automatizados de navegador, incluindo detalhes de conexão com o servidor, comportamento de execução de testes e padrões de acessibilidade.
Construtor
AxeWatcherOptions()
Cria uma nova instância de AxeWatcherOptions com configurações padrão. Os valores padrão são:
serverUrl:https://axe.deque.comautoAnalyze:truegit:true
AxeWatcherOptions options = new AxeWatcherOptions();Métodos
setApiKey(String apiKey)
Define a chave da API para autenticar com o Axe Developer Hub. Isso é necessário para usar o Axe Watcher.
Parâmetros:
apiKey- Sua chave da API do Axe Developer Hub
Retorna:
AxeWatcherOptions- A instância atual para encadeamento de métodos
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setApiKey("your-api-key-here");setProjectId(String projectId)
Parâmetros:
projectId- O ID do projeto que receberá os resultados de acessibilidade
Retorna:
AxeWatcherOptions- A instância atual para encadeamento de métodos
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setProjectId("your-project-ID-here"); // a uuid identifying the projectsetServerUrl(String serverUrl)
Define a URL do servidor para enviar os resultados de acessibilidade. O padrão é https://axe.deque.com.
Parâmetros:
serverUrl- URL do servidor para onde enviar os resultados de acessibilidade
Retorna:
AxeWatcherOptions- A instância atual para encadeamento de métodos
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setServerUrl("https://custom.axe-instance.com");setBuildId(String buildId)
Define o ID da build para executores de teste em paralelo. Quando não é nulo, isso permite que executores de teste em paralelo gerem resultados que aparecem como uma única execução de teste no Axe Developer Hub.
Parâmetros:
buildId- ID da build para agregar resultados, tipicamente um ID de build de CI/CD
Retorna:
AxeWatcherOptions- A instância atual para encadeamento de métodos
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
// Using a CI build ID from an environment variable
options.setBuildId(System.getenv("GITHUB_RUN_ID"));setAutoAnalyze(boolean autoAnalyze)
Define se a página em teste deve ser analisada automaticamente. O padrão é true.
Parâmetros:
autoAnalyze- Se deve analisar automaticamente a página em teste
Retorna:
AxeWatcherOptions- A instância atual para encadeamento de métodos
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
// Disable automatic analysis for manual control
options.setAutoAnalyze(false);setRunContext(AxeRunContext runContext)
Define o contexto da página em teste para limitar o escopo do que é analisado ou excluir certos elementos da análise.
Parâmetros:
runContext- Contexto de execução para análise com axe-core
Retorna:
AxeWatcherOptions- A instância atual para encadeamento de métodos
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
// Only analyze main content and exclude navigation
AxeRunContext context = new AxeRunContext()
.setInclude(Arrays.asList("#main-content"))
.setExclude(Arrays.asList("#navigation"));
options.setRunContext(context);setRunOptions(AxeRunOptions runOptions)
Define opções adicionais para a análise com axe-core, como quais regras executar ou desativar.
Parâmetros:
runOptions- Opções de execução para análise com axe-core
Retorna:
AxeWatcherOptions- A instância atual para encadeamento de métodos
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
// Disable the color contrast rule and focus on WCAG 2.1 AA
Map<String, AxeRuleOptions> rules = new HashMap<>();
rules.put("color-contrast", new AxeRuleOptions().setEnabled(false));
AxeRunOnly runOnly = new AxeRunOnly()
.setType("tag")
.setValues(Arrays.asList("wcag21aa"));
AxeRunOptions runOptions = new AxeRunOptions()
.setRules(rules)
.setRunOnly(runOnly);
options.setRunOptions(runOptions);setExcludeUrlPatterns(String[] excludeUrlPatterns)
Define padrões de URL para excluir da análise. Usa a biblioteca Minimatch para corresponder URLs.
Parâmetros:
excludeUrlPatterns- Padrões de URL para excluir da análise
Retorna:
AxeWatcherOptions- A instância atual para encadeamento de métodos
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
// Exclude login pages and admin dashboard
options.setExcludeUrlPatterns(new String[] {
"https://example.com/login*",
"https://example.com/admin/*"
});setGit(boolean git)
Define se o Watcher coleta informações do Git para a execução de teste atual. O padrão é true. Defina como false ao executar em ambientes sem Git ou quando a coleta de dados do Git não for necessária.
Parâmetros:
git- Se deve coletar informações do Git
Retorna:
AxeWatcherOptions- A instância atual para encadeamento de métodos
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
// Disable Git info collection
options.setGit(false);setGitInfo(AxeWatcherGitInfo gitInfo)
Define metadados Git explícitos para a execução de teste atual, ignorando a detecção automática do Git. Use isso quando seus testes ocorrerem em um repositório separado do repositório em teste, ou em ambientes de CI onde a detecção automática do Git é pouco confiável (por exemplo, clones superficiais ou estado de HEAD destacado).
Quando um AxeWatcherGitInfo não nulo é definido, ele tem precedência sobre setGit(boolean) — os metadados fornecidos são enviados mesmo se setGit(false) foi chamado anteriormente. Passar null limpa quaisquer metadados definidos anteriormente e reverte para o comportamento controlado por setGit(boolean).
Veja Fornecendo Metadados Git e AxeWatcherGitInfo para mais informações.
Parâmetros:
gitInfo- Metadados Git explícitos para usar. Passenullpara limpar os metadados definidos anteriormente e reverter para o comportamento de detecção automática.
Retorna:
AxeWatcherOptions- A instância atual para encadeamento de métodos
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey(System.getenv("AXE_DEVELOPER_HUB_API_KEY"))
.setProjectId(System.getenv("AXE_DEVELOPER_HUB_PROJECT_ID"))
.setGitInfo(new AxeWatcherGitInfo()
.setCommitSha(System.getenv("GIT_COMMIT"))
.setBranch(System.getenv("GIT_BRANCH"))
.setDefaultBranch("main"));setConfigurationOverrides(ConfigurationOverrides configurationOverrides)
Define substituições de configuração com base nas configurações globais de configuração da conta Axe da sua organização.
Parâmetros:
configurationOverrides- Substituições de configuração
Retorna:
AxeWatcherOptions- A instância atual para encadeamento de métodos
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
// Override to use WCAG 2.2 AA and enable best practices
ConfigurationOverrides overrides = new ConfigurationOverrides()
.setAccessibilityStandard(ConfigurationOverrides.AccessibilityStandard.WCAG22AA)
.setEnableBestPractices(true);
options.setConfigurationOverrides(overrides);setTakeScreenshots(boolean takeScreenshots)
Define se deve capturar uma captura de tela da página quando violações forem encontradas.
Parâmetros:
takeScreenshots- Se deve capturar capturas de tela quando violações forem encontradas (padrão:false)
Retorna:
AxeWatcherOptions- A instância atual para encadeamento de métodos
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setTakeScreenshots(true);setScreenshotDir(String screenshotDir)
Define o diretório onde capturas de tela são salvas localmente, além de serem enviadas para o Axe Developer Hub. Não tem efeito a menos que setTakeScreenshots(true) também seja chamado.
Quando definido, as capturas de tela são escritas em {screenshotDir}/YYYYMMDDTHHmmssSSS-{screenshot_id}.png. Caminhos relativos são resolvidos em relação ao diretório de trabalho do JVM. Se a criação de diretórios ou a gravação de arquivos falhar, um aviso é registrado e o conjunto de testes continua.
Parâmetros:
screenshotDir- Diretório para salvar capturas de tela. Informenullou uma string vazia para desativar o salvamento local.
Retorna:
AxeWatcherOptions- A instância atual para encadeamento de métodos
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions()
.setTakeScreenshots(true)
.setScreenshotDir("./axe-screenshots");setElementInternals(boolean elementInternals)
Habilita o suporte ao ElementInternals para elementos personalizados. Quando ativado, o Axe Watcher coleta funções ARIA e propriedades definidas via API ElementInternals, reduzindo falsos positivos em páginas que usam elementos personalizados com attachInternals(). Requer versão 4.12.0 ou superior do axe-core.
Parâmetros:
elementInternals- Se deve habilitar o suporte ao ElementInternals (padrão:false)
Retorna:
AxeWatcherOptions- A instância atual para encadeamento de métodos
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions()
.setElementInternals(true);getApiKey()
Obtém a chave de API atual.
Retorna:
String- A chave API atual
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setApiKey("my-api-key");
String apiKey = options.getApiKey(); // Returns "my-api-key"getProjectId()
Obtém o ID do projeto atual. O ID do projeto identifica o projeto que recebe os resultados de acessibilidade do axe Watcher.
Retorna:
String- O ID do projeto atual
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setProjectId("my-project-ID"); // should be a uuid identifying the project
String projectId = options.getProjectId(); // Returns the project IDgetServerUrl()
Obtém a URL do servidor atual.
Retorna:
String- A URL do servidor atual
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
String serverUrl = options.getServerUrl(); // Returns default "https://axe.deque.com"getBuildId()
Obtém o ID da compilação atual.
Retorna:
String- O ID da compilação atual
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setBuildId("build-123");
String buildId = options.getBuildId(); // Returns "build-123"getAutoAnalyze()
Obtém se a análise automática está habilitada.
Retorna:
boolean- Se a análise automática está habilitada
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
boolean autoAnalyze = options.getAutoAnalyze(); // Returns true (default)getRunContext()
Obtém o contexto de execução atual.
Retorna:
AxeRunContext- O contexto de execução atual
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
AxeRunContext context = new AxeRunContext();
options.setRunContext(context);
AxeRunContext currentContext = options.getRunContext();getRunOptions()
Obtém as opções de execução atuais.
Retorna:
AxeRunOptions- As opções de execução atuais
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
AxeRunOptions runOptions = new AxeRunOptions();
options.setRunOptions(runOptions);
AxeRunOptions currentOptions = options.getRunOptions();getExcludeUrlPatterns()
Obtém os padrões de URL a serem excluídos atuais.
Retorna:
String[]- Os padrões de URL a serem excluídos atuais
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setExcludeUrlPatterns(new String[] {"https://example.com/login*"});
String[] patterns = options.getExcludeUrlPatterns();getGit()
Obtém se a coleta de informações do Git está habilitada.
Retorna:
boolean-truese a coleta de informações do Git está habilitada (padrão), falso se desabilitada
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
boolean git = options.getGit(); // Returns true (default)getGitInfo()
Obtém os metadados explícitos do Git configurados atualmente ou null se nenhum metadado explícito tiver sido definido.
Retorna:
AxeWatcherGitInfo- Os metadados explícitos do Git atuais, ounullse nenhum estiver definido
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions()
.setGitInfo(new AxeWatcherGitInfo().setBranch("main"));
AxeWatcherGitInfo gitInfo = options.getGitInfo(); // Returns the configured AxeWatcherGitInfogetConfigurationOverrides()
Obtém as substituições de configuração atuais.
Retorna:
ConfigurationOverrides- As substituições de configuração atuais
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
ConfigurationOverrides overrides = new ConfigurationOverrides();
options.setConfigurationOverrides(overrides);
ConfigurationOverrides current = options.getConfigurationOverrides();getTakeScreenshots()
Obtém se a captura de tela está habilitada.
Retorna:
boolean-truese capturas de tela são feitas quando violações são encontradas,falsecaso contrário
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setTakeScreenshots(true);
boolean takeScreenshots = options.getTakeScreenshots(); // Returns truegetScreenshotDir()
Obtém o diretório de capturas de tela atual, ou null se nenhuma pasta local de salvamento tiver sido definida.
Retorna:
String- O diretório de capturas de tela atual, ounull
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions()
.setScreenshotDir("./screenshots");
String dir = options.getScreenshotDir(); // Returns "./screenshots"getElementInternals()
Obtém se o suporte a ElementInternals está ativado.
Retorna:
boolean-truese o suporte a ElementInternals estiver ativado,falsecaso contrário
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
boolean enabled = options.getElementInternals(); // Returns false (default)toJson()
Serializa a instância AxeWatcherOptions para uma string JSON.
Retorna:
String- Uma representação em string JSON das opções
Lança:
RuntimeException- SeconfigurationOverrideserunOptions.runOnlyforem usados juntos (estes são mutuamente exclusivos)
Exemplo:
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey("my-api-key")
.setProjectId("my-project-id")
.setServerUrl("https://custom.axe-instance.com");
String json = options.toJson();Limitações de Configuração
Ao configurar AxeWatcherOptions, esteja ciente das seguintes restrições:
-
A chave de API é necessária:
options.setApiKey("your-api-key"); // Required -
O ID do Projeto é necessário:
options.setProjectId("your-project-ID"); // Required -
Opções mutuamente exclusivas:
Você não pode usar
runOptions.runOnlyeconfigurationOverrides.accessibilityStandardjuntos. Se você precisar definir um padrão específico de acessibilidade, useConfigurationOverridesconforme mostrado abaixo:// Correct: Using ConfigurationOverrides options.setConfigurationOverrides( new ConfigurationOverrides() .setAccessibilityStandard(ConfigurationOverrides.AccessibilityStandard.WCAG22AA) ); // Correct: Using RunOptions.runOnly options.setRunOptions( new AxeRunOptions() .setRunOnly(new AxeRunOnly().setType("tag").setValues(Arrays.asList("wcag22aa"))) ); // Incorrect: Using both together will throw an exception options.setConfigurationOverrides( new ConfigurationOverrides() .setAccessibilityStandard(ConfigurationOverrides.AccessibilityStandard.WCAG22AA) ).setRunOptions( new AxeRunOptions() .setRunOnly(new AxeRunOnly().setType("tag").setValues(Arrays.asList("wcag21aa"))) );
