ऑब्जेक्ट रिपोजिटरी में Selenium (XML और गुण फ़ाइल)

ऑब्जेक्ट रिपोजिटरी क्या है?

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

ऑब्जेक्ट रिपॉजिटरी का उपयोग करने का मुख्य लाभ परीक्षण मामलों से ऑब्जेक्ट को अलग करना है। यदि किसी एक वेबएलिमेंट का लोकेटर मान बदलता है, तो केवल ऑब्जेक्ट रिपॉजिटरी को बदलने की आवश्यकता होती है, न कि उन सभी परीक्षण मामलों में परिवर्तन करने की जिनमें लोकेटर का उपयोग किया गया है। ऑब्जेक्ट रिपॉजिटरी को बनाए रखने से फ्रेमवर्क कार्यान्वयन की मॉड्यूलरिटी बढ़ जाती है।

ऑब्जेक्ट रिपॉजिटरी के प्रकार Selenium वेब ड्राइवर

Selenium वेबड्राइवर डिफ़ॉल्ट रूप से इन-बिल्ट ऑब्जेक्ट रिपॉजिटरी प्रदान नहीं करता है। हालाँकि, कुंजी-मूल्य जोड़ी दृष्टिकोण का उपयोग करके ऑब्जेक्ट रिपॉजिटरी का निर्माण किया जा सकता है, जिसमें कुंजी ऑब्जेक्ट को दिए गए नाम को संदर्भित करती है और मूल्य वेब पेज के भीतर किसी ऑब्जेक्ट को विशिष्ट रूप से पहचानने के लिए उपयोग किए जाने वाले गुणों को संदर्भित करता है।

निम्नलिखित प्रकार के ऑब्जेक्ट रिपॉजिटरी बनाए जा सकते हैं Selenium वेबड्राइवर.

  1. गुण फ़ाइल का उपयोग करके ऑब्जेक्ट रिपॉजिटरी
  2. XML फ़ाइल का उपयोग करके ऑब्जेक्ट रिपॉजिटरी

Selenium वेब ड्राइवर ऑब्जेक्ट रिपोजिटरी गुण फ़ाइल का उपयोग कर रहा है

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

चरण 1) एक्लिप्स में प्रॉपर्टीज़ फ़ाइल बनाना

  1. आरंभ करने के लिए, नीचे दिए गए जावा प्रोजेक्ट ढांचे को एक्लिप्स में बनाना होगा। प्रोजेक्ट नाम और पैकेज नाम कोई भी मान्य नाम हो सकता है।

गुण फ़ाइल बनाना Eclipse

  1. मुख्य प्रोजेक्ट फ़ोल्डर पर राइट-क्लिक करें और नया-> अन्य चुनें

गुण फ़ाइल बनाना Eclipse

  1. अगली विंडो में, जनरल -> फ़ाइल चुनें और 'अगला' बटन पर क्लिक करें

गुण फ़ाइल बनाना Eclipse

  1. नई फ़ाइल संसाधन विंडो पर '.properties' एक्सटेंशन के साथ एक वैध फ़ाइल नाम प्रदान करें और 'समाप्त' बटन पर क्लिक करें

गुण फ़ाइल बनाना Eclipse

  1. प्रोजेक्ट संरचना पर 'application.properties' नामक फ़ाइल प्रदर्शित होनी चाहिए

गुण फ़ाइल बनाना Eclipse

