ثنائيات التشغيل
لتشغيل التشغيل الآلي المعتمد على بروتوكول 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', // or 'firefox' or 'chromium'
'goog:chromeOptions': { // or 'moz:firefoxOptions' or 'wdio:chromedriverOptions'
binary: '/path/to/chrome'
},
}
]
}
2. تنزيل وتثبيت برنامج التشغيل باستخدام Chromedriver أو Edgedriver أو Geckodriver.
سيقوم WebdriverIO دائمًا بذلك، ما لم يتم تحديد binary في التكوين:
{
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
، فسيحاول 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