Repozitorij objekata u Selenium (XML i datoteka svojstava)

Što je repozitorij objekata?

Repozitorij objekata je zajedničko mjesto za pohranu svih objekata. U Selenium U kontekstu WebDrivera, objekti bi obično bili lokatori koji se koriste za jedinstvenu identifikaciju web elemenata.

Glavna prednost korištenja repozitorija objekata je odvajanje objekata od testnih slučajeva. Ako se promijeni vrijednost lokatora jednog webelementa, potrebno je promijeniti samo repozitorij objekta, a ne mijenjati sve testne slučajeve u kojima je lokator korišten. Održavanje repozitorija objekata povećava modularnost implementacije okvira.

Vrste spremišta objekata u Selenium Web upravljački program

Selenium WebDriver prema zadanim postavkama ne nudi ugrađeno spremište objekata. Međutim, repozitoriji objekata mogu se izgraditi korištenjem pristupa para ključ-vrijednost pri čemu se ključ odnosi na ime dano objektu, a vrijednost se odnosi na svojstva koja se koriste za jedinstvenu identifikaciju objekta unutar web stranice.

Sljedeće su vrste repozitorija objekata u kojima se može stvoriti Selenium WebDriver.

  1. Repozitorij objekata pomoću datoteke svojstava
  2. Repozitorij objekata koji koristi XML datoteku

Selenium Web Driver Object repozitorij koji koristi datoteku svojstava

U ovom pristupu, datoteka svojstava je tekstualna datoteka u kojoj su podaci pohranjeni u obliku parova ključ-vrijednost. Vodič u nastavku bavit će se sljedećim temama.

Korak 1) Stvaranje datoteke svojstava u eclipse

  1. Za početak, donja struktura java projekta mora biti kreirana u eclipseu. Naziv projekta i naziv paketa mogu biti bilo koja važeća imena.

Stvaranje datoteke svojstava u Eclipse

  1. Desnom tipkom miša kliknite glavnu mapu projekta i odaberite Novo-> Ostalo

Stvaranje datoteke svojstava u Eclipse

  1. U sljedećem prozoru odaberite Općenito -> Datoteka i kliknite na gumb 'Dalje'

Stvaranje datoteke svojstava u Eclipse

  1. Navedite važeći naziv datoteke s ekstenzijom '.properties' u novom prozoru resursa datoteke i kliknite gumb 'Završi'

Stvaranje datoteke svojstava u Eclipse

  1. Datoteka pod nazivom 'application.properties' mora biti prikazana na strukturi projekta

Stvaranje datoteke svojstava u Eclipse

Korak 2) Pohranjivanje podataka u datoteku svojstava

  1. Podaci se pohranjuju u datoteci svojstava u obliku parova ključ-vrijednost, pri čemu je ključ jedinstven u cijeloj datoteci.
  2. Pokušat ćemo upotrijebiti datoteku svojstava za identifikaciju webelemenata pomoću vrijednosti lokatora.
  3. Otvorite datoteku application.properties u Eclipse i pohranite sljedeće podatke
MobileTesting=//a[text()='MOBILE TESTING']
EmailTextBox = philadelphia-field-email
SignUpButton = philadelphia-field-submit

Pohranjivanje podataka u datoteku svojstava

4) Za ovaj vodič koristi se sljedeća demo web stranica:

http://demo.guru99.com/test/guru99home/. Evo testnog scenarija:

  • Kliknite vezu Testiranje mobilnih uređaja koristeći XPATH
  • Navigacija natrag
  • Unesite podatke u tekstualni okvir e-pošte koristeći ID
  • Kliknite na gumb Prijavi se koristeći ID

Korak 3) Čitanje podataka iz datoteke svojstava

  1. Čitanje podataka iz datoteke svojstava može se izvršiti korištenjem ugrađene klase Properties koja se nalazi u paketu java.util.
  2. U početku je potrebno kreirati objekt klase Properties kao što je prikazano u nastavku
  Properties obj = new Properties();
  1. Moramo kreirati objekt klase FileInputStream sa stazom do datoteke svojstava
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
  1. Čitanje podataka iz datoteke svojstava može se izvršiti pomoću metode učitavanja koju nudi klasa Properties u Javi. Donji kod pokazuje korištenje metode učitavanja.
Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
obj.load(objfile);
String mobileTesting = obj.getProperty("MobileTesting");

