वैरिएबल, इको, अलर्ट, पॉपअप हैंडलिंग को स्टोर करें Selenium आईडीई
⚡ स्मार्ट सारांश
आदेशों को इसमें संग्रहित करें Selenium IDE रनटाइम मानों को नामित चरों में सहेजता है, उन्हें लॉग में प्रिंट करता है, और एक समर्पित कमांड समूह अलर्ट, पुष्टिकरण संवाद और कई ब्राउज़र विंडो के बीच स्विच करने का काम संभालता है।

इस ट्यूटोरियल में आप स्टोर कमांड, इको कमांड और अलर्ट व पॉपअप हैंडलिंग के बारे में जानेंगे। Selenium आईडीईये सभी कमांड मिलकर एक निश्चित रिकॉर्ड की गई स्क्रिप्ट को ऐसी स्क्रिप्ट में बदल देते हैं जो रनटाइम पर एप्लिकेशन द्वारा लौटाए गए किसी भी परिणाम पर प्रतिक्रिया करती है।
⚠️ संस्करणों के बारे में एक नोट: नीचे दिए गए स्क्रीनशॉट मूल फ़ाइल से लिए गए हैं। Firefox-लगाना Selenium IDE, और कमांड इसके कैमलकेस सेलेनीज़ नामों का उपयोग करते हैं। वर्तमान क्रोम, Firefox एज एक्सटेंशन वही व्यवहार बनाए रखता है लेकिन अधिकांश कमांड नामों को स्पेस के साथ लिखता है। एक मैपping यह तालिका इस लेख के अंत में दिखाई देती है, और प्रत्येक मूल कमांड और स्क्रीनशॉट को प्रकाशित रूप में संरक्षित किया गया है।
Selenium आईडीई चर
दुकान
चरों को संग्रहीत करने के लिए Selenium हम IDE का उपयोग करते हैं की दुकान कमांड। नीचे दिया गया चित्र "ट्यूटोरियल" मान को "myVariable" नामक वेरिएबल में संग्रहीत करता है।
वेरिएबल को एक्सेस करने के लिए, बस उसे ${ … } चिह्न के अंदर रखें। उदाहरण के लिए, “myVariable” का मान “userName” टेक्स्टबॉक्स में दर्ज करने के लिए। Mercury टूर्स, वैल्यू फ़ील्ड में ${myVariable} दर्ज करें।
इको कमांड में Selenium आईडीई
एक संग्रहित चर तब तक अदृश्य रहता है जब तक कि उसे प्रिंट नहीं किया जाता, और यही वह बात है जो गूंज यह कमांड प्लेबैक के दौरान IDE लॉग पेन में एक संदेश लिखता है, जिससे यह पुष्टि करने का सबसे तेज़ तरीका बन जाता है कि स्टोर कमांड ने आपकी अपेक्षा के अनुसार डेटा कैप्चर किया है या नहीं, इससे पहले कि आप उस पर अभिकथन करें।
यह कमांड दोनों रूपों को स्वीकार करता है:
- एक शाब्दिक स्ट्रिंग। पाठ को इसमें डालें Target उदाहरण के लिए, क्षेत्र लॉगिन चरण पूरा हुआकिसी लंबी स्क्रिप्ट में चेकपॉइंट को चिह्नित करने के लिए।
- एक चर। ${myVariable} को इसमें रखें Target नाम के बजाय फ़ील्ड में संग्रहीत मान मुद्रित किया जाता है।
दो आदतें इको को उसके शुरुआती अनुमान से कहीं अधिक उपयोगी बनाती हैं। किसी वेरिएबल को बनाने वाले स्टोर कमांड के तुरंत बाद उसे प्रिंट करें, ताकि विफलता होने पर उसे प्रिंट किया जा सके। tracबीस चरण बाद अभिकथन के बजाय कैप्चर पर ध्यान केंद्रित करें। और प्रत्येक संदेश के आगे उस चरण का नाम लिखें जिससे वह संबंधित है, क्योंकि लॉग फलक सभी कमांड को एक सपाट सूची में दिखाता है। ध्यान दें कि इको केवल लॉग में लिखता है - यह कभी भी पृष्ठ को नहीं बदलता और कभी भी परीक्षण में विफल नहीं होता, इसलिए इसे स्क्रिप्ट में स्थायी रूप से छोड़ना सुरक्षित है।
स्टोरएलिमेंटवर्तमान
यह कमांड निर्दिष्ट तत्व की उपस्थिति के आधार पर "true" या "false" मान संग्रहीत करता है। नीचे दी गई स्क्रिप्ट "var1" में बूलियन मान "true" और "var2" में "false" संग्रहीत करती है। सत्यापन के लिए, हम var1 और var2 के मान प्रदर्शित करने के लिए echo कमांड का उपयोग करेंगे। URL नीचे दिए गए चित्र के लिए इसे इस प्रकार सेट किया गया था: Mercury पर्यटन मुखपृष्ठ.
स्टोरटेक्स्ट
इस कमांड का उपयोग किसी एलिमेंट के आंतरिक टेक्स्ट को एक वेरिएबल में स्टोर करने के लिए किया जाता है। नीचे दिए गए उदाहरण में, फेसबुक साइन-अप पेज पर h1 टैग के आंतरिक टेक्स्ट को "textVar" नामक वेरिएबल में स्टोर किया गया है।
क्योंकि यह पृष्ठ पर अपनी तरह का एकमात्र तत्व है, इसलिए "css=h1" को लक्ष्य के रूप में उपयोग करना सुरक्षित है। नीचे दी गई छवि इसे दर्शाती है। Selenium IDE "Sign Up" स्ट्रिंग को "textVar" वेरिएबल में सेव करने में सक्षम था, क्योंकि echo ने इसका मान सही ढंग से प्रिंट किया था।
अलर्ट, पॉपअप और मल्टीपल Windows
अलर्ट शायद पॉप-अप विंडो का सबसे सरल रूप है। सबसे आम Selenium अलर्ट को संभालने में प्रयुक्त IDE कमांड निम्नलिखित हैं:
| चेतावनियाँ | का उपयोग करता है |
|---|---|
|
दावाअलर्ट दावानहींचेतावनी |
यह अलर्ट का संदेश प्राप्त करता है और आपके द्वारा निर्दिष्ट स्ट्रिंग मान के विरुद्ध उसकी पुष्टि करता है। |
|
दावाअलर्टवर्तमान दावाअलर्टनहींमौजूद |
यह पुष्टि करता है कि कोई अलर्ट मौजूद है या नहीं। |
| स्टोरअलर्ट | यह अलर्ट संदेश को पुनः प्राप्त करता है और उसे आपके द्वारा निर्दिष्ट चर में संग्रहीत करता है। |
| स्टोरअलर्टवर्तमान | अलर्ट मौजूद होने पर TRUE लौटाता है, अन्यथा FALSE। |
|
सत्यापित करेंअलर्ट सत्यापित करेंअलर्ट नहीं |
यह अलर्ट का संदेश प्राप्त करता है और सत्यापित करता है कि क्या यह आपके द्वारा निर्दिष्ट स्ट्रिंग मान के बराबर है। |
|
सत्यापित करेंअलर्टवर्तमान सत्यापित करेंअलर्टनहींमौजूद |
यह सत्यापित करता है कि कोई अलर्ट मौजूद है या नहीं। |
अलर्ट के साथ काम करते समय इन दो बातों को याद रखें:
- Selenium IDE स्वचालित रूप से अलर्ट विंडो के ओके बटन पर क्लिक कर देता है, इसलिए आप वास्तविक अलर्ट नहीं देख पाएंगे।
- Selenium IDE पेज के onload() फ़ंक्शन के अंदर उत्पन्न होने वाले अलर्ट को हैंडल नहीं कर सकता। यह केवल पेज के पूरी तरह लोड होने के बाद उत्पन्न होने वाले अलर्ट को ही हैंडल करता है।
इस उदाहरण में हम storeAlert कमांड का उपयोग यह दिखाने के लिए करते हैं कि भले ही Selenium IDE ने वास्तविक अलर्ट प्रदर्शित नहीं किया, फिर भी वह संदेश प्राप्त करने में सक्षम था।
चरण 1) In Selenium IDE में, बेस सेट करें URL http://jsbin.com पर जाएं। पूरा URL यह http://jsbin.com/usidix है। ये jsbin स्निपेट्स इस समय के हैं। Firefoxयह प्लगइन पुराने समय का है और हो सकता है कि अब समस्या हल न हो; अलर्ट उत्पन्न करने वाले बटन वाले किसी भी पृष्ठ पर यही परिणाम दिखाई देता है।
चरण 2) नीचे दिखाए गए अनुसार स्क्रिप्ट बनाएं। क्लिक कमांड 'गो!' बटन को लक्षित करता है, स्टोरअलर्ट संदेश को अलर्टमैसेज में कैप्चर करता है, और इको उसे प्रिंट करता है।
चरण 3) स्क्रिप्ट को चलाएं, और वास्तविक अलर्ट देखने की उम्मीद न करें। नीचे दिया गया लॉग पैनल कैप्चर किया गया संदेश दिखाता है, भले ही डायलॉग बॉक्स कभी दिखाई नहीं दिया हो।
पुष्टिकरण
पुष्टिकरण पॉप-अप होते हैं जिनमें आपको OK और CANCEL बटन मिलते हैं, जबकि अलर्ट में केवल OK बटन होता है। पुष्टिकरण को संभालने के लिए आप जिन कमांड का उपयोग कर सकते हैं, वे अलर्ट कमांड के समान ही होते हैं।
- assertConfirmation / assertNotConfirmation
- assertConfirmationPresent / assertConfirmationNotPresent
- स्टोरपुष्टि
- स्टोरपुष्टिवर्तमान
- पुष्टि सत्यापित करें / पुष्टि न होने की पुष्टि सत्यापित करें
- पुष्टि मौजूद है / पुष्टि मौजूद नहीं है
इसके अलावा, ये आदेश बताते हैं Selenium आपको कौन सा बटन चुनना है, ओके या कैंसिल?
- chooseOkOnNextConfirmation / chooseOkOnNextConfirmationAndWait
- चुनेंरद्द करेंअगलापुष्टि
इन आदेशों को यहाँ रखें से पहले वह कमांड जो पुष्टिकरण बॉक्स को ट्रिगर करती है, ताकि Selenium IDE को पहले से ही पता होता है कि कौन सा विकल्प चुनना है। हालांकि, स्क्रिप्ट के निष्पादन के दौरान आपको वास्तविक पुष्टिकरण बॉक्स दिखाई नहीं देगा।
आइए एक ऐसे वेबपेज का परीक्षण करें जिसमें एक बटन हो जिसे इस प्रकार कोड किया गया हो कि वह यह रिपोर्ट करे कि उपयोगकर्ता ने ओके दबाया या कैंसिल।
चरण 1) In Selenium IDE में, बेस सेट करें URL http://jsbin.com पर जाएं। पूरा URL यह http://jsbin.com/enifaf है।
चरण 2) नीचे दिखाए गए अनुसार स्क्रिप्ट बनाएं। इस बार हम पहले ओके बटन दबाएंगे।
चरण 3) स्क्रिप्ट को चलाएँ और ध्यान दें कि आपको वास्तविक पुष्टि नहीं दिखती है, फिर भी वेबपेज बताता है कि कौन सा बटन दबाना है। Selenium IDE दबाया गया।
चरण 4) chooseOkOnNextConfirmation कमांड को chooseCancelOnNextConfirmation से बदलें और स्क्रिप्ट को दोबारा चलाएँ। अब पेज विपरीत विकल्प दिखाएगा।
विभिन्न Windows
यदि आप किसी ऐसे लिंक पर क्लिक करते हैं जो एक अलग विंडो खोलता है, तो आपको पहले निर्देश देना होगा। Selenium विंडो के अंदर मौजूद तत्वों तक पहुँचने से पहले आपको IDE में उस विंडो का चयन करना होगा। पुराने IDE में आप विंडो के शीर्षक को उसके लोकेटर के रूप में उपयोग करते हैं।
हम विंडो के बीच स्विच करने के लिए selectWindow कमांड का उपयोग करते हैं।
हम http://jsbin.com/ocinaj/1 लिंक का उपयोग करेंगे, जिसका शीर्षक "फर्स्ट विंडो" है। उस पृष्ठ पर मौजूद "यहाँ" हाइपरलिंक फेसबुक को एक नई विंडो में खोलता है, जिसके बाद हम निर्देश देते हैं। Selenium आईडीई को निम्न कार्य करने के लिए:
- विंडो के शीर्षक को लोकेटर के रूप में उपयोग करते हुए selectWindow कमांड का प्रयोग करके मूल विंडो से नई लॉन्च की गई फेसबुक विंडो में नियंत्रण स्थानांतरित करें।
- नई विंडो के शीर्षक की पुष्टि करें।
- selectWindow कमांड का उपयोग करके मूल विंडो को पुनः चुनें और लक्ष्य के रूप में "null" चुनें।
- वर्तमान में चयनित विंडो के शीर्षक की पुष्टि करें।
ऊपर दी गई योजना को यहाँ दिखाए गए चार चरणों के क्रम में रूपांतरित किया जा सकता है।
चरण 1) आधार स्थापित करें URL http://jsbin.com पर जाएं।
चरण 2) नीचे दिखाए अनुसार स्क्रिप्ट बनाएं।
नई विंडो के लोड होने का इंतजार करने के लिए हमें पॉज़ कमांड की आवश्यकता होती है, ताकि हम उसका शीर्षक पढ़ सकें।
चरण 3) स्क्रिप्ट निष्पादित करें। ध्यान दें कि परीक्षण का मामला पास हो गया, जिसका मतलब है कि हम विंडोज़ के बीच स्विच करने और उनके शीर्षकों को सफलतापूर्वक सत्यापित करने में सक्षम थे।
हमेशा याद रखें कि selectWindow टारगेट को "null" पर सेट करने से पैरेंट विंडो अपने आप सेलेक्ट हो जाती है — इस मामले में वह विंडो जहां एलिमेंट "link=here" मौजूद है।
नोट: इस ट्यूटोरियल के बनने के बाद से फेसबुक ने अपने पेज का शीर्षक बदल दिया है। कृपया स्क्रिप्ट में अपेक्षित शीर्षक को तदनुसार संशोधित करें।
आधुनिक Selenium इन कमांडों के IDE समकक्ष
RSI Firefox-plugin IDE को तब बंद कर दिया गया जब Firefox वेबएक्सटेंशन आर्किटेक्चर में स्थानांतरित हो गया, और वर्तमान क्रोम, Firefox एज एक्सटेंशन ने अधिकांश सेलेनीज़ कमांड्स का नाम बदलकर स्पेस वाले फॉर्मेट में कर दिया है। व्यवहार अपरिवर्तित है, इसलिए वर्तमान इंस्टॉलेशन के साथ उपरोक्त स्क्रिप्ट्स को पढ़ने के लिए नीचे दी गई तालिका ही पर्याप्त है।
| इस ट्यूटोरियल में लेगेसी कमांड का उपयोग किया गया है। | वर्तमान Selenium आईईडी कमांड |
|---|---|
| की दुकान | की दुकान |
| गूंज | गूंज |
| स्टोरटेक्स्ट | स्टोर टेक्स्ट |
| स्टोरएलिमेंटप्रेजेंट | स्टोर एलिमेंट मौजूद है (या एलिमेंट मौजूद होने की पुष्टि करें) |
| assertAlert / verifyAlert | अलर्ट की पुष्टि करें / अलर्ट सत्यापित करें |
| chooseOkOnNextConfirmation | अगली पुष्टि पर ओके चुनें |
| चुनेंरद्द करेंअगलापुष्टि | अगली पुष्टि पर रद्द करने का विकल्प चुनें |
| selectWindow (title as target) | हैंडल=${हैंडल} वाली विंडो चुनें |
दो अंतरों पर ध्यान देना महत्वपूर्ण है। प्रॉम्प्ट्स, जिनका उल्लेख पुराने लेख में नहीं किया गया है, अब उनके अपने कमांड हैं: अगले प्रश्न पर उत्तर दें संवाद प्रकट होने से पहले ही उत्तर की योजना बना लेता है, और वेबड्राइवर दृश्यमान प्रॉम्प्ट पर उत्तर देता है पहले से खुले हुए प्रॉम्प्ट में टाइप करता है। और विंडो स्विचिंग अब पेज टाइटल पर निर्भर नहीं करती है। चलाएँ दुकान की खिड़की का हैंडल पहले एक हैंडल कैप्चर करें, फिर पास करें हैंडल=${आपकाहैंडल} विंडो का चयन करने के लिए। यह बदलाव ऊपर दिए गए नोट में वर्णित विफलता मोड को दूर करता है, जहां कोई साइट केवल अपने पेज का नाम बदल देती है और स्क्रिप्ट विंडो को ढूंढना बंद कर देती है। आधिकारिक Selenium आईईडी परियोजना साइट यह वर्तमान में उपलब्ध सभी कमांडों की सूची दिखाता है।













