Depozitul de obiecte în Selenium (Fișier XML și proprietăți)

Ce este un depozit de obiecte?

Un depozit de obiecte este o locație de stocare comună pentru toate obiectele. În Selenium În contextul WebDriver, obiectele ar fi de obicei locatorii utilizați pentru a identifica în mod unic elementele web.

Avantajul major al utilizării depozitului de obiecte este segregarea obiectelor din cazurile de testare. Dacă valoarea locatorului unui element web se modifică, trebuie schimbat doar depozitul de obiecte, în loc să se facă modificări în toate cazurile de testare în care a fost utilizat locatorul. Menținerea unui depozit de obiecte crește modularitatea implementării cadrului.

Tipuri de depozite de obiecte în Selenium Driver web

Selenium WebDriver nu oferă în mod implicit un depozit de obiecte încorporat. Cu toate acestea, depozitele de obiecte pot fi construite folosind abordarea perechii cheie-valoare în care cheia se referă la numele dat obiectului, iar valoarea se referă la proprietățile utilizate pentru a identifica unic un obiect în pagina web.

Următoarele sunt tipurile de depozite de obiecte care pot fi create în Selenium WebDriver.

  1. Depozitul de obiecte folosind fișierul de proprietăți
  2. Depozitul de obiecte folosind fișierul XML

Selenium Depozitul Web Driver Object utilizând fișierul Proprietăți

În această abordare, fișierul de proprietăți este un fișier text în care datele sunt stocate sub formă de perechi cheie-valoare. Tutorialul de mai jos va aborda următoarele subiecte.

Pasul 1) Crearea unui fișier de proprietăți în eclipse

  1. Pentru început, structura proiectului java de mai jos trebuie creată în eclipse. Numele proiectului și numele pachetului pot fi orice nume valide.

Crearea unui fișier de proprietăți în Eclipse

  1. Faceți clic dreapta pe folderul principal al proiectului și selectați Nou-> Altele

Crearea unui fișier de proprietăți în Eclipse

  1. În fereastra următoare, selectați General -> Fișier și faceți clic pe butonul „Următorul”.

Crearea unui fișier de proprietăți în Eclipse

  1. Furnizați un nume de fișier valid cu extensia „.properties” în noua fereastră de resurse de fișier și faceți clic pe butonul „Finish”

Crearea unui fișier de proprietăți în Eclipse

  1. Un fișier numit „application.properties” trebuie să fie afișat pe Structura proiectului

Crearea unui fișier de proprietăți în Eclipse

Pasul 2) Stocarea datelor în fișierul de proprietăți

  1. Datele sunt stocate în fișierul de proprietăți sub formă de perechi cheie-valoare, cheia fiind unică în întregul fișier.
  2. Vom încerca să folosim fișierul de proprietăți pentru a identifica elementele web folosind valori de localizare.
  3. Deschideți fișierul application.properties în Eclipse și stocați următoarele date
MobileTesting=//a[text()='MOBILE TESTING']
EmailTextBox = philadelphia-field-email
SignUpButton = philadelphia-field-submit

Stocarea datelor în fișierul de proprietăți

4) Pentru acest tutorial, se utilizează următorul site web demonstrativ:

https://demo.guru99.com/test/guru99home/. Iată scenariul de testare:

  • Faceți clic pe linkul Testare mobilă folosind XPATH
  • Navigați înapoi
  • Introduceți datele în caseta text de e-mail folosind ID-ul
  • Faceți clic pe butonul Înregistrare folosind ID

Pasul 3) Citirea datelor din fișierul de proprietăți

  1. Citirea datelor din fișierul de proprietăți se poate face folosind clasa proprietăți încorporată furnizată în pachetul java.util.
  2. Inițial, un obiect din clasa Proprietăți trebuie creat ca mai jos
  Properties obj = new Properties();
  1. Trebuie să creăm un obiect din clasa FileInputStream cu calea către fișierul de proprietăți
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
  1. Citirea datelor din fișierul de proprietăți se poate face folosind metoda de încărcare oferită de clasa Proprietăți în java. Codul de mai jos demonstrează utilizarea metodei de încărcare.
Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
obj.load(objfile);
String mobileTesting = obj.getProperty("MobileTesting");

