Instructions pour Playwright et JavaScript
Configurer vos tests avec Playwright et JavaScript
Axe Watcher nécessite un navigateur compatible : Chrome pour Testing (une installation de navigateur distincte de Google Chrome), Chromium ou Microsoft Edge. Playwright et Puppeteer gèrent leurs propres téléchargements de navigateur et installent toujours une version supportée par Axe Watcher, vous n'avez donc rien à installer vous-même. Voir Configurer et paramétrer les navigateurs pour une utilisation avec Axe Watcher pour plus de détails.
-
Au niveau racine de votre dossier de test, installez le package
@axe-core/watcheret toutes ses dépendances en utilisantnpmou votre gestionnaire de packages préféré (par exemple,yarnoupnpm).npm install --save-dev @axe-core/watcher -
Dans votre fichier ou vos fichiers de test, importez la fonction
playwrightConfig(), la fonctionwrapPlaywright()et la classePlaywrightControllerdepuis@axe-core/watcher/playwright:const { wrapPlaywrightPage, playwrightConfig, PlaywrightController } = require('@axe-core/watcher/playwright') -
Dans votre code de configuration de test (typiquement dans un bloc
beforeoubeforeAll), encapsulez tout code existant pour créer une instance debrowserContextavec un appel àplaywrightConfig()en fournissant votre clé 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 = 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'] }) );Assurez-vous de définir
ACCESSIBILITY_API_KEYetPROJECT_IDdans votre environnement sur votre clé API personnelle (disponible dans votre compte Axe, onglet **CLÉS API**) et votre ID de projet (indiqué en haut de ces instructions lorsque vous avez créé votre projet ou disponible à partir de la page Projets en choisissant **Configurer le projet** sous **Paramètres**). Si votre organisation utilise une instance Axe Developer Hub régionale, cloud privé ou sur site, définissez égalementSERVER_URLsur l'URL de base de cette instance (par exemple,https://axe-eu.deque.com) ; sinon, omettezSERVER_URLet la valeur par défauthttps://axe.deque.comsera utilisée. -
Une fois que vous avez une instance de
page, créez une instance de la classePlaywrightControlleret encapsulez votrebrowserContext:// 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); -
Enfin, assurez-vous que tous les résultats de test de Axe Watcher sont bien vidés. Pour ce faire, ajoutez le bloc de code suivant à votre code de démantèlement de test (généralement dans un bloc
afterEach) :afterEach(async () => { await controller.flush() })
