Referencia de API para la versión de JavaScript y TypeScript de Watcher
La referencia de API para el paquete @axe-core/watcher
Esta guía de referencia describe las API proporcionadas por el paquete @axe-core/watcher (también conocido como Axe Watcher o simplemente Watcher) para JavaScript y TypeScript.
Interfaz AxeConfiguration
La propiedad axe (un parámetro pasado a funciones de configuración) es el medio habitual para cambiar su AxeConfiguration para que Axe Watcher configure la prueba de accesibilidad. Las siguientes propiedades están contenidas en AxeConfiguration:
| Nombre | Tipo | Requerido | Descripción | |
|---|---|---|---|---|
apiKey |
string (que contiene un UUID) |
sí | Tu clave secreta personal de API. | |
autoAnalyze |
boolean |
no | Si Watcher realizará automáticamente un análisis de accesibilidad en su página. El valor predeterminado es true. |
|
buildID |
string |
no | El valor predeterminado es null, lo cual se recomienda para ejecuciones de prueba de un solo proceso (no paralelizadas). Para las ejecuciones de prueba en paralelo, todos los trabajadores deben tener la misma cadena buildID no nula. |
|
configurationOverrides |
ConfigurationOverrides |
no | Permite que se sobrescriba configuraciones globales. | |
elementInternals |
boolean |
no | Habilita el soporte de ElementInternals para elementos personalizados. Cuando true, Watcher recopila roles y propiedades ARIA establecidos mediante la API ElementInternals, reduciendo los falsos positivos en páginas que usan elementos personalizados con attachInternals(). Requiere la versión 4.12.0 o posterior de axe-core. El valor predeterminado es false. |
|
excludeUrlPatterns |
string[] |
no | Excluye las URL que coinciden con los patrones especificados de minimatch de ser escaneadas. | |
git |
`boolean | GitConfig` | no | Controla la recopilación de metadatos de Git. Por defecto, es true (detección automática). Configúrelo en false para deshabilitarlo, o proporcione un objeto GitConfig para suministrar metadatos explícitos. |
projectId |
string (que contiene un UUID) |
sí | El ID del proyecto para recibir los resultados de las ejecuciones de prueba de Watcher. | |
runContext |
axe.ElementContext |
no | Pasado a axe-core. | |
runOptions |
RunOptions |
no | Pasado a axe-core. | |
serverURL |
string |
no | El servidor de Axe Developer Hub para enviar los resultados. Establezca esto si su organización utiliza una instancia regional, nube privada o implementación local. El valor predeterminado es https://axe.deque.com. |
|
sessionId |
string |
no | Obsoleto. Este es el ID de sesión de esta instancia. Es poco probable que necesite cambiar este valor. Consulte buildId en su lugar. |
|
testingTypes |
string[] |
no | Para usar con Cypress para especificar pruebas de componentes o de extremo a extremo (o ambas) | |
timeout |
Timeouts |
no | Un objeto Timeouts que representa milisegundos hasta que los métodos Controlador especificados expiran y fallan. |
apiKey
(Requerido) El valor de apiKey es una de las dos propiedades (apiKey y projectId) que deben establecerse en su AxeConfiguration. Puede obtener su valor desde la Página de administración de claves API .
axe: {
apiKey: process.env.AXE_DEVELOPER_HUB_API_KEY
}autoAnalyze
(Opcional) Establezca este valor en false para evitar que las páginas se analicen automáticamente. Para obtener más información sobre el modo manual, consulte Controlar Tus Análisis.
axe: {
autoAnalyze: false
}buildID
(Opcional) La propiedad buildID, cuando no es null, permite que los ejecutores de pruebas paralelas generen resultados que aparezcan como una sola ejecución de prueba en Axe Developer Hub. En el caso de ejecuciones de pruebas paralelas, cada ejecutor de pruebas debe compartir la misma cadena buildID no nula, lo que hace que cada ejecución de prueba concatene sus resultados con los resultados existentes para el mismo buildID y SHA de confirmación de Git. Sin embargo, cuando buildID es null, múltiples ejecuciones de prueba sobrescriben los resultados existentes que tienen el mismo SHA de confirmación de Git.
Vea Ejecución de Pruebas en Paralelo para obtener más información sobre cómo usar buildID con varios proveedores de integración continua.
axe: {
buildID: process.env.CI_BUILD_ID
}configurationOverrides
(Opcional) Sobrescribe los valores establecidos en configuración global. Consulte el Interfaz de Sobrescritura de Configuración para obtener más información.
axe: {
configurationOverrides: {
accessibilityStandard: 'WCAG 2.2 AA',
bestPractices: true
}
}elementInternals
El soporte de ElementInternals es experimental en axe-core y está sujeto a cambios. Consulte el documentación de axe-core ElementInternals para conocer las limitaciones actuales y el estado del desarrollo.
(Opcional) Cuando true, Watcher recopila roles y propiedades ARIA establecidos mediante la API ElementInternals de elementos personalizados que usan attachInternals(). Esto reduce los falsos positivos en páginas que utilizan elementos personalizados para componentes interactivos. Requiere la versión 4.12.0 o posterior de axe-core.
axe: {
elementInternals: true
}excludeUrlPatterns
(Opcional) Impide que cualquier URL que coincida con cualquiera de los patrones patrones minimatch en la matriz excludeUrlPatterns sea analizado.
axe: {
excludeUrlPatterns: [ 'https://*.example.com/**', 'https://example.org/**' ]
}En Excluir URLs del Análisis puede encontrar una tabla de URLs y patrones de ejemplo para verificar coincidencias.
git
(Opcional) Controla cómo Watcher recopila metadatos de Git para la ejecución de la prueba actual. Acepta uno de tres valores:
true(predeterminado): Watcher recopila automáticamente información de Git (rama, SHA de confirmación, autor y otros campos) usando el binario local de Git.false: Desactiva toda la recopilación de metadatos de Git. Úselo cuando se ejecute en entornos sin Git o cuando no se necesite la recopilación de datos de Git.- Un objeto
GitConfig: Proporciona metadatos explícitos de Git y omite completamente la detección automática. Cualquier campo que omita predetermina anull. Úselo cuando sus pruebas se ejecuten en un repositorio que está separado del repositorio bajo prueba, o en entornos de CI donde la detección automática de Git no es confiable.
Consulte Proporcionar Metadatos de Git para obtener más información.
El objeto GitConfig tiene los siguientes campos:
| Campo | Tipo | Gitful | Descripción |
|---|---|---|---|
branch |
string |
sí | Nombre de la rama actual |
commitAuthor |
string |
no | Nombre de pantalla del autor. Si se omite, el autor aparece como no disponible en el Axe Developer Hub. |
commitEmail |
string |
no | Dirección de correo electrónico del autor. |
commitMessage |
string |
no | Mensaje completo del commit. Si se omite, el mensaje del commit aparece como no disponible en el Axe Developer Hub. |
commitSha |
string |
sí | Hash completo o abreviado del commit |
defaultBranch |
string |
no | Nombre de la rama predeterminada (por ejemplo, main). Sin este campo, Axe Developer Hub no puede identificar cuál es la rama predeterminada, por lo que las comparaciones de ramas de características contra la rama predeterminada no estarán disponibles. |
isDirty |
boolean |
no | true si existen cambios no confirmados. El valor predeterminado es false cuando se omite. |
tag |
string |
no | Etiqueta actual (por ejemplo, v1.2.3) |
url |
string |
sí | URL remota del repositorio |
branch, commitSha y url son los campos completos de Git: una sesión enviada sin los tres se registra como gitless y se guarda, pero Axe Developer Hub cambia a la vista de sesión sin Git, donde el historial de ramas y confirmación de sesiones anteriores no estará visible. Enviar una sesión posterior con los tres campos restaura la vista completa de Git. Si solo uno o dos de los tres están presentes, Axe Watcher elimina todos los campos completos de Git, registra la sesión como sin Git y incluye una advertencia en la respuesta.
Ejemplo usando variables de entorno CI para proporcionar metadatos explícitos de Git:
axe: {
apiKey: process.env.AXE_DEVELOPER_HUB_API_KEY,
projectId: process.env.AXE_PROJECT_ID,
git: {
commitSha: process.env.GIT_COMMIT,
branch: process.env.GIT_BRANCH,
url: process.env.GIT_URL,
commitAuthor: process.env.GIT_AUTHOR_NAME,
commitEmail: process.env.GIT_AUTHOR_EMAIL,
commitMessage: process.env.GIT_COMMIT_MESSAGE,
defaultBranch: 'main'
}
}projectId
(Requerido) Especifica el ID del proyecto que recibirá los resultados de accesibilidad de Watcher. Su ID de proyecto se muestra con las instrucciones cuando crea un nuevo proyecto, y también puede obtenerlo desde la Página de Proyectos de Axe Developer Hub .
axe: {
projectId: process.env.AXE_PROJECT_ID
}runContext
(Opcional) Le permite elegir qué elementos se incluyen y excluyen del análisis de accesibilidad de su página.
Cuando usa runContext para seleccionar elementos a incluir en su análisis (mediante un único selector CSS, una matriz de selectores CSS o usando la propiedad include), Axe Developer Hub analiza solo los elementos seleccionados por los selectores CSS. Por lo tanto, si no se seleccionan elementos (debido a un error tipográfico en un selector de clase CSS, por ejemplo), no se analizará nada y, lo que es más importante, no se capturarán estados de página.
El valor de runContext puede ser:
-
Un único selector CSS para los elementos que se incluirán en el análisis:
axe: { runContext: '.main' } -
Un conjunto de selectores CSS para los elementos que se incluirán en el análisis:
axe: { runContext: [ '.main', '.text-block' ] } -
Un objeto de contexto que contiene propiedades
includeyexclude(como se muestra en el ejemplo anterior). Puede especificarincludeoexcludeo ambos. Cadaincludeoexcludepuede ser un único selector CSS o una matriz de selectores CSS:axe: { runContext: { include: '.main', exclude: '.ad-section' } }
Hay más detalles disponibles en el Documentación de Context de axe-core.
runOptions
(Opcional) El objeto runOptions permite el siguiente subconjunto de propiedades del tipo Options de axe-core:
-
ancestry: El predeterminado esfalse. Sitrue, los selectores CSS devueltos incluyen los elementos ascendientes de los elementos devueltos.importantSi su página usa IDs o clases dinámicas (IDs de elementos o clases que cambian cada vez que se recarga la página), debe especificar
ancestrycomotruepara que Axe Developer Hub pueda detectar y rastrear adecuadamente si hay problemas de accesibilidad duplicados porque, por defecto, Axe Developer Hub espera que los IDs y clases de los elementos se mantengan iguales entre ejecuciones de prueba.Cuando
ancestryestrue, Axe Developer Hub utiliza la posición del elemento dentro del árbol DOM para localizar el mismo elemento entre ejecuciones de prueba.Lo siguiente muestra un ejemplo de un selector cuando
ancestryesfalsepara un elemento iframe con un ID de main-iframe (<iframe id="main-iframe" ...>):iframe#main-iframeSi
ancestryestrue, el selector incluiría la ruta completa desde el elemento raíz, y no habría IDs o clases especificadas:html > body > div:nth-child(20) > div:nth-child(1) > div > div > ul > li:nth-child(1) > div > span > iframe -
runOnly: Esto le permite limitar qué reglas se ejecutan especificando nombres o etiquetas. VearunOnlya continuación para más información. -
rules: Habilite o deshabilite reglas usando la propiedadenabled. Vearulesa continuación para más información.
Lo siguiente muestra un ejemplo de runOptions:
axe: {
runOptions: {
ancestry: true,
runOnly: {
type: 'tag',
values: [ 'wcag2a' ]
},
rules: {
'ruleId1': { enabled: false },
'ruleId2': { enabled: false }
}
}
}runOnly
Usar runOnly se considera un uso avanzado, y si usa runOnly (o rules), usted una advertencia.
No puede usar ambos runOptions.runOnly y configurationOverrides. De lo contrario, recibirá un error.
El valor runOnly (parte del objeto runOptions) puede ser uno de los siguientes:
-
Una cadena que representa el ID de la regla que te gustaría usar para el análisis de accesibilidad:
axe: { runOptions: { runOnly: 'ruleId' } } -
Un arreglo de cadenas que representan los IDs de las reglas que te gustaría usar:
axe: { runOptions: { runOnly: [ 'ruleId1', 'ruleId2' ] } } -
Un objeto con propiedades
typeyvalues. El valortypees una cadena que puede serrule,rules,tagotags. La propiedadvaluesdebe ser un array de cadenas que representen la(s) regla(s) o etiqueta(s) que desea usar para el análisis de accesibilidad. El siguiente ejemplo muestra cómo usar el objetorunOnlypara limitar las pruebas de accesibilidad a reglas etiquetadas comowcag2a:axe: { runOptions: { runOnly: { type: 'tag', values: [ 'wcag2a' ] } } }
- Para más ejemplos de uso de
runOnly(con axe-core), consulte Ejemplos de Parámetros de Opciones - Para más información sobre los valores de etiquetas disponibles, consulte Etiquetas de axe-core.
- Para información sobre las reglas, identificadores de reglas y etiquetas, consulte Descripciones de Reglas
rules
El valor rules (en el objeto runOptions) le permite habilitar (enabled: true) o deshabilitar (enabled: false) reglas específicas durante el análisis, como se muestra a continuación:
axe: {
runOptions: {
rules: {
'ruleId1': { enabled: false },
'ruleId2': { enabled: false }
}
}
}serverURL
(Opcional) La URL del servidor de Axe Developer Hub a la que Watcher envía los resultados de accesibilidad. Por defecto es https://axe.deque.com.
No necesita establecer este valor si su proyecto fue creado en axe.deque.com. Sin embargo, si su organización utiliza una instancia regional, nube privada o implementación local de Axe Developer Hub, establezca serverURL en la URL base de esa instancia:
axe: {
apiKey: process.env.ACCESSIBILITY_API_KEY,
projectId: process.env.PROJECT_ID,
serverURL: process.env.SERVER_URL // e.g., 'https://axe-eu.deque.com'
}sessionId
(Opcional) La propiedad sessionId ha sido desaprobada y no debe usarse. Consulte buildID arriba.
testingTypes
(Opcional) La propiedad testingTypes es un array de cadenas para usar con Cypress para especificar pruebas de componentes o de extremo a extremo (e2e) (o ambas).
axe: {
testingTypes: ['e2e', 'component']
}timeout
(Opcional) El objeto timeout (de tipo Timeouts) en AxeConfiguration establece los valores de tiempo de espera en milisegundos para los métodos del controlador respectivos (o comandos personalizados para Cypress). (Consulte el Clases de Controladores para obtener información sobre las clases de controlador y el Comentarios Personalizados de Cypress para obtener información sobre los comandos personalizados de Cypress.) Cuando un tiempo de espera expira, la prueba falla con un mensaje que indica que el tiempo de espera fue superado. Puede aumentar el tiempo de espera para evitar el error.
Estos valores de tiempo de espera son independientes del marco de pruebas que esté utilizando, y también podría necesitar aumentar los valores de tiempo de espera para ese marco.
Este ejemplo establece el tiempo de espera de analyze en 8 segundos, flush en 15 segundos, start en 10 segundos y stop en 10 segundos. (Los valores predeterminados se muestran en la tabla bajo Interfaz Timeouts.)
axe: {
timeout: {
analyze: 8000,
flush: 15000,
start: 10000,
stop: 10000,
}
}Funciones de Configuración
Las funciones de configuración proporcionadas por Watcher le permiten modificar su configuración para el marco de prueba especificado y adaptar cómo desea ejecutar Watcher para satisfacer sus necesidades. Consulte Interfaz AxeConfiguration para más información.
| Marco de Pruebas | Función de Configuración |
|---|---|
| **Cypress** | cypressConfig |
| **Playwright** | playwrightConfig |
| **Playwright Test** | playwrightTest |
| Puppeteer | puppeteerConfig |
| **WebdriverIO** | wdioConfig |
| **WebdriverIO Testrunner** | wdioTestRunner |
| WebDriverJS | webdriverConfig |
cypressConfig
Crea una configuración para Cypress.
cypressConfig(config: Cypress.ConfigOptions & Configuration): Cypress.ConfigOptionsParámetros cypressConfig
-
config:Cypress.ConfigOptions & ConfigurationTipo de intersección de
Cypress.ConfigOptionsyConfiguration.
Devoluciones: Cypress.ConfigOptions
Ejemplo cypressConfig
import { defineConfig } from 'cypress'
import { cypressConfig } from '@axe-core/watcher/cypress/config'
export default defineConfig(
cypressConfig({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
}
})
)playwrightConfig
Crea una configuración para Playwright.
playwrightConfig(opts: Configuration & LaunchOptions): LaunchOptionsParámetros playwrightConfig
-
opts:Configuration & LaunchOptionsTipo de intersección de
LaunchOptionsyConfiguration.
Devoluciones: LaunchOptions
Ejemplo playwrightConfig
import { chromium } from 'playwright'
import { playwrightConfig } from '@axe-core/watcher/playwright'
const browserContext = await chromium.launchPersistentContext(
'',
playwrightConfig({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
}
})
)playwrightTest
Crea una configuración para Playwright Test.
playwrightTest(options: Options): ReturnValueParámetros playwrightTest
-
options:OptionsOptionses un tipo de intersección deConfigurationyLaunchOptions.
Devoluciones: ReturnValue
Ejemplo playwrightTest
// fixtures.ts
import { playwrightTest } from '@axe-core/watcher/playwright-test'
export default playwrightTest({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
}
})puppeteerConfig
Crea una configuración para Puppeteer.
puppeteerConfig(opts: Configuration & LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptions): OptionsParámetros puppeteerConfig
-
opts:Configuration & LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptionsTipo de intersección de
LaunchOptions,BrowserLaunchArgumentOptions,BrowserConnectOptionsyConfiguration.
Devoluciones: Options
Ejemplo puppeteerConfig
import puppeteer from 'puppeteer'
import { puppeteerConfig } from '@axe-core/watcher/puppeteer'
const browser = await puppeteer.launch(
puppeteerConfig({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
}
})
)wdioConfig
Crea una configuración de WebdriverIO.
wdioConfig({ axe, ...options}: Options): RemoteOptionsParámetros wdioConfig
-
arg:OptionsOptionses un tipo de intersección deRemoteOptionsyConfiguration.
Devoluciones: RemoteOptions
Ejemplo wdioConfig
import { remote } from 'webdriverio'
import { wdioConfig } from '@axe-core/watcher/wdio'
const browser = await remote(
wdioConfig({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
},
capabilities: { browserName: 'chrome' }
})
)wdioTestRunner
Crea una configuración de WebdriverIO Testrunner.
wdioTestRunner(...params: unknown[]): Options.TestrunnerParámetros wdioTestRunner
-
params:unknown[]El valor
paramses uno de:- Un array que contiene un valor, que es un tipo de intersección de
Options.TestrunneryConfiguration. - Un array donde el primer valor del array es un
AxeConfigurationy el segundo valor es unOptions.Testrunner.
- Un array que contiene un valor, que es un tipo de intersección de
Devoluciones: Options.Testrunner
Ejemplo wdioTestRunner
import { wdioTestRunner } from '@axe-core/watcher/wdio'
export const config = wdioTestRunner({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
}
})webdriverConfig
Crea una configuración de Selenium WebDriver.
webdriverConfig(arg: WebDriverArgs): OptionsParámetros webdriverConfig
-
arg:WebDriverArgsUn
Configurationextendido para incluir un miembro de Selenium WebDriverOptions.
Devoluciones: Options
webdriverConfig Ejemplo
import { Builder } from 'selenium-webdriver'
import { Options } from 'selenium-webdriver/chrome'
import { webdriverConfig } from '@axe-core/watcher/webdriver'
const options = new Options()
const browser = await new Builder()
.forBrowser('chrome')
.setChromeOptions(
webdriverConfig({
axe: {
apiKey: process.env.API_KEY,
projectId: process.env.PROJECT_ID
},
options
})
)
.build()Configuration Interfaz
La interfaz Configuration se utiliza con el funciones de configuración y contiene una propiedad:
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
axe |
AxeConfiguration |
sí | El AxeConfiguration a ser pasado a la función de configuración de su marco de pruebas. |
Todos los funciones de configuración usan esta propiedad axe para permitirle configurar Watcher y configurar sus pruebas de accesibilidad. Vea la sección Interfaz AxeConfiguration arriba para más información.
ConfigurationOverrides Interfaz
La interfaz ConfigurationOverrides le permite anular la configuración global de la organización para ejecuciones de pruebas individuales. Esta propiedad debe usarse de acuerdo con los permisos establecidos en la configuración global de su empresa.
| Nombre | Tipo | Requerido | Descripción |
|---|---|---|---|
accessibilityStandard |
string |
no | El estándar de accesibilidad a seguir |
axeCoreVersion |
string |
no | Indica qué versión de axe-core se debe utilizar. |
bestPractices |
boolean |
no | Especifica si se deben seguir las reglas de mejores prácticas. |
experimentalRules |
boolean |
no | Si seguir reglas experimentales |
accessibilityStandard
Establece el estándar de accesibilidad contra el cual se prueban. Opciones disponibles:
- „All“ - Pruebas contra todos los estándares disponibles
- „WCAG 2.2 AAA“
- „WCAG 2.2 AA“
- „WCAG 2.2 A“
- „WCAG 2.1 AAA“
- „WCAG 2.1 AA“
- „WCAG 2.1 A“
- „WCAG 2.0 AAA“
- „WCAG 2.0 AA“
- „WCAG 2.0 A“
- „Trusted Tester v5“
- „EN 301 549“
- „RGAAv4“ - versión 4 del RGAA (estándar de accesibilidad francés; requiere axe-core 4.11.0 o posterior)
Su organización debe permitir la anulación de esta configuración en la configuración global, y el estándar seleccionado debe estar entre las opciones permitidas.
axe: {
configurationOverrides: {
accessibilityStandard: 'WCAG 2.2 AA'
}
}axeCoreVersion
Especifica qué versión de axe-core usar para las pruebas. Las opciones disponibles incluyen:
- „latest“ - Última versión soportada actualmente incluida con Axe Watcher
- Versiones específicas desde la 4.4.0 en adelante (por ejemplo, „4.10.2“, „4.9.1“, etc.)
Su organización debe permitir la anulación de esta configuración en la configuración global, y la versión seleccionada debe estar entre las opciones permitidas.
axe: {
configurationOverrides: {
axeCoreVersion: 'latest'
}
}bestPractices
Habilita o deshabilita las reglas de mejores prácticas para la ejecución de pruebas. Las mejores prácticas mejoran la accesibilidad pero no son parte de los estándares formales. Su organización debe permitir la anulación de esta configuración para que surta efecto.
axe: {
configurationOverrides: {
bestPractices: true
}
}experimentalRules
Habilita o deshabilita las reglas experimentales para la ejecución de pruebas. Las reglas experimentales todavía están en desarrollo y pueden producir falsos positivos. Su organización debe permitir la anulación de esta configuración en configuración global para que surta efecto.
axe: {
configurationOverrides: {
experimentalRules: true
}
}Controller Clases
Las siguientes clases extienden la clase abstracta Controller para permitirle controlar manualmente el análisis de accesibilidad de las páginas de su sitio web.
| Marcos de Prueba | Nombre |
|---|---|
| Playwright y Playwright Test | PlaywrightController |
| Puppeteer | PuppeteerController |
| WebdriverIO y WebdriverIO Testrunner | WdioController |
| WebDriverJS | WebdriverController |
Para Cypress, los métodos en las clases *Controller se implementan como comandos personalizados. Vea Comandos Personalizados del Controlador para Cypress para más información.
Controller
abstract class ControllerLa clase abstracta Controller contiene los métodos para controlar el análisis de páginas. Cada una de las clases concretas extiende esta clase, por lo que los siguientes métodos están disponibles en todas las clases concretas.
Contexto del marco: Si su prueba cambia el contexto del navegador a un marco hijo usando switchToFrame() (WebdriverIO o WebDriverJS), Axe Watcher no capturará los estados de la página para las acciones realizadas mientras esté en el marco hijo. Axe Watcher solo puede analizar el marco de nivel superior. Cambie de nuevo al marco de nivel superior (por ejemplo, usando switchToParentFrame() en WebdriverIO o driver.switchTo().defaultContent() en WebDriverJS) para reanudar la captura de estados de página. Vea No se capturan estados de página después de cambiar a un marco secundario para más información.
analyze
analyze(): Promise<void>Analiza la página actual en busca de errores de accesibilidad. Llama a este método después de haber configurado una página web para el análisis (como haber ingresado valores en un formulario) y haber desactivado el análisis automático usando el método stop o configurando autoAnalyze en false.
analyze Retorna
Promise<void>
analyze Ejemplo
await controller.analyze()analyze Comando equivalente de Cypress
cy.axeWatcherAnalyze()
flush
flush(): Promise<void>Envía todos los resultados del escaneo de accesibilidad a Axe Developer Hub. Debe llamarse al final de la ejecución de la prueba para asegurar que los resultados hayan sido enviados a los servidores de Axe Developer Hub de Deque.
flush Retorna
Promise<void>
flush Ejemplo
await controller.flush()flush Comando equivalente de Cypress
cy.axeWatcherFlush()
start
start(): Promise<void>Resumir el análisis automático de páginas web. Llama a este método cuando quieras reanudar el análisis automático de páginas web para detectar errores de accesibilidad.
start Retorna
Promise<void>
start Ejemplo
await controller.start()start Comando equivalente de Cypress
cy.axeWatcherStart()
stop
stop(): Promise<void>Detiene el análisis automático de páginas web. Después de llamar al método stop, puede realizar cualquier configuración adicional que su página web pueda requerir y luego llamar al método analyze para verificar la página en busca de errores de accesibilidad.
stop Retorna
Promise<void>
stop Ejemplo
await controller.stop()stop Comando equivalente de Cypress
cy.axeWatcherStop()
PlaywrightController
La clase PlaywrightController le permite controlar manualmente el análisis de accesibilidad para ejecuciones de prueba con Playwright y Playwright Test. Puede comenzar y detener el análisis de accesibilidad automático y analizar páginas que requieren configuración adicional.
Para más información sobre Playwright, vea Documentación de Playwright.
Constructor
new PlaywrightController(driver: Page): PlaywrightControllerParámetros
driver:Page
El valor driver es un objeto Page de Playwright.
Retorna PlaywrightController
PlaywrightController Ejemplo
import { PlaywrightController, wrapPlaywrightPage } from '@axe-core/watcher/playwright'
let page = await browserContext.newPage()
const controller = new PlaywrightController(page)
page = wrapPlaywrightPage(page, controller)Vea Controller para los métodos implementados en la clase base abstracta.
PuppeteerController
La clase PuppeteerController permite el control manual de sus ejecuciones de prueba con Puppeteer. El control manual le permite proporcionar configuraciones adicionales requeridas por páginas web más complejas.
Para más información sobre Puppeteer, vea Puppeteer.
Constructor
new PuppeteerController(driver: Page): PuppeteerControllerParámetros
driver:Page
El valor driver es un objeto Page de Puppeteer.
Retorna PuppeteerController
PuppeteerController Ejemplo
import { PuppeteerController, wrapPuppeteerPage } from '@axe-core/watcher/puppeteer'
let page = await browser.newPage()
const controller = new PuppeteerController(page)
page = wrapPuppeteerPage(page, controller)Vea Controller para los métodos implementados en la clase base abstracta.
WdioController
El WdioController le permite controlar manualmente las ejecuciones de prueba de WebdriverIO y WebdriverIO Testrunner. Para páginas que requieren configuración o ajustes adicionales, puede detener las pruebas automáticas y analizar manualmente cada página que requiera dicha configuración.
Constructor
new WdioController(driver: Browser): WdioControllerParámetros
driver:Browser
Retorna WdioController
WdioController Ejemplo
import { WdioController, wrapWdio } from '@axe-core/watcher/wdio'
// browser is the WebdriverIO Browser instance from your wdioConfig() setup
const controller = new WdioController(browser)
wrapWdio(browser, controller)Vea Controller para los métodos implementados en la clase base abstracta.
WebdriverController
Constructor
new WebdriverController(driver: WebDriver): WebdriverControllerParámetros
driver:WebDriver
El valor driver es un objeto WebDriver de Selenium.
Retorna WebdriverController
WebdriverController Ejemplo
import { WebdriverController, wrapWebdriver } from '@axe-core/watcher/webdriver'
// browser is the Selenium WebDriver instance from your webdriverConfig() setup
const controller = new WebdriverController(browser)
browser = wrapWebdriver(browser, controller)Ver Controller para los métodos implementados en la clase base abstracta.
Comandos Personalizados de Cypress
En la plataforma de automatización de navegadores Cypress, los métodos en las clases *Controller están implementados como comandos personalizados. Consulte Comandos Personalizados en el sitio de documentación de Cypress para obtener más información sobre la implementación y el uso de comandos personalizados.
Se implementan los siguientes comandos personalizados. Cada comando personalizado devuelve Chainable<void> para permitir el encadenamiento con otros comandos de Cypress.
| Método del Controlador | Comando Personalizado de Cypress Equivalente |
|---|---|
analyze() |
axeWatcherAnalyze() |
flush() |
axeWatcherFlush() |
start() |
axeWatcherStart() |
stop() |
axeWatcherStop() |
A partir de Watcher 3.9.0, los cuatro comandos personalizados de Cypress axeAnalyze(), axeFlush(), axeStart() y axeStop() han sido desaprobados y no deben utilizarse.
Si está utilizando el paquete @axe-devtools/cypress con Watcher, deberá actualizar a al menos la versión 3.9.0 de Watcher porque los comandos personalizados desaprobados entran en conflicto con los comandos personalizados en @axe-devtools/cypress.
Ejemplo de Comando Cypress
El siguiente ejemplo muestra cómo importar los comandos de Cypress del Axe Developer Hub desde el paquete @axe-core/watcher y luego llamar al comando axeWatcherFlush al final de cada prueba (colocándolo dentro de afterEach()):
// Import the axe-watcher commands.
require('@axe-core/watcher/cypress/support')
// Flush Axe-watcher results after each test.
afterEach(() => {
cy.axeWatcherFlush()
})Interfaz de Tiempos de Espera
El objeto objetivo de tiempo de espera (de tipo Tiempos de Espera) en el interfaz de Configuración de Axe permite a los usuarios cambiar los valores de tiempo de espera (en milisegundos) para las funciones del controlador respectivas o los comandos personalizados de Cypress.
interface Timeouts {
start?: number
stop?: number
flush?: number
analyze?: number
}| Nombre | Tipo | Requerido | Por Defecto | Descripción |
|---|---|---|---|---|
| función de control analizar | número | no | 5000 | Establece el tiempo de espera en milisegundos para la función del controlador función de control analizar o el comando personalizado axeWatcherAnalyze (en Cypress). |
| función de control despejar | número | no | 5000 | Establece el tiempo de espera en milisegundos para la función del controlador función de control despejar o el comando personalizado axeWatcherFlush (en Cypress). |
| función de control iniciar | número | no | 2000 | Establece el tiempo de espera en milisegundos para la función del controlador función de control iniciar o el comando personalizado axeWatcherStart (en Cypress). |
| función de control detener | número | no | 5000 | Establece el tiempo de espera en milisegundos para la función del controlador función de control detener o el comando personalizado axeWatcherStop (en Cypress). |
