Notas de Lançamento do Pacote Watcher
Notas de lançamento descrevendo as mudanças no pacote Watcher para a versão 3.0.0 e posteriores
4.5.1 (16 de julho de 2026)
-
**Recursos**
- Suporte para Node.js 20 removido, pois atingiu o fim de vida. Axe Watcher agora requer Node.js 22.11.0 ou posterior. (Integrações JavaScript/TypeScript)
- O Microsoft Edge (Chromium) agora é suportado com a integração Java Selenium. Anteriormente, o Edge estava disponível com todas as integrações, exceto a Java Selenium. (Integração Java Selenium)
-
**Correções de Erros**
- Corrigido um problema na integração com Cypress em que capturas de tela falhavam ao serem enviadas para o Axe Developer Hub. (Integração Cypress)
- Corrigido um problema em que executar múltiplos testes simultaneamente com diferentes IDs de projeto poderia fazer com que a configuração de uma execução sobrescrevesse a de outra. (Integrações JavaScript/TypeScript)
4.5.0 (6 de julho de 2026)
- **Recursos**
- O Axe Watcher agora suporta oficialmente o Microsoft Edge (Chromium) como um navegador de teste, juntamente com o Chrome for Testing, Chrome e Chromium. O Edge está disponível com as integrações JavaScript/TypeScript e com Java Playwright; não é suportado com Java Selenium.
4.4.0 (12 de junho de 2026)
-
**Recursos**
- As verificações agora incluem automaticamente o caminho e o nome do arquivo do teste original no Axe Developer Hub. (Integrações com Playwright Test, Cypress e WebdriverIO)
- O SDK Java agora suporta Playwright além do Selenium. O artefato
com.deque.axe_core:watcheré fornecido com suporte ao Playwright. Consulte a documentação Java com Playwright para instruções de integração. - A integração Java/Playwright captura capturas de tela de violações. As capturas de tela são enviadas para o servidor e salvas localmente quando um
screenshotDiré configurado. - Adicionado
setScreenshotDir()aoAxeWatcherOptions(Java). Use-o para especificar um diretório local para salvar capturas de tela. As capturas de tela são salvas localmente mesmo quando o servidor está inacessível. - Adicionado
setTestContext()tanto aoAxeWatcherController(Selenium) quanto aoAxeWatcherPlaywrightController(Playwright) no SDK Java. Use-o para atribuir violações a testes específicos no Axe Developer Hub. - As capturas de tela salvas localmente agora usam um nome de arquivo prefixado por um carimbo de data/hora (
YYYYMMDDTHHmmssSSS-{id}.png) para que os arquivos sejam ordenados deterministicamente pelo tempo de captura. - Adicionada opção de configuração
elementInternals. DefinaelementInternals: trueemAxeConfiguration(JavaScript/TypeScript) ou chamesetElementInternals(true)emAxeWatcherOptions(Java) para incluir dados de acessibilidade de ElementInternals nas verificações. Isso reduz falsos positivos em páginas que usam elementos personalizados comattachInternals(). Requer versão 4.12.0 ou posterior do axe-core. - Atualizado axe-core para a versão 4.12.1.
-
**Correções de Erros**
- Corrigido um problema onde chamar
analyze()(ouaxeWatcherAnalyze()no Cypress) poderia causar a publicação duplicada dos resultados da verificação no final do teste. - Corrigido um problema onde duas solicitações de flush chegando ao mesmo tempo poderiam fazer com que os resultados da verificação fossem enviados mais de uma vez.
- Corrigido um problema onde o Watcher era executado em cada frame filho, causando o envio de estados de página duplicados. O Watcher agora roda apenas no frame superior. A cobertura de acessibilidade do conteúdo de iframe permanece inalterada; o axe-core ainda é executado em todos os frames e o frame superior reúne seus resultados.
- Melhorado o desempenho para testes que capturam muitos estados de página. O armazenamento de resultados agora escreve em tempo constante por verificação em vez de crescer com o número total de resultados acumulados.
- Melhorada a validação para
setHeadless()esetChannel()na integração Java/Playwright. Combinações mal configuradas agora lançamIllegalArgumentExceptioncom uma mensagem acionável em vez de falhar silenciosamente ou produzir um comportamento inesperado. - Corrigido um problema onde padrões de URL excluídos nem sempre eram respeitados se uma solicitação de flush chegasse antes do Watcher terminar de carregar sua configuração.
- Corrigido um problema onde chamar
4.3.0 (12 de maio de 2026)
- **Correções de Erros**
- Corrigida uma condição de corrida na integração Java onde mudar o contexto do navegador para um iframe acionaria incorretamente varreduras, fazendo com que resultados extras fossem registrados.
- Atualizado axe-core para a versão 4.11.4.
4.2.0 (6 de abril de 2026)
-
**Recursos**
- Ampliada a opção
gitpara suportar a entrega de metadados Git explícitos. No JavaScript/TypeScript, a propriedadegitemAxeConfigurationagora aceita um objetoGitConfigalém de um booleano. No Java,AxeWatcherOptionstem um novo métodosetGitInfo(AxeWatcherGitInfo). Quando um objetoGitConfigouAxeWatcherGitInfoé fornecido, a detecção automática de Git é ignorada. Todos os campos são opcionais. Isso é útil quando os testes são executados em um repositório separado do repositório em teste, ou em ambientes de CI onde a auto-detecção do Git é pouco confiável. Veja para mais informações. para mais informações.
- Ampliada a opção
-
**Correções de Erros**
- Corrigido um problema onde chamar
flush()enquanto os resultados ainda estavam sendo processados poderia produzir resultados incompletos. (Integração JavaScript/TypeScript) - Corrigido um problema na integração Java/Selenium onde exceções de
findElement()não eram corretamente apresentadas, causando falhas imediatas em esperas explícitas em vez de aguardar o aparecimento do elemento. - Corrigido um problema na integração Java onde passar
- Corrigido um problema na integração Java onde passar
nullpara certos métodos de configuração causava uma exceção não tratada. Esses métodos agora lançam umIllegalArgumentExceptioncom uma mensagem descritiva.
- Corrigido um problema onde chamar
Funcionalidades
-
**Recursos**
- Adicionado suporte para o RGAA v4 (padrão de acessibilidade francês). Defina
- Adicionado suporte para o RGAA v4 (padrão de acessibilidade francês). Defina
accessibilityStandard: 'RGAAv4'emConfigurationOverrides(JavaScript/TypeScript) ou utilizeConfigurationOverrides.AccessibilityStandard.RGAAV4(Java). Requer a versão 4.11.0 ou posterior do axe-core. A configuração global determina se este padrão é permitido para sua organização. - Adicionada a opção
gitparaAxeConfiguration(JavaScript/TypeScript) eAxeWatcherOptions(Java) para controlar se as informações do Git são coletadas. Definagit: false(JavaScript/TypeScript) ou chamesetGit(false)(Java) para executar o Watcher sem coletar dados do Git. O padrão étrue(informações do Git são coletadas). - Correções de Bugs
-
**Correções de Erros**
- Corrigido um problema na integração Java onde um caminho binário customizado do Chrome, configurado via
setBinary()no objetoChromeOptions, seria substituído ao ser passado paraconfigure().
- Corrigido um problema na integração Java onde um caminho binário customizado do Chrome, configurado via
O Watcher 4.0.0 é um lançamento importante do pacote Watcher.
Watcher 4.0.0 é um lançamento importante do pacote Watcher.
-
**Recursos**
- Adicionado suporte a proxy. Veja Usando Watcher Com um Proxy para mais informações. (A implementação do proxy HTTP requer Node.js versão 20.18.1 ou posterior).
- Atualizada a versão do axe-core para 4.11.0.
- Adicionado suporte para Node.js versão 24.
-
**Correções de Erros**
- Corrigido um problema ao relatar informações do Git ao usar um pipeline do GitLab.
- Melhorada a gestão de erros para alternativas do Chrome, como Chrome para Testes e Chromium.
- Lidar corretamente com dados vazios do Git.
- Incluir todas as opções de Chrome fornecidas pelo usuário para WebdriverIO.
-
**Alterações Incompatíveis**
-
Watcher (para TypeScript e JavaScript) agora usa novos caminhos para importar o pacote. Consulte o instruções para seu pacote de integração de navegador para ver exemplos de código atualizados.
Plataforma de Automação de Navegador Caminho Antigo Novo Caminho Cypress @axe-core/watcher@axe-core/watcher/cypress/configComandos Cypress @axe-core/watcher/dist/cypressCommands@axe-core/watcher/cypress/supportPlaywright @axe-core/watcher@axe-core/watcher/playwrightTeste Playwright @axe-core/watcher@axe-core/watcher/playwright-testPuppeteer @axe-core/watcher@axe-core/watcher/puppeteerWebdriverIO @axe-core/watcher@axe-core/watcher/wdioTestrunner WebdriverIO @axe-core/watcher@axe-core/watcher/wdioWebDriverJS @axe-core/watcher@axe-core/watcher/webdriverExemplo de JavaScript para WebDriverJS:
const { webdriverConfig, wrapWebdriver, WebdriverController } = require('@axe-core/watcher/webdriver') -
Substituiu a especificação incorreta de
LaunchOptionsno TypeScript para o Playwright por um novo tipo chamadoLaunchPersistentContextOptions, extraído dinamicamente delaunchPersistentContext. Os usuários precisarão remover quaisquer opções não suportadas que estavam usando comLaunchOptions; caso contrário, seu TypeScript falhará ao compilar no modo estrito.
-
3.23.0 (1º de agosto de 2025)
- Aprimorada a lógica de tempo limite e de repetição ao enviar resultados para o servidor (para Watcher para JavaScript e TypeScript).
- Adicionado um aviso sobre a opção
--load-extensionscom a versão 139 do Chrome e posteriores (tanto para implementação JavaScript/TypeScript quanto Java). - Relate falha se o número máximo de tentativas para o upload dos resultados falhados for excedido (
Flush: Failed. Maximum retries reached). - Corrigido problemas com o manuseio do Chrome para Testes e Chromium.
- Registrar se o número máximo de tentativas foi alcançado.
- Implementado teste de componentes na integração Cypress.
3.22.0 (1º de julho de 2025)
- Certifique-se de que
runOptionsnão inclua nenhum valornull, o que causou uma falha silenciosa na integração Java. - Certifique-se de que o arquivo de licença para a implementação Java seja copiado para o diretório
META-INF. - Corrigido um problema onde os padrões de URL excluídos não eram copiados corretamente no Java.
- Aprimorado o método para determinar a ramificação padrão do Git.
3.21.0 (23 de maio de 2025)
- Observador Java lançado.
- Implementada uma forma alternativa de determinar o nome padrão do branch do Git.
- Corrigido um problema com a integração Cypress onde tempos longos de
wait() causariam estados de página duplicados ou falha no teste. - Corrigido um problema onde
runOptions.runOnlyfalhava em funcionar corretamente com a integração Cypress.
3.20.2 (17 de abril de 2025)
- Corrigido um problema com as mensagens de erro de timeout que especificavam o parâmetro errado para alterar. (Por exemplo, o usuário foi direcionado para alterar
timeoutStartem vez do valor corretotimeout.start.)
3.20.1 (25 de março de 2025)
-
**Recursos**
- Permitir a seleção de versões anteriores do axe-core.
- Tornado o envio de resultados para o servidor mais robusto.
-
**Correções de bugs**
- Corrigido um problema ao consolidar configurações globais com configurações de usuário que as substituem.
- Corrigida uma condição de corrida na integração do Cypress.
- Corrigido um problema com a integração do Cypress onde regras experimentais não eram habilitadas.
- Corrigido um problema onde a ativação do padrão EN 301 549 não era respeitada.
- Corrigido um problema com
configurationOverridesse nenhum valor fosse configurado. - Adicionada validação adicional para Playwright e Playwright Test.
- Corrigido um problema ao tentar selecionar versões do axe-core sem um número de versão de patch.
- Aprimorada a lógica para mesclar configurações de usuário com configurações globais.
- Melhorado o manuseio da versão do axe-core quando nenhum
configurationOverridesé fornecido. - Melhorada a mensagem de erro para um padrão de acessibilidade não permitido em
configurationOverrides. - Corrigidas mensagens de erro para incluir um link para a documentação de solução de problemas.
- Melhorado o tratamento de erros ao enviar resultados para o servidor, o que anteriormente causava a interrupção da suíte de testes.
3.20.0
- Não lançado
3.19.1 (25 de fevereiro de 2025)
- Corrigido um problema onde chamar um método encapsulado (como
click()) após mudar o contexto do navegador para um frame filho usandoswitchToFrame()(WebdriverIO ou WebDriverJS) ouswitchTo().frame()(Java Selenium) causava um tempo limite de análise. O Axe Watcher agora pula a análise quando não está no frame de nível superior. Veja Nenhum Estado de Página Capturado Após Mudar para um Frame Filho para mais informações. - Certifique-se de que suítes de teste que especificam
--disable-extensionsnão desabilitem o Watcher.
3.19.0 (20 de janeiro de 2025)
- Melhorada a mensagem de erro com as versões 1.49.0 ou superior do Playwright e Playwright Test ao usar o parâmetro
headlessquando o parâmetrochannelé definido comofirefox. (Apenas os canaischromiumouchromesão suportados com o modo totalmente exibido ou o novo modo sem cabeça.) - Melhorada a verificação de versões para axe-core.
- Suporte para configurações globais.
3.18.0 (18 de dezembro de 2024)
- Corrigidos vários problemas de manipulação de sessão, que podiam causar resultados errôneos ou vazios no site.
- Adicionado suporte para o novo modo sem cabeça do Chromium em versões do Playwright >= 4.91. Veja Tente o novo Chromium sem cabeça nas notas de lançamento do Playwright 4.91.
- Adicionados valores de tempo limite personalizados para permitir que os usuários controlem a manipulação de sessão.
3.17.2 (12 de dezembro de 2024)
-
**Recursos**
- Adicionado modo manual ao Watcher.
- Executar uma análise em um protocolo não suportado (qualquer protocolo além de *https*, *http* ou *file*) ou na página *about:blank* resultará em um erro.
- Agora o Watcher lança um erro se não for configurado antes do uso.
-
**Correções de bugs**
- Corrigido um problema no Playwright Test em que as sessões eram reutilizadas, causando a sobrescrita dos resultados.
- Corrigidos vários outros problemas na criação e gerenciamento de sessões.
- No modo manual, chamar o método
start()do controlador agora marca o DOM da página atual como limpo, para que nenhum estado de página seja capturado. - No modo manual, corrigido um problema onde um estado de página adicional às vezes era capturado quando
flush()era chamado. - Corrigido um problema que causava um estado de página ausente quando
cy.axeWatcherAnalyze()era chamado apóscy.click()ser chamado sem uma chamadacy.wait(). - Agora inclui um arquivo LICENSES-3RD-PARTY.md atualizado com o pacote @axe-core/watcher.
- O método de controle
stop()agora analisa a página se o DOM tiver mudado antes de desativar o modo automático. - Alterado o comportamento do Watcher para que, se o Watcher estiver no modo manual, não analise a página se o método do controlador
stop()for chamado. - Corrigido um problema na integração do Playwright que causava a devolução de tipos incorretos por métodos encapsulados.
- Corrigido um problema que impedia
runOptionsde aceitar apenas uma opção.
3.17.1
- Não lançado
3.17.0
- Não lançado
3.16.1 (25 de outubro de 2024)
- Incluídas licenças de terceiros.
3.16.0 (26 de setembro de 2024)
- Corrigido um problema de dependência transitiva envolvendo comandos do Cypress.
3.15.2 (13 de setembro de 2024)
- Adicionado suporte para a versão 9 do WebdriverIO (enquanto mantém suporte para as versões 7 e 8 do WebdriverIO).
3.15.1
- Ignorado (não houve candidato a lançamento)
3.15.0
- Não lançado
3.14.3 (5 de setembro de 2024)
- Sem alterações visíveis para o usuário
3.14.2 (29 de agosto de 2024)
- Corrigido um erro ao acessar o valor de tempo limite no Cypress.
- Para o Cypress, agora gera uma exceção se o usuário tentar usar o Watcher sem antes chamar
cypressConfig(). - Corrigido um erro que aparecia sob certas condições no Cypress ao importar o módulo
os. - Adicionado
buildIDaAxeConfigurationpara execuções de teste em paralelo. - Descontinuado
sessionIDemAxeConfigurationem favor debuildID. - Corrigido um problema que causava a captura de um estado adicional da página com o Puppeteer devido ao manuseio de
authenticate(). - Melhorias de desempenho no Axe Watcher devido a mudanças na ofuscação de código.
3.14.1
- Não lançado
3.14.0
- Não lançado
3.13.1 (19 de julho de 2024)
- Permitir a exclusão de URLs da varredura de análise usando a opção
excludeUrlPatterns. VejaexcludUrlPatterns.
3.13.0
- Não lançado
3.12.0 (16 de julho de 2024)
- Melhorado o tratamento da remontagem de componentes no Cypress.
- Garantir que o Watcher possa ser carregado na versão 7 do WebdriverIO.
- Adicionado suporte a
locatorpara Puppeteer. - Adicionada configuração de
runContexterunOptionspara axe-core. VejarunContexterunOptions.
3.11.1 (26 de junho de 2024)
- Corrigido um problema onde os valores de retorno de manipuladores externos de
setupNodeEventsno Cypress não eram propagados. - Alterado comportamento para permitir que a extensão do Chrome do Cypress seja carregada.
3.11.0 (17 de junho de 2024)
- Abordado um problema onde desmontar e remontar componentes causariam o tempo limite de varreduras de acessibilidade no Cypress.
- Flexibilizado a lógica de detecção de navegadores para evitar falhas mesmo ao usar navegadores suportados.
- Removidas gravações no sistema de arquivos ao descarregar resultados no Cypress.
3.10.0 (16 de maio de 2024)
- Corrigido um problema no Cypress onde o objeto
configretornado desetupNodeEventsnão era propagado corretamente e as alterações feitas nele eram perdidas. - Corrigida a implementação de funções proxy (para Playwright Test) que resultavam em um erro com objetos
Locator: só pode ser usado com o objeto Locator. - Encapsuladas duas novas funções do Playwright do lançamento 1.43.1.
3.9.0 (30 de abril de 2024)
- Adicionados tipos compatíveis com versões anteriores para a versão 20 do Puppeteer.
- Para o Cypress,
axeAnalyze(),axeFlush(),axeStart()eaxeStop()foram descontinuados. Substituídos poraxeWatcherAnalyze(),axeWatcherFlush(),axeWatcherStart()eaxeWatcherStop(). - Corrigido um
TypeErrorem certos hooks da versão 21 (e posteriores) do Puppeteer.
3.8.0 (9 de abril de 2024)
- Atualizar o JavaScript emitido para direcionar o ECMAScript 2018 (ES2018) em vez do ECMAScript 2015 (ES2015).
3.7.0 (21 de março de 2024)
- Sem alterações visíveis para o usuário
3.6.0 (7 de março de 2024)
- Na integração Cypress, evitar eventos
after:runse nenhum teste foi executado. - Alterado o formato da URL de download para Chromedriver porque a equipe do Chromedriver mudou para uma nova solução de hospedagem. Impacta o WebdriverIO.
3.5.0 (25 de janeiro de 2024)
- Corrigido um problema onde a chamada ao método
Page.goto()do Playwright registraria incorretamente dois estados da página. - Corrigido um problema na integração do Cypress que causava a ignorância de certas configurações de usuário de
setupNodeEvents. - Adicionado
eventemitter3como uma dependência obrigatória. - Envolvidas alguns métodos do Playwright que não tinham sido encapsulados antes.
3.4.0 (12 de dezembro de 2023)
- Corrigido um problema onde os estados da página eram perdidos ou ocorria um erro quando os testes causavam navegações na página.
- Removido algum código redundante da integração com o Cypress.
3.3.0 (7 de dezembro de 2023)
- Sem alterações visíveis para o usuário
3.2.0 (9 de novembro de 2023)
- Sem alterações visíveis para o usuário
3.1.1 (12 de outubro de 2023)
- Sem alterações visíveis para o usuário
3.1.0 (14 de setembro de 2023)
- Todas as integrações agora permitem
--headless=new.
3.0.0 (8 de setembro de 2023)
Para resolver casos onde analyze() não era chamado conforme esperado, as seguintes funções precisaram ser descontinuadas e substituídas:
| Função depreciada | Nova função |
|---|---|
wrapPlaywright(browserContext, controller) |
wrapPlaywrightPage(page, controller) |
wrapPuppeteer(context, controller) |
wrapPuppeteerPage(page, controller) |
Usar as funções depreciadas gerará um erro.