चरण 2) डेटा को प्रॉपर्टीज़ फ़ाइल पर संग्रहीत करना

  1. डेटा को गुण फ़ाइल में कुंजी-मान युग्मों के रूप में संग्रहीत किया जाता है, जिसमें कुंजी फ़ाइल में अद्वितीय होती है।
  2. हम लोकेटर मानों का उपयोग करके वेब तत्वों की पहचान करने के लिए गुण फ़ाइल का उपयोग करने का प्रयास करेंगे।
  3. 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) प्रॉपर्टीज़ फ़ाइल से डेटा पढ़ना

  1. प्रॉपर्टीज़ फ़ाइल से डेटा पढ़ने के लिए java.util पैकेज में दिए गए अंतर्निहित प्रॉपर्टीज़ क्लास का उपयोग किया जा सकता है।
  2. प्रारंभ में, Properties वर्ग का एक ऑब्जेक्ट नीचे दिए अनुसार बनाया जाना चाहिए
  Properties obj = new Properties();
  1. हमें प्रॉपर्टीज़ फ़ाइल के पथ के साथ FileInputStream क्लास का एक ऑब्जेक्ट बनाने की आवश्यकता है
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
  1. जावा में Properties क्लास द्वारा दी जाने वाली लोड विधि का उपयोग करके प्रॉपर्टीज़ फ़ाइल से डेटा पढ़ा जा सकता है। नीचे दिया गया कोड लोड विधि के उपयोग को दर्शाता है।
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);					
// Nagigate 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 प्रारूप की नकल करेगा जिस पर वेबपेज का निर्माण किया गया है। नीचे उन विषयों की सूची दी गई है जिन्हें कवर किया जाएगा।

चरण 1) एक्लिप्स में XML फ़ाइल बनाना

  1. नीचे दिए गए जावा प्रोजेक्ट संरचना को बनाने की आवश्यकता है Eclipse.

XML फ़ाइल बनाना Eclipse

  1. प्रोजेक्ट फ़ोल्डर पर राइट-क्लिक करें, नया -> अन्य चुनें

XML फ़ाइल बनाना Eclipse

  1. XML फ़ोल्डर में XML फ़ाइल का चयन करें और 'अगला' बटन पर क्लिक करें

XML फ़ाइल बनाना Eclipse

  1. एक मान्य XML फ़ाइल नाम दर्ज करें और 'समाप्त' बटन पर क्लिक करें

XML फ़ाइल बनाना Eclipse

  1. नीचे दिखाए अनुसार एक XML फ़ाइल प्रोजेक्ट फ़ोल्डर में जोड़ी जाएगी

XML फ़ाइल बनाना Eclipse

चरण 2) डेटा को XML फ़ाइल पर संग्रहीत करना

डेटा को डॉक्यूमेंट ऑब्जेक्ट मॉडल (DOM) के रूप में XML फ़ाइल में संग्रहीत किया जा सकता है। सरलता के लिए, हम एक उदाहरण के रूप में नीचे दिए गए परीक्षण परिदृश्य का उपयोग कर सकते हैं।

  • XPATH का उपयोग करके मोबाइल परीक्षण लिंक पर क्लिक करें
  • होम पेज पर वापस जाएँ
  • आईडी का उपयोग करके ईमेल टेक्स्टबॉक्स पर डेटा दर्ज करें
  • आईडी का उपयोग करके साइन अप बटन पर क्लिक करें

नीचे प्रयोग किये जाने वाले XML फ़ाइल का प्रारूप दिया गया है।

<menu>     
      <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting>  
      <email> philadelphia-field-email</email> 
      <signup> philadelphia-field-submit </signup>     
 </menu>

उपरोक्त XML कोड को Properties.xml में संग्रहीत करें

XML फ़ाइल पर डेटा संग्रहीत करना

डिज़ाइन टैब में आप देखेंगे

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 क्लास के 'read' मेथड में पैरामीटर के रूप में पास करना होगा। एक बार 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 परियोजना

सारांश

  • ऑब्जेक्ट रिपोजिटरी सभी ऑब्जेक्ट्स के लिए एक सामान्य भंडारण स्थान है
  • Selenium वेबड्राइवर डिफ़ॉल्ट रूप से इन-बिल्ट ऑब्जेक्ट रिपोजिटरी प्रदान नहीं करता है
  • आप 2 प्रकार के ऑब्जेक्ट रिपॉजिटरी बना सकते हैं Selenium
    1. गुण फ़ाइल का उपयोग करके ऑब्जेक्ट रिपॉजिटरी
    2. XML फ़ाइल का उपयोग करके ऑब्जेक्ट रिपॉजिटरी
  • गुण फ़ाइल एक पाठ फ़ाइल है जिसमें डेटा कुंजी-मूल्य जोड़े के रूप में संग्रहीत किया जाता है
  • XML फ़ाइल प्रारूप उस HTML प्रारूप की प्रतिकृति बनाएगा जिस पर वेबपेज का निर्माण किया गया है।