# برمجية سيلينيوم

برمجية سيلينيوم، هو بيئة عمل محمولة لفحص تطبيقات الإنترنت ويزود سيلينيوم المستخدمين بأداة تسجيل \ تشغيل برمجيات معينة لفحص تطبيقات الإنترنت تطبيق ويب دون الحاجة لتعلم لغات برمجة لغة برمجة نصية خاصة (سيلينيوم ‍IDE) (منصة تطوير متكاملة) وهو أيضا يزود فحص لغة نطاق متخصصة (Selenese) لكتابة فحص البرمجية بعدة لغات برمجة معروفة تتضمن java $^{[الإنجليزية]}$، c# $^{[الإنجليزية]}$, بي إتش بي، بيرل، groovy $^{[الإنجليزية]}$، python $^{[الإنجليزية]}$, ruby $^{[الإنجليزية]}$ وهذا الاختبار يمكن تشغيلة على عدد من متصفحات الإنترنت الحديثة متصفح (ويب) .

## تاريخ

لقد تم تطوير سيلينيوم في بادئ الأمر من قبل Jason huggins في سنة 2004 ومن ثم انضم إليه عدد من المبرمجين ومختبرين البرمجيات في شركة ThoughtWorks $^{[الإنجليزية]}$ يعتبر سيلينيوم برمجية مفتوحة المصدر برمجيات مفتوحة المصدر، لقد تم إطلاقه على خادم رخصة أباتشي، ويمكن المستخدمين تحميله والاستفادة منه دون مقابل اسم سيلينيوم أتى كمزحة من قبل Jason huggins أرسلت من خلال البريد الإلكتروني وكان يسخر من منافس اسمه Mercury $^{[الإنجليزية]}$ قائلاً يمكنك علاج التسمم بالزئبق عن طريق تناول مكملات السيلينيوم فيما بعد العاملين مع Jason huggins أخذوا الاسم واستخدموه.
آخر جانب من سيلينيوم هو شبكة سيلينيوم التي تزود المستخدمين بمدار يسمح لهم تشغيل أكثر من نسخة من الاختبارات التجريبية للبرمجيات في وقت واحد على أي نظام محلي باستخدام التحكم عن بعد وهذا يوفر لهم تقنية لاستخدام اختبار ضمن البرمجيات بوقت أقل.

## عناصر سيلينيوم
### منصة تطوير متكاملة للسيلينيوم

سياينيوم (IDE)
وتعديل ومعالجة الفحص الاختباري وقد كان يعرف بالسابق مسجل الفحص الاختباري منصة التطوير المتكاملة سيلينيوم بنيت بواسطة Shinya Kasatani وتم التبرع بها لمشروع سيلينيوم عام 2006
تمكننا من كتابة شيئاًً بواسطة التسجيل أو التعديل اليدوي وتزود قابلية الأعمال التلقائية إكمال تلقائي وقابلية كتابة الاوامر بسرعة السيناريوهات تم تسجيلها بواسطة Selenese وهي لغة متخصصة لكتابة سيناريوهات سيلينيوم
Selenese تزود الاوامر للقيام في الاجراءات على متصفح الإنترنت (زيارة الروابط، اختيار من متعدد) واسترجاع البيانات من صفحة النتائج

### واجهة برمجة التطبيقات للسيلينيوم

وهو بديل لكتابة الفحص الاختباري Selenese والفحص الاختباري يمكن كتابته بواسطة العديد من لغات البرمجة وهذه الفحوصات الاختبارية يمكن ربطها بسيلينيوم بأستدعاء الاقترانات الموجودة في واجهة برمجة التطبيقات للسيلينيوم ويزود الآن سيلينيوم واجهة برمجة التطبيقات للغة Java, C#, Ruby and Python.
في سيلينيوم 2 يوجد هناك واجهة برمجة تطبيقات جديدة تم بنائها مع معرف إنترنت كعنصر مركزي على أي حال واجهة برمجة التطبيقات تستخدم( Selenium class )ما زالت تعمل من قبل سيلينيوم ومدعومة

### سيلينيوم في التحكم عن بعد

هو خادم مكتوب بلغة Java $^{[الإنجليزية]}$، يستقبل الاوامر من متصفح الإنترنت عن طريق عن طريق بروتوكول نقل النص الفائق، سيلينيوم في التحكم عن بعد يمكن كتابة سيناريو فحص اختباري لتطبيقات الإنترنت بأي من لغات البرمجة والذي يسمح بتكامل أفضل للسيلينيوم لعمل الفحص الاختباري المكتوب بطريقة أسهل سيلينيوم الآن تمتلك معرفات بي إتش بي، Python $^{[الإنجليزية]}$, Ruby $^{[الإنجليزية]}$, دوت نت فراموورك، بيرل. ومعرف Java من الممكن استخدامه ايضاََ في جافا سكريبت (باستخدام محرك Rhino $^{[الإنجليزية]}$) النسخة الجديدة من خادم سيلينيوم للتحكم عن بعد تحتاج لأطلاق فحص اختباري بواسطة html وهذا يعني ان الميناء يجب ان يكون مختلف لكل تشغيل للفحص الاختباري على أي حال الفحص الاختباري بواسطة Java/PHP يوجد فقط نسخة سيلينيوم واحدة بحاجة للعمل باستمرار

### محرك سيلينيوم

هو خليفه لسيلينيوم باتحكم عن بعد، (معرف الإنترنت يقبل اوامر مبعوثة باستخدام Selenese، أو باستخدام واجهة تطبيق البرمجيات لسيلينيوم) وتقوم بارسال الاوامر إلى متصفح الإنترنت وهذا قد تم تطبيقه من خلال متصفح إنترنت الذي يقوم بارسال الاوامر لمتصفح الإنترنت واسترجاع النتائج
معظم معرفات متصفح الإنترنت تستطيع الوصول واطلاق تطبيقات متصفحات الإنترنت مثل (Firefox or Internet Explorer); ويوجد هناك ايضاًً HtmlUnit $^{[الإنجليزية]}$، معرف متصفح الإنترنت

### شبكة سيلينيوم

هي خادم يسمح للفحص الاختباري باستخدام نسخة من معرف متصفح الإنترنت ويقوم بتشغيله على كمبيوتر بعيد، باستخدام شبكة سيلينيوم خادم يكون بمثابة محور والفحص الاختباري يستخدم هذا المحور للوصول إلى نسخة متصفح الإنترنت (WebDriver nodes)، ويسمح الفحص الاختباري باستخدام هذه النسخ
شبكة سيلينيوم تسمح بتشغيل الفحوصات الاختبارية على التوازي وعلى أكثر من آلة ولئدارة نسخ متعددة من
متصفحات الإنترنت واعدادات متصفح الإنترنت .