تنزيل Geckodriver لـ Firefox & Selenium

⚡ ملخص ذكي

برنامج GeckoDriver لـ Firefox و Selenium يعمل كوسيط بين عملاء W3C WebDriver وموزيلا Firefox، وترجمة الأوامر إلى Mariبروتوكول أونيت. يشرح هذا الدليل التثبيت، وتقنيات التهيئة، ونماذج التعليمات البرمجية، والاستثناءات الشائعة، ومزايا التوافق الأساسية.

  • 🦊 دور الجسر: برنامج GeckoDriver يربط Selenium عملاء WebDriver مع Firefox يستخدم ال Mariبروتوكول أونيت.
  • ⬇️ الإعداد أولاً: قم بتنزيل الإصدار الصحيح من برنامج GeckoDriver من مستودع Mozilla الرسمي لنظام التشغيل الخاص بك.
  • ⚙️ ثلاثة مسارات تهيئة: قم بتهيئة برنامج التشغيل من خلال DesiredCapabilities، وهي خاصية نظام marionette، أو Firefoxخيارات.
  • 🧪 نموذج سير العمل: استعمل JUnit التعليقات التوضيحية مثل @Before و @Test و @After لإدارة دورة حياة المتصفح بشكل نظيف.
  • 🛠️ إصلاح الأخطاء الشائعة: حل مشكلات SessionNotCreated وconnection-refused عن طريق المحاذاة Firefox, Selenium، وإصدارات برامج التشغيل.
  • 🌐 ميزة W3C: يوفر معيار W3C WebDriver التوافق بين الإصدارات المختلفة، مما يقلل من الصيانة لمجموعات الأتمتة.

سائق أبو بريص في Selenium

ما هو GeckoDriver في Selenium?

يشير مصطلح Gecko إلى محرك متصفح الويب المدمج في Mozilla Firefox المتصفح. يعمل برنامج GeckoDriver كوسيط بين العملاء الذين يدعمون WebDriver (Eclipse, NetBeans, IntelliJ IDEAإلخ) وموزيلا Firefox المتصفح. باختصار، يعمل برنامج GeckoDriver كحلقة وصل بين Selenium اختبارات WebDriver وموزيلا Firefox.

قبل Selenium 3، موزيلا Firefox كان المتصفح هو المتصفح الافتراضي لـ Selenium. بعد Selenium 3- يجب على المختبرين تهيئة البرنامج النصي لاستخدامه Firefox من خلال برنامج GeckoDriver بشكل صريح. Selenium يستخدم بروتوكول W3C WebDriver لإرسال الطلبات إلى GeckoDriver، الذي يترجمها إلى بروتوكول يسمى Mariأونيت. Firefox ثم يفهم الأوامر transmitتيد في Mariتنسيق بروتوكول أونيت وتنفيذه.

مزايا استخدام برنامج GeckoDriver

Selenium إصدار WebDriver 2.53 غير متوافق مع Mozilla Firefox الإصدار 47.0+. الإصدار القديم Firefox برنامج التشغيل المستخدم في إصدارات موزيلا السابقة Firefox تم إيقاف عملية البناء، ولا يمكن استخدام سوى تطبيق GeckoDriver حاليًا. لذلك، يُطلب من المختبرين استخدام GeckoDriver لتشغيل الاختبارات الآلية على Mozilla. Firefox الإصدار 47.0 وما فوق.

الميزة الرئيسية لاستخدام GeckoDriver مقارنةً بالإصدارات القديمة Firefox السائق هو التوافقيعتمد برنامج GeckoDriver على بروتوكول W3C WebDriver للتواصل مع Seleniumيُعدّ اتحاد شبكة الويب العالمية (W3C) معيارًا عالميًا مُحددًا لـ WebDriver. وهذا يعني Selenium لا يحتاج المطورون إلى إنشاء إصدار جديد من برنامج التشغيل لكل إصدار من المتصفح. يمكن استخدام نفس تطبيق WebDriver عبر إصدارات متعددة من المتصفحات، ولهذا السبب يُفضل استخدام GeckoDriver على الإصدارات الأقدم. Firefox سائق.

كيفية تنزيل وتثبيت GeckoDriver في Selenium

يتم توزيع برنامج GeckoDriver كملف تنفيذي يمكن تنزيله مباشرةً على جهازك. اتبع الخطوات التالية لتنزيل وتثبيت GeckoDriver لـ Selenium أتمتة.

الخطوة 1) حدد الإصدار المناسب.
على صفحة الإصدارات الرسمية https://github.com/mozilla/geckodriver/releasesاختر إصدار GeckoDriver المناسب الذي يتوافق مع نظام التشغيل والبنية الخاصة بك.

قم بتنزيل وتثبيت GeckoDriver في Selenium

