Instructions pour Puppeteer et TypeScript

Link to Instructions pour Puppeteer et TypeScript copied to clipboard

Configurer vos tests avec Puppeteer et TypeScript

Free Trial
Not for use with personal data
  1. Au niveau racine de votre dossier de test, installez le package @axe-core/watcher et toutes ses dépendances à l'aide de npm ou de votre gestionnaire de packages préféré (par exemple, Yarn ou pnpm).

    npm install --save-dev @axe-core/watcher
  2. Dans votre ou vos fichiers de test, importez la fonction puppeteerConfig , la fonction wrapPuppeteer() et la classe PuppeteerController de @axe-core/watcher :

    import {
      puppeteerConfig,
      wrapPuppeteerPage,
      PuppeteerController
    } from '@axe-core/watcher'
  3. Mettez à jour votre code de configuration de test (généralement dans un bloc before ou beforeAll ) en enveloppant tout code existant pour créer une instance de navigateur avec un appel à puppeteerConfig(), tout en obtenant votre clé API (en tant que API_KEY) à partir de l'environnement :

    // Original code:
    
    browser = await puppeteer.launch({
      // Your existing launch options...
    })
    
    // Becomes:
    
    const API_KEY = process.env.API_KEY
    
    const browser = await puppeteer.launch(
      puppeteerConfig({
        axe: {
          apiKey: API_KEY
        },
        headless: false
      })
    );
  4. Créez une instance de PuppeteerController et encapsulez votre Puppeteer browserContext :

    // Create a page instance, using your browser instance.
    let page = await browser.newPage()
    
    // Initialize the PuppeteerController by passing in the Puppeteer page.
    const controller = new PuppeteerController(page)
    
    // Use the new wrapped Puppeteer page instance.
    page = wrapPuppeteerPage(page, controller)
  5. Enfin, assurez-vous que tous les résultats des tests d’axe Watcher sont complètement traités. Pour ce faire, ajoutez le bloc de code suivant à votre code de démontage de test (généralement dans un bloc afterEach) :

    afterEach(async () => {
      await controller.flush()
    });