درایورهای مرورگر
برای اجرای اتوماسیون بر اساس پروتکل WebDriver، شما نیاز به راهاندازی درایورهای مرورگر دارید که دستورات اتوماسیون را ترجمه و قادر به اجرای آنها در مرورگر هستند.
راهاندازی خودکار
با نسخه v8.14
و بالاتر WebdriverIO دیگر نیازی به دانلود و راهاندازی دستی درایورهای مرورگر نیست، زیرا این کار توسط WebdriverIO انجام میشود. تنها کاری که باید انجام دهید، مشخص کردن مرورگری است که میخواهید تست کنید و WebdriverIO بقیه کارها را انجام خواهد داد.
سفارشیسازی سطح اتوماسیون
WebdriverIO دارای سه سطح اتوماسیون است:
1. دانلود و نصب مرورگر با استفاده از @puppeteer/browsers.
اگر ترکیب browserName
/browserVersion
را در تنظیمات capabilities مشخص کنید، WebdriverIO ترکیب درخواستی را دانلود و نصب میکند، صرف نظر از اینکه آیا نصب موجودی روی دستگاه وجود دارد یا خیر. اگر browserVersion
را حذف کنید، WebdriverIO ابتدا سعی میکند یک نصب موجود را با locate-app پیدا و استفاده کند، در غیر این صورت نسخه پایدار فعلی مرورگر را دانلود و نصب میکند. برای جزئیات بیشتر در مورد browserVersion
، اینجا را ببینید.
راهاندازی خودکار مرورگر از مایکروسافت 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
پیدا کنید.
اگر میخواهید پلتفرمهای موبایل و سایر پلتفرمهای UI را راهاندازی کنید، راهنمای راهاندازی 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