ऑब्जेक्ट रिपोजिटरी में Selenium
⚡ स्मार्ट सारांश
ऑब्जेक्ट रिपोजिटरी में Selenium यह विधि एलिमेंट लोकेटर्स को एक ही बाहरी फ़ाइल में केंद्रीकृत करती है, जिससे वे टेस्ट स्क्रिप्ट से अलग हो जाते हैं। यह तरीका रखरखाव को बेहतर बनाता है और परीक्षकों को कई टेस्ट केस संपादित करने के बजाय एक ही स्थान पर लोकेटर्स को अपडेट करने की सुविधा देता है।

ऑब्जेक्ट रिपोजिटरी क्या है?
ऑब्जेक्ट रिपोजिटरी सभी ऑब्जेक्ट्स के लिए एक सामान्य भंडारण स्थान है। Selenium वेबड्राइवर संदर्भ में, ऑब्जेक्ट आमतौर पर वेब तत्वों को विशिष्ट रूप से पहचानने के लिए उपयोग किए जाने वाले लोकेटर होते हैं।
ऑब्जेक्ट रिपॉजिटरी का उपयोग करने का प्रमुख लाभ यह है कि इससे ऑब्जेक्ट और टेस्ट केस अलग-अलग हो जाते हैं। यदि किसी वेब एलिमेंट के लोकेटर का मान बदलता है, तो केवल ऑब्जेक्ट रिपॉजिटरी में बदलाव करना होता है, न कि उन सभी टेस्ट केसों में बदलाव करना जिनमें उस लोकेटर का उपयोग किया गया है। ऑब्जेक्ट रिपॉजिटरी को बनाए रखने से फ्रेमवर्क कार्यान्वयन की मॉड्यूलरिटी बढ़ती है।
ऑब्जेक्ट रिपॉजिटरी के प्रकार Selenium वेब ड्राइवर
Selenium WebDriver में डिफ़ॉल्ट रूप से कोई अंतर्निहित ऑब्जेक्ट रिपॉजिटरी नहीं होती है। हालाँकि, ऑब्जेक्ट रिपॉजिटरी को कुंजी-मान युग्म विधि का उपयोग करके बनाया जा सकता है, जिसमें कुंजी ऑब्जेक्ट को दिए गए नाम को संदर्भित करती है और मान वेब पेज के भीतर किसी ऑब्जेक्ट को विशिष्ट रूप से पहचानने के लिए उपयोग किए जाने वाले गुणों को संदर्भित करता है।
निम्नलिखित प्रकार के ऑब्जेक्ट रिपॉजिटरी बनाए जा सकते हैं Selenium वेबड्राइवर.
- गुण फ़ाइल का उपयोग करके ऑब्जेक्ट रिपॉजिटरी
- XML फ़ाइल का उपयोग करके ऑब्जेक्ट रिपॉजिटरी
Selenium वेब ड्राइवर ऑब्जेक्ट रिपोजिटरी गुण फ़ाइल का उपयोग कर रहा है
इस पद्धति में, प्रॉपर्टीज़ फ़ाइल एक टेक्स्ट फ़ाइल होती है जिसमें डेटा कुंजी-मान युग्मों के रूप में संग्रहीत होता है। नीचे दिए गए ट्यूटोरियल में निम्नलिखित विषयों पर चर्चा की जाएगी।
चरण 1) एक्लिप्स में प्रॉपर्टीज़ फ़ाइल बनाना
- सबसे पहले, नीचे दिए गए जावा प्रोजेक्ट स्ट्रक्चर को एक्लिप्स में बनाना होगा। प्रोजेक्ट का नाम और पैकेज का नाम कोई भी मान्य नाम हो सकता है।
- मुख्य प्रोजेक्ट फ़ोल्डर पर राइट-क्लिक करें और New-> Other चुनें।
- अगली विंडो में, जनरल -> फ़ाइल चुनें और 'अगला' बटन पर क्लिक करें।
- नई फ़ाइल संसाधन विंडो पर '.properties' एक्सटेंशन के साथ एक मान्य फ़ाइल नाम प्रदान करें और 'समाप्त करें' बटन पर क्लिक करें।
- प्रोजेक्ट स्ट्रक्चर पर 'application.properties' नाम की एक फ़ाइल प्रदर्शित होनी चाहिए।
चरण 2) डेटा को प्रॉपर्टीज़ फ़ाइल पर संग्रहीत करना
- डेटा को प्रॉपर्टीज़ फ़ाइल में कुंजी-मान युग्मों के रूप में संग्रहीत किया जाता है, जिसमें कुंजी पूरी फ़ाइल में अद्वितीय होती है।
- हम लोकेटर मानों का उपयोग करके वेब तत्वों की पहचान करने के लिए प्रॉपर्टीज़ फ़ाइल का उपयोग करने का प्रयास करेंगे।
- application.properties फ़ाइल खोलें Eclipse और निम्नलिखित डेटा संग्रहीत करें
MobileTesting=//a[text()='MOBILE TESTING'] EmailTextBox = philadelphia-field-email SignUpButton = philadelphia-field-submit
4) इस ट्यूटोरियल के लिए निम्नलिखित डेमो वेबसाइट का उपयोग किया जा रहा है:
https://demo.guru99.com/test/guru99home/यह परीक्षण परिदृश्य है:
- XPATH का उपयोग करके मोबाइल टेस्टिंग लिंक पर क्लिक करें
- वापस नेविगेट करें
- आईडी का उपयोग करके ईमेल टेक्स्टबॉक्स में डेटा दर्ज करें।
- आईडी का उपयोग करके साइन अप बटन पर क्लिक करें
चरण 3) प्रॉपर्टीज़ फ़ाइल से डेटा पढ़ना
- प्रॉपर्टीज़ फ़ाइल से डेटा पढ़ने के लिए java.util पैकेज में मौजूद बिल्ट-इन प्रॉपर्टीज़ क्लास का उपयोग किया जा सकता है।
- प्रारंभ में, नीचे दिए गए अनुसार Properties क्लास का एक ऑब्जेक्ट बनाना आवश्यक है।
Properties obj = new Properties();
- हमें प्रॉपर्टीज़ फ़ाइल के पथ के साथ FileInputStream क्लास का एक ऑब्जेक्ट बनाना होगा।
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
- जावा में Properties क्लास द्वारा प्रदान किए गए load मेथड का उपयोग करके प्रॉपर्टीज़ फ़ाइल से डेटा पढ़ा जा सकता है। नीचे दिया गया कोड load मेथड के उपयोग को दर्शाता है।
Properties obj = new Properties(); FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties"); obj.load(objfile); String mobileTesting = obj.getProperty("MobileTesting");
स्ट्रिंग 'मोबाइलटेस्टिंग' में वेबपेज के भीतर मोबाइल टेस्टिंग लिंक की पहचान करने के लिए XPATH शामिल होगा।
चरण 4) परीक्षण स्क्रिप्ट में गुण फ़ाइल का उपयोग करना
प्रॉपर्टीज़ फ़ाइल से डेटा पढ़कर और उस डेटा को findElement मेथड में पैरामीटर के रूप में पास करके, टेस्ट स्क्रिप्ट में प्रॉपर्टीज़ फ़ाइल का उपयोग किया जा सकता है। नीचे दिया गया कोड टेस्ट स्क्रिप्ट में प्रॉपर्टीज़ फ़ाइल से पढ़े गए डेटा के उपयोग को दर्शाता है।
driver.findElement(By.xpath(obj.getProperty("MobileTesting"))).click(); driver.findElement(By.id(obj.getProperty("EmailTextBox"))).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(obj.getProperty("SignUpButton"))).click();
नीचे उपरोक्त परीक्षण परिदृश्य के लिए प्रयुक्त पूर्ण कोड दिया गया है।
package com.objectrepository.demo; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Properties; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class DemoOR { public static void main(String[] args) throws IOException { // Create WebDriver Instance WebDriver driver; System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe"); driver = new ChromeDriver(); driver.get("https://demo.guru99.com/test/guru99home/"); driver.manage().window().maximize(); // Load the properties File Properties obj = new Properties(); FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties"); obj.load(objfile); // Navigate to link Mobile Testing and Back driver.findElement(By.xpath(obj.getProperty("MobileTesting"))).click(); driver.navigate().back(); // Enter Data into Form driver.findElement(By.id(obj.getProperty("EmailTextBox"))).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(obj.getProperty("SignUpButton"))).click(); } }
Selenium XML फ़ाइल का उपयोग करके वेबड्राइवर ऑब्जेक्ट रिपॉजिटरी
XML का पूरा नाम एक्सटेंसिबल मार्कअप लैंग्वेज है। XML फ़ाइल की मूल संरचना डॉक्यूमेंट ऑब्जेक्ट मॉडल (DOM) पर आधारित होती है। XML फ़ाइल का प्रारूप वेबपेज के HTML प्रारूप की तरह ही होता है। नीचे उन विषयों की सूची दी गई है जिन्हें हम कवर करेंगे।
- एक्लिप्स में XML फ़ाइल बनाना
- XML फ़ाइल पर डेटा संग्रहीत करना
- XML फ़ाइल से डेटा पढ़ना
- परीक्षण स्क्रिप्ट में XML फ़ाइल का उपयोग करना
चरण 1) एक्लिप्स में XML फ़ाइल बनाना
- नीचे दिए गए जावा प्रोजेक्ट संरचना को बनाने की आवश्यकता है Eclipse.
- प्रोजेक्ट फ़ोल्डर पर राइट-क्लिक करें, नया -> अन्य चुनें
- XML फ़ोल्डर के अंदर XML फ़ाइल का चयन करें और 'अगला' बटन पर क्लिक करें।
- एक मान्य XML फ़ाइल नाम दर्ज करें और 'समाप्त करें' बटन पर क्लिक करें।
- नीचे दिखाए अनुसार एक XML फ़ाइल प्रोजेक्ट फ़ोल्डर में जोड़ी जाएगी
चरण 2) डेटा को XML फ़ाइल पर संग्रहीत करना
डेटा को XML फ़ाइल में डॉक्यूमेंट ऑब्जेक्ट मॉडल (DOM) के रूप में संग्रहीत किया जा सकता है। सरलता के लिए, हम नीचे दिए गए परीक्षण परिदृश्य को उदाहरण के रूप में उपयोग कर सकते हैं।
- XPATH का उपयोग करके मोबाइल टेस्टिंग लिंक पर क्लिक करें
- होम पेज पर वापस जाएं
- आईडी का उपयोग करके ईमेल टेक्स्टबॉक्स में डेटा दर्ज करें।
- आईडी का उपयोग करके साइन अप बटन पर क्लिक करें
नीचे उपयोग की जाने वाली XML फ़ाइल का प्रारूप दिया गया है।
<menu> <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting> <email> philadelphia-field-email</email> <signup> philadelphia-field-submit </signup> </menu>
उपरोक्त XML कोड को Properties.xml में संग्रहीत करें
डिज़ाइन टैब में आप देखेंगे
चरण 3) XML फ़ाइल से डेटा पढ़ना
1. XML फ़ाइल से डेटा पढ़ने के लिए जावा में अंतर्निहित 'dom4j' क्लास का उपयोग किया जा सकता है। कृपया ध्यान दें कि कोड को आगे बढ़ाने से पहले आपको नीचे दी गई JAR फ़ाइलों को अपने प्रोजेक्ट के बिल्ड पाथ में जोड़ना होगा।
- jaxen.जार
- डोम4j-1.6.jar
2. नीचे XML फ़ाइल से डेटा पढ़ने का कोड दिया गया है।
File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml"); SAXReader saxReader = new SAXReader(); Document document = saxReader.read(inputFile); String mobileTesting = document.selectSingleNode("//menu/mobiletesting").getText(); String emailTextBox = document.selectSingleNode("//menu/email").getText(); String signUpButton = document.selectSingleNode("//menu/signup").getText();
3. सबसे पहले, हमें एक फ़ाइल ऑब्जेक्ट बनाना होगा और उसे SAXReader क्लास के 'रीड' मेथड में पैरामीटर के रूप में पास करना होगा। XML फ़ाइल का डेटा सफलतापूर्वक पढ़ लेने के बाद, हम 'selectSingleNode' मेथड का उपयोग करके XML दस्तावेज़ के अलग-अलग नोड्स तक पहुँच सकते हैं।
चरण 4) परीक्षण स्क्रिप्ट में XML फ़ाइल का उपयोग करना
XML फ़ाइल से डेटा पढ़कर और उस डेटा को findElement मेथड में पैरामीटर के रूप में पास करके, XML फ़ाइल का उपयोग टेस्ट स्क्रिप्ट में किया जा सकता है। नीचे दिया गया कोड XML फ़ाइल से पढ़े गए डेटा का टेस्ट स्क्रिप्ट में उपयोग दर्शाता है।
driver.findElement(By.xpath(mobileTesting)).click(); driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(signUpButton)).click();
नीचे दिया गया कोड सेलेनियम वेबड्राइवर में XML फ़ाइल के उपयोग को दर्शाता है।
package com.objectrepository.demo; import java.io.*; import java.util.*; import org.dom4j.*; import org.dom4j.io.SAXReader; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class DemoORXML { public static void main(String[] args) throws DocumentException { // Creating WebDriver Instance WebDriver driver; System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe"); driver = new ChromeDriver(); driver.get("https://demo.guru99.com/test/guru99home/"); driver.manage().window().maximize(); // Reading XML File File inputFile = new File(System.getProperty("user.dir") +"\\properties.xml"); SAXReader saxReader = new SAXReader(); Document document = saxReader.read(inputFile); String mobileTesting = document.selectSingleNode("//menu/mobiletesting").getText(); String emailTextBox = document.selectSingleNode("//menu/email").getText(); String signUpButton = document.selectSingleNode("//menu/signup").getText(); // Navigating to Mobile Testing and back driver.findElement(By.xpath(mobileTesting)).click(); driver.navigate().back(); // Entering Form Data driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(signUpButton)).click(); } }
वेबड्राइवर डाउनलोड करें Eclipse परियोजना













