सेलेनियम (सॉफ्टवेयर)

**सेलेनियम** वेब अनुप्रयोगों के लिए एक पोर्टेबल सॉफ्टवेयर परीक्षण रूपरेखा है। सेलेनियम एक परीक्षण पटकथा भाषा (**सेलेनियम आईडीई**) सीखने के बिना परीक्षण संलेखन के लिए एक रिकार्ड / प्लेबैक उपकरण प्रदान करता है। यह भी एक परीक्षण डोमेन विशिष्ट भाषा (**सेलेनीस**) जावा, सी #, ग्रूवी, पर्ल, पीएछ्पी, पायथन और रूबी सहित लोकप्रिय प्रोग्रामिंग भाषाओं की एक संख्या में परीक्षण लिखने के लिए प्रदान करता है। परीक्षण तो सबसे आधुनिक वेब ब्राउज़र के खिलाफ चलाया जा सकता है। सेलेनियम विंडोज, लिनक्स, और मकिन्तोश् प्लेटफार्मों पर तैनात। यह अपाचे २.० लाइसेंस के तहत जारी खुला स्रोत सॉफ्टवेयर, है, और डाउनलोड की है और आरोप के बिना इस्तेमाल किया जा सकता है।

## इतिहास

सेलेनियम मूल थोउघ्टवोर्क्स् पर एक आंतरिक उपकरण के रूप में २००४ में जेसन हग्गिन्स् द्वारा विकसित किया गया था। हग्गिन्स् बाद में थोउघ्त्वोर्क्स् पर अन्य प्रोग्रामर और परीक्षकों से जुड़े हुए थे।पॉल हम्मन्त् टीम में शामिल हो गए और बाद में **सेलेनियम रिमोट कंट्रोल्** (**आर सी**) बन जाएगा कि आपरेशन के दूसरे मोड के विकास चलाया से पहले। सेलेनियम को उसि साल ओपेन सोउर्स कर दिय| 

२००५ में दान **फबुनिछ्** और (पैट लाइटबॉडी से मदद के साथ) **नेल्सन स्प्रोउल्** यह अच्छे के लिए जाना जाता है बन गया है में **सेलेनियम आर सी** बदलना होगा कि पैच की एक श्रृंखला को स्वीकार करने के लिए एक प्रस्ताव बनाया है। उसी बैठक में, एक परियोजना के रूप में सेलेनियम की **स्टीयरिंग हग्गिन्स्** और **हम्मन्त्** थोउघ्टवोर्क्स् प्रतिनिधियों होने के साथ एक समिति के रूप में जारी रहेगा।

२००७ में, क्क् गूगल में शामिल हो गए। साथ में जेनिफर बेवन की तरह दूसरों के साथ, वह सेलेनियम आर सी के विकास और स्थिरीकरण के साथ जारी रखा। एक ही समय में, थोउघ्टवोर्क्स् पर साइमन स्टीवर्ट वेब्द्रिवेर् नामक एक बेहतर ब्राउज़र स्वचालन उपकरण विकसित किया है। २००९ में, **गूगल** टेस्ट स्वचालन सम्मेलन में डेवलपर्स के बीच एक बैठक के बाद, यह नई परियोजना सेलेनियम वेब्द्रिवेर्, या सेलेनियम २.० दो परियोजनाओं को मर्ज, और बुलाने का फैसला किया गया था। 

२००८ में, (तब थोउघ्त्वोर्क्स् पर) **फिलिप हनिरोगु** इस प्रकार के परीक्षण निष्पादन समय को कम करने, समवर्ती स्थानीय या दूरस्थ सिस्टम के किसी भी नंबर पर कई सेलेनियम परीक्षण के चलने की अनुमति के एक केंद्र प्रदान करता है जो **सेलेनियम ग्रिड** बनाया है। ग्रिड के रूप में खुला स्रोत, **सेलेनियम आर सी** के लिए आंतरिक / निजी **गूगल** बादल के लिए एक समान क्षमता की पेशकश की। पैट लाइटबॉडी पहले से ही वह गोमेज़, इंक को बेचने के लिए पर चला गया जो **HostedQA** के लिए एक निजी बादल बना दिया था|

नाम सेलेनियम आप सेलेनियम की खुराक लेने से पारा विषाक्तता इलाज कर सकते हैं कह रही है कि, बुध नामक एक प्रतियोगी मजाक, एक ई-मेल में हग्गिन्स् द्वारा किए गए एक मजाक से आता है। ईमेल प्राप्त हुआ है कि दूसरों के नाम ले लिया और इसके साथ भाग गया।

## सेलेनियम घटकों

### सेलेनियम आईडी

