Notas de lanzamiento del paquete Watcher
Notas de lanzamiento que describen los cambios en el paquete Watcher para la versión 3.0.0 y posteriores
4.3.0 (12 de mayo de 2026)
- Corrección de errores
- Se corrigió una condición de carrera en la integración de Java donde cambiar el contexto del navegador a un iframe desencadenaba incorrectamente exploraciones, lo que provocaba que se registraran resultados adicionales.
- Se actualizó axe-core a la versión 4.11.4.
4.2.0 (6 de abril de 2026)
-
Características
- Se extendió la opción
gitpara admitir la provisión de metadatos explícitos de Git. En JavaScript/TypeScript, la propiedadgitahora acepta un objetoAxeConfigurationademás de un booleano. En Java,GitConfigtiene un nuevo métodoAxeWatcherOptions. Cuando se proporciona unsetGitInfo(AxeWatcherGitInfo)o un objetoGitConfig, se omite la detección automática de Git. Todos los campos son opcionales. Esto es útil cuando las pruebas se ejecutan en un repositorio separado del repositorio bajo prueba, o en entornos CI donde la detección automática de Git es poco confiable. ConsulteAxeWatcherGitInfoProvisión de Metadatos de Git Providing Git Metadata para obtener más información.
- Se extendió la opción
-
Corrección de errores
- Se corrigió un problema donde llamar a
flush()mientras los resultados aún se procesaban podía producir resultados incompletos. (Integración de JavaScript/TypeScript) - Se corrigió un problema en la integración de Java/Selenium donde las excepciones de
findElement()no se mostraban correctamente, lo que provocaba que las esperas explícitas fallaran inmediatamente en lugar de esperar a que el elemento apareciera. - Se mejoró la fiabilidad en la integración de Java: Watcher ahora reintenta automáticamente enviar resultados al servidor hasta tres veces cuando se encuentra un error transitorio.
- Se corrigió un problema en la integración de Java donde pasar
nulla ciertos métodos de configuración causaba una excepción no manejada. Estos métodos ahora lanzan unaIllegalArgumentExceptioncon un mensaje descriptivo.
- Se corrigió un problema donde llamar a
4.1.0 (24 de febrero de 2026)
-
Características
- Watcher ahora explora automáticamente todos los iframes de mismo origen. (La integración con Cypress ya tenía este comportamiento). Esto se aplica a las integraciones Playwright, Puppeteer, WebdriverIO, WebDriverJS y Java Selenium.
- Se agregó soporte para la RGAA v4 (estándar de accesibilidad francés). Configure
accessibilityStandard: 'RGAAv4'enConfigurationOverrides(JavaScript/TypeScript) o useConfigurationOverrides.AccessibilityStandard.RGAAV4(Java). Requiere axe-core versión 4.11.0 o posterior. La configuración global determina si este estándar está permitido para su organización. - Se agregó una opción
gitparaAxeConfiguration(JavaScript/TypeScript) yAxeWatcherOptions(Java) para controlar si se recopila información de Git. Configuregit: false(JavaScript/TypeScript) o llame asetGit(false)(Java) para ejecutar Watcher sin recopilar datos de Git. El valor predeterminado estrue(se recopila información de Git). - Se actualizó axe-core a la versión 4.11.1.
-
Corrección de errores
- Se corrigió un problema en la integración de Java donde una ruta binaria de Chrome personalizada configurada a través de
setBinary()en el objetoChromeOptionsse sobrescribía al pasarlo aconfigure().
- Se corrigió un problema en la integración de Java donde una ruta binaria de Chrome personalizada configurada a través de
4.0.0 (3 de diciembre de 2025)
Watcher 4.0.0 es una versión principal del paquete Watcher.
-
**Características**
- Se agregó soporte para proxy. Consulte Usando Watcher con un Proxy para más información. (La implementación del proxy HTTP requiere Node.js versión 20.18.1 o posterior).
- Se actualizó la versión de axe-core a 4.11.0.
- Se añadió soporte para Node.js versión 24.
-
**Corrección de errores**
- Se corrigió un problema al informar información de Git cuando se utiliza un pipeline de GitLab.
- Se mejoró el manejo de errores para alternativas de Chrome como Chrome for Testing y Chromium.
- Se gestionaron correctamente los datos vacíos de Git.
- Incluya todas las opciones de Chrome proporcionadas por el usuario para WebdriverIO.
-
**Cambios que rompen compatibilidad**
-
Watcher (para TypeScript y JavaScript) ahora utiliza nuevas rutas para importar el paquete. Vea las instrucciones para su paquete de integración de navegador para ver ejemplos de código actualizados.
Plataforma de Automatización de Navegadores Ruta Antigua Nueva Ruta Cypress @axe-core/watcher@axe-core/watcher/cypress/configComandos de Cypress @axe-core/watcher/dist/cypressCommands@axe-core/watcher/cypress/supportPlaywright @axe-core/watcher@axe-core/watcher/playwrightPrueba de Playwright @axe-core/watcher@axe-core/watcher/playwright-testPuppeteer @axe-core/watcher@axe-core/watcher/puppeteerWebdriverIO @axe-core/watcher@axe-core/watcher/wdioTestrunner de WebdriverIO @axe-core/watcher@axe-core/watcher/wdioWebDriverJS @axe-core/watcher@axe-core/watcher/webdriverEjemplo en JavaScript para WebDriverJS:
const { webdriverConfig, wrapWebdriver, WebdriverController } = require('@axe-core/watcher/webdriver') -
Se reemplazó la especificación incorrecta de
LaunchOptionsen TypeScript para Playwright con un nuevo tipo llamadoLaunchPersistentContextOptions, extraído dinámicamente delaunchPersistentContext. Los usuarios deberán eliminar cualquier opción no compatible que estuvieran usando conLaunchOptions; de lo contrario, su TypeScript fallará al compilar en modo estricto.
-
3.23.0 (1 de agosto de 2025)
- Se mejoró la lógica de tiempo de espera y reintentos al enviar resultados al servidor (para Watcher para JavaScript y TypeScript).
- Se añadió una advertencia sobre la opción
--load-extensionscon la versión 139 y posteriores de Chrome (tanto para la implementación en JavaScript/TypeScript como para la implementación en Java). - Informe de fallo si se exceden los intentos máximos de subida de resultados fallidos (
Flush: Failed. Maximum retries reached). - Se solucionaron problemas con el manejo de Chrome for Testing y Chromium.
- Registrar si se han alcanzado los intentos máximos.
- Se implementó la prueba de componentes en la integración con Cypress.
3.22.0 (1 de julio de 2025)
- Asegúrese de que
runOptionsno incluya ningún valornull, que causó un fallo silencioso en la integración de Java. - Asegúrese de que el archivo de licencia para la implementación en Java se copie en el directorio
META-INF. - Se corrigió un problema donde los patrones de URL excluidos no se copiaban correctamente en Java.
- Se mejoró el método para determinar la rama predeterminada de Git.
3.21.0 (23 de mayo de 2025)
- Java Watcher lanzado.
- Implementado un método alternativo para determinar el nombre predeterminado de la rama de Git.
- Se solucionó un problema con la integración de Cypress donde largos
wait() tiempos causarían estados de página duplicados o fallos en la prueba. - Se solucionó un problema donde
runOptions.runOnlyno funcionaba correctamente con la integración de Cypress.
3.20.2 (17 de abril de 2025)
- Se solucionó un problema con los mensajes de error de tiempo de espera que especificaban el parámetro incorrecto a cambiar. (Por ejemplo, se dirigía al usuario a cambiar
timeoutStarten lugar del correctotimeout.startvalor.)
3.20.1 (25 de marzo de 2025)
-
Características
- Permitir seleccionar versiones anteriores de axe-core.
- Se mejoró el envió de resultados al servidor para que sea más robusto.
-
Corrección de errores
- Se solucionó un problema al consolidar configuraciones globales con anulaciones de configuración del usuario.
- Se solucionó una condición de carrera en la integración de Cypress.
- Se solucionó un problema con la integración de Cypress donde no se habilitaban las reglas experimentales.
- Se solucionó un problema donde no se respetaba la habilitación del estándar EN 301 549.
- Se solucionó un problema con
configurationOverridessi no se establecían valores. - Se añadió validación adicional para Playwright y Playwright Test.
- Se solucionó un problema al intentar seleccionar versiones de axe-core sin un número de versión de parche.
- Se mejoró la lógica para fusionar configuraciones de usuario con configuraciones globales.
- Se mejoró la gestión de la versión de axe-core cuando no se
configurationOverridesproporcionó. - Se mejoró el mensaje de error para un estándar de accesibilidad no permitido en
configurationOverrides. - Se corrigieron los mensajes de error para incluir un enlace a la documentación de resolución de problemas.
- Se mejoró el manejo de errores al enviar resultados al servidor, lo que anteriormente causaba la detención del conjunto de pruebas.
3.20.0
- No lanzado
3.19.1 (25 de febrero de 2025)
- Se solucionó un problema donde llamar a un método envuelto (como
click()) después de cambiar el contexto del navegador a un marco hijo usandoswitchToFrame()(WebdriverIO o WebDriverJS) oswitchTo().frame()(Java Selenium) causaba un tiempo de espera de análisis. Axe Watcher ahora omite el análisis cuando no está en el marco de nivel superior. Ver No se capturan estados de página después de cambiar a un marco hijo para más información. - Asegúrese de que los conjuntos de pruebas que especifican
--disable-extensionsno desactiven Watcher.
3.19.0 (20 de enero de 2025)
- Mejorado el mensaje de error con Playwright y Playwright Test versiones 1.49.0 o mayores al usar el parámetro
headlesscuando el parámetrochannelestá configurado afirefox. (Solo los canaleschromiumochromeson compatibles con el modo totalmente encabezado o el nuevo modo sin encabezado.) - Mejorada la verificación de versión para axe-core.
- Soporte para configuraciones globales.
3.18.0 (18 de diciembre de 2024)
- Se corrigieron varios problemas de manejo de sesiones, que podían causar que aparecieran resultados erróneos o vacíos en el sitio web.
- Se añadió soporte para el nuevo Chromium sin cabeza en las versiones de Playwright >= 4.91. Ver Probar nuevo Chromium sin cabeza en las notas de la versión de Playwright 4.91.
- Se añadieron valores de tiempo de espera personalizados para permitir que los usuarios controlen el manejo de sesiones.
3.17.2 (12 de diciembre de 2024)
-
**Características**
- Se añadió el modo manual a Watcher.
- Ejecutar un análisis en un protocolo no compatible (cualquier protocolo que no sea *https*, *http*, o *file*) o en la página *about:blank* resultará en un error.
- Ahora Watcher arroja un error si no se configura antes de su uso.
-
**Corrección de errores**
- Se corrigió un problema en Playwright Test donde las sesiones se reutilizaban, causando que los resultados fueran sobrescritos.
- Se corrigieron varios otros problemas con la creación y gestión de sesiones.
- En modo manual, al llamar al método del controlador
start()ahora se marca el DOM de la página actual como limpio, por lo que no se captura el estado de la página. - En modo manual, se corrigió un problema donde a veces se capturaba un estado de página adicional cuando se llamaba a
flush(). - Se corrigió un problema que causaba un estado de página faltante cuando
cy.axeWatcherAnalyze()se llamaba después decy.click()sin una llamada acy.wait(). - Ahora se incluye un archivo LICENSES-3RD-PARTY.md actualizado con el paquete @axe-core/watcher.
- El método del controlador
stop()ahora analiza la página si el DOM ha cambiado antes de desactivar el modo automático. - Se cambió el comportamiento de Watcher para que, si Watcher está en modo manual, no analice la página si se llama al método del controlador
stop(). - Se corrigió un problema en la integración de Playwright que hacía que los métodos envueltos devolvieran tipos incorrectos.
- Se corrigió un problema que impedía que
runOptionsaceptara solo una opción.
3.17.1
- No liberado
3.17.0
- No liberado
3.16.1 (25 de octubre de 2024)
- Se incluyeron licencias de terceros.
3.16.0 (26 de septiembre de 2024)
- Se corrigió un problema de dependencia transitiva que involucraba comandos de Cypress.
3.15.2 (13 de septiembre de 2024)
- Se añadió soporte para la versión 9 de WebdriverIO (mientras se mantiene el soporte para las versiones 7 y 8 de WebdriverIO).
3.15.1
- Omitido (no hubo candidato de lanzamiento)
3.15.0
- No lanzado
3.14.3 (5 de septiembre de 2024)
- No hubo cambios visibles para el usuario
3.14.2 (29 de agosto de 2024)
- Se corrigió un error al acceder al valor de tiempo de espera en Cypress.
- Para Cypress, ahora se lanza una excepción si el usuario intenta usar Watcher sin primero llamar a
cypressConfig(). - Se corrigió un error que aparecía en ciertas condiciones en Cypress al importar el
osmódulo. - Se añadió
buildIDaAxeConfigurationpara ejecuciones paralelas de pruebas. - Se declaró obsoleto
sessionIDenAxeConfigurationa favor debuildID. - Se solucionó un problema que causaba que se capturara un estado de página adicional con Puppeteer debido al manejo de
authenticate(). - Mejoras de rendimiento en axe Watcher gracias a cambios en la ofuscación del código.
3.14.1
- No lanzado
3.14.0
- No lanzado
3.13.1 (19 de julio de 2024)
- Permitir excluir URLs de la exploración de análisis usando la opción
excludeUrlPatterns. VerexcludUrlPatterns.
3.13.0
- No lanzado
3.12.0 (16 de julio de 2024)
- Se mejoró el manejo de la reinstalación de componentes en Cypress.
- Se aseguró que Watcher pueda cargarse en la versión 7 de WebdriverIO.
- Se añadió soporte para Puppeteer
locator. - Se añadió configuración de
runContextyrunOptionspara axe-core. VerrunContextyrunOptions.
3.11.1 (26 de junio de 2024)
- Se corrigió un problema en el que los valores de retorno de los controladores externos
setupNodeEventsen Cypress no se propagaban. - Se cambió el comportamiento para permitir la carga de la extensión de Chrome de Cypress.
3.11.0 (17 de junio de 2024)
- Se abordó un problema en el que desinstalar y reinstalar componentes causaba que las exploraciones de accesibilidad se agotaran en Cypress.
- Se relajó la lógica de detección del navegador para evitar fallas incluso al usar navegadores compatibles.
- Se eliminaron las escrituras en el sistema de archivos al volcar resultados en Cypress.
3.10.0 (16 de mayo de 2024)
- Se solucionó un problema en Cypress donde el
configobjeto devuelto desetupNodeEventsno se propagaba correctamente y cualquier cambio realizado en él se perdía. - Se corrigió la implementación de funciones proxy (para Playwright Test) que había resultado en un error con
Locatorobjetos: solo se puede usar con el objeto Locator. - Se incorporaron dos nuevas funciones de Playwright de la versión 1.43.1.
3.9.0 (30 de abril de 2024)
- Se agregaron tipos compatibles hacia atrás para la versión 20 de Puppeteer.
- Para Cypress, se deprecó
axeAnalyze(),axeFlush(),axeStart(), yaxeStop(). Reemplazado poraxeWatcherAnalyze(),axeWatcherFlush(),axeWatcherStart(), yaxeWatcherStop(). - Se corrigió un
TypeErroren ciertos hooks de la versión 21 de Puppeteer (y posteriores).
3.8.0 (9 de abril de 2024)
- Se actualizó el JavaScript emitido para apuntar a ECMAScript 2018 (ES2018) en lugar de ECMAScript 2015 (ES2015).
3.7.0 (21 de marzo de 2024)
- Sin cambios visibles para el usuario
3.6.0 (7 de marzo de 2024)
- En la integración de Cypress, se previenen
after:runeventos si no se ejecutaron pruebas. - Se cambió el formato del URL de descarga para Chromedriver porque el equipo de Chromedriver se mudó a una nueva solución de alojamiento. Impacta a WebdriverIO.
3.5.0 (25 de enero de 2024)
- Se corrigió un problema donde al llamar al método de Playwright
Page.goto()se registraban incorrectamente dos estados de página. - Se resolvió un problema en la integración de Cypress que causaba que ciertas configuraciones del usuario de
setupNodeEventsfueran ignoradas. - Se agregó
eventemitter3como una dependencia requerida. - Se envolvieron algunos métodos de Playwright que no habían sido envueltos anteriormente.
3.4.0 (12 de diciembre de 2023)
- Se solucionó un problema donde se perdían estados de página o ocurrían errores cuando las pruebas causaban navegaciones de la página.
- Se eliminó código redundante de la integración de Cypress.
3.3.0 (7 de diciembre de 2023)
- Sin cambios visibles para el usuario
3.2.0 (9 de noviembre de 2023)
- No hay cambios visibles para el usuario
3.1.1 (12 de octubre de 2023)
- No hay cambios visibles para el usuario
3.1.0 (14 de septiembre de 2023)
- Todas las integraciones ahora permiten
--headless=new.
3.0.0 (8 de septiembre de 2023)
Para abordar casos donde analyze() no se llamaba inesperadamente, las siguientes funciones necesitaban ser desaprobadas y reemplazadas:
| Función desaprobada | Nueva función |
|---|---|
wrapPlaywright(browserContext, controller) |
wrapPlaywrightPage(page, controller) |
wrapPuppeteer(context, controller) |
wrapPuppeteerPage(page, controller) |
El uso de las funciones desaprobadas generará un error.
