ऑब्जेक्ट रिपोजिटरी क्या है?
एक ऑब्जेक्ट रिपॉजिटरी सभी वस्तुओं के लिए एक आम भंडारण स्थान है। सेलेनियम वेबड्राइवर के संदर्भ में, वस्तुओं को आमतौर पर वेब तत्वों को विशिष्ट रूप से पहचानने के लिए उपयोग किया जाता है।
ऑब्जेक्ट रिपॉजिटरी का उपयोग करने का प्रमुख लाभ परीक्षण मामलों से वस्तुओं का अलगाव है। यदि एक वीलमेंट के लोकेटर मान में परिवर्तन होता है, तो केवल उन सभी परीक्षण मामलों में परिवर्तन करने के बजाय ऑब्जेक्ट रिपॉजिटरी को बदलना होगा जिसमें लोकेटर का उपयोग किया गया है। ऑब्जेक्ट रिपॉजिटरी को बनाए रखने से फ्रेमवर्क कार्यान्वयन की प्रतिरूपकता बढ़ जाती है।
इस ट्यूटोरियल में, आप सीखेंगे-
- ऑब्जेक्ट रिपोजिटरी क्या है?
- सेलेनियम वेब चालक में ऑब्जेक्ट रिपोजिटरी के प्रकार
- सेलेनियम वेब चालक ऑब्जेक्ट गुण फ़ाइल का उपयोग कर रिपॉजिटरी
- सेलेनियम वेबड्राइवर ऑब्जेक्ट रिपॉजिटरी एक्सएमएल फ़ाइल का उपयोग कर
सेलेनियम वेब चालक में ऑब्जेक्ट रिपोजिटरी के प्रकार
सेलेनियम वेबड्राइवर डिफ़ॉल्ट रूप से एक इन-बिल्ट ऑब्जेक्ट रिपॉजिटरी प्रदान नहीं करता है। हालाँकि, ऑब्जेक्ट रिपॉजिटरी को कुंजी-मूल्य जोड़ी दृष्टिकोण का उपयोग करके बनाया जा सकता है जिसमें कुंजी ऑब्जेक्ट को दिए गए नाम को संदर्भित करता है और मूल्य वेब पेज के भीतर किसी ऑब्जेक्ट को विशिष्ट रूप से पहचानने के लिए उपयोग किए गए गुणों को संदर्भित करता है।
निम्न प्रकार के ऑब्जेक्ट रिपॉजिटरी हैं जिन्हें सेलेनियम वेबड्राइवर में बनाया जा सकता है।
- गुण फ़ाइल का उपयोग करके ऑब्जेक्ट रिपॉजिटरी
- XML फ़ाइल का उपयोग करके ऑब्जेक्ट रिपॉजिटरी
सेलेनियम वेब चालक ऑब्जेक्ट गुण फ़ाइल का उपयोग कर रिपॉजिटरी
इस दृष्टिकोण में, गुण फ़ाइल एक पाठ फ़ाइल है जिसमें डेटा को कुंजी-मूल्य जोड़े के रूप में संग्रहीत किया जाता है। नीचे ट्यूटोरियल निम्नलिखित विषयों को संबोधित करेगा।
- ग्रहण में गुण फ़ाइल बनाना
- गुण फ़ाइल पर डेटा संग्रहीत करना
- गुण फ़ाइल से डेटा पढ़ना
- परीक्षण स्क्रिप्ट में गुण फ़ाइल का उपयोग करना
चरण 1) ग्रहण में एक गुण फ़ाइल बनाना
- आरंभ करने के लिए, नीचे दिए गए जावा प्रोजेक्ट संरचना को ग्रहण में बनाने की आवश्यकता है। प्रोजेक्ट का नाम और पैकेज का नाम कोई भी मान्य नाम हो सकता है।
- मुख्य प्रोजेक्ट फ़ोल्डर पर राइट-क्लिक करें और नया-> अन्य चुनें
- अगली विंडो में, सामान्य -> फ़ाइल चुनें और 'अगला' बटन पर क्लिक करें
- नई फ़ाइल संसाधन विंडो पर एक्सटेंशन '.properties' के साथ एक मान्य फ़ाइल नाम प्रदान करें और 'समाप्त' बटन पर क्लिक करें
- प्रोजेक्ट स्ट्रक्चर्स पर 'application.properties' नाम की फाइल प्रदर्शित होनी चाहिए
चरण 2) डेटा फ़ाइल पर डेटा संग्रहीत करना
- डेटा को कुंजी-मूल्य जोड़े के रूप में गुण फ़ाइल में संग्रहीत किया जाता है, जिसमें कुंजी फ़ाइल में अद्वितीय होती है।
- हम लोकेटर मानों का उपयोग करते हुए webelements की पहचान करने के लिए गुण फ़ाइल का उपयोग करने का प्रयास करेंगे।
- Eclipse में application.properties फ़ाइल खोलें और निम्न डेटा संग्रहीत करें
MobileTesting = // [एक पाठ () = 'मोबाइल परीक्षण']EmailTextBox = फ़िलाडेल्फ़िया-फ़ील्ड-ईमेलसाइनअपबटन = फिलाडेल्फिया-फील्ड-सबमिट
4) इस ट्यूटोरियल के लिए, निम्नलिखित डेमो वेबसाइट का उपयोग किया जा रहा है: http://demo.guru99.com/test/guru99home/। यहाँ टेस्ट परिदृश्य है:
- XPATH का उपयोग करके मोबाइल परीक्षण लिंक पर क्लिक करें
- वापस नेविगेट करें
- आईडी का उपयोग करके ईमेल टेक्स्टबॉक्स पर डेटा दर्ज करें
- ID का उपयोग करके साइन अप बटन पर क्लिक करें
चरण 3) गुण फ़ाइल से डेटा पढ़ना
- गुण फ़ाइल से डेटा पढ़ना java.util पैकेज में प्रदान किए गए अंतर्निहित गुण वर्ग का उपयोग करके किया जा सकता है।
- प्रारंभ में, गुण वर्ग के एक ऑब्जेक्ट को नीचे के रूप में बनाने की आवश्यकता है
गुण obj = नए गुण ();
- हमें गुण फ़ाइल में पथ के साथ FileInputStream वर्ग का ऑब्जेक्ट बनाने की आवश्यकता है
FileInputStream objfile = new FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");
- गुण फ़ाइल से डेटा पढ़ना जावा में गुण वर्ग द्वारा प्रस्तुत लोड विधि का उपयोग करके किया जा सकता है। नीचे दिया गया कोड लोड विधि के उपयोग को दर्शाता है।
गुण obj = नए गुण ();FileInputStream objfile = new FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);स्ट्रिंग मोबाइलटाइटिंग = obj.getProperty ("मोबाइलटाइटिंग");
स्ट्रिंग 'मोबाइलटाइटिंग' में वेबपेज के भीतर मोबाइल टेस्टिंग लिंक की पहचान करने के लिए XPATH होगा।
चरण 4) परीक्षण स्क्रिप्ट में गुण फ़ाइल का उपयोग करना
प्रॉपर्टी फाइल को प्रॉपर्टी फाइल के डेटा को पढ़कर और डेटा को फाइलेमेंट मेथड के पैरामीटर के रूप में पास करके टेस्ट स्क्रिप्ट में उपयोग किया जा सकता है। नीचे दिए गए कोड परीक्षण स्क्रिप्ट में गुण फ़ाइल से पढ़े गए डेटा के उपयोग को प्रदर्शित करते हैं।
Driver.findElement (By.xpath (obj.getProperty ("MobileTesting"))) क्लिक करें ();Driver.findElement (By.id (obj.getProperty ("EmailTextBox")))। SendKeys (" यह ईमेल पता spambots से संरक्षित किया जा रहा है। आपको इसे देखने के लिए जावास्क्रिप्ट सक्रिय होना चाहिए।");Driver.findElement (By.id (obj.getProperty ("SignUpButton")))। क्लिक करें ();
उपरोक्त परीक्षण परिदृश्य के लिए नीचे दिया गया पूरा कोड है।
पैकेज com.objectrepository.demo;आयात java.io.FileInputStream;आयात java.io.FileNotFoundException;आयात java.io.IOException;आयात java.util.Properties;आयात org.openqa.selenium.By;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.chrome.ChromeDriver;पब्लिक क्लास डेमोस्टर {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) IOException {फेंकता है// वेबड्राइवर इंस्टेंस बनाएंWebDriver ड्राइवर;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");ड्राइवर = नया क्रोमड्राइवर ();Driver.get ("http://demo.guru99.com/test/guru99home/");Driver.manage ()। window ()। मैक्सिमम ();// गुण फ़ाइल लोड करेंगुण obj = नए गुण ();FileInputStream objfile = new FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);// मोबाइल टेस्टिंग और बैक को लिंक करने के लिए NagigateDriver.findElement (By.xpath (obj.getProperty ("MobileTesting"))) क्लिक करें ();Driver.navigate ()) वापस ();// फॉर्म में डेटा डालेंDriver.findElement (By.id (obj.getProperty ("EmailTextBox")))। SendKeys (" यह ईमेल पता spambots से संरक्षित किया जा रहा है। आपको इसे देखने के लिए जावास्क्रिप्ट सक्रिय होना चाहिए।");Driver.findElement (By.id (obj.getProperty ("SignUpButton")))। क्लिक करें ();}}
सेलेनियम वेबड्राइवर ऑब्जेक्ट रिपॉजिटरी एक्सएमएल फ़ाइल का उपयोग कर
एक्सएमएल का मतलब एक्स्टेंसिबल मार्कअप लैंग्वेज है। XML फ़ाइल मूल संरचना के रूप में दस्तावेज़ ऑब्जेक्ट मॉडल (DOM) का उपयोग करती है। XML फ़ाइल प्रारूप HTML प्रारूप को दोहराएगा, जिस पर वेबपेज का निर्माण किया गया है। नीचे उन विषयों की सूची दी गई है जिन्हें कवर किया जाएगा।
- ग्रहण में XML फ़ाइल बनाना
- XML फ़ाइल पर डेटा संग्रहीत करना
- XML फ़ाइल से डेटा पढ़ना
- परीक्षण स्क्रिप्ट में XML फ़ाइल का उपयोग करना
चरण 1) ग्रहण में XML फ़ाइल बनाना
- निम्न जावा परियोजना संरचना को ग्रहण में बनाने की आवश्यकता है।
- प्रोजेक्ट फ़ोल्डर पर राइट-क्लिक करें, नया -> अन्य चुनें
- XML फाइल को XML फोल्डर के भीतर सेलेक्ट करें और 'नेक्स्ट' बटन पर क्लिक करें
- एक वैध XML फ़ाइल नाम दर्ज करें और 'समाप्त' बटन पर क्लिक करें
- एक XML फ़ाइल प्रोजेक्ट फ़ोल्डर में जोड़ा जाएगा जैसा कि नीचे दिखाया गया है
चरण 2) डेटा को XML फ़ाइल पर संग्रहीत करना
डेटा को डॉक्यूमेंट ऑब्जेक्ट मॉडल (DOM) के रूप में XML फ़ाइल में संग्रहीत किया जा सकता है। सादगी के लिए, हम उदाहरण के रूप में नीचे दिए गए परीक्षण परिदृश्य का उपयोग कर सकते हैं।
- XPATH का उपयोग करके मोबाइल परीक्षण लिंक पर क्लिक करें
- होम पेज पर वापस नेविगेट करें
- आईडी का उपयोग करके ईमेल टेक्स्टबॉक्स पर डेटा दर्ज करें
- ID का उपयोग करके साइन अप बटन पर क्लिक करें
नीचे XML फ़ाइल का प्रारूप प्रयोग किया जाना है।
<मेनू>// एक [पाठ () = 'मोबाइल परीक्षण'] mobiletesting><ईमेल> फिलाडेल्फिया-फ़ील्ड-ईमेल ईमेल><साइनअप> फिलाडेल्फिया-फ़ील्ड-सबमिट करें साइनअप> मेनू>
ऊपर XML कोड को properties.xml में स्टोर करें
डिज़ाइन टैब में आप देखेंगे
चरण 3) XML फ़ाइल से डेटा पढ़ना
1. XML फ़ाइल से डेटा पढ़ना जावा में बिल्ट-इन 'डोम 4 जे' क्लास का उपयोग करके पूरा किया जा सकता है। कृपया ध्यान दें कि कोड के साथ आगे बढ़ने से पहले आपको अपनी परियोजना के बिल्डपाथ में नीचे JAR फ़ाइलों को जोड़ना होगा।
- jaxen.jar
- dom4j-1.6.jar
2. नीचे XML फ़ाइल से डेटा पढ़ने के लिए कोड है।
फ़ाइल inputFile = नई फ़ाइल (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = नया SAXReader ();दस्तावेज़ दस्तावेज़ = saxReader.read (inputFile);स्ट्रिंग मोबाइलटाइटिंग = document.selectSingleNode ("// menu / mobiletesting")। GetText ();स्ट्रिंग emailTextBox = document.selectSingleNode ("// menu / email")। GetText ();स्ट्रिंग साइनअपबटन = document.selectSingleNode ("// menu / signup")। getText ();
3. प्रारंभ में, हमें एक फ़ाइल ऑब्जेक्ट बनाने और इसे SAXReader क्लास की 'रीड' पद्धति के पैरामीटर के रूप में पास करना होगा। एक बार XML फ़ाइल डेटा सफलतापूर्वक पढ़ने के बाद, हम 'selectSingleNode' पद्धति का उपयोग करके XML दस्तावेज़ के अलग-अलग नोड्स तक पहुँच सकते हैं।
चरण 4) परीक्षण स्क्रिप्ट में XML फ़ाइल का उपयोग करना
XML फ़ाइल से डेटा को पढ़ने और खोज विधि के पैरामीटर के रूप में डेटा पास करके XML फ़ाइल का उपयोग परीक्षण स्क्रिप्ट में किया जा सकता है। नीचे दिए गए कोड परीक्षण स्क्रिप्ट में XML फ़ाइल से पढ़े गए डेटा के उपयोग को प्रदर्शित करते हैं।
Driver.findElement (By.xpath (mobileTesting))। क्लिक करें ();Driver.findElement (By.id (emailTextBox))। sendKeys (" यह ईमेल पता spambots से संरक्षित किया जा रहा है। आपको इसे देखने के लिए जावास्क्रिप्ट सक्रिय होना चाहिए।")।Driver.findElement (By.id (signUpButton)); क्लिक करें ();
नीचे दिए गए कोड सेलेनियम वेबड्राइवर में XML फ़ाइल के उपयोग को प्रदर्शित करता है
पैकेज com.objectrepository.demo;आयात java.io. *;आयात java.util। *;आयात org.dom4j। *;आयात org.dom4j.io.SAXReader;आयात org.openqa.selenium.By;आयात org.openqa.selenium.WebDriver;आयात org.openqa.selenium.chrome.ChromeDriver;पब्लिक क्लाससार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) DocumentException {फेंकता है// वेबड्राइवर इंस्टेंस बनानाWebDriver ड्राइवर;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");ड्राइवर = नया क्रोमड्राइवर ();Driver.get ("http://demo.guru99.com/test/guru99home/");Driver.manage ()। window ()। मैक्सिमम ();// एक्सएमएल फ़ाइल पढ़नाफ़ाइल inputFile = नई फ़ाइल (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = नया SAXReader ();दस्तावेज़ दस्तावेज़ = saxReader.read (inputFile);स्ट्रिंग मोबाइलटाइटिंग = document.selectSingleNode ("// menu / mobiletesting")। GetText ();स्ट्रिंग emailTextBox = document.selectSingleNode ("// menu / email")। GetText ();स्ट्रिंग साइनअपबटन = document.selectSingleNode ("// menu / signup")। getText ();// मोबाइल टेस्टिंग और बैक पर नेविगेट करनाDriver.findElement (By.xpath (mobileTesting))। क्लिक करें ();Driver.navigate ()) वापस ();// फॉर्म डेटा दर्ज करनाDriver.findElement (By.id (emailTextBox))। sendKeys (" यह ईमेल पता spambots से संरक्षित किया जा रहा है। आपको इसे देखने के लिए जावास्क्रिप्ट सक्रिय होना चाहिए।")।Driver.findElement (By.id (signUpButton)); क्लिक करें ();}}
वेबड्राइवर ग्रहण परियोजना डाउनलोड करें
सारांश:
- एक ऑब्जेक्ट रिपॉजिटरी सभी वस्तुओं के लिए एक आम भंडारण स्थान है
- सेलेनियम वेबड्राइवर डिफ़ॉल्ट रूप से एक इन-बिल्ट ऑब्जेक्ट रिपॉजिटरी प्रदान नहीं करता है
- आप सेलेनियम में ऑब्जेक्ट रिपोजिटरी के 2 प्रकार बना सकते हैं
- गुण फ़ाइल का उपयोग करके ऑब्जेक्ट रिपॉजिटरी
- XML फ़ाइल का उपयोग करके ऑब्जेक्ट रिपॉजिटरी
- गुण फ़ाइल एक पाठ फ़ाइल है जिसमें डेटा को कुंजी-मूल्य जोड़े के रूप में संग्रहीत किया जाता है
- XML फ़ाइल प्रारूप HTML प्रारूप को दोहराएगा, जिस पर वेबपेज का निर्माण किया गया है।