Șirul „mobileTesting” va conține XPATH pentru a identifica linkul Mobile Testing din pagina web.

Pasul 4) Utilizarea fișierului de proprietăți în scripturile de testare

Fișierul de proprietăți poate fi utilizat în scripturile de testare prin citirea datelor dintr-un fișier de proprietăți și transmiterea datelor ca parametru la metoda findElement. Codul de mai jos demonstrează utilizarea datelor citite din fișierul de proprietăți în scripturile de testare.

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();

Mai jos este codul complet utilizat pentru scenariul de testare de mai sus.

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 Depozitul de obiecte WebDriver folosind fișierul XML

XML înseamnă Extensible Markup Language. Un fișier XML utilizează Document Object Model (DOM) ca structură de bază. Formatul de fișier XML va replica formatul HTML pe care este construită pagina web. Mai jos este lista subiectelor care vor fi tratate.

Pasul 1) Crearea unui fișier XML în eclipse

  1. Structura proiectului java de mai jos trebuie creată în Eclipse.

Crearea unui fișier XML în Eclipse

  1. Faceți clic dreapta pe folderul proiectului, selectați Nou -> Altul

Crearea unui fișier XML în Eclipse

  1. Selectați fișierul XML din folderul XML și faceți clic pe butonul „Următorul”.

Crearea unui fișier XML în Eclipse

  1. Introduceți un nume de fișier XML valid și faceți clic pe butonul „Terminare”.

Crearea unui fișier XML în Eclipse

  1. Un fișier XML va fi adăugat în folderul proiectului, așa cum se arată mai jos

Crearea unui fișier XML în Eclipse

Pasul 2) Stocarea datelor în fișierul XML

Datele pot fi stocate într-un fișier XML sub formă de Document Object Model (DOM). Din motive de simplitate, putem folosi scenariul de testare de mai jos ca exemplu.

  • Faceți clic pe linkul Testare mobilă folosind XPATH
  • Navigați Înapoi la pagina de pornire
  • Introduceți datele în caseta text de e-mail folosind ID-ul
  • Faceți clic pe butonul Înregistrare folosind ID

Mai jos este formatul fișierului XML care trebuie utilizat.

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

Stocați codul XML de mai sus în properties.xml

Stocarea datelor pe fișierul XML

În fila design veți vedea

Stocarea datelor pe fișierul XML

Pasul 3) Citirea datelor din fișierul XML

1. Citirea datelor din fișierul XML poate fi realizată folosind clasa „dom4j” încorporată în java. Vă rugăm să rețineți că trebuie să adăugați fișierele JAR de mai jos în calea de construcție a proiectului înainte de a continua cu codul.

  • jaxen.jar
  • dom4j-1.6.jar

2. Mai jos este codul pentru a citi datele din fișierul 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. Inițial, trebuie să creăm un obiect File și să-l transmitem ca parametru la metoda „read” a clasei SAXReader. Odată ce datele fișierului XML sunt citite cu succes, putem accesa nodurile individuale ale documentului XML folosind metoda „selectSingleNode”.

Pasul 4) Utilizarea fișierului XML în scripturile de testare

Fișierul XML poate fi utilizat în scripturile de testare prin citirea datelor din fișierul XML și transmiterea datelor ca parametru la metoda findElement. Codul de mai jos demonstrează utilizarea datelor citite din fișierul XML în scripturile de testare.

driver.findElement(By.xpath(mobileTesting)).click();
driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com");
driver.findElement(By.id(signUpButton)).click();

Codul de mai jos demonstrează utilizarea fișierului XML în selenium WebDriver

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();				

	}		
}		

Descărcați WebDriver Eclipse Proiect

Rezumat

  • Un depozit de obiecte este o locație de stocare comună pentru toate obiectele
  • Selenium WebDriver nu oferă în mod implicit un depozit de obiecte încorporat
  • Puteți crea 2 tipuri de depozit de obiecte în Selenium
    1. Depozitul de obiecte folosind fișierul de proprietăți
    2. Depozitul de obiecte folosind fișierul XML
  • Fișierul de proprietăți este un fișier text în care datele sunt stocate sub formă de perechi cheie-valoare
  • Formatul de fișier XML va replica formatul HTML pe care este construită pagina web.