ما هي تفاصيل Selenium برنامج تشغيل الويب؟

⚡ ملخص ذكي

Selenium WebDriver هو إطار عمل مفتوح المصدر لأتمتة العمليات، يتحكم في المتصفحات الحقيقية مباشرةً من خلال واجهات برمجة التطبيقات الأصلية، مما يتيح اختبار تطبيقات الويب بسرعة وموثوقية وعبر المتصفحات باستخدام لغات مثل Java, Python، سي شارب، وروبي.

  • المبدأ الأساسي: يتواصل WebDriver مع المتصفحات على مستوى نظام التشغيل لتنفيذ الاختبارات بشكل أسرع وأكثر دقة من Selenium RC.
  • Archiرؤية معمارية: يسمح بروتوكول JSON Wire القياسي التابع لـ W3C لروابط اللغات وبرامج التشغيل والمتصفحات بالتفاعل بسلاسة.
  • التركيز على التنفيذ: اختر أي لغة مدعومة—Java, Python، سي شارب، روبي، Javaسكريبت — لكتابة سكريبتات قابلة لإعادة الاستخدام، وشروطية، و...ping اختبار التدفقات.
  • نصيحة التحسين: استخدم HtmlUnitDriver أو متصفح Chrome بدون واجهة رسومية لتسريع التنفيذ داخل مسارات التكامل المستمر.
  • تأثير العالم الحقيقي: يحاكي WebDriver سلوك المستخدم الفعلي، ويتحقق بدقة من صحة الحقول المعطلة والعناصر المخفية وحالات واجهة المستخدم الديناميكية.

Selenium برنامج تشغيل الويب والمتصفحات المدعومة

ما هي تفاصيل Selenium برنامج تشغيل الويب؟

Selenium ويب درايفر هي مجموعة مفتوحة المصدر من واجهات برمجة التطبيقات (APIs) تُستخدم لأتمتة اختبار تطبيقات الويب. وهي تتحقق من أن تطبيق الويب يعمل كما هو متوقع عبر متصفحات متعددة، بما في ذلك متصفح Chrome. Firefoxسفاري Microsoft Edgeوإنترنت إكسبلورر. كما يدعم WebDriver اختبار التوافق مع مختلف المتصفحات على أنظمة تشغيل مختلفة.

Selenium برنامج تشغيل الويب والمتصفحات المدعومة

الغاء الاعجاب Selenium تتيح لك بيئة التطوير المتكاملة (IDE) وبرنامج WebDriver استخدام لغة برمجة حقيقية لتصميم نصوص الاختبار، مما يمكنك من تطبيق منطق شرطي مثل if-then-else و switch-case، بالإضافة إلى البحثping بنى مثل for و do-while. يدعم WebDriver اللغات التالية:

  • Java
  • .NET (C#)
  • PHP
  • Python
  • بيرل
  • روبي
  • Javaنص برمجي (عبر WebDriverJS / WebDriverIO)

لستَ بحاجةٍ إلى تعلّمها جميعاً، فإتقان واحدةٍ منها يكفي. تستخدم الأمثلة في هذا الدرس التعليمي Java مع الالجائزة Eclipse IDE

Archiبنية Selenium ويب درايفر

Selenium يتبع WebDriver بنية العميل والخادم ويتحكم في المتصفح مباشرةً من مستوى نظام التشغيل. لتشغيل أي برنامج نصي، ما عليك سوى استخدام بيئة التطوير المتكاملة (IDE) للغة البرمجة المفضلة لديك (التي تحتوي على...). Selenium الأوامر) ومتصفح مستهدف.

بنية مبسطة لـ Selenium ويب درايفر

يتكون الإطار من أربعة مكونات رئيسية: Selenium مكتبات العميل (روابط اللغة)، وبروتوكول JSON Wire عبر HTTP، وبرامج تشغيل المتصفحات (مثل ChromeDriver وGeckoDriver)، والمتصفحات نفسها. يتواصل كل مكون عبر طلبات HTTP موحدة، وهو ما يمنح WebDriver مزايا السرعة والدقة الموضحة أدناه.

سرعة

سرعة تنفيذ WebDriver

WebDriver أسرع من Selenium تقنية RC لأنها تتواصل مباشرة مع المتصفح وتستخدم محرك المتصفح الأصلي للتحكم بها. لا يوجد وسيط. Javaخادم وكيل البرامج النصية، الذي يزيل عنق الزجاجة الرئيسي للأداء.

تفاعل واقع الحياة

التفاعل الواقعي مع عناصر المتصفح

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

API

Selenium واجهة برمجة تطبيقات WebDriver البسيطة

يوفر WebDriver واجهة برمجة تطبيقات نظيفة وبسيطة لا تحتوي على أوامر زائدة أو مربكة، مما يجعل قراءة نصوص الاختبار وصيانتها أسهل.

دعم المتصفح

دعم متصفحات HTMLUnit بدون واجهة رسومية

يدعم WebDriver أيضًا متصفح HtmlUnit بدون واجهة رسومية. ولأن HtmlUnit لا يحتوي على واجهة رسومية، يُطلق عليه اسم "بدون واجهة رسومية" ويعمل في الخلفية دون أن يلاحظه أحد. وهذا يجعله سريعًا للغاية لتنفيذ الاختبارات نظرًا لعدم استهلاكه أي وقت للمعالجة، وهو مثالي لخطوط أنابيب التكامل المستمر/التسليم المستمر (CI/CD) حيث لا تتوفر واجهة رسومية.

كيفية Selenium خطوات عمل WebDriver

مع الأخذ في الاعتبار بنية النظام، إليك كيفية تنفيذ اختبار WebDriver النموذجي:

  1. اكتب نص الاختبار باللغة التي اخترتها باستخدام Selenium مكتبات العميل.
  2. تسلسل الأوامر—يقوم الربط بتحويل كل Selenium استدعاء طلب بروتوكول JSON Wire.
  3. إرسال إلى برنامج تشغيل المتصفح—يصل الطلب إلى برنامج التشغيل المحلي (ChromeDriver، GeckoDriver، EdgeDriver)، الذي يستمع على منفذ محلي.
  4. يُصدر برنامج التشغيل تعليمات للمتصفح باستخدام واجهة برمجة التطبيقات الأصلية الخاصة بها للأتمتة للنقر أو الكتابة أو قراءة العناصر.
  5. يقوم المتصفح بالتنفيذ والاستجابة، وإعادة النتيجة كحمولة JSON.
  6. التأكيد والإبلاغ—إطار عمل مثل TestNG, JUnitأو يقوم PyTest بالتحقق من صحة الاستجابة ويسجل نجاحها أو فشلها.

يمكن تشغيل نفس البرنامج النصي محليًا، أو داخل Docker، أو على شبكات بعيدة مثل Selenium الشبكة بدون تعديل.

Selenium WebDriver مقابل Selenium بيئة التطوير المتكاملة مقابل Selenium RC

الحق Selenium تعتمد الأداة على هدف الاختبار. يقارن الجدول أدناه بين الأدوات الثلاث:

الميزات Selenium IDE Selenium RC Selenium ويب درايفر
النوع البرنامج المساعد للمتصفح Javaخادم وكيل البرامج النصية أتمتة واجهة برمجة التطبيقات الأصلية
سرعة تشغيل سريع بطيء أسرع
اللغات بدون سلوفان متعدد متعدد
متصفح بلا رأس لا لا نعم
الحالة محدود معيار W3C

بالنسبة للمشاريع الحديثة، يُعد WebDriver الخيار الموصى به - فهو معياري من قبل W3C، ويتم صيانته بنشاط، وهو الأوسع نطاقًا من حيث دعم اللغات والمتصفحات.

حدود برنامج WebDriver

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

لا يدعم برنامج WebDriver المتصفحات الجديدة كلياً بسهولة

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

لا يوجد نظام مدمج لإعداد تقارير الاختبار

لا يقوم WebDriver نفسه بإنشاء تقارير نتائج الاختبار. يجب عليك دمجه مع إطار عمل لاختبار الوحدات (TestNG, JUnit(مثل NUnit أو PyTest) أو مكتبة إعداد التقارير (Allure أو ExtentReports) لالتقاط ملخصات النجاح/الفشل ولقطات الشاشة.

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

Selenium يدعم WebDriver رسميًا Java، C #، Pythonروبي, Javaلغة البرمجة النصية (Node.js) ولغة Kotlin. كما توجد روابط برمجية مجتمعية للغة PHP ولغة Perl. وتختار معظم الفرق Java or Python بسبب النظم البيئية الناضجة والدعم المجتمعي الواسع.

نعم. Selenium يُصدر برنامج WebDriver بموجب رخصة أباتشي 2.0، التي تسمح بالاستخدام الشخصي والتجاري المجاني. لا توجد رسوم ترخيص، ويجوز لك تعديل أو إعادة توزيع شفرة المصدر طالما احتفظت بإشعار حقوق النشر الأصلي.

يستهدف WebDriver متصفحات الويب، وليس تطبيقات الجوال الأصلية. لأتمتة تطبيقات الجوال، استخدم Appium، والذي يوسع بروتوكول WebDriver للتحكم في التطبيقات الأصلية والهجينة وتطبيقات الويب الخاصة بالهواتف المحمولة على Android ونظام iOS باستخدام نفس واجهة برمجة التطبيقات المألوفة.

تعمل أدوات الذكاء الاصطناعي على تحسين WebDriver من خلال إصلاح محددات المواقع ذاتيًا، وإنشاء محددات من لقطات الشاشة، والتنبؤ بالاختبارات غير المستقرة، والتوصية بثغرات التغطية. منصات مثل Testim، Mabl، و Functionize طبقة التعلم الآلي فوق بروتوكول WebDriver القياسي.

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

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