Clase AxeWatcherOptions
Configure Axe Watcher para pruebas de accesibilidad en pruebas Java de Selenium y Playwright con opciones personalizables
La clase AxeWatcherOptions proporciona opciones de configuración para las integraciones de Axe Watcher con Selenium y Playwright Java. Esta clase permite personalizar cómo Axe Watcher realiza pruebas de accesibilidad durante las pruebas automatizadas de navegador, incluyendo detalles de conexión del servidor, comportamiento de ejecución de pruebas y estándares de accesibilidad.
Constructor
AxeWatcherOptions()
Crea una nueva instancia de AxeWatcherOptions con configuraciones predeterminadas. Los valores predeterminados son:
serverUrl:https://axe.deque.comautoAnalyze:truegit:true
AxeWatcherOptions options = new AxeWatcherOptions();Métodos
setApiKey(String apiKey)
Establece la clave API para autenticar con Axe Developer Hub. Esto es necesario para usar Axe Watcher.
Parámetros:
apiKey- Tu clave API de Axe Developer Hub
Devuelve:
AxeWatcherOptions- La instancia actual para el encadenamiento de métodos
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setApiKey("your-api-key-here");setProjectId(String projectId)
Parámetros:
projectId- El ID del proyecto que recibirá los resultados de accesibilidad
Devuelve:
AxeWatcherOptions- La instancia actual para el encadenamiento de métodos
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setProjectId("your-project-ID-here"); // a uuid identifying the projectsetServerUrl(String serverUrl)
Establece la URL del servidor para enviar los resultados de accesibilidad. Su valor predeterminado es https://axe.deque.com.
Parámetros:
serverUrl- URL del servidor para enviar los resultados de accesibilidad
Devuelve:
AxeWatcherOptions- La instancia actual para el encadenamiento de métodos
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setServerUrl("https://custom.axe-instance.com");setBuildId(String buildId)
Establece el ID de construcción para ejecutores de pruebas en paralelo. Cuando no es nulo, esto permite que los ejecutores de pruebas en paralelo generen resultados que se muestren como una única ejecución de prueba en Axe Developer Hub.
Parámetros:
buildId- ID de construcción bajo el cual agrupar los resultados, típicamente un ID de construcción de CI/CD
Devuelve:
AxeWatcherOptions- La instancia actual para el encadenamiento de métodos
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
// Using a CI build ID from an environment variable
options.setBuildId(System.getenv("GITHUB_RUN_ID"));setAutoAnalyze(boolean autoAnalyze)
Establece si se debe analizar la página en prueba automáticamente. Su valor predeterminado es true.
Parámetros:
autoAnalyze- Si se debe analizar automáticamente la página en prueba
Devuelve:
AxeWatcherOptions- La instancia actual para el encadenamiento de métodos
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
// Disable automatic analysis for manual control
options.setAutoAnalyze(false);setRunContext(AxeRunContext runContext)
Establece el contexto de la página en prueba para ya sea limitar el alcance de lo que se analiza o excluir ciertos elementos del análisis.
Parámetros:
runContext- Contexto de ejecución para el análisis de axe-core
Devuelve:
AxeWatcherOptions- La instancia actual para el encadenamiento de métodos
Ejemplo:
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)
Establece opciones adicionales para el análisis de axe-core, como qué reglas ejecutar o deshabilitar.
Parámetros:
runOptions- Opciones de ejecución para el análisis de axe-core
Devuelve:
AxeWatcherOptions- La instancia actual para el encadenamiento de métodos
Ejemplo:
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)
Establece los patrones de URL que se deben excluir del análisis. Utiliza la biblioteca Minimatch para hacer coincidir las URLs.
Parámetros:
excludeUrlPatterns- Patrones de URL a excluir del análisis
Devuelve:
AxeWatcherOptions- La instancia actual para encadenar métodos
Ejemplo:
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)
Establece si Watcher recopila información de Git para la ejecución de la prueba actual. Por defecto está en true. Se debe establecer en false al ejecutar en entornos sin Git, o cuando no se necesita la recopilación de datos de Git.
Parámetros:
git- Si se debe recopilar información de Git
Devuelve:
AxeWatcherOptions- La instancia actual para encadenar métodos
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
// Disable Git info collection
options.setGit(false);setGitInfo(AxeWatcherGitInfo gitInfo)
Establece metadatos explícitos de Git para la ejecución de prueba actual, omitiendo la detección automática de Git. Usa esto cuando tus pruebas se ejecutan en un repositorio separado del repositorio bajo prueba, o en entornos de CI donde la detección automática de Git es poco confiable (por ejemplo, clonaciones superficiales o estado de HEAD separado).
Cuando se establece un AxeWatcherGitInfo no nulo, tiene prioridad sobre setGit(boolean): los metadatos proporcionados se envían incluso si setGit(false) se ha llamado previamente. Pasar null borra cualquier metadato previamente establecido y revierte al comportamiento controlado por setGit(boolean).
Consulta Proporcionar Metadatos de Git y AxeWatcherGitInfo para obtener más información.
Parámetros:
gitInfo- Metadatos explícitos de Git para usar. Pasenullpara borrar los metadatos previamente establecidos y volver al comportamiento de detección automática.
Devuelve:
AxeWatcherOptions- La instancia actual para encadenar métodos
Ejemplo:
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)
Establece las anulaciones de configuración basadas en la configuración global de la cuenta de Axe de tu organización.
Parámetros:
configurationOverrides- Anulaciones de configuración
Devuelve:
AxeWatcherOptions- La instancia actual para encadenar métodos
Ejemplo:
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)
Establece si se debe capturar una captura de pantalla de la página cuando se encuentran violaciones.
Parámetros:
takeScreenshots- Si se deben capturar capturas de pantalla cuando se encuentran violaciones (predeterminado:false)
Devuelve:
AxeWatcherOptions- La instancia actual para encadenar métodos
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setTakeScreenshots(true);setScreenshotDir(String screenshotDir)
Establece el directorio donde se guardan localmente las capturas de pantalla, además de subirse a Axe Developer Hub. No tiene efecto a menos que también se llame a setTakeScreenshots(true).
Cuando se establece, las capturas de pantalla se escriben en {screenshotDir}/YYYYMMDDTHHmmssSSS-{screenshot_id}.png. Las rutas relativas se resuelven respecto al directorio de trabajo de la JVM. Si falla la creación del directorio o la escritura del archivo, se registra una advertencia y la suite de pruebas continúa.
Parámetros:
screenshotDir- Directorio para guardar las capturas de pantalla. Pasenullo una cadena vacía para deshabilitar el guardado local.
Devuelve:
AxeWatcherOptions- La instancia actual para encadenar métodos
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions()
.setTakeScreenshots(true)
.setScreenshotDir("./axe-screenshots");setElementInternals(boolean elementInternals)
Habilita el soporte de ElementInternals para elementos personalizados. Cuando está habilitado, Axe Watcher recopila roles y propiedades de ARIA establecidos a través de la API ElementInternals, reduciendo los falsos positivos en páginas que utilizan elementos personalizados con attachInternals(). Requiere la versión 4.12.0 o posterior de axe-core.
Parámetros:
elementInternals- Si se debe habilitar el soporte de ElementInternals (predeterminado:false)
Devuelve:
AxeWatcherOptions- La instancia actual para encadenar métodos
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions()
.setElementInternals(true);getApiKey()
Obtiene la clave API actual.
Devuelve:
String- La clave API actual
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setApiKey("my-api-key");
String apiKey = options.getApiKey(); // Returns "my-api-key"getProjectId()
Obtiene el ID del proyecto actual. El ID del proyecto identifica el proyecto que recibe los resultados de accesibilidad de axe Watcher.
Devuelve:
String- El ID del proyecto actual
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setProjectId("my-project-ID"); // should be a uuid identifying the project
String projectId = options.getProjectId(); // Returns the project IDgetServerUrl()
Obtiene la URL del servidor actual.
Devuelve:
String- La URL del servidor actual
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
String serverUrl = options.getServerUrl(); // Returns default "https://axe.deque.com"getBuildId()
Obtiene el ID de la compilación actual.
Devuelve:
String- El ID de la compilación actual
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setBuildId("build-123");
String buildId = options.getBuildId(); // Returns "build-123"getAutoAnalyze()
Obtiene si el análisis automático está habilitado.
Devuelve:
boolean- Si el análisis automático está habilitado
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
boolean autoAnalyze = options.getAutoAnalyze(); // Returns true (default)getRunContext()
Obtiene el contexto de ejecución actual.
Devuelve:
AxeRunContext- El contexto de ejecución actual
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
AxeRunContext context = new AxeRunContext();
options.setRunContext(context);
AxeRunContext currentContext = options.getRunContext();getRunOptions()
Obtiene las opciones de ejecución actuales.
Devuelve:
AxeRunOptions- Las opciones de ejecución actuales
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
AxeRunOptions runOptions = new AxeRunOptions();
options.setRunOptions(runOptions);
AxeRunOptions currentOptions = options.getRunOptions();getExcludeUrlPatterns()
Obtiene los patrones de URL excluidos actuales.
Devuelve:
String[]- Los patrones de URL excluidos actuales
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setExcludeUrlPatterns(new String[] {"https://example.com/login*"});
String[] patterns = options.getExcludeUrlPatterns();getGit()
Obtiene si la recopilación de información de Git está habilitada.
Devuelve:
boolean-truesi la recopilación de información de Git está habilitada (predeterminado), false si está deshabilitada
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
boolean git = options.getGit(); // Returns true (default)getGitInfo()
Obtiene los metadatos explícitos de Git actualmente configurados, o null si no se ha establecido ningún metadato explícito.
Devuelve:
AxeWatcherGitInfo- Los metadatos explícitos de Git actuales, onullsi no se establece ninguno
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions()
.setGitInfo(new AxeWatcherGitInfo().setBranch("main"));
AxeWatcherGitInfo gitInfo = options.getGitInfo(); // Returns the configured AxeWatcherGitInfogetConfigurationOverrides()
Obtiene las anulaciones de configuración actuales.
Devuelve:
ConfigurationOverrides- Las anulaciones de configuración actuales
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
ConfigurationOverrides overrides = new ConfigurationOverrides();
options.setConfigurationOverrides(overrides);
ConfigurationOverrides current = options.getConfigurationOverrides();getTakeScreenshots()
Obtiene si la captura de pantalla está habilitada.
Devuelve:
boolean-truesi se capturan capturas de pantalla cuando se encuentran violaciones,falsede lo contrario
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
options.setTakeScreenshots(true);
boolean takeScreenshots = options.getTakeScreenshots(); // Returns truegetScreenshotDir()
Obtiene el directorio de capturas de pantalla actual, o null si no se ha establecido un directorio de guardado local.
Devuelve:
String- El directorio de capturas de pantalla actual, onull
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions()
.setScreenshotDir("./screenshots");
String dir = options.getScreenshotDir(); // Returns "./screenshots"getElementInternals()
Obtiene si el soporte de ElementInternals está habilitado.
Devuelve:
boolean-truesi el soporte de ElementInternals está habilitado,falsede lo contrario
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions();
boolean enabled = options.getElementInternals(); // Returns false (default)toJson()
Serializa la instancia AxeWatcherOptions a un texto JSON.
Devuelve:
String- Una representación en texto JSON de las opciones
Lanza:
RuntimeException- Si se usanconfigurationOverridesyrunOptions.runOnlyjuntos (son mutuamente excluyentes)
Ejemplo:
AxeWatcherOptions options = new AxeWatcherOptions()
.setApiKey("my-api-key")
.setProjectId("my-project-id")
.setServerUrl("https://custom.axe-instance.com");
String json = options.toJson();Limitaciones de Configuración
Al configurar AxeWatcherOptions, tenga en cuenta las siguientes restricciones:
-
La clave API es necesaria:
options.setApiKey("your-api-key"); // Required -
El ID del Proyecto es necesario:
options.setProjectId("your-project-ID"); // Required -
Opciones mutuamente excluyentes:
No puede usar ambos
runOptions.runOnlyyconfigurationOverrides.accessibilityStandardjuntos. Si necesita establecer un estándar de accesibilidad específico, useConfigurationOverridescomo se muestra a continuación:// 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"))) );
