Драйверы браузеров
Для запуска автоматизации на основе протокола WebDriver вам необходимо настроить драйверы браузера, которые переводят команды автоматизации и могут выполнять их в браузере.
Автоматическая настройка
Начиная с WebdriverIO v8.14
больше нет необходимости вручную загружать и настраивать драйверы браузера, так как это выполняется WebdriverIO. Всё, что вам нужно сделать - это указать браузер, который вы хотите тестировать, и WebdriverIO сделает всё остальное.
Настройка уровня автоматизации
WebdriverIO имеет три уровня автоматизации:
1. Загрузка и установка браузера с помощью @puppeteer/browsers.
Если вы указываете комбинацию browserName
/browserVersion
в конфигурации capabilities, WebdriverIO загрузит и установит запрошенную комбинацию, независимо от того, существует ли уже установка на машине. Если вы опустите browserVersion
, WebdriverIO сначала попытается найти и использовать существующую установку с помощью locate-app, в противном случае загрузит и установит текущую стабильную версию браузера. Дополнительные сведения о browserVersion
см. здесь.
Автоматическая настройка браузера не поддерживает Microsoft Edge. В настоящее время поддерживаются только Chrome, Chromium и Firefox.
Если у вас есть установка браузера в месте, которое не может быть автоматически обнаружено WebdriverIO, вы можете указать исполняемый файл браузера, что отключит автоматическую загрузку и установку.
{
capabilities: [
{
browserName: 'chrome', // или 'firefox' или 'chromium'
'goog:chromeOptions': { // или 'moz:firefoxOptions' или 'wdio:chromedriverOptions'
binary: '/path/to/chrome'
},
}
]
}
2. Загрузка и установка драйвера с помощью Chromedriver, Edgedriver или Geckodriver.
WebdriverIO всегда будет делать это, если binary драйвера не указан в конфигурации:
{
capabilities: [
{
browserName: 'chrome', // или 'firefox', 'msedge', 'safari', 'chromium'
'wdio:chromedriverOptions': { // или 'wdio:geckodriverOptions', 'wdio:edgedriverOptions'
binary: '/path/to/chromedriver' // или 'geckodriver', 'msedgedriver'
}
}
]
}
WebdriverIO не будет автоматически загружать драйвер Safari, так как он уже установлен на macOS.
Избегайте указания binary
для браузера и пропуска соответствующего binary
драйвера или наоборот. Если указано только одно из значений binary
, WebdriverIO попытается использовать или загрузить браузер/драйвер, совместимый с ним. Однако в некоторых сценариях это может привести к несовместимой комбинации. Поэтому рекомендуется всегда указывать оба значения, чтобы избежать проблем, вызванных несовместимостью версий.
3. Запуск/остановка драйвера.
По умолчанию WebdriverIO автоматически запускает и останавливает драйвер, используя произвольный неиспользуемый порт. Указание любой из следующих конфигураций отключит эту функцию, что означает, что вам нужно будет вручную запускать и останавливать драйвер:
- Любое значение для port.
- Любое значение, отличное от значения по умолчанию для protocol, hostname, path.
- Любое значение для user и key.
Ручная настройка
Ниже описано, как вы всё ещё можете настроить каждый драйвер индивидуально. Вы можете найти список всех драйверов в README awesome-selenium
.
Если вы хотите настроить мобильные и другие платформы пользовательского интерфейса, ознакомьтесь с нашим руководством по Настройке Appium.
Chromedriver
Для автоматизации Chrome вы можете загрузить Chromedriver напрямую на веб-сайте проекта или через пакет NPM:
- 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 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)
Примечание: Другие релизы 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