Configurar e Configurar Navegadores para Uso com o Axe Watcher
Como instalar e configurar um navegador compatível para plataformas que se conectam a um navegador instalado no sistema
O Axe Watcher suporta os seguintes navegadores:
- Google Chrome para Testes
- Chromium
- Microsoft Edge (com Java Selenium, o Microsoft Edge requer o Watcher 4.5.1 ou posterior e o Selenium 4 ou posterior; com WebdriverIO, o Microsoft Edge requer o Watcher 4.6.0 ou posterior)
Google Chrome, versão 139 ou superior, não é suportado.
Playwright e Puppeteer gerenciam suas próprias instalações de navegador: eles sempre baixam uma versão do Chromium que o Axe Watcher suporta, então você não precisa instalar um binário de navegador por conta própria nessas plataformas. WebdriverIO, WebDriverJS e Java Selenium, por outro lado, se conectam a um navegador já instalado na máquina, portanto, você deve instalar um binário de navegador compatível por conta própria e apontar sua configuração de teste para ele, conforme abordado nas seções abaixo.
Instale o Chrome para Testes ou o Chromium
Se você estiver usando o Microsoft Edge, pule esta seção e vá para Use o Microsoft Edge em Vez abaixo; o Edge não precisa ser baixado ou instalado por este processo.
Escolha um dos seguintes métodos de instalação:
-
Usando npm:
@puppeteer/browsersé uma ferramenta independente de download de navegador; não requer que o Puppeteer esteja instalado em seu projeto. Para instalar o Chrome para Testes, execute:npx @puppeteer/browsers install chrome@stablePara instalar o Chromium, execute:
npx @puppeteer/browsers install chromium@latestO comando imprime o caminho para o binário instalado ao final de sua saída, por exemplo:
chrome@stable /home/user/.cache/puppeteer/chrome/linux-136.0.7103.92/chrome-linux64/chromeDefina a variável de ambiente
CHROME_PATHpara esse caminho antes de executar seus testes.important@puppeteer/browsers installfaz o download do navegador em um subdiretório do diretório de trabalho atual. Execute o comando de um local onde um grande download seja apropriado e considere adicionar o diretório resultante ao seu.gitignore. -
Usando o GitHub Actions: Adicione a seguinte etapa ao seu arquivo de fluxo de trabalho. Para instalar o Chrome para Testes:
- name: Setup Chrome for Testing uses: browser-actions/setup-chrome@latest id: setup-chrome with: chrome-version: stable install-chromedriver: truePara instalar o Chromium, use
latestparachrome-version:- name: Setup Chromium uses: browser-actions/setup-chrome@latest id: setup-chrome with: chrome-version: latest install-chromedriver: trueEm ambos os casos, o caminho do binário está disponível a partir da saída da etapa:
${{ steps.setup-chrome.outputs.chrome-path }}
Configure Sua Plataforma
Uma vez que CHROME_PATH esteja definido, configure seu ambiente de teste da seguinte forma.
WebdriverIO
Passe o caminho do binário dentro de goog:chromeOptions em suas capacidades do WebdriverIO.
Para o autônomo (wdioConfig()):
const browser = await remote(
wdioConfig({
axe: {
apiKey: ACCESSIBILITY_API_KEY,
projectId: PROJECT_ID
},
capabilities: {
browserName: 'chrome',
'goog:chromeOptions': {
binary: process.env.CHROME_PATH
}
}
})
)Para WDIO Testrunner (wdioTestRunner()):
export const config = wdioTestRunner({
axe: {
apiKey: ACCESSIBILITY_API_KEY,
projectId: PROJECT_ID
}
}, {
capabilities: [{
browserName: 'chrome',
'goog:chromeOptions': {
binary: process.env.CHROME_PATH
}
}]
})WebDriverJS
Chame webdriverConfig() primeiro para obter o objeto de opções do Chrome, depois defina o caminho do binário antes de construir o navegador:
const chromeOptions = webdriverConfig({
axe: {
apiKey: ACCESSIBILITY_API_KEY,
projectId: PROJECT_ID
}
})
chromeOptions.setBinaryPath(process.env.CHROME_PATH)
const browser = await new Builder()
.forBrowser('chrome')
.setChromeOptions(chromeOptions)
.build()Java Selenium
Defina o caminho do binário em ChromeOptions antes de chamar watcher.configure():
AxeWatcherOptions options =
new AxeWatcherOptions()
.setApiKey(System.getenv("ACCESSIBILITY_API_KEY"))
.setProjectId(System.getenv("PROJECT_ID"));
AxeWatcher watcher = new AxeWatcher(options);
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setBinary(System.getenv("CHROME_PATH"));
chromeOptions = watcher.configure(chromeOptions);
WebDriver wrappedDriver = watcher.wrapDriver(new ChromeDriver(chromeOptions));Use o Microsoft Edge em Vez
O Microsoft Edge é compatível com cada integração do Axe Watcher, sujeito às versões mínimas indicadas abaixo. Se o Edge já estiver instalado na máquina, não é necessário fazer um download separado. Configure sua plataforma para iniciar o Edge em vez do Chrome para Testes ou Chromium.
WebdriverIO com Microsoft Edge
Defina browserName para MicrosoftEdge em suas capacidades do WebdriverIO.
Usar o Microsoft Edge com WebdriverIO requer o Watcher 4.6.0 ou posterior. Em versões anteriores, o Watcher enviava suas opções de navegador para a capacidade goog:chromeOptions, que o Microsoft Edge WebDriver ignora, então os testes não registravam resultados nem reportavam erros.
Para o autônomo (wdioConfig()):
const browser = await remote(
wdioConfig({
axe: {
apiKey: ACCESSIBILITY_API_KEY,
projectId: PROJECT_ID
},
capabilities: {
browserName: 'MicrosoftEdge'
}
})
)Para WDIO Testrunner (wdioTestRunner()):
export const config = wdioTestRunner({
axe: {
apiKey: ACCESSIBILITY_API_KEY,
projectId: PROJECT_ID
}
}, {
capabilities: [{
browserName: 'MicrosoftEdge'
}]
})WebDriverJS com Microsoft Edge
Construa o navegador com MicrosoftEdge como o navegador alvo:
const browser = await new Builder()
.forBrowser('MicrosoftEdge')
.build()Java Selenium com Microsoft Edge
Use EdgeOptions e EdgeDriver no lugar de ChromeOptions e ChromeDriver. Nenhum CHROME_PATH é necessário: o Selenium lança a instalação do Edge que encontra na máquina, e o Selenium Manager (Selenium 4.6 e posterior) baixa automaticamente um msedgedriver correspondente. Em versões anteriores do Selenium 4, coloque um msedgedriver que corresponda à versão instalada do Edge no seu PATH.
AxeWatcherOptions options =
new AxeWatcherOptions()
.setApiKey(System.getenv("ACCESSIBILITY_API_KEY"))
.setProjectId(System.getenv("PROJECT_ID"));
AxeWatcher watcher = new AxeWatcher(options);
EdgeOptions edgeOptions = new EdgeOptions();
edgeOptions = watcher.configure(edgeOptions);
WebDriver wrappedDriver = watcher.wrapDriver(new EdgeDriver(edgeOptions));O suporte para Microsoft Edge requer o Watcher 4.5.1 ou posterior e o Selenium 4 ou posterior. O alvo EdgeOptions do Selenium 3 é o navegador legado EdgeHTML, que o Axe Watcher não suporta, portanto, chamar configure() com EdgeOptions no Selenium 3 lança um IllegalStateException.
Para lançar uma instalação do Edge que não esteja na localização padrão, chame setBinary() no seu EdgeOptions antes de watcher.configure(); configure() preserva o caminho do binário que você configurou:
EdgeOptions edgeOptions = new EdgeOptions();
edgeOptions.setBinary(System.getenv("EDGE_PATH"));
edgeOptions = watcher.configure(edgeOptions);Java Playwright com Microsoft Edge
O Playwright abre o Edge através de seu canal msedge, portanto, não é necessário um caminho de binário separado. Defina o canal para msedge nas opções de lançamento após chamar watcher.configure():
AxeWatcherOptions options =
new AxeWatcherOptions()
.setApiKey(System.getenv("ACCESSIBILITY_API_KEY"))
.setProjectId(System.getenv("PROJECT_ID"));
AxeWatcherPlaywright watcher = new AxeWatcherPlaywright(options);
BrowserType.LaunchPersistentContextOptions launchOptions =
watcher.configure(new BrowserType.LaunchPersistentContextOptions().setChannel("msedge"));
launchOptions.setHeadless(false);
BrowserContext context =
playwright.chromium().launchPersistentContext(userDataDir, launchOptions);
AxeWatcherPage page = watcher.wrapPage(context.newPage());Para executar sem cabeça com o Edge, mantenha o canal msedge e chame setHeadless(true); o Watcher requer um canal baseado em Chromium (chrome, chromium, ou um canal Microsoft Edge, como msedge) sempre que o modo sem cabeça estiver habilitado. Veja Instruções para Java e Playwright para a configuração completa.
