ドライババイナリ
WebDriver プロトコルに基づいた自動化を実行するには、自動化コマンドを変換し、ブラウザで実行できるブラウザドライバを設定する必要があります。
自動設定
WebdriverIO v8.14
以降では、WebdriverIO によって処理されるため、ブラウザドライバを手動でダウンロードして設定する必要がなくなりました。テストするブラウザを指定するだけで、WebdriverIO が残りの作業を行います。
自動化レベルのカスタマイズ
WebdriverIO には、3 つの自動化レベルがあります。
1. @puppeteer/browsers を使用してブラウザをダウンロードしてインストールします。
browserName
/browserVersion
の組み合わせを 機能 設定で指定した場合、マシンに既存のインストールがあるかどうかに関係なく、WebdriverIO は要求された組み合わせをダウンロードしてインストールします。browserVersion
を省略した場合、WebdriverIO は最初に locate-app を使用して既存のインストールの場所を特定して使用しようとします。それ以外の場合は、現在の安定版ブラウザリリースをダウンロードしてインストールします。browserVersion
の詳細については、こちら を参照してください。
自動ブラウザ設定は、Microsoft Edge をサポートしていません。現在、サポートされているのは Chrome、Chromium、Firefox のみです。
WebdriverIO が自動検出できない場所にブラウザがインストールされている場合は、ブラウザバイナリを指定できます。これにより、自動ダウンロードとインストールが無効になります。
{
capabilities: [
{
browserName: 'chrome', // or 'firefox' or 'chromium'
'goog:chromeOptions': { // or 'moz:firefoxOptions' or 'wdio:chromedriverOptions'
binary: '/path/to/chrome'
},
}
]
}
2. Chromedriver、Edgedriver、または Geckodriver を使用してドライバをダウンロードしてインストールします。
ドライバ バイナリ が設定で指定されていない限り、WebdriverIO は常にこれを実行します。
{
capabilities: [
{
browserName: 'chrome', // or 'firefox', 'msedge', 'safari', 'chromium'
'wdio:chromedriverOptions': { // or 'wdio:geckodriverOptions', 'wdio:edgedriverOptions'
binary: '/path/to/chromedriver' // or 'geckodriver', 'msedgedriver'
}
}
]
}
WebdriverIO は、Safari ドライバを自動的にダウンロードしません。これは macOS に既にインストールされています。
ブラウザのbinary
を指定し、対応するドライバのbinary
を省略したり、その逆を行ったりしないでください。binary
の値のいずれか1つのみが指定されている場合、WebdriverIOはそれとの互換性のあるブラウザ/ドライバを使用またはダウンロードしようとします。ただし、状況によっては、互換性のない組み合わせになる可能性があります。そのため、バージョン互換性による問題を回避するために、常に両方指定することをお勧めします。
3. ドライバの起動/停止。
デフォルトでは、WebdriverIO は任意の未使用ポートを使用してドライバを自動的に起動および停止します。次の設定のいずれかを指定すると、この機能が無効になります。つまり、ドライバを手動で起動および停止する必要があります。
手動設定
以下では、各ドライバを個別に設定する方法について説明します。すべてのドライバのリストは、awesome-selenium
のREADMEにあります。
モバイルやその他のUIプラットフォームの設定については、Appium の設定ガイドをご覧ください。
Chromedriver
Chromeを自動化するには、プロジェクトのウェブサイトまたはNPMパッケージから直接Chromedriverをダウンロードできます。
- npm
- Yarn
- pnpm
npm install -g chromedriver
yarn global add chromedriver
pnpm add -g chromedriver
その後、次のようにして起動できます。
chromedriver --port=4444 --verbose
Geckodriver
Firefoxを自動化するには、お使いの環境に対応する最新のgeckodriver
をダウンロードし、プロジェクトディレクトリに解凍します。
- NPM
- Curl
- Brew
- Windows (64ビット/Chocolatey)
- Windows (64ビット/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ビット)
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)
注記: その他のgeckodriver
リリースはこちらにあります。ダウンロード後、次のようにしてドライバを起動できます。
/path/to/binary/geckodriver --port 4444
Edgedriver
Microsoft Edgeのドライバは、プロジェクトのウェブサイトまたはNPMパッケージからダウンロードできます。
npm install -g edgedriver
edgedriver --version # prints: Microsoft Edge WebDriver 115.0.1901.203 (a5a2b1779bcfe71f081bc9104cca968d420a89ac)
Safaridriver
SafaridriverはMacOSにプリインストールされており、次のようにして直接起動できます。
safaridriver -p 4444