Niz 'mobileTesting' sadržavat će XPATH za identifikaciju veze za mobilno testiranje unutar web stranice.

Korak 4) Korištenje datoteke svojstava u testnim skriptama

Datoteka svojstava može se koristiti u testnim skriptama čitanjem podataka iz datoteke svojstava i prosljeđivanjem podataka kao parametra metodi findElement. Kôd u nastavku pokazuje korištenje podataka pročitanih iz datoteke svojstava u testnim skriptama.

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

Dolje je potpuni kod korišten za gornji testni scenarij.

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("http://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 Repozitorij objekata WebDriver pomoću XML datoteke

XML je kratica za Extensible Markup Language. XML datoteka koristi model objekta dokumenta (DOM) kao osnovnu strukturu. XML format datoteke replicirat će HTML format na kojem je izrađena web stranica. Dolje je popis tema koje će biti pokrivene.

Korak 1) Stvaranje XML datoteke u eclipse

  1. Potrebno je izraditi donju strukturu java projekta Eclipse.

Stvaranje XML datoteke u Eclipse

  1. Desnom tipkom miša kliknite mapu projekta, odaberite Novo -> Ostalo

Stvaranje XML datoteke u Eclipse

  1. Odaberite XML datoteku unutar XML mape i kliknite na gumb 'Dalje'

Stvaranje XML datoteke u Eclipse

  1. Unesite važeći naziv XML datoteke i kliknite na gumb 'Završi'

Stvaranje XML datoteke u Eclipse

  1. XML datoteka bit će dodana u mapu projekta kao što je prikazano u nastavku

Stvaranje XML datoteke u Eclipse

Korak 2) Pohranjivanje podataka u XML datoteku

Podaci se mogu pohraniti u XML datoteku u obliku Document Object Model (DOM). Radi jednostavnosti, kao primjer možemo koristiti donji testni scenarij.

  • Kliknite vezu Testiranje mobilnih uređaja koristeći XPATH
  • Idite natrag na početnu stranicu
  • Unesite podatke u tekstualni okvir e-pošte koristeći ID
  • Kliknite na gumb Prijavi se koristeći ID

Dolje je format XML datoteke koja će se koristiti.

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

Pohranite gornji XML kod u property.xml

Pohranjivanje podataka u XML datoteku

Na kartici dizajn vidjet ćete

Pohranjivanje podataka u XML datoteku

Korak 3) Čitanje podataka iz XML datoteke

1. Čitanje podataka iz XML datoteke može se postići korištenjem ugrađene klase 'dom4j' u Javi. Imajte na umu da trebate dodati JAR datoteke ispod u put izgradnje vašeg projekta prije nego što nastavite s kodom.

  • jaxen.jar
  • dom4j-1.6.jar

2. Ispod je kod za čitanje podataka iz XML datoteke.

		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. U početku moramo kreirati File objekt i proslijediti ga kao parametar metodi 'read' klase SAXReader. Nakon što se podaci XML datoteke uspješno očitaju, možemo pristupiti pojedinačnim čvorovima XML dokumenta pomoću metode 'selectSingleNode'.

Korak 4) Korištenje XML datoteke u testnim skriptama

XML datoteka se može koristiti u testnim skriptama čitanjem podataka iz XML datoteke i prosljeđivanjem podataka kao parametra metodi findElement. Kôd u nastavku pokazuje korištenje podataka pročitanih iz XML datoteke u testnim skriptama.

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

Donji kod pokazuje upotrebu XML datoteke u selenium WebDriver-u

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("http://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();				

	}		
}		

Preuzmite WebDriver Eclipse Projekt

rezime

  • Repozitorij objekata je zajedničko mjesto za pohranu svih objekata
  • Selenium WebDriver prema zadanim postavkama ne nudi ugrađeno spremište objekata
  • Možete stvoriti 2 vrste spremišta objekata u Selenium
    1. Repozitorij objekata pomoću datoteke svojstava
    2. Repozitorij objekata koji koristi XML datoteku
  • Datoteka svojstava je tekstualna datoteka u kojoj su podaci pohranjeni u obliku parova ključ-vrijednost
  • XML format datoteke replicirat će HTML format na kojem je izrađena web stranica.