implementation our first webdriver script selenium webdriver tutorial 10
पिछले दो ट्यूटोरियल में, हमने आपको मूल आर्किटेक्चर से परिचित कराया और WebDriver की विशेषताएं और यह सेलेनियम वेबड्राइवर के साथ आरंभ करने के लिए आवश्यक बुनियादी ढाँचा । यह मानते हुए कि आप सभी ने सिस्टम को सभी आवश्यक उपयोगिताओं और पैकेजों के साथ स्थापित किया है, हम अपनी पहली वेबड्राइवर परीक्षण स्क्रिप्ट के कार्यान्वयन के साथ आगे बढ़ेंगे।
इसलिए, परिणाम के साथ आगे बढ़ना सेलेनियम वेबड्राइवर ट्यूटोरियल , हम वेबड्राइवर स्क्रिप्ट बना रहे होंगे। हम बुनियादी और आमतौर पर इस्तेमाल होने वाले प्रकाश को भी बिखेर देंगे WebDriver कमांड करता है । हम इसके बारे में भी जानेंगे UI तत्वों की रणनीतियों का पता लगाना और परीक्षण लिपियों में उनका समावेश। हम विस्तार से Get Commands का भी अध्ययन करेंगे।
आप क्या सीखेंगे:
- स्क्रिप्ट निर्माण
- कोड वॉकथ्रू
- परीक्षण निष्पादन
- वेब तत्वों का पता लगाना
- लोकेटर प्रकार और उनके सिंटैक्स
- निष्कर्ष
- अनुशंसित पाठ
स्क्रिप्ट निर्माण
स्क्रिप्ट निर्माण के लिए, हम पिछले ट्यूटोरियल में बनाए गए “Learning_Selenium” प्रोजेक्ट और “gmail.com” टेस्ट (AUT) के तहत आवेदन के रूप में उपयोग करेंगे।
परिदृश्य:
- ब्राउज़र लॉन्च करें और 'Gmail.com' खोलें।
- पृष्ठ का शीर्षक सत्यापित करें और सत्यापन परिणाम प्रिंट करें।
- उपयोगकर्ता नाम और पासवर्ड दर्ज करें।
- साइन इन बटन पर क्लिक करें।
- वेब ब्राउज़र बंद करें।
चरण 1: 'Learning_Selenium' परियोजना के तहत 'Gmail_Login' नाम से एक नया जावा वर्ग बनाएँ।
चरण 2: नीचे दिए गए कोड को 'Gmail_Login.java' वर्ग में कॉपी और पेस्ट करें।
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class Gmail_Login { /** * @param args */ public static void main(String() args) { // objects and variables instantiation WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; // launch the firefox browser and open the application url driver.get(appUrl); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); // compare the expected title of the page with the actual title of the page and print the result if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); } // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); System.out.println('Test script executed successfully.'); // terminate the program System.exit(0); } }
उपरोक्त कोड पहले प्रस्तुत किए गए पाठ परिदृश्य के बराबर है।
कोड वॉकथ्रू
आयात विवरण:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.By;
वास्तविक स्क्रिप्टिंग से पहले, हमें उपरोक्त पैकेज आयात करने की आवश्यकता है:
आयात org.openqa.selenium.WebDriver - वेबड्राइवर इंटरफ़ेस को संदर्भित करता है जो एक नए वेब ब्राउज़र को तुरंत करने के लिए आवश्यक है।
आयात org.openqa.selenium.firefox.FirefoxDriver - फ़ायरफ़ॉक्सड्राइवर वर्ग को संदर्भित करता है जो आवश्यक है वेबड्राइवर इंटरफ़ेस का उपयोग करके ब्राउज़र इंस्टेंस पर एक फ़ायरफ़ॉक्स विशिष्ट ड्राइवर को इंस्टेंट करना।
आयात org.openqa.selenium.WebElement - वेबलेमेंट वर्ग का संदर्भ जो एक नए वेब तत्व को तत्काल करने के लिए आवश्यक है।
आयात org.openqa.selenium.By - बाय क्लास का संदर्भ जिस पर एक लोकेटर प्रकार कहा जाता है।
जब और जब हमारी परियोजना बढ़ेगी, यह स्पष्ट और तार्किक है कि हमें और अधिक जटिल और विशिष्ट कार्यात्मकताओं जैसे एक्सेल जोड़तोड़, डेटाबेस कनेक्टिविटी, लॉगिंग, अभिकथन आदि के लिए कई अन्य पैकेज पेश करने पड़ सकते हैं।
कैसे फ़ाइलों को बदलने के लिए यूट्यूब वीडियो कन्वर्ट करने के लिए
वस्तु तात्कालिकता
WebDriver ड्राइवर = नया FirefoxDriver ();
हम WebDriver इंटरफ़ेस के लिए एक संदर्भ चर बनाते हैं और फ़ायरफ़ॉक्सड्राइवर वर्ग का उपयोग करके इसे त्वरित करते हैं। एक डिफ़ॉल्ट फ़ायरफ़ॉक्स प्रोफ़ाइल लॉन्च किया जाएगा जिसका अर्थ है कि फ़ायरफ़ॉक्स उदाहरण के साथ कोई एक्सटेंशन और प्लग-इन लोड नहीं किया जाएगा और यह सुरक्षित मोड में चलता है।
वेब ब्राउजर लॉन्च करना
Driver.get (appUrl);
सेवा मेरे प्राप्त() वेबड्राइवर उदाहरण पर विधि को एक नया वेब ब्राउज़र उदाहरण लॉन्च करने के लिए कहा जाता है। स्ट्रिंग चरित्र अनुक्रम में एक पैरामीटर के रूप में पारित हुआ प्राप्त() विधि लॉन्च किए गए वेब ब्राउज़र के उदाहरण को एप्लिकेशन URL पर पुनर्निर्देशित करता है।
ब्राउज़र विंडो अधिकतम करें
Driver.manage ()। window ()। मैक्सिमम ();
द अधिकतम () विधि का उपयोग ब्राउज़र विंडो को अधिकतम करने के लिए किया जाता है, इसके तुरंत बाद इसे एप्लिकेशन URL पर निर्देशित किया जाता है।
पेज का शीर्षक प्राप्त करें
Driver.getTitle ();
द GetTitle () वर्तमान वेब पेज का शीर्षक लाने के लिए विधि का उपयोग किया जाता है। इस प्रकार, भ्रूण शीर्षक को एक स्ट्रिंग चर में लोड किया जा सकता है।
निःशुल्क इंस्टाग्राम पोस्ट अनुसूची करने के लिए स्वतंत्र अनुप्रयोग
अपेक्षित और वास्तविक मूल्यों के बीच तुलना:
if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); }
उपरोक्त कोड वास्तविक मूल्य और अपेक्षित मूल्य की तुलना करने के लिए सशर्त विवरण जावा कंस्ट्रक्शन का उपयोग करता है। प्राप्त परिणाम के आधार पर, प्रिंट स्टेटमेंट निष्पादित किया जाएगा।
वेबइमेंट इंस्टेंटेशन
WebElement username = driver.findElement (By.id ('ईमेल'));
उपर्युक्त कथन में, हम WebElement संदर्भ को इसकी सहायता से त्वरित करते हैं 'Driver.findElement (By.id (' ईमेल '))'। इस प्रकार, उपयोगकर्ता इंटरफ़ेस पर ईमेल टेक्स्टबॉक्स को संदर्भित करने के लिए उपयोगकर्ता नाम का उपयोग किया जा सकता है हर बार जब हम उस पर कुछ कार्रवाई करना चाहते हैं।
क्लियर कमांड
उपयोगकर्ता नाम .clear ();
स्पष्ट () विधि / कमांड का उपयोग टेक्स्टबॉक्स में मौजूद मान को साफ करने के लिए किया जाता है यदि कोई हो। यह डिफ़ॉल्ट प्लेसहोल्डर मान को भी साफ़ करता है।
sendKeys कमांड
username.sendKeys ('टेस्टसेलेनियम');
द sendKeys () पाठ बॉक्स में निर्दिष्ट मान (कोष्ठकों के भीतर) दर्ज करने के लिए विधि / कमांड का उपयोग किया जाता है। गौर करें कि द sendKeys () विधि को WebElement ऑब्जेक्ट पर कहा जाता है जिसे UI तत्व के अनुरूप तत्व गुण की सहायता से त्वरित किया गया था।
कोड का उपरोक्त ब्लॉक जीमेल एप्लिकेशन पर ईमेल टेक्स्टबॉक्स के अंदर स्ट्रिंग 'टेस्टसेलेनियम' में प्रवेश करता है।
SendKeys WebDriver लिपियों में सबसे लोकप्रिय रूप से प्रयुक्त कमांड में से एक है।
कमांड पर क्लिक करें
SignInButton.click ();
पसंद sendKeys (), क्लिक करें () वेब तत्वों के साथ बातचीत करने के लिए एक और अत्यधिक उपयोग किया जाने वाला कमांड है। क्लिक करें () कमांड / मेथड का इस्तेमाल वेब पेज पर मौजूद वेब एलिमेंट पर क्लिक करने के लिए किया जाता है।
जीमेल एप्लिकेशन पर मौजूद 'साइन इन' बटन पर कोड का उपरोक्त ब्लॉक क्लिक करता है।
टिप्पणियाँ:
- SendKeys () विधि के विपरीत, क्लिक () विधियों को कभी भी पैरामीटर नहीं किया जा सकता है।
- कई बार, वेब तत्व पर क्लिक करने से एक नया पृष्ठ पूरी तरह लोड हो सकता है। इस प्रकार ऐसे मामलों को बनाए रखने के लिए, पृष्ठ लोड होने तक प्रतीक्षा करने के लिए क्लिक () विधि को एक तरह से कोडित किया जाता है।
वेब ब्राउज़र बंद करें
Driver.close ();
वर्तमान ब्राउज़र विंडो को बंद करने के लिए क्लोज़ () का उपयोग किया जाता है।
जावा प्रोग्राम को समाप्त करें
System.exit (0);
एक्ज़िट () पद्धति जावा प्रोग्राम को बलपूर्वक समाप्त करती है। इस प्रकार, जावा प्रोग्राम को समाप्त करने से पहले सभी ब्राउज़र इंस्टेंस को बंद करना याद रखें।
परीक्षण निष्पादन
परीक्षण स्क्रिप्ट या बस जावा प्रोग्राम को निम्नलिखित तरीकों से निष्पादित किया जा सकता है:
# 1 एक्लिप्स के मेनू बार के तहत, टेस्ट स्क्रिप्ट निष्पादित करने के लिए एक आइकन है। निम्नलिखित आंकड़ा देखें।
इस बात पर ध्यान दें कि जिस वर्ग का चयन किया गया है उसे ही निष्पादित किया जाएगा।
#दो। संपादक के भीतर कक्षा के अंदर कहीं भी राइट क्लिक करें, 'रन अस' विकल्प चुनें और 'जावा एप्लिकेशन' पर क्लिक करें।
# ३। परीक्षण स्क्रिप्ट निष्पादित करने का एक और शॉर्टकट है - ctrl + F11 दबाएँ।
निष्पादन चक्र के अंत में, प्रिंट स्टेटमेंट 'टेस्ट स्क्रिप्ट को सफलतापूर्वक निष्पादित किया गया।' कंसोल में पाया जा सकता है।
वेब तत्वों का पता लगाना
वेबड्राइवर में वेब तत्व उसी तरह से स्थित और निरीक्षण किए जा सकते हैं जैसे हमने सेलेनियम आईडीई के पिछले ट्यूटोरियल में किए थे। जीयूआई पर वेब तत्व का निरीक्षण करने के लिए सेलेनियम आईडीई और फायरबग का उपयोग किया जा सकता है। वेब तत्वों को खोजने के लिए सेलेनियम आईडीई का उपयोग करने का सुझाव दिया जाता है। वेब तत्व सफलतापूर्वक मिल जाने के बाद, वेबड्राइवर कोड के भीतर लक्ष्य मान को कॉपी और पेस्ट करें। सिंटैक्स और उनके अनुप्रयोग को छोड़कर, लोकेटर के प्रकार और पता लगाने की रणनीतियाँ बहुत समान हैं।
WebDriver में, वेब तत्व डायनेमिक फाइंडर्स (findElement (By.locatorType ('लोकेटर वैल्यू'))) की मदद से स्थित होते हैं।
नमूना कोड:
Driver.findElement (By.id ('ईमेल'));
लोकेटर प्रकार और उनके सिंटैक्स
लोकेटर प्रकार | वाक्य - विन्यास | विवरण |
---|---|---|
CssSelector | Driver.findElement (By.cssSlectlector ('सीएसएस चयनकर्ता')) | के मान से पता लगाएँ सीएसएस चयनकर्ता |
ईद | Driver.findElement (By.id ('ID_of_Element')) | के मान से पता लगाएँ 'आईडी' विशेषता |
कक्षा का नाम | Driver.findElement (By.className ('Class_of_Element')) | के मान से पता लगाएँ 'वर्ग' विशेषता |
लिंक पाठ | Driver.findElement (By.linkText ('टेक्स्ट')) | के मान से पता लगाएँ हाइपरलिंक का पाठ |
partLinkText | Driver.findElement (By.partialLinkText ('PartialText')) | के मान से पता लगाएँ हाइपरलिंक का उप-पाठ |
नाम | Driver.findElement (नाम से ('Name_of_Element')) | के मान से पता लगाएँ 'नाम' विशेषता |
xpath | Driver.findElement (By.xpath ('Xpath')) | मान से पता लगाएँ xpath का |
टैग नाम | Driver.findElement (By.tagName ('इनपुट')) | के मान से पता लगाएँ इसका टैग नाम |
निष्कर्ष
इस ट्यूटोरियल में, हमने वेबड्राइवर और जावा का उपयोग करके एक स्वचालन स्क्रिप्ट विकसित की। हमने वेबड्राइवर स्क्रिप्ट बनाने वाले विभिन्न घटकों पर भी चर्चा की।
यहाँ इस सेलेनियम वेबड्राइवर ट्यूटोरियल के क्रूक्स हैं:
- वास्तविक स्क्रिप्टिंग से पहले, हमें WebDriver स्क्रिप्ट बनाने में सक्षम होने के लिए कुछ पैकेजों को आयात करना होगा।
- आयात openqa.selenium.By;
- आयात openqa.selenium.WebDriver;
- आयात openqa.selenium.WebElement;
- आयात openqa.selenium.firefox.FirefoxDriver;
- सेवा मेरे प्राप्त() एक नए वेब ब्राउज़र उदाहरण को लॉन्च करने के लिए प्रयोग की जाने वाली विधि वर्ण अनुक्रम एक पैरामीटर के रूप में पारित हो जाता है () विधि लॉन्च किए गए वेब ब्राउज़र के उदाहरण को एप्लिकेशन URL पर पुनर्निर्देशित करता है।
- द अधिकतम () विधि का उपयोग ब्राउज़र विंडो को अधिकतम करने के लिए किया जाता है।
- द स्पष्ट() पाठ बॉक्स में मौजूद मान को साफ करने के लिए विधि का उपयोग किया जाता है यदि कोई हो।
- द sendKeys () पाठ बॉक्स में निर्दिष्ट मान दर्ज करने के लिए विधि का उपयोग किया जाता है।
- क्लिक करें () वेब पेज पर मौजूद वेब एलिमेंट पर क्लिक करने के लिए मेथड का उपयोग किया जाता है।
- WebDriver में, वेब तत्वों को गतिशील खोजकर्ताओं का उपयोग करके स्थित किया जा सकता है।
- निम्न उपलब्ध लोकेटर प्रकार हैं:
- ईद
- कक्षा का नाम
- नाम
- xpath
- CssSelector
- लिंक पाठ
- partLinkText
- टैग नाम
आगे बढ़ते हुए, अगले ट्यूटोरियल में, हम अपना ध्यान एक फ्रेमवर्क की ओर शिफ्ट करेंगे, जो ऑटोमेशन टेस्टिंग के लिए सहायक है, जिसे टेस्टएनजी के रूप में जाना जाता है। फ्रेमवर्क द्वारा प्रदान किए गए विभिन्न प्रकार के एनोटेशन पर हमारा विस्तृत अध्ययन होगा।
अगला ट्यूटोरियल # 11 : फ्रेमवर्क में गहरी गोता लगाने से पहले हम JUnit के बारे में विवरण देखेंगे - एक खुला स्रोत इकाई परीक्षण उपकरण। अधिकांश प्रोग्रामर JUnit का उपयोग करते हैं क्योंकि यह आसान है और परीक्षण के लिए बहुत प्रयास नहीं करता है। यह ट्यूटोरियल JUnit और सेलेनियम लिपि में इसके उपयोग के बारे में जानकारी देगा।
Android के लिए सबसे अच्छा सेल फोन जासूस क्षुधा
पाठकों के लिए एक टिप्पणी: जबकि सेलेनियम श्रृंखला का हमारा अगला ट्यूटोरियल प्रसंस्करण मोड में है, पाठक अपनी मूल वेबड्राइवर स्क्रिप्ट बनाना शुरू कर सकते हैं। अधिक अग्रिम स्क्रिप्ट और अवधारणाओं के लिए, हमारे पास इस श्रृंखला में आने वाले विभिन्न अन्य सेलेनियम वेबड्राइवर ट्यूटोरियल होंगे।
अगर आपको WebDriver स्क्रिप्ट बनाने या निष्पादित करने में कोई समस्या है, तो हमें टिप्पणियों में बताएं।
अनुशंसित पाठ
- सेलेनियम वेबड्राइवर का परिचय - सेलेनियम ट्यूटोरियल # 8
- ककड़ी सेलेनियम ट्यूटोरियल: ककड़ी जावा सेलेनियम वेबड्राइवर एकीकरण
- वेबड्राइवर संपूर्ण सेटअप और स्थापना ग्रहण के साथ - सेलेनियम ट्यूटोरियल # 9
- विभिन्न प्रकार के वेबड्राइवर कमांड - सेलेनियम ट्यूटोरियल # 14 का उपयोग करके वेब तत्वों की दृश्यता की जांच करें
- कुशल सेलेनियम स्क्रिप्टिंग और समस्या निवारण परिदृश्य - सेलेनियम ट्यूटोरियल # 27
- सेलेनियम वेबड्राइवर में अलर्ट / पॉपअप कैसे हैंडल करें - सेलेनियम ट्यूटोरियल # 16
- लॉग (लॉग 4j ट्यूटोरियल) के साथ सेलेनियम लिपियों को डीबग करना - सेलेनियम ट्यूटोरियल # 26
- सेलेनियम स्क्रिप्ट में JUnit फ्रेमवर्क और इसके उपयोग का परिचय - सेलेनियम ट्यूटोरियल # 11