Anweisungen für Puppeteer und TypeScript

Link to Anweisungen für Puppeteer und TypeScript copied to clipboard

Konfigurieren Sie Ihre Tests mit Puppeteer und TypeScript

Free Trial
Not for use with personal data
  1. Installieren Sie auf der Stammebene Ihres Testordners das Paket @axe-core/watcher und alle seine Abhängigkeiten mit npm oder Ihrem bevorzugten Paketmanager (z. B. Yarn oder pnpm).

    npm install --save-dev @axe-core/watcher
  2. Importieren Sie in Ihre Testdatei(en) die Funktion puppeteerConfig , die Funktion wrapPuppeteer() und die Klasse PuppeteerController aus @axe-core/watcher:

    import {
      puppeteerConfig,
      wrapPuppeteerPage,
      PuppeteerController
    } from '@axe-core/watcher'
  3. Aktualisieren Sie Ihren Test-Setup-Code (normalerweise in einem before - oder beforeAll -Block), indem Sie vorhandenen Code zum Erstellen einer Browserinstanz mit einem Aufruf von puppeteerConfig() umschließen und gleichzeitig Ihren API-Schlüssel aus der Umgebung abrufen (wie API_KEY):

    // 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. Erstellen Sie eine Instanz von PuppeteerController und verknüpfen Sie Ihren 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. Stellen Sie abschließend sicher, dass alle Testergebnisse aus Axe Watcher vollständig verarbeitet sind. Fügen Sie dazu den folgenden Codeblock zu Ihrem Test-Teardown-Code hinzu (normalerweise in einem afterEach -Block):

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