No nível raiz da sua pasta de testes, instale o pacote @axe-core/watcher e todas as suas dependências usando o npm ou seu gerenciador de pacotes preferido (por exemplo, yarn ou pnpm).
npm install --save-dev @axe-core/watcherNo(s) seu(s) arquivo(s) de teste, importe a função playwrightConfig(), a função wrapPlaywright() e a classe PlaywrightController de @axe-core/watcher/playwright:
import {
wrapPlaywrightPage,
playwrightConfig,
PlaywrightController
} from '@axe-core/watcher/playwright';No seu código de configuração de teste (normalmente em um bloco before ou beforeAll), envolva qualquer código existente para criar uma instância de browserContext com uma chamada para playwrightConfig() enquanto fornece sua chave API:
const ACCESSIBILITY_API_KEY = process.env.ACCESSIBILITY_API_KEY
const PROJECT_ID = process.env.PROJECT_ID
const SERVER_URL = process.env.SERVER_URL
const browserContext: BrowserContext = await chromium.launchPersistentContext(
/**
* We set userDataDir to an empty string which saves
* browser data to a temporary directory
* @see https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context
*/
'',
playwrightConfig({
axe: {
apiKey: ACCESSIBILITY_API_KEY,
projectId: PROJECT_ID,
serverURL: SERVER_URL
},
/**
* We support both headless and headed mode with Chrome.
*
* For headless mode:
* - Use '--headless=chrome' for browsers v94-108.
* - Use '--headless=new' for browsers v109+.
*
* For headed mode:
* - Remove the '--headless' flag.
*
* @see https://playwright.dev/docs/chrome-extensions#headless-mode
*/
headless: false,
args: ['--headless=new']
})
);Certifique-se de definir ACCESSIBILITY_API_KEY e PROJECT_ID no seu ambiente para a sua chave API pessoal (encontrada na sua conta axe, aba **API KEYS**) e para o ID do seu projeto (mostrado na parte superior destas instruções quando você criou o seu projeto ou disponível na página Projetos ao escolher **Configurar projeto** em **Configurações**). Se a sua organização usa uma instância regional, em nuvem privada ou local do Axe Developer Hub, também defina SERVER_URL para a URL base dessa instância (por exemplo, https://axe-eu.deque.com); caso contrário, omita SERVER_URL e o padrão https://axe.deque.com será utilizado.
Depois de ter uma instância page, crie uma instância da classe PlaywrightController e envolva seu browserContext:
// Create a page instance, using your browser context.
let page = await browserContext.newPage();
// Initialize the PlaywrightController by passing in the Playwright page.
const controller = new PlaywrightController(page);
// Use the new wrapped Playwright page instance.
page = wrapPlaywrightPage(page, controller);Por fim, certifique-se de que todos os resultados de teste do axe Watcher sejam esvaziados. Para fazer isso, adicione o seguinte bloco de código ao seu código de desmontagem de teste (normalmente em um bloco afterEach):
afterEach(async () => {
await controller.flush()
})