Classe AxeWatcherOptions
Configura Axe Watcher per i test di accessibilità nei test Java di Selenium e Playwright con opzioni personalizzabili
La classe AxeWatcherOptions fornisce opzioni di configurazione per le integrazioni di Axe Watcher con Selenium e Playwright Java. Questa classe consente di personalizzare come Axe Watcher esegue i test di accessibilità durante i test automatici del browser, inclusi i dettagli di connessione al server, il comportamento dell'esecuzione dei test e gli standard di accessibilità.
Costruttore
AxeWatcherOptions()
Crea una nuova istanza di AxeWatcherOptions con le impostazioni predefinite. I valori predefiniti sono:
serverUrl:https://axe.deque.comautoAnalyze:truegit:true
AxeWatcherOptions options = new AxeWatcherOptions();Metodi
setApiKey(String apiKey)
Imposta la chiave API per l'autenticazione con Axe Developer Hub. Questo è richiesto per utilizzare Axe Watcher.
Parametri:
apiKey- La tua chiave API di Axe Developer Hub
Restituisce:
AxeWatcherOptions- L'istanza corrente per concatenare i metodi
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setApiKey("your-api-key-here");setProjectId(String projectId)
Parametri:
projectId- L'ID del progetto del progetto per ricevere i risultati di accessibilità
Restituisce:
AxeWatcherOptions- L'istanza corrente per concatenare i metodi
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setProjectId("your-project-ID-here"); // a uuid identifying the projectsetServerUrl(String serverUrl)
Imposta l'URL del server a cui inviare i risultati di accessibilità. Il valore predefinito è https://axe.deque.com.
Parametri:
serverUrl- URL del server a cui inviare i risultati di accessibilità
Restituisce:
AxeWatcherOptions- L'istanza corrente per concatenare i metodi
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setServerUrl("https://custom.axe-instance.com");setBuildId(String buildId)
Imposta l'ID build per i test runner paralleli. Quando non è nullo, questo consente ai test runner paralleli di generare risultati che appaiono come un singolo test nell'Axe Developer Hub.
Parametri:
buildId- ID build per aggregare i risultati, tipicamente un ID build di CI/CD
Restituisce:
AxeWatcherOptions- L'istanza corrente per concatenare i metodi
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
// Using a CI build ID from an environment variable
options.setBuildId(System.getenv("GITHUB_RUN_ID"));setAutoAnalyze(boolean autoAnalyze)
Imposta se analizzare automaticamente la pagina sotto test. Il valore predefinito è true.
Parametri:
autoAnalyze- Se analizzare automaticamente la pagina sotto test
Restituisce:
AxeWatcherOptions- L'istanza corrente per concatenare i metodi
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
// Disable automatic analysis for manual control
options.setAutoAnalyze(false);setRunContext(AxeRunContext runContext)
Imposta il contesto della pagina sotto test per limitare l'ambito dell'analisi o escludere alcuni elementi dall'analisi.
Parametri:
runContext- Contesto di esecuzione per l'analisi di axe-core
Restituisce:
AxeWatcherOptions- L'istanza corrente per concatenare i metodi
Esempio:
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)
Imposta opzioni aggiuntive per l'analisi di axe-core, come quali regole eseguire o disabilitare.
Parametri:
runOptions- Opzioni di esecuzione per l'analisi di axe-core
Restituisce:
AxeWatcherOptions- L'istanza corrente per concatenare i metodi
Esempio:
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)
Imposta i modelli URL da escludere dall'analisi. Utilizza la libreria Minimatch per confrontare gli URL.
Parametri:
excludeUrlPatterns- Modelli URL da escludere dall'analisi
Restituisce:
AxeWatcherOptions- L'istanza corrente per concatenare i metodi
Esempio:
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)
Stabilisce se Watcher raccoglie informazioni Git per l'esecuzione del test corrente. Il valore predefinito è true. Impostare su false quando si esegue in ambienti senza Git, o quando la raccolta dei dati Git non è necessaria.
Parametri:
git- Se raccogliere informazioni Git
Restituisce:
AxeWatcherOptions- L'istanza corrente per concatenare i metodi
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
// Disable Git info collection
options.setGit(false);setGitInfo(AxeWatcherGitInfo gitInfo)
Imposta metadati Git espliciti per l'esecuzione del test corrente, aggirando il rilevamento automatico di Git. Usa questa opzione quando i tuoi test vengono eseguiti in un repository separato da quello sotto test, o in ambienti CI dove il rilevamento automatico di Git è inaffidabile (ad esempio, clonazioni superficiali o stato 'detached HEAD').
Quando viene impostato un AxeWatcherGitInfo non nullo, esso ha la precedenza su setGit(boolean) — i metadati forniti vengono inviati anche se setGit(false) è stata precedentemente chiamata. Passando null vengono cancellati i metadati precedentemente impostati e si ritorna al comportamento controllato da setGit(boolean).
Vedi Fornitura dei Metadati Git e AxeWatcherGitInfo per maggiori informazioni.
Parametri:
gitInfo- Metadati Git espliciti da usare. Passanullper cancellare i metadati precedentemente impostati e tornare al comportamento di auto-rilevamento.
Restituisce:
AxeWatcherOptions- L'istanza corrente per concatenare i metodi
Esempio:
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)
Imposta le sovrascritture di configurazione in base alle impostazioni di configurazione globale dell'Account Axe della tua organizzazione.
Parametri:
configurationOverrides- Sovrascritture di configurazione
Restituisce:
AxeWatcherOptions- L'istanza corrente per concatenare i metodi
Esempio:
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)
Stabilisce se catturare uno screenshot della pagina quando vengono trovate delle violazioni.
Parametri:
takeScreenshots- Se catturare screenshot quando vengono trovate violazioni (predefinito:false)
Restituisce:
AxeWatcherOptions- L'istanza corrente per concatenare i metodi
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setTakeScreenshots(true);setScreenshotDir(String screenshotDir)
Imposta la directory dove gli screenshot vengono salvati localmente, oltre ad essere caricati su Axe Developer Hub. Non ha effetto a meno che non venga chiamato anche setTakeScreenshots(true).
Quando impostato, gli screenshot vengono scritti in {screenshotDir}/YYYYMMDDTHHmmssSSS-{screenshot_id}.png. I percorsi relativi vengono risolti rispetto alla directory di lavoro della JVM. Se la creazione della directory o la scrittura del file fallisce, viene registrato un avviso e la suite di test continua.
Parametri:
screenshotDir- Directory in cui salvare gli screenshot. Passanullo una stringa vuota per disabilitare il salvataggio locale.
Restituisce:
AxeWatcherOptions- L'istanza corrente per concatenare i metodi
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions()
.setTakeScreenshots(true)
.setScreenshotDir("./axe-screenshots");setElementInternals(boolean elementInternals)
Abilita il supporto per ElementInternals per elementi personalizzati. Quando abilitato, Axe Watcher raccoglie i ruoli e le proprietà ARIA impostati tramite l'API ElementInternals, riducendo i falsi positivi su pagine che utilizzano elementi personalizzati con attachInternals(). Richiede la versione 4.12.0 o successiva di axe-core.
Parametri:
elementInternals- Se abilitare il supporto per ElementInternals (predefinito:false)
Restituisce:
AxeWatcherOptions- L'istanza corrente per concatenare i metodi
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions()
.setElementInternals(true);getApiKey()
Ottiene la chiave API corrente.
Restituisce:
String- La chiave API corrente
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setApiKey("my-api-key");
String apiKey = options.getApiKey(); // Returns "my-api-key"getProjectId()
Ottiene l'ID del progetto corrente. L'ID del progetto identifica il progetto che riceve i risultati dell'accessibilità di axe Watcher.
Restituisce:
String- L'ID del progetto corrente
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setProjectId("my-project-ID"); // should be a uuid identifying the project
String projectId = options.getProjectId(); // Returns the project IDgetServerUrl()
Ottiene l'URL del server corrente.
Restituisce:
String- L'URL del server corrente
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
String serverUrl = options.getServerUrl(); // Returns default "https://axe.deque.com"getBuildId()
Ottiene l'ID della build corrente.
Restituisce:
String- L'ID della build corrente
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setBuildId("build-123");
String buildId = options.getBuildId(); // Returns "build-123"getAutoAnalyze()
Ottiene se l'analisi automatica è abilitata.
Restituisce:
boolean- Se l'analisi automatica è abilitata
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
boolean autoAnalyze = options.getAutoAnalyze(); // Returns true (default)getRunContext()
Ottiene il contesto di esecuzione corrente.
Restituisce:
AxeRunContext- Il contesto di esecuzione corrente
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
AxeRunContext context = new AxeRunContext();
options.setRunContext(context);
AxeRunContext currentContext = options.getRunContext();getRunOptions()
Ottiene le opzioni di esecuzione correnti.
Restituisce:
AxeRunOptions- Le opzioni di esecuzione correnti
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
AxeRunOptions runOptions = new AxeRunOptions();
options.setRunOptions(runOptions);
AxeRunOptions currentOptions = options.getRunOptions();getExcludeUrlPatterns()
Ottiene gli schemi URL da escludere correnti.
Restituisce:
String[]- Gli schemi URL da escludere correnti
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setExcludeUrlPatterns(new String[] {"https://example.com/login*"});
String[] patterns = options.getExcludeUrlPatterns();getGit()
Ottiene se la raccolta delle informazioni di Git è abilitata.
Restituisce:
boolean-truese la raccolta delle info di Git è abilitata (predefinito), false se disabilitata
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
boolean git = options.getGit(); // Returns true (default)getGitInfo()
Ottiene i metadati Git espliciti attualmente configurati, o null se non sono stati impostati metadati espliciti.
Restituisce:
AxeWatcherGitInfo- I metadati Git espliciti correnti, onullse non impostati
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions()
.setGitInfo(new AxeWatcherGitInfo().setBranch("main"));
AxeWatcherGitInfo gitInfo = options.getGitInfo(); // Returns the configured AxeWatcherGitInfogetConfigurationOverrides()
Ottiene le sovrascritture della configurazione corrente.
Restituisce:
ConfigurationOverrides- Le sovrascritture della configurazione corrente
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
ConfigurationOverrides overrides = new ConfigurationOverrides();
options.setConfigurationOverrides(overrides);
ConfigurationOverrides current = options.getConfigurationOverrides();getTakeScreenshots()
Ottiene se la cattura degli screenshot è abilitata.
Restituisce:
boolean-truese gli screenshot vengono catturati quando vengono trovate violazioni,falsealtrimenti
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setTakeScreenshots(true);
boolean takeScreenshots = options.getTakeScreenshots(); // Returns truegetScreenshotDir()
Ottiene la directory degli screenshot corrente, o null se non è stata impostata una directory di salvataggio locale.
Restituisce:
String- La directory degli screenshot corrente, onull
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions()
.setScreenshotDir("./screenshots");
String dir = options.getScreenshotDir(); // Returns "./screenshots"getElementInternals()
Ottiene se il supporto a ElementInternals è abilitato.
Restituisce:
boolean-truese il supporto a ElementInternals è abilitato,falsealtrimenti
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions();
boolean enabled = options.getElementInternals(); // Returns false (default)toJson()
Serializza l'istanza AxeWatcherOptions in una stringa JSON.
Restituisce:
String- Una stringa JSON che rappresenta le opzioni
Genera eccezioni:
RuntimeException- SeconfigurationOverrideserunOptions.runOnlysono usati insieme (sono mutuamente esclusivi)
Esempio:
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey("my-api-key")
.setProjectId("my-project-id")
.setServerUrl("https://custom.axe-instance.com");
String json = options.toJson();Limitazioni della configurazione
Quando si configura AxeWatcherOptions, tenere presente le seguenti limitazioni:
-
La chiave API è richiesta:
options.setApiKey("your-api-key"); // Required -
È richiesto il Project ID:
options.setProjectId("your-project-ID"); // Required -
Opzioni mutuamente esclusive:
Non è possibile utilizzare insieme
runOptions.runOnlyeconfigurationOverrides.accessibilityStandard. Se è necessario impostare uno standard di accessibilità specifico, utilizzareConfigurationOverridescome mostrato di seguito:// 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"))) );