**सेलेनियम आईडी** सेलेनियम परीक्षण के लिए एक पूर्ण एकीकृत विकास पर्यावरण (आईडी) है। यह एक फ़ायरफ़ॉक्स जोड़ने के रूप में लागू किया, और रिकॉर्डिंग, संपादन, और डिबगिंग परीक्षण की अनुमति देता है। यह पहले से सेलेनियम रिकॉर्डर के रूप में जाना जाता था। सेलेनियम आईडीई मूल शिन्य कसतनि द्वारा बनाई गई और २००६ में सेलेनियम परियोजना के लिए दान कर दी थी 

लिपियों स्वचालित रूप से दर्ज की गई है और मैन्युअल स्वतः पूर्ण समर्थन है और चारों ओर जल्दी आदेशों को स्थानांतरित करने की क्षमता प्रदान करने संपादित किया जा सकता है। लिपियों सेलेनीस्, सेलेनियम के लिए एक विशेष परीक्षण पटकथा भाषा में दर्ज हैं। सेलेनीस्, और जिसके परिणामस्वरूप पृष्ठों से डेटा पुन: प्राप्त करने के लिए एक ब्राउज़र में कार्यों का निष्पादन के लिए आदेश (एक लिंक पर क्लिक करें एक विकल्प का चयन करें) प्रदान करता है।

### सेलेनियम ग्राहक एपीआई

सेलेनीस् में लेखन परीक्षण के लिए एक विकल्प के रूप में, परीक्षण भी विभिन्न प्रोग्रामिंग भाषाओं में लिखा जा सकता है। इन परीक्षणों तो सेलेनियम क्लाइंट एपीआई में तरीकों को फोन करके सेलेनियम के साथ संवाद। सेलेनियम वर्तमान में जावा, सी #, रूबी और पायथन के लिए ग्राहक शहद की मक्खी प्रदान करता है।

सेलेनियम २ के साथ, एक नए ग्राहक एपीआई (अपनी केंद्रीय घटक के रूप में *वेबद्र्य्वर* ) के साथ पेश किया गया था। हालांकि, पुराने एपीआई (का उपयोग वर्ग * सेलेनियम *) अभी भी समर्थन किया है।

### सेलेनियम रिमोट कंट्रोल

**सेलेनियम रिमोट कंट्रोल** (** आर सी **) के माध्यम से ब्राउज़र के लिए आदेश स्वीकार करता है कि जावा (प्रोग्रामिंग भाषा), में लिखा एक सर्वर है, हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल(हेछतीतीपी)। आर सी यह संभव मौजूदा इकाई परीक्षण चौखटे में सेलेनियम के बेहतर एकीकरण के लिए अनुमति देता है जो किसी भी प्रोग्रामिंग भाषा में एक वेब अनुप्रयोग, के लिए स्वचालित परीक्षण लिखने के लिए बनाता है। लेखन परीक्षण आसान बनाने के लिए, सेलेनियम परियोजना वर्तमान में पीह्छ्पी, अजगर (प्रोग्रामिंग भाषा), रूबी (प्रोग्रामिंग भाषा), .नेट ढाँचा, प्रति और जावा (प्रोग्रामिंग भाषा) के लिए ग्राहक चालकों प्रदान करता है। जावा चालक भी (राइनो के माध्यम से (जावास्क्रिप्ट इंजन)) जावास्क्रिप्ट के साथ प्रयोग किया जा सकता है। पोर्ट प्रत्येक समानांतर चलाने के लिए अलग किया जाना चाहिए जिसका मतलब है कि - सेलेनियम आर सी सर्वर की एक नई मिसाल एचटीएमएल परीक्षण का मामला शुरू करने के लिए आवश्यक है।हालांकि, जावा / पीएचपी परीक्षण के मामले के लिए केवल एक सेलेनियम आर सी उदाहरण के लगातार चलने की जरूरत है।

### सेलेनियम वेबद्र्य्वर्

सेलेनियम वेबद्र्य्वर् सेलेनियम आर सी के लिए उत्तराधिकारी है। सेलेनियम वेबद्र्य्वर् (या एक ग्राहक एपीआई के माध्यम से सेलेनीस् में भेजा) आदेशों को स्वीकार करता है और एक ब्राउज़र के लिए उन्हें भेजता है। यह एक ब्राउज़र करने के लिए आदेश भेजता है, और परिणाम रेत्रिएवे जो एक ब्राउज़र विशेष **ब्राउज़र ड्राइवर**, के माध्यम से कार्यान्वित किया जाता है। अधिकांश ब्राउज़र ड्राइवरों वास्तव में शुरू करने और (जैसे फ़ायरफ़ॉक्स या इंटरनेट एक्सप्लोरर के रूप में) एक ब्राउज़र आवेदन पहुंच; एचटीएमएल इकाई का उपयोग कर एक ब्राउज़र सीमिउलतेस् जो एक एचटीएमएल यूनिट ब्राउज़र ड्राइवर, वहाँ भी है।

सेलेनियम सर्वर परीक्षण चलाने के लिए जरूरी हो गया था, जहां सेलेनियम 1, के विपरीत, सेलेनियम वेब्द्रिवेर् परीक्षण निष्पादित करने के लिए एक विशेष सर्वर की जरूरत नहीं है। इसके बजाय, वेबद्र्य्वर् सीधे एक ब्राउज़र उदाहरण शुरू होता है और इसे नियंत्रित करता है। हालांकि, सेलेनियम ग्रिड दूरस्थ सिस्टम पर परीक्षण निष्पादित करने के लिए वेबद्र्य्वर् के साथ प्रयोग किया जा सकता है।

व्यवहार में, यह सेलेनियम वेबद २.० एपीआई सेलेनियम १.० एपीआई करता है की तुलना में काफी कम कॉल किया है कि इसका मतलब है। सेलेनियम १.० कई अलग अलग ब्राउज़र के संचालन के लिए एक अमीर इंटरफेस प्रदान करने का प्रयास किया कहां, सेलेनियम २.० उद्देश्य डेवलपर्स अपने खुद के डोमेन विशिष्ट भाषा बना सकते हैं जिसमें से इमारत ब्लॉकों की एक बुनियादी सेट प्रदान करने के लिए। ऐसा ही एक डीएसएल पहले से मौजूद है: रूबी भाषा में **Watir** परियोजना अच्छा डिजाइन का एक समृद्ध इतिहास है। Watir-वेबद्र्य्वर् रूबी में सेलेनियम-वेब्द्रिवेर् के लिए एक आवरण के रूप **Watir एपीआई** लागू करता है। **Watir-वेबद्र्य्वर्** विनिर्देश और एचटीएमएल विनिर्देश पर आधारित है, पूरी तरह से स्वचालित रूप से बनाया जाता है।

२०१२ की शुरुआत के रूप में, **Facebook** के साथ तो गूगल के साथ है और अब था, जो **साइमन स्टीवर्ट** (*वेबद्र्य्वर् आविष्कारक*), और मोज़िला के डेविड बर्न्स एक इंटरनेट मानक वेब्द्रिवेर् बनाने के लिए **W3C** के साथ बातचीत कर रहे थे। जुलाई २०१२ में, काम मसौदा जारी किया गया था।

### सेलेनियम ग्रिड

**सेलेनियम ग्रिड** परीक्षण दूरस्थ मशीन पर चल वेब ब्राउज़र उदाहरणों का उपयोग करने की अनुमति देता है कि एक सर्वर है। सेलेनियम ग्रिड के साथ, एक सर्वर **हब** के रूप में कार्य करता है। टेस्ट ब्राउज़र उदाहरणों के लिए पहुँच प्राप्त करने के लिए केंद्र से संपर्क करें। हब (* नोड्स *) ब्राउज़र उदाहरण के लिए पहुँच प्रदान करते हैं कि सर्वर की एक सूची है, और परीक्षणों इन उदाहरणों का उपयोग करने देता है। सेलेनियम ग्रिड कई मशीनों पर समानांतर में परीक्षण चल देती है, और (के बजाय प्रत्येक व्यक्ति के परीक्षण में से) केन्द्र ब्राउज़र संस्करणों और ब्राउज़र विन्यास विभिन्न प्रबंधन करने के लिए।

दूरस्थ ब्राउज़र उदाहरणों पर परीक्षण चलाने की क्षमता कई मशीनों में परीक्षण के भार प्रसार करने के लिए, और विभिन्न प्लेटफार्मों या ऑपरेटिंग सिस्टम पर चलने वाले ब्राउज़रों में परीक्षण चलाने के लिए उपयोगी है। उत्तरार्द्ध नहीं सभी ब्राउज़रों में एक ही मंच पर चला सकते हैं परीक्षण के लिए इस्तेमाल किया जाएगा, जहां मामलों में विशेष रूप से उपयोगी है।

## सन्दर्भ

https://web.archive.org/web/20150425102731/http://en.wikipedia.org/wiki/Selenium_%28software%29

www.seleniumhq.org/docs/01_introducing_selenium.jsp

www.seleniumhq.org/download/

www.softwaretestinghelp.com/selenium-tutorial-1/

software-testing-tutorials-automation.blogspot.com/

## आधिकारिक वेबसाइट

 

Category:Graphical user interface testing
Category:Load testing tools
Category:Unit testing frameworks
Category:Web development software
Category:Web scraping