كل ما لم تكن تعرفه عن السيلينيوم Webdriver
نشرت: 2022-11-02يستخدم مختبرو الأتمتة Selenium Webdriver لاختبار الاحتمالات في النظام عن طريق قبول الأوامر وإرسالها إلى متصفح الويب.
في العالم الحديث ، يتم نشر المئات من تطبيقات الجوال والويب. يتعين على فريق ضمان الجودة التأكد دائمًا من أن تطبيقات الويب تعمل خارج منطقة التطوير. في وقت سابق ، تم تنفيذ هذه المهام يدويًا.
أدخل السيلينيوم. غيرت طريقة إجراء الاختبار.
الآن ، أصبحت الأتمتة مشهورة على نطاق واسع في كل صناعة لأنها توفر الوقت والتكلفة وتوفر الكثير من المزايا للشركات.
السيلينيوم هو أحد أفضل أدوات الاختبار الآلي المفيدة لمختلف المؤسسات في عالم تطوير تطبيقات الويب. إنها بالفعل أداة مفيدة وقوية تقدم الكثير من الأشياء الجيدة.
يمكن للمطورين ، الذين يريدون أن يكونوا واثقين من ميزات التطبيق دون قضاء الكثير من الوقت في اختبار الواجهة الأمامية لتطبيقات الويب ، استخدام السيلينيوم لغرضهم. بالإضافة إلى ذلك ، يوفر السيلينيوم وقتك من خلال أتمتة مهامك المتكررة.
في هذه المقالة ، سأناقش السيلينيوم والسيلينيوم Webdriver ومكوناته واللغات المدعومة وبعض الميزات الرئيسية وحالات الاستخدام في العالم الحقيقي.
هيا نبدأ!
ما هو السيلينيوم؟
السيلينيوم هو أداة أتمتة لتطبيقات الويب. إنه إطار عمل محمول مفتوح المصدر يستخدمه العديد من المؤسسات والمطورين لأتمتة مهامهم الحرجة. عندما يتعلق الأمر باختبار الانحدار وحالات الاختبار الوظيفي ، فإن السيلينيوم مرن للغاية.

يدعم السيلينيوم الأتمتة عبر مختلف المنصات ولغات البرمجة والمتصفحات. تمت كتابة نصوص الاختبار الخاصة به بلغات برمجة مختلفة مثل Python و C # و Java والمزيد. تعمل هذه البرامج النصية عبر متصفحات مختلفة مثل Safari و Firefox و Chrome و Opera وما إلى ذلك ، وتدعم الأنظمة الأساسية مثل macOS و Linux و Windows و Solaris وما إلى ذلك.
يدعم السيلينيوم وظائف التصفح المتقاطع ويساعد في إنشاء مجموعات أتمتة انحدار قوية قائمة على المتصفح.
تم تطويره لأول مرة بواسطة Jason Huggins في عام 2004 ، وكان يعمل كمهندس في تطبيق ويب يحتاج إلى اختبار منتظم. لذلك ، أنشأ برنامجًا من خلال JavaScript وأدرك أوجه القصور في الاختبار اليدوي.
في البداية ، أطلق على البرنامج اسم "JavaScriptTestRunner". بعد إدراك إمكانات البرنامج ، جعله Jason Huggins منصة مفتوحة المصدر أعاد تسميتها بـ Selenium Core.
كيف هو السيلينيوم مفيد؟
يستخدم المطورون والمؤسسات السيلينيوم عندما يتعلق الأمر باختبار تطبيقات الويب لأن السيلينيوم يمكّن المطورين من إجراء الاختبار الآلي.

في الواقع ، يأتي أحد البرامج بهندسة معمارية معقدة وهو أيضًا عرضة للانحدار. من إضافة ميزات جديدة إلى إصلاح العيوب ، يمكن أن تتسبب كل وظيفة مرتبطة بهذا في توقف الميزات الحالية عن العمل. هذا هو السبب الرئيسي في أن الاختبار الآلي هو الخطوة الأكثر فائدة في عالم البرمجة.
نظرًا لأن اختبار التطبيق يدويًا بعد كل تغيير طفيف في الميزات غير عملي ، فإن السيلينيوم يوفر لك حلاً أفضل لتقليل مثل هذه المهام المحمومة. يسمح للمؤسسات والمطورين بمحاكاة اختبار كل تفاعل مع تطبيقات الويب عبر متصفحات مختلفة.
مجموعة أدوات السيلينيوم

يتكون السيلينيوم من مجموعة كبيرة من الأدوات أو المكونات. دعونا نناقش كل.
# 1. السيلينيوم IDE
يمكنك أتمتة اختبار تطبيقات الويب الخاصة بك باستخدام مكون أتمتة التسجيل والتشغيل المسمى Selenium IDE. يأتي في شكل امتداد متصفح Firefox و Chrome. يمكن للأشخاص ذوي الخبرة المنخفضة والمحدودة في البرمجة استخدام هذه الأداة لأنها تعمل على مبادئ التسجيل والتشغيل.
# 2. السيلينيوم أرسي

يستخدم Selenium RC لإدخال كود JavaScript في أي متصفح للأتمتة. يتطلب أيضًا خادمًا إضافيًا لتشغيل نصوص الأتمتة هذه. لكن له بعض القيود ، مثل بطءه ، ولا يحتوي على متصفح بدون رأس مثل HtmlUnitDriver وهو ضروري لبدء الخادم قبل تنفيذ أي نصوص اختبار.
# 3. سيلينيوم ويب درايفر
السيلينيوم Webdriver هو أحد أهم مكونات السيلينيوم. يوفر برامج تشغيل مختلفة لمتصفحات متعددة ويدعم لغات البرمجة المختلفة.
بالإضافة إلى ذلك ، فهو موجه للكائنات ويدعم جميع المتصفحات تقريبًا ، مثل Firefox و Chrome و IE و Safari والمزيد. يمكن إجراء البرمجة النصية باستخدام اللغات الشائعة ، بما في ذلك Python و Ruby و Java والمزيد.
# 4. شبكة السيلينيوم
شبكة السيلينيوم مرة أخرى جزء أساسي من السيلينيوم. يساعد في توزيع تشغيل الاختبارات الآلية بالتوازي عبر أجهزة مختلفة عن بعد. تتكون الشبكة من محور وعقد مختلفة.
تعمل هذه العقد على تشغيل مثيلات مجموعة السيلينيوم التي يمكنك من خلالها تنفيذ حالات الاختبار. يعمل المحور المركزي كخادم ويتم توصيل العقد به للتحكم في تنفيذ الاختبار بالكامل.
سيلينيوم ويب درايفر بالتفصيل

بشكل عام ، WebDriver عبارة عن مجموعة من واجهات برمجة التطبيقات (APIs) وهي أداة موجهة للكائنات ولديها الكثير من الإمكانات. يوفر تسهيلات الاتصال بين المتصفحات واللغات.
يستخدم WebDriver لإجراء اختبارات متنوعة في العديد من المتصفحات الشائعة. علاوة على ذلك ، فهو يحتوي على أنواع مختلفة من الأساليب المجردة مثل findElement() و By() و get() وما إلى ذلك.
في عام 2009 ، تم دمج Selenium RC مع WebDriver لإنشاء أداة سيلينيوم جديدة تسمى Selenium WebDriver أو Selenium 2.0.
الآن ، Selenium Webdriver هو أداة شائعة للسيلينيوم. يقدم مكتبات مفتوحة المصدر ومجانية للمطورين من أجل أتمتة اختبار تطبيقات الويب.
في Selenium WebDriver ، يتم تطوير نصوص الاختبار باستخدام لغات البرمجة المختلفة المدعومة. يمكن تشغيله بأحدث متصفحات الويب. علاوة على ذلك ، فهو يدعم لغات مختلفة ، مثل Perl و Python و Ruby و Java و PHP و C #.

ولكن حاليًا ، يعد Selenium WebDriver هو الأكثر شيوعًا مع C # و Java. إنه يعمل بشكل أسرع بكثير من Selenium RC لأنه يقوم بالاتصال المباشر بالمتصفحات. علاوة على ذلك ، يتكون WebDriver من تطبيق مدمج لبرنامج Firefox Driver أو Gecko Driver.
لإجراء الاختبار في متصفحات أخرى ، تحتاج إلى توصيل برامج تشغيل خاصة بالمتصفح للتواصل وتشغيل اختبار الأتمتة. أكثر برامج WebDrivers استخدامًا هي:
- جوجل كروم سائق
- سائق أوبرا
- برنامج تشغيل Internet Explorer
- برنامج تشغيل وحدة HTML - سائق مقطوعة الرأس
- سائق سفاري
السيلينيوم WebDriver معروف جيدًا بسبب ثباته وتنوعه لأتمتة الويب. أكثر من 80٪ من الشركات تستخدم Selenium WebDriver لأنها أسهل طريقة لأتمتة واجهة المستخدم.
مكونات سيلينيوم WebDriver

يتكون سيلينيوم WebDriver من أربعة مكونات أساسية:
- روابط لغة السيلينيوم
- بروتوكول سلك JSON
- برامج تشغيل المتصفح
- المتصفحات الحقيقية
دعونا نناقش المكونات الأساسية للسيلينيوم WebDriver بالتفصيل.
# 1. ربط لغة السيلينيوم / المكتبات الأساسية / عميل السيلينيوم
تتفاعل البرامج النصية للأتمتة مع خادم السيلينيوم من خلال Webdriver. تمت كتابته بلغات برمجة مختلفة ، مثل Ruby و Python و Java والمزيد.
يطور مطورو السيلينيوم روابط اللغة التي تسمح للسيلينيوم بدعم لغات البرمجة هذه. مكتبات العملاء الخاصة بها هي ببساطة ملفات Jar مختلفة. تحتوي هذه المكتبات على طرق وفئات من Selenium WebDriver ، وهي ضرورية لإنشاء نصوص اختبار للأتمتة.
يمكنك استخدام مثبتات الحزم المتاحة للغات المعنية لتثبيت مكتبات سيلينيوم الأساسية. على سبيل المثال ، إذا كنت ترغب في استخدام برنامج تشغيل متصفح في Java ، فستحتاج إلى مكتبات عميل Java أو ملفات Jar.

مكتبات عميل السيلينيوم ليست إطار عمل للاختبار ولكنها توفر واجهة برمجة تطبيقات ، مما يعني مجموعة من الوظائف لتنفيذ أوامر السيلينيوم من البرنامج.
# 2. بروتوكول JSON Wire Protocol عبر HTTP
JavaScript Object Notation (JSON) هو تنسيق شائع لتبادل البيانات يعتمد على مجموعة فرعية من JavaScript. يتم استخدام JSON لتبادل البيانات بين الخادم والعميل على الويب.
يدعم بروتوكول JSON Wire جميع تنسيقات البيانات المتاحة في جميع اللغات الشائعة ، مثل Python و Ruby و Java وما إلى ذلك. إنها آلية نقل تنقل البيانات بين العميل والخادم على الويب باستخدام JSON.
علاوة على ذلك ، يستخدم JSON واجهة برمجة تطبيقات REST لنقل البيانات بين خادم HTTP ، ولكل مشغل متصفح خادم HTTP خاص به.
# 3. برامج تشغيل المتصفح

يستخدم السيلينيوم برامج تشغيل محددة لكل متصفح لإنشاء اتصال آمن دون الكشف عن أي منطق داخلي لوظيفة المتصفح. تتلقى برامج التشغيل هذه الطلبات من ارتباط لغة السيلينيوم وتستدعي العمليات المطلوبة على المستعرض.
يدعم السيلينيوم تقريبًا جميع المتصفحات الحديثة للأتمتة. تقوم برامج تشغيل المستعرض بتوسيع فئة أخرى تسمى RemoteWebDriver والتي تقوم بتنفيذ واجهة WebDriver.
# 4. متصفح حقيقي مقطوع الرأس
المستعرض هو في الأساس برنامج يستخدمه الأشخاص لمشاهدة المحتوى على الويب أو البحث عنه. يدعم Selenium WebDriver المتصفحات الحقيقية وبدون رأس.
مثال: لنفترض أنك ترغب في أتمتة الاختبارات باستخدام Selenium WebDriver وتنفيذ البرنامج النصي في أي متصفح حقيقي مثل Chrome. للقيام بذلك ، ستحتاج إلى تنزيل تطبيق برنامج التشغيل المحدد. متصفح HTMLUnit (HTMLUnitDriver) هو مثال لمتصفح بدون رأس.
كيف يعمل سيلينيوم WebDriver؟
في سيناريو الوقت الفعلي ، عندما تتم كتابة كود البرنامج النصي باستخدام أي شخص من مكتبات عميل السيلينيوم المدعومة ، بالنقر فوق الخيار الصحيح ، يمكنك تنفيذ التعليمات البرمجية المصدر للبرنامج. بمجرد النقر فوق خيار التشغيل ، سيتم تشغيل المتصفح والانتقال إلى عنوان URL لموقع الويب.

عند تنفيذ البرنامج النصي التجريبي باستخدام WebDriver ، يتم تنفيذ بعض الخطوات داخليًا.
- عند النقر فوق الزر للتشغيل ، تقوم مكتبة العميل بتشغيل الأوامر من البرنامج وتحويلها إلى تنسيق JSON. ستجد تنسيق JSON متسلسلًا من خلال بروتوكول JSON Wire Protocol عبر HTTP لإرساله إلى برنامج تشغيل المتصفح لكل أمر. يستخدم كل محرك متصفح بعد ذلك خادم HTTP لتلقي طلبات HTTP.
- يتواصل بروتوكول JSON Wire Protocol بين الخادم والعميل عن طريق نقل البيانات. يقوم خادم HTTP بجميع الإجراءات الضرورية على المتصفح الحقيقي. سيرسل المتصفح طلب تحميل عنوان URL.
- بعد تنفيذ جميع الإجراءات ، يجب إرسال حالة التنفيذ مرة أخرى إلى خادم HTTP عبر HTTP. يستخدم برنامج تشغيل المتصفح خادم HTTP مرة أخرى لتلقي الطلب وإرساله مرة أخرى إلى المكتبة من خلال بروتوكول JSON Wire Protocol. ثم يتم تمرير مكتبة العميل بنفس الشيء مرة أخرى إلى البرنامج. سيقوم البرنامج بعد ذلك بالإبلاغ عن الفشل أو النجاح.
ميزات WebDriver السيلينيوم

الميزات القوية لـ Selenium WebDriver هي:
- دعم المستعرضات المتعددة: يدعم Selenium WebDriver مجموعة كبيرة من متصفحات الويب وكذلك إصداراتها ، مثل Chrome و Firefox و Safari و Opera و Internet Explorer وما إلى ذلك ، كما أنه يدعم المتصفحات بدون رأس مثل مستعرض HTMLUnit.
- دعم متعدد اللغات: يدعم Selenium WebDriver لغات البرمجة الأكثر استخدامًا ، مثل Ruby و PHP و JavaScript و Pearl و Python و C # وما إلى ذلك. وسيوفر تسهيلات لاختيار أي من اللغات بناءً على الكفاءة. يمكنك بسهولة البدء في إنشاء نصوص اختبار.
- السرعة: سيلينيوم WebDriver ينفذ عمليات سريعة. لا يتطلب خوادم وسيطة للتواصل مع المتصفح. علاوة على ذلك ، فإنه يوفر اتصالًا مباشرًا بين مستعرض الويب ومكتبات عميل WebDriver.
- أوامر بسيطة وسهلة: يوفر WebDriver أوامر سهلة وبسيطة للتنفيذ في البرامج النصية للاختبار. على سبيل المثال ، إذا كنت ترغب في تشغيل متصفح باستخدام WebDriver ، فأنت بحاجة إلى استخدام أوامر مثل FirefoxDriver () الجديد و ChromeFriver () الجديد والمزيد.
- برامج التشغيل والطرق والفئات: يقدم WebDriver حلولًا متنوعة للتعامل مع التغييرات المحتملة في اختبار التشغيل الآلي. علاوة على ذلك ، فهو يساعد المختبرين في التعامل مع عناصر الويب المعقدة ، مثل القوائم المنسدلة والتنبيهات ومربعات الاختيار والمزيد ، باستخدام أدوات الاكتشاف الديناميكية.
- أوامر واجهة برمجة التطبيقات البسيطة : WebDriver موجه للكائنات ومضغوط ، لذا يمكن استخدام التغليف والتجريد لإخفاء التفاصيل غير العادية. هذا يجعل Selenium WebDriver بسيطًا.
- سهولة التثبيت والتكوين: يوفر Selenium WebDriver خيارًا لاختبار تطبيقات الويب غير المتزامنة التي تم إنشاؤها باستخدام JavaScript أو AJAX.
مزايا WebDriver السيلينيوم

تتضمن بعض مزايا Selenium WebDriver ما يلي:
- Selenium WebDriver هو أداة قوية ومجانية ومفتوحة المصدر ومحمولة.
- وهو يدعم أنظمة تشغيل مختلفة مثل Windows و Linux و Mac. كما أنه يدعم أدوات الطرف الثالث ، بما في ذلك Apache POI و Autoit وما إلى ذلك.
- يدعم عمليات تنفيذ الاختبار المتوازي ، وهو أحد أسباب شعبية سيلينيوم WebDriver. سيؤدي ذلك إلى تقليل الوقت في تنفيذ حالات الاختبار.
- وهو يدعم تنفيذ المستمع والباحث الديناميكي.
- في Selenium WebDriver ، لا يلزم بدء تشغيل الخادم قبل كل تنفيذ للبرامج النصية.
- يمكنك دمجه مع أي أدوات خارجية ، مثل JUnit و TestNG لتجميع حالات الاختبار المختلفة وإنشاء تقارير الاختبار.
- احصل على اختبار مستمر من خلال الدمج مع Jenkins و Docker و Maven.
حدود السيلينيوم WebDriver
بصرف النظر عن المزايا ، هناك أيضًا بعض القيود في Selenium WebDriver.
- يمكن لـ Selenium WebDriver اختبار التطبيقات المستندة إلى الويب فقط. لا يمكن اختبار تطبيقات سطح المكتب والتطبيقات القائمة على النوافذ باستخدام السيلينيوم.
- لا توجد احتمالات لإجراء اختبار على صورة.
- لا ينشئ WebDriver ملفات نتائج الاختبار تلقائيًا. ستحتاج إلى دمجه مع أطر مثل JUnit أو TestNG أو إنشاء تقارير.
- لا يدعم المتصفحات الجديدة.
- لا توجد مساعدة إضافية.
- لا يمكن أتمتة قارئات الرموز الشريطية و reCAPTCHA و CAPTCHA باستخدام WebDriver.
حالات استخدام السيلينيوم WebDriver

السيلينيوم WebDriver له العديد من الاستخدامات في الصناعات المختلفة لأولئك الذين يتعاملون مع تطبيقات الويب. بعض الاستخدامات كالتالي:
- تحديث إصدارات WebDrivers لمطابقة أحدث إصدارات مستعرضات الويب ومكتبات السيلينيوم
- تحل العديد من الشركات مشكلات المزامنة من خلال تنفيذ إطار عمل للأتمتة
- تخزين بيانات الاختبار في JSON
- نمذجة واجهة المستخدم لتطبيق الويب قيد الاختبار باستخدام نمط تصميم نموذج كائن الصفحة
- اختبار تطوير الأتمتة باستخدام لغات البرمجة الشيئية (OOPs)
- التحقيق في الفشل من خلال أخذ لقطات شاشة آلية
- إزالة عدم اليقين من أتمتة الاختبار
- الحصول على نتائج اختبار عالية الجودة
استنتاج
السيلينيوم WebDriver هو عنصر حاسم في مجموعة السيلينيوم. إنه مثل دماغ السيلينيوم. تساعد واجهات برمجة التطبيقات في Selenium WebDriver في الأداء السريع لعملية الاختبار. تتمثل أهم ميزات Selenium WebDriver في اختبار المستعرضات المتقاطعة وأتمتة صفحات الويب ودعم التكنولوجيا الحديثة والمزيد.
تساعد برامج تشغيل المستعرضات في Selenium WebDriver في التفاعل مع المجموعة مع متصفحات الويب المختلفة. ومن ثم ، يعد Selenium WebDriver مهمًا لإطار عمل اختبار أتمتة السيلينيوم بأكمله.