الخطوة 2) Extracقم بتحميل ملف ZIP.
بمجرد اكتمال تنزيل ملف ZIP، على سبيل المثالtracانقل محتوياته إلى مجلد على جهازك.

Extracملف GeckoDriver المضغوط

الخطوة 3) لاحظ موقع السائق.
سجل مسار المجلد الذي قمت باستخراج الملفات منهtracتم تثبيت برنامج التشغيل. سيتم استخدام هذا الموقع لاحقًا لإنشاء برنامج التشغيل من نص الاختبار الخاص بك.

ملاحظة: موقع GeckoDriver

طرق تهيئة برنامج تشغيل جيكو

توجد ثلاث طرق مختلفة لتهيئة GeckoDriver في جهازك Selenium نصوص الاختبار. اختر النص الذي يناسب إطار عمل الاختبار الخاص بك على أفضل وجه. Selenium الإصدار.

1. استخدام القدرات المرغوبة

أولاً، قم بتعيين خاصية النظام لبرنامج GeckoDriver.

بناء الجملة:

System.setProperty("webdriver.gecko.driver","Path to geckodriver.exe file");

على سبيل المثال:

System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");

بعد ذلك، حدد الإمكانيات المطلوبة. تساعد الإمكانيات المطلوبة Selenium يجب فهم اسم المتصفح وإصداره ونظام التشغيل المطلوب لتنفيذ الاختبارات الآلية. فيما يلي الكود اللازم لتهيئة GeckoDriver باستخدام فئة DesiredCapabilities.

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);

ها هو الكود الكامل:

System.setProperty("webdriver.gecko.driver", driverPath);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);
driver = new FirefoxDriver(capabilities);

2. باستخدام Mariعقار أونيت

يمكن أيضًا تهيئة GeckoDriver باستخدام خاصية marionette كما هو موضح أدناه.

System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");

إذا تم تهيئة GeckoDriver باستخدام الطريقة المذكورة أعلاه، فسيكون رمز القدرات المطلوبة هو لست مطلوب.

3. باستخدام Firefoxمزيد من الخيارات

موزيلا Firefox الإصدار 47+ يكشف عن Mariبرنامج تشغيل Onette كنظام قديم. بالاستفادة من ذلك، Mariيمكن استدعاء برنامج تشغيل onette من خلال Firefox الخيارات كما هو موضح أدناه.

FirefoxOptions options = new FirefoxOptions();
options.setLegacy(true);

Code للانطلاق Firefox باستخدام برنامج GeckoDriver

ما يلي JUnitيُظهر المثال القائم على - برنامجًا كاملاً وقابلاً للتنفيذ Selenium اختبار يبدأ Firefox من خلال برنامج GeckoDriver وينتقل إلى عرض توضيحي URL.

package com.guru99.demo;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class GeckoDriverDemo {

    String driverPath = "D:\\Guru99Demo\\GeckoDriver.exe";
    public WebDriver driver;

    @Before
    public void startBrowser() {
        System.setProperty("webdriver.gecko.driver", driverPath);
        DesiredCapabilities capabilities = DesiredCapabilities.firefox();
        capabilities.setCapability("marionette", true);
        driver = new FirefoxDriver(capabilities);
    }

    @Test
    public void navigateToUrl() {
        driver.get("https://demo.guru99.com/selenium/guru99home/");
    }

    @After
    public void endTest() {
        driver.quit();
    }

}

Code تفسير

@ قبل الطريقة

في البداية، قمنا بتعيين خاصية النظام لبرنامج GeckoDriver إلى موقع تنزيل ملف geckodriver.exe. كما قمنا بتعيين خاصية marionette إلى القيمة true. Selenium يستخدم Mariبروتوكول أونيت للتواصل مع برنامج جيكو درايفر. وأخيرًا، نبدأ Firefox مثيل المتصفح باستخدام كائن القدرات المطلوبة.

تُحقق العبارات التالية هذا الإعداد.

System.setProperty("webdriver.gecko.driver", driverPath);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);
driver = new FirefoxDriver(capabilities);

@طريقة اختبار

ننتقل إلى ما حدده المستخدم URL باستخدام المدمج في get الطريقة التي تقدمها Selenium WebDriver، كما هو موضح أدناه.

driver.get("https://demo.guru99.com/selenium/guru99home/");

@بعد الطريقة

وأخيرًا، نقوم بإغلاق نافذة المتصفح باستخدام quit الأسلوب.

driver.quit();

تعديل نص برمجي من غير الوزغة إلى الوزغة

البرامج النصية غير GeckoDriver المستخدمة سابقًا Selenium كانت الخطوة الثالثة بسيطة. كل ما عليك فعله هو إنشاء نسخة من Firefox السائق واستخدم متغير المثيل.

@Before
public void startBrowser() {
    driver = new FirefoxDriver();
}

لتحويل البرنامج النصي لـ GeckoDriver، ما عليك سوى إضافة سطر واحد من التعليمات البرمجية يشير إلى موقع geckodriver.exe.

@Before
public void startBrowser() {
    System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe");
    driver = new FirefoxDriver();
}

الاستثناءات الشائعة التي تحدث أثناء استخدام GeckoDriver

فيما يلي قائمة بالاستثناءات الشائعة التي تحدث أثناء استخدام GeckoDriver، بالإضافة إلى حلولها.

يحدث هذا الاستثناء عندما يحاول المستخدم إنشاء مثيل لـ Firefox تشغيل برنامج التشغيل دون ضبط خاصية النظام لبرنامج GeckoDriver. ويُلاحظ ذلك عادةً مع Selenium المبتدئين الذين ليسوا على دراية بالتغييرات التي تم إدخالها في Selenium 3 مقارنة بالإصدارات السابقة.

الحل هو تعيين خاصية النظام لبرنامج GeckoDriver مع موقع ملف geckodriver.exe كما هو موضح أدناه.

System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\geckodriver.exe");

يرجى ملاحظة أنه يجب عليك تعيين خاصية GeckoDriver قبل إنشاء مثيل من Mozilla Firefox سائق.

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms.

يحدث هذا الاستثناء عادةً عندما Firefox تمت ترقية الإصدار إلى أحدث إصدار. الحل هو تحديث كل من Selenium قم بتحديث ملف JAR وبرنامج GeckoDriver إلى أحدث الإصدارات المتوافقة، ثم قم بتشغيل البرنامج النصي مرة أخرى.

org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session.

يحدث هذا الاستثناء بسبب مشاكل التوافق بين Selenium وبرنامج GeckoDriver. يعمل برنامج GeckoDriver مع Firefox الإصدار 47 أو أحدث. يمكن حل المشكلة عن طريق ترقية Firefox الإصدار 47 أو أعلى.

WebDriver Exception: Connection Refused

يظهر هذا الاستثناء عندما يتعذر على WebDriver إنشاء اتصال مع Firefoxيمكن حل هذه المشكلة باستخدام أي من التقنيات التالية.

  • استخدم driver.quit() طريقة لتدمير النسخ السابقة من WebDriver.
  • قم بتنظيف ذاكرة التخزين المؤقت للمتصفح قبل تنفيذ اختباراتك الآلية.
  • نظّف مساحة عمل المشروع داخل Eclipse IDE
  • استخدم دائمًا الإصدار الأحدث من Selenium برنامج GeckoDriver بالإضافة إلى أحدث إصدار مستقر Firefox الافراج.

الأسئلة الشائعة

لا. GeckoDriver هو الملف التنفيذي الوسيط الذي يطبق معيار W3C WebDriver. Mariبروتوكول التشغيل الآلي المدمج في Firefoxيقوم برنامج GeckoDriver بترجمة أوامر WebDriver إلى Mariرسائل أونيت التي Firefox يمكن تنفيذها.

تستهدف أحدث إصدارات GeckoDriver رسميًا Firefox الإصدار 91 ESR والإصدارات الأحدث. يُرجى دائمًا مراجعة ملاحظات إصدار GeckoDriver على صفحة Mozilla على GitHub للتأكد من الحد الأدنى والحد الأقصى. Firefox الإصدارات المدعومة من خلال الإصدار الذي قمت بتنزيله.

إضافة GeckoDriver إلى مسار النظام (PATH) أمر اختياري ولكنه مفيد. إذا كان موجودًا بالفعل في PATH، يمكنك تخطي استدعاء System.setProperty. وإلا، فيجب عليك تحديد مسار برنامج التشغيل صراحةً داخل ملفك. Selenium نص الاختبار.

نعم. يمكن لأدوات الاختبار المدعومة بالذكاء الاصطناعي أن تُنتج Selenium يُسرّع كود WebDriver، ويقترح محددات المواقع، ويُصلح البرامج النصية غير المستقرة تلقائيًا. يُسرّع هذا العمل الروتيني، لكن لا تزال هناك حاجة إلى مراجعة بشرية لإصدارات برامج التشغيل، وحالات الانتظار، والتأكيدات لضمان موثوقية الأداء. Firefox أتمتة.

لا، تعمل وكلاء الذكاء الاصطناعي حاليًا فوق بروتوكولات WebDriver بدلاً من استبدالها. ويبقى GeckoDriver هو الجسر إلى Firefoxبينما تضيف طبقات الذكاء الاصطناعي محددات مواقع أكثر ذكاءً، وخاصية الإصلاح الذاتي، وكتابة الاختبارات باللغة الطبيعية فوق المعيار الحالي.

تلخيص هذه التدوينة بـ: