Instructies voor Playwright en JavaScript
Je tests configureren met Playwright en JavaScript
Axe Watcher vereist een ondersteunde browser: Chrome for Testing (een aparte browserinstallatie, verschillend van Google Chrome), Chromium of Microsoft Edge. Playwright en Puppeteer beheren hun eigen browserdownloads en installeren altijd een versie die Axe Watcher ondersteunt, dus er is niets dat je zelf hoeft te installeren. Zie Browsers instellen en configureren voor gebruik met Axe Watcher voor details.
-
Installeer in de hoofdmap van je testmap het
@axe-core/watcher-pakket en al zijn afhankelijkheden metnpmof je voorkeurspakketbeheerder (bijvoorbeeldyarnofpnpm).npm install --save-dev @axe-core/watcher -
Importeer in je testbestand(en) de
playwrightConfig()functie, dewrapPlaywright()functie en dePlaywrightControllerklasse van@axe-core/watcher/playwright:const { wrapPlaywrightPage, playwrightConfig, PlaywrightController } = require('@axe-core/watcher/playwright') -
In je testopzetcode (typisch in een
beforeofbeforeAllblok), omwikkel eventuele bestaande code voor het creëren van eenbrowserContextinstantie met een aanroep naarplaywrightConfig()terwijl je je API-sleutel verstrekt: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 = await playwright.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'] }) );Zorg ervoor dat je
ACCESSIBILITY_API_KEYenPROJECT_IDin je omgeving instelt op je persoonlijke API-sleutel (te vinden in je Axe-account, tabblad **API-SLEUTELS**) en je project-ID (weergegeven bovenaan deze instructies toen je je project maakte of beschikbaar van de Projecten-pagina door **Project configureren** te kiezen onder **Instellingen**). Als je organisatie een regionale, private cloud of on-premises Axe Developer Hub-instantie gebruikt, stel dan ookSERVER_URLin op de basis-URL van die instantie (bijvoorbeeld,https://axe-eu.deque.com); zo niet, laat danSERVER_URLweg en zal de standaardhttps://axe.deque.comgebruikt worden. -
Zodra je een
pageinstantie hebt, creëer een instantie van dePlaywrightControllerklasse en omwikkel jebrowserContext:// 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); -
Zorg er ten slotte voor dat alle testresultaten van Axe Watcher worden geleegd. Voeg hiervoor het volgende codeblok toe aan je test teardown code (meestal in een
afterEach-blok):afterEach(async () => { await controller.flush() })
