Pilotes de Navigateurs
Pour exécuter l'automatisation basée sur le protocole WebDriver, vous devez configurer des pilotes de navigateur qui traduisent les commandes d'automatisation et peuvent les exécuter dans le navigateur.
Configuration automatisée
Avec WebdriverIO v8.14
et versions ultérieures, il n'est plus nécessaire de télécharger et configurer manuellement les pilotes de navigateur, car WebdriverIO s'en charge. Tout ce que vous avez à faire est de spécifier le navigateur que vous souhaitez tester et WebdriverIO fera le reste.
Personnalisation du niveau d'automatisation
WebdriverIO propose trois niveaux d'automatisation :
1. Téléchargement et installation du navigateur à l'aide de @puppeteer/browsers.
Si vous spécifiez une combinaison browserName
/browserVersion
dans la configuration des capabilities, WebdriverIO téléchargera et installera la combinaison demandée, qu'une installation existante soit présente sur la machine ou non. Si vous omettez browserVersion
, WebdriverIO essaiera d'abord de localiser et d'utiliser une installation existante avec locate-app, sinon il téléchargera et installera la version stable actuelle du navigateur. Pour plus de détails sur browserVersion
, voir ici.
La configuration automatisée du navigateur ne prend pas en charge Microsoft Edge. Actuellement, seuls Chrome, Chromium et Firefox sont pris en charge.
Si vous avez une installation de navigateur à un emplacement qui ne peut pas être détecté automatiquement par WebdriverIO, vous pouvez spécifier le binaire du navigateur, ce qui désactivera le téléchargement et l'installation automatisés.
{
capabilities: [
{
browserName: 'chrome', // ou 'firefox' ou 'chromium'
'goog:chromeOptions': { // ou 'moz:firefoxOptions' ou 'wdio:chromedriverOptions'
binary: '/path/to/chrome'
},
}
]
}
2. Téléchargement et installation du pilote à l'aide de Chromedriver, Edgedriver ou Geckodriver.
WebdriverIO le fera toujours, sauf si le binary du pilote est spécifié dans la configuration :
{
capabilities: [
{
browserName: 'chrome', // ou 'firefox', 'msedge', 'safari', 'chromium'
'wdio:chromedriverOptions': { // ou 'wdio:geckodriverOptions', 'wdio:edgedriverOptions'
binary: '/path/to/chromedriver' // ou 'geckodriver', 'msedgedriver'
}
}
]
}
WebdriverIO ne téléchargera pas automatiquement le pilote Safari car il est déjà installé sur macOS.
Évitez de spécifier un binary
pour le navigateur et d'omettre le binary
du pilote correspondant ou vice-versa. Si une seule des valeurs binary
est spécifiée, WebdriverIO essaiera d'utiliser ou de télécharger un navigateur/pilote compatible. Cependant, dans certains scénarios, cela peut entraîner une combinaison incompatible. Par conséquent, il est recommandé de toujours spécifier les deux pour éviter tout problème causé par des incompatibilités de version.
3. Démarrage/arrêt du pilote.
Par défaut, WebdriverIO démarrera et arrêtera automatiquement le pilote en utilisant un port inutilisé arbitraire. Spécifier l'une des configurations suivantes désactivera cette fonctionnalité, ce qui signifie que vous devrez démarrer et arrêter manuellement le pilote :
- Toute valeur pour port.
- Toute valeur différente de la valeur par défaut pour protocol, hostname, path.
- Toute valeur pour user et key.
Configuration manuelle
Ce qui suit décrit comment vous pouvez toujours configurer chaque pilote individuellement. Vous pouvez trouver une liste de tous les pilotes dans le README awesome-selenium
.
Si vous cherchez à configurer des plateformes mobiles et autres interfaces utilisateur, consultez notre guide Configuration Appium.
Chromedriver
Pour automatiser Chrome, vous pouvez télécharger Chromedriver directement sur le site du projet ou via le package NPM :
- npm
- Yarn
- pnpm
npm install -g chromedriver
yarn global add chromedriver
pnpm add -g chromedriver
Vous pouvez ensuite le démarrer via :
chromedriver --port=4444 --verbose
Geckodriver
Pour automatiser Firefox, téléchargez la dernière version de geckodriver
pour votre environnement et décompressez-la dans votre répertoire de projet :
- NPM
- Curl
- Brew
- Windows (64 bit / Chocolatey)
- Windows (64 bit / Powershell) DevTools
- npm
- Yarn
- pnpm
npm install geckodriver
yarn add geckodriver
pnpm add geckodriver
Linux:
curl -L https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz | tar xz
MacOS (64 bit):
curl -L https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-macos.tar.gz | tar xz
brew install geckodriver
choco install selenium-gecko-driver
# Run as privileged session. Right-click and set 'Run as Administrator'
# Use geckodriver-v0.24.0-win32.zip for 32 bit Windows
$url = "https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-win64.zip"
$output = "geckodriver.zip" # will drop into current directory unless defined otherwise
$unzipped_file = "geckodriver" # will unzip to this folder name
# By default, Powershell uses TLS 1.0 the site security requires TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Downloads Geckodriver
Invoke-WebRequest -Uri $url -OutFile $output
# Unzip Geckodriver
Expand-Archive $output -DestinationPath $unzipped_file
cd $unzipped_file
# Globally Set Geckodriver to PATH
[System.Environment]::SetEnvironmentVariable("PATH", "$Env:Path;$pwd\geckodriver.exe", [System.EnvironmentVariableTarget]::Machine)
Remarque : D'autres versions de geckodriver
sont disponibles ici. Après le téléchargement, vous pouvez démarrer le pilote via :
/path/to/binary/geckodriver --port 4444
Edgedriver
Vous pouvez télécharger le pilote pour Microsoft Edge sur le site du projet ou comme package NPM via :
npm install -g edgedriver
edgedriver --version # prints: Microsoft Edge WebDriver 115.0.1901.203 (a5a2b1779bcfe71f081bc9104cca968d420a89ac)
Safaridriver
Safaridriver est préinstallé sur votre MacOS et peut être démarré directement via :
safaridriver -p 4444