Utiliser Chrome pour les tests ou Chromium avec Axe Watcher

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Comment installer et configurer Chrome pour les tests ou Chromium pour les plateformes qui se connectent à un navigateur installé sur le système

Not for use with personal data

Axe Watcher ne prend en charge que Google Chrome pour les tests ou Chromium. Les versions régulières de Chrome à partir de la version 139 ne sont pas prises en charge.

Les plateformes de test qui gèrent leur propre installation de navigateur (Playwright et Puppeteer) ne sont pas concernées ; elles téléchargent automatiquement un Chromium compatible. Les plateformes qui se connectent à un navigateur déjà installé sur la machine (WebdriverIO, WebDriverJS et Java Selenium) nécessitent l'installation de Chrome pour les tests ou de Chromium et la configuration explicite de leur chemin d'accès.

Installer Chrome pour les tests ou Chromium

Choisissez l'une des méthodes d'installation suivantes :

  • Utilisation de npm : @puppeteer/browsers est un outil de téléchargement de navigateur autonome ; il ne nécessite pas l'installation de Puppeteer dans votre projet. Pour installer Chrome pour les tests, exécutez :

    npx @puppeteer/browsers install chrome@stable

    Pour installer Chromium à la place, exécutez :

    npx @puppeteer/browsers install chromium@latest

    La commande imprime le chemin vers l'exécutable installé à la fin de son output, par exemple :

    chrome@stable /home/user/.cache/puppeteer/chrome/linux-136.0.7103.92/chrome-linux64/chrome

    Définissez la variable d'environnement CHROME_PATH sur ce chemin avant d'exécuter vos tests.

    important

    @puppeteer/browsers install télécharge le navigateur dans un sous-répertoire du répertoire de travail actuel. Exécutez la commande depuis un emplacement où un téléchargement volumineux est approprié, et envisagez d'ajouter le répertoire résultant à votre .gitignore.

  • Utilisation de GitHub Actions : Ajoutez l'étape suivante à votre fichier de workflow. Pour installer Chrome pour les tests :

    - name: Setup Chrome for Testing
      uses: browser-actions/setup-chrome@latest
      id: setup-chrome
      with:
        chrome-version: stable
        install-chromedriver: true

    Pour installer Chromium à la place, utilisez latest pour chrome-version:

    - name: Setup Chromium
      uses: browser-actions/setup-chrome@latest
      id: setup-chrome
      with:
        chrome-version: latest
        install-chromedriver: true

    Dans les deux cas, le chemin du binaire est disponible à partir de la sortie de l'étape :

    ${{ steps.setup-chrome.outputs.chrome-path }}

Configurer votre plateforme

Une fois CHROME_PATH défini, configurez votre environnement de test comme suit.

WebdriverIO

Passez le chemin du binaire dans goog:chromeOptions dans vos capacités WebdriverIO.

Pour le package autonome (wdioConfig()) :

const browser = await remote(
  wdioConfig({
    axe: {
      apiKey: ACCESSIBILITY_API_KEY,
      projectId: PROJECT_ID
    },
    capabilities: {
      browserName: 'chrome',
      'goog:chromeOptions': {
        binary: process.env.CHROME_PATH
      }
    }
  })
)

Pour WDIO Testrunner (wdioTestRunner()) :

export const config = wdioTestRunner({
  axe: {
    apiKey: ACCESSIBILITY_API_KEY,
    projectId: PROJECT_ID
  }
}, {
  capabilities: [{
    browserName: 'chrome',
    'goog:chromeOptions': {
      binary: process.env.CHROME_PATH
    }
  }]
})

WebDriverJS

Appelez webdriverConfig() d'abord pour obtenir l'objet d'options de Chrome, puis définissez le chemin du binaire avant de construire le navigateur :

const chromeOptions = webdriverConfig({
  axe: {
    apiKey: ACCESSIBILITY_API_KEY,
    projectId: PROJECT_ID
  }
})
chromeOptions.setBinaryPath(process.env.CHROME_PATH)

const browser = await new Builder()
  .forBrowser('chrome')
  .setChromeOptions(chromeOptions)
  .build()

Java Selenium

Définissez le chemin du binaire sur ChromeOptions avant d'appeler watcher.configure():

AxeWatcherOptions options =
    new AxeWatcherOptions()
        .setApiKey(System.getenv("ACCESSIBILITY_API_KEY"))
        .setProjectId(System.getenv("PROJECT_ID"));
AxeWatcher watcher = new AxeWatcher(options);
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setBinary(System.getenv("CHROME_PATH"));
chromeOptions = watcher.configure(chromeOptions);
WebDriver wrappedDriver = watcher.wrapDriver(new ChromeDriver(chromeOptions));