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.1.0 (24 de fevereiro de 2026)
-
Recursos
- O Watcher agora escaneia automaticamente todos os iframes de mesma origem. (A integração com o Cypress já tinha esse comportamento.) Isso se aplica às integrações com Playwright, Puppeteer, WebdriverIO, WebDriverJS e Java Selenium.
- Adicionado suporte para o RGAA v4 (padrão francês de acessibilidade). Defina
accessibilityStandard: 'RGAAv4'emConfigurationOverrides(JavaScript/TypeScript) ou useConfigurationOverrides.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 uma 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(as informações do Git são coletadas). - Atualizado o axe-core para a versão 4.11.1.
-
Correções de Bugs
- Corrigido um problema na integração com Java onde um caminho binário personalizado do Chrome definido via
setBinary()no objetoChromeOptionsseria sobrescrito quando passado paraconfigure().
- Corrigido um problema na integração com Java onde um caminho binário personalizado do Chrome definido via
4.0.0 (3 de dezembro de 2025)
O Watcher 4.0.0 é um lançamento importante do pacote Watcher.
-
Recursos
- Adicionado suporte a proxy. Veja Usando o Watcher com um Proxy para mais informações. (A implementação de proxy HTTP requer a versão 20.18.1 ou posterior do Node.js).
- Atualizada a versão do axe-core para 4.11.0.
- Adicionado suporte para a versão 24 do Node.js.
-
Correções de Bugs
- Corrigido um problema ao relatar informações do Git ao usar um pipeline GitLab.
- Melhorada a manipulação de erros para alternativas ao Chrome, como Chrome for Testing e Chromium.
- Manipular corretamente dados de Git vazios.
- Incluir todas as opções de Chrome fornecidas pelo usuário para o WebdriverIO.
-
Mudanças Incompatíveis
-
O Watcher (para TypeScript e JavaScript) agora usa novos caminhos para importação do pacote. Veja as instruções para o 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') -
Substituída a especificação incorreta de
LaunchOptionsem TypeScript para Playwright por um novo tipo chamadoLaunchPersistentContextOptions, extraído dinamicamente delaunchPersistentContext. Os usuários precisarão remover qualquer opção não suportada que estavam usando comLaunchOptions; caso contrário, seu TypeScript não irá compilar em modo estrito.
-
3.23.0 (1 de agosto de 2025)
- Melhorada a lógica de tempo limite e 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 a implementação JavaScript/TypeScript quanto para a implementação Java). - Reportar falha se o máximo de tentativas para upload de resultados falhados for excedido (
Flush: Failed. Maximum retries reached). - Corrigidos problemas com o manuseio do Chrome para Testes e Chromium.
- Registrar se o máximo de tentativas foi alcançado.
- Implementado teste de componentes na integração Cypress.
3.22.0 (1 de julho de 2025)
- Garantir que
runOptionsnão inclua nenhum valornull, o que causou uma falha silenciosa na integração Java. - Garantir 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 em Java.
- Melhorado o método para determinar o ramo Git padrão.
3.21.0 (23 de maio de 2025)
- Java Watcher lançado.
- Implementado um meio de contingência para determinar o nome do ramo Git padrão.
- 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.runOnlyfalhou 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 tempo limite que especificaram o parâmetro errado para alterar. (Por exemplo, o usuário foi direcionado a mudar
timeoutStartem vez do valor corretotimeout.start.)
3.20.1 (25 de março de 2025)
-
Funcionalidades
- Permitir que versões anteriores do axe-core sejam selecionadas.
- Tornar o envio de resultados para o servidor mais robusto.
-
Correções de bugs
- Corrigido um problema ao consolidar configurações globais com substituições de configuração de usuário.
- Corrigida uma condição de corrida na integração Cypress.
- Corrigido um problema na integração Cypress onde regras experimentais não estavam habilitadas.
- Corrigido um problema onde a habilitação do padrão EN 301 549 não era respeitada.
- Corrigido um problema com
configurationOverridesse nenhum valor fosse definido. - 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
configurationOverridesfornecido.", "context": "paragraph - Mensagem de erro aprimorada para um padrão de acessibilidade não permitido em ",
"context": "paragraph
configurationOverrides.", "context": "paragraph - Mensagens de erro corrigidas para incluir um link para a documentação de solução de problemas.", "context": "paragraph
- Melhorou o tratamento de erros ao enviar resultados para o servidor, o que anteriormente causava a interrupção da suíte de testes.", "context": "paragraph
3.20.0", "context": "heading level 2
- Não lançado", "context": "paragraph
3.19.1 (25 de fevereiro de 2025)", "context": "heading level 2
- Corrigido um problema com a captura de estados de página.", "context": "paragraph
- Garanta que as suítes de teste que especificam ",
"context": "paragraph
--disable-extensionsnão desativem o Watcher.", "context": "paragraph
3.19.0 (20 de janeiro de 2025)", "context": "heading level 2
- Aprimorada a mensagem de erro com as versões 1.49.0 ou superior do Playwright e Playwright Test ao usar o ",
"context": "paragraph
headlessparâmetro quando o ", "context": "paragraphchannelparâmetro está definido como ", "context": "paragraphfirefox. (Apenas os canais ", "context": "paragraphchromiumou ", "context": "paragraphchromesão suportados com modo totalmente 'headed' ou o novo modo 'headless'.)", "context": "paragraph - Melhorada a verificação de versão para axe-core.", "context": "paragraph
- Suporte para ", "context": "paragraph configurações globais", "context": "link text.", "context": "paragraph
3.18.0 (18 de dezembro de 2024)", "context": "heading level 2
- Corrigidos diversos problemas de manipulação de sessão, que poderiam causar resultados errôneos ou vazios no site.", "context": "paragraph
- Adicionado suporte para o novo Chromium em modo 'headless' nas versões Playwright >= 4.91. Veja ", "context": "paragraph Experimente o novo Chromium 'headless'", "context": "link text nas notas de lançamento do Playwright 4.91.", "context": "paragraph
- Adicionados valores de tempo limite personalizados para permitir que os usuários controlem o manuseio de sessões.", "context": "paragraph
3.17.2 (12 de dezembro de 2024)", "context": "heading level 2
-
Funcionalidades", "context": "strong text
- Adicionado modo manual ao Watcher.", "context": "paragraph
- Executar uma análise em um protocolo não suportado (qualquer protocolo que não seja ", "context": "paragraph *https*", "context": "emphasized text, ", "context": "paragraph *http*", "context": "emphasized text, ou ", "context": "paragraph *file*", "context": "emphasized text) ou na página ", "context": "paragraph *about:blank*", "context": "emphasized text resultará em um erro.", "context": "paragraph
- Agora, o Watcher lança um erro se não for configurado antes do uso.", "context": "paragraph
-
Correções de bugs", "context": "strong text
- Corrigido um problema no Playwright Test onde as sessões eram reutilizadas, causando a sobrescrição dos resultados.", "context": "paragraph
- Corrigidos diversos outros problemas com a criação e gestão de sessões.", "context": "paragraph
- No modo manual, chamar o ",
"context": "paragraph
start()método do controlador agora marca o DOM da página atual como limpo, de forma que nenhum estado de página é capturado.", "context": "paragraph - No modo manual, corrigido um problema em que um estado de página adicional era capturado às vezes quando ",
"context": "paragraph
flush()era chamado.", "context": "paragraph - Corrigido um problema que causava a ausência do estado de página quando ",
"context": "paragraph
cy.axeWatcherAnalyze()era chamado após ", "context": "paragraphcy.click()foi chamada sem uma ", "context": "paragraphcy.wait()chamada.", "context": "paragraph - Agora inclua um arquivo LICENSES-3RD-PARTY.md atualizado com o pacote @axe-core/watcher.", "context": "paragraph
- O método do controlador ",
"context": "paragraph
stop()agora analisa a página se o DOM tiver mudado antes de desligar o modo automático.", "context": "paragraph - Mudou 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 ",
"context": "paragraph
stop()for chamado.", "context": "paragraph - Corrigido um problema na integração com o Playwright que fazia com que métodos encapsulados retornassem tipos incorretos.", "context": "paragraph
- Corrigido um problema que impedia ",
"context": "paragraph
runOptionsde aceitar apenas uma opção.", "context": "paragraph
3.17.1", "context": "heading level 2
- Não lançado", "context": "paragraph
3.17.0", "context": "heading level 2
- Não lançado", "context": "paragraph
3.16.1 (25 de outubro de 2024)", "context": "heading level 2
- Incluídas licenças de terceiros.", "context": "paragraph
3.16.0 (26 de setembro de 2024)", "context": "heading level 2
- Corrigido um problema de dependência transitiva envolvendo comandos do Cypress.", "context": "paragraph
3.15.2 (13 de setembro de 2024)", "context": "heading level 2
- Adicionado suporte para a versão 9 do WebdriverIO (mantendo o suporte para as versões 7 e 8 do WebdriverIO).", "context": "paragraph
3.15.1", "context": "heading level 2
- Pulado (não houve candidato a lançamento)", "context": "paragraph
3.15.0", "context": "heading level 2
- Não lançado", "context": "paragraph
3.14.3 (5 de setembro de 2024)", "context": "heading level 2
- Sem mudanças visíveis para o usuário", "context": "paragraph
3.14.2 (29 de agosto de 2024)", "context": "heading level 2
- Corrigido um erro ao acessar o valor do timeout no Cypress.", "context": "paragraph
- Para o Cypress, agora lança uma exceção se o usuário tentar usar o Watcher sem antes chamar ",
"context": "paragraph
cypressConfig().", "context": "paragraph - Corrigido um erro que aparecia sob certas condições no Cypress ao importar o módulo ",
"context": "paragraph
osmódulo.", "context": "paragraph - Adicionado ",
"context": "paragraph
buildIDpara ", "context": "paragraphAxeConfigurationpara execuções de teste em paralelo.", "context": "paragraph - Descontinuado ",
"context": "paragraph
sessionIDem ", "context": "paragraphAxeConfigurationem favor de ", "context": "paragraphbuildID.", "context": "paragraph - Corrigido um problema que causava a captura de um estado de página adicional com o Puppeteer devido ao tratamento de ",
"context": "paragraph
authenticate().", "context": "paragraph - Melhorias de desempenho no axe Watcher devido a mudanças na ofuscação de código.", "context": "paragraph
3.14.1", "context": "heading level 2
- Não lançado", "context": "paragraph
3.14.0", "context": "heading level 2
- Não lançado", "context": "paragraph
3.13.1 (19 de julho de 2024)", "context": "heading level 2
- Permitir a exclusão de URLs da análise de varredura usando a opção ",
"context": "paragraph
excludeUrlPatterns. Veja ", "context": "paragraphexcludUrlPatterns.", "context": "paragraph
3.13.0
- Não lançado
3.12.0 (16 de julho de 2024)
- Melhorado o manuseio de remontagem de componentes no Cypress.
- Garantido que o Watcher possa ser carregado na versão 7 do WebdriverIO.
- Adicionado suporte ao Puppeteer
locator. - Adicionada a configuração de
runContexterunOptionspara axe-core. VejarunContexterunOptions.
3.11.1 (26 de junho de 2024)
- Corrigido um problema onde os valores de retorno de
setupNodeEventsmanipuladores externos no Cypress não eram propagados. - Modificado o comportamento para permitir que a extensão de Chrome do Cypress seja carregada.
3.11.0 (17 de junho de 2024)
- Resolvido um problema onde desmontar e remontar componentes causaria tempo de espera em verificações de acessibilidade no Cypress.
- Relaxada a lógica de deteção do navegador para evitar falhas mesmo ao utilizar navegadores suportados.
- Removidas gravações no sistema de arquivos ao limpar 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 quaisquer alterações feitas eram perdidas. - Corrigida a implementação de funções proxy (para o Playwright Test) que resultavam em erro com
Locatorobjetos: somente pode ser usado com objeto Locator. - Envolvidas duas novas funções do Playwright da versão 1.43.1.
3.9.0 (30 de abril de 2024)
- Adicionados tipos compatíveis retroativamente para a versão 20 do Puppeteer.
- Para o Cypress, depreciado
axeAnalyze(),axeFlush(),axeStart()eaxeStop(). Substituído 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)
- Atualizado 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 com o Cypress, impedir
after:runeventos se 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 chamar o método do Playwright
Page.goto()registrava incorretamente dois estados da página. - Corrigido um problema na integração com o Cypress que fazia com que certas configurações de usuário de
setupNodeEventsfossem ignoradas. - Adicionado
eventemitter3como uma dependência necessária. - Envolvidos alguns métodos do Playwright que não haviam sido envolvidos antes.
3.4.0 (12 de dezembro de 2023)
- Corrigido um problema onde estados da página eram perdidos ou erros ocorriam quando 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 inesperadamente, as seguintes funções precisaram ser depreciadas 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 irá gerar um erro.
