پرش به محتوای اصلی

درایورهای مرورگر

برای اجرای اتوماسیون بر اساس پروتکل 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 install -g chromedriver

سپس می‌توانید آن را از طریق دستور زیر شروع کنید:

chromedriver --port=4444 --verbose

Geckodriver

برای اتوماسیون Firefox، آخرین نسخه geckodriver را برای محیط خود دانلود کرده و در دایرکتوری پروژه خود باز کنید:

npm install geckodriver

نکته: سایر نسخه‌های 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

Welcome! How can I help?

WebdriverIO AI Copilot