Objektlager i Selenium (XML og egenskapsfil)

Hva er et objektlager?

Et objektlager er et felles lagringssted for alle objekter. I Selenium WebDriver-kontekst, vil objekter typisk være lokalisatorene som brukes til å identifisere webelementer unikt.

Den største fordelen med å bruke objektlager er segregeringen av objekter fra testtilfeller. Hvis locator-verdien til ett webelement endres, er det bare objektlageret som må endres i stedet for å gjøre endringer i alle testtilfeller der locatoren har blitt brukt. Vedlikehold av et objektlager øker modulariteten til rammeverkimplementering.

Typer objektlager i Selenium Nettdriver

Selenium WebDriver tilbyr ikke et innebygd objektlager som standard. Imidlertid kan objektlagre bygges ved å bruke nøkkel-verdi-par-tilnærmingen der nøkkelen refererer til navnet gitt til objektet og verdien refererer til egenskapene som brukes til å identifisere et objekt unikt på nettsiden.

Følgende er typene objektlager som kan opprettes i Selenium WebDriver.

  1. Objektlager ved hjelp av egenskapsfil
  2. Objektlager ved hjelp av XML-fil

Selenium Web Driver-objektlager ved hjelp av egenskapsfilen

I denne tilnærmingen er egenskapsfilen en tekstfil der data lagres i form av nøkkelverdi-par. Veiledningen nedenfor vil ta for seg følgende emner.

Trinn 1) Opprette en egenskapsfil i eclipse

  1. Til å begynne med må java-prosjektstrukturen nedenfor opprettes i eclipse. Prosjektnavn og pakkenavn kan være alle gyldige navn.

Opprette en egenskapsfil i Eclipse

  1. Høyreklikk på hovedprosjektmappen og velg Ny-> Annet

Opprette en egenskapsfil i Eclipse

  1. I neste vindu velger du Generelt -> Fil og klikker på 'Neste'-knappen

Opprette en egenskapsfil i Eclipse

  1. Oppgi et gyldig filnavn med filtypen ".properties" i det nye filressursvinduet og klikk på "Fullfør"-knappen

Opprette en egenskapsfil i Eclipse

  1. En fil med navnet 'application.properties' må vises på Project Structure

Opprette en egenskapsfil i Eclipse

Trinn 2) Lagre data i egenskapsfilen

  1. Data lagres i egenskapsfilen i form av nøkkelverdi-par, hvor nøkkelen er unik på tvers av filen.
  2. Vi vil prøve å bruke egenskapsfilen til å identifisere webelementer ved å bruke locator-verdier.
  3. Åpne filen application.properties i Eclipse og lagre følgende data
MobileTesting=//a[text()='MOBILE TESTING']
EmailTextBox = philadelphia-field-email
SignUpButton = philadelphia-field-submit

Lagre data på egenskapsfilen

4) For denne opplæringen brukes følgende demonettsted:

https://demo.guru99.com/test/guru99home/. Her er testscenarioet:

  • Klikk på Mobile Testing-koblingen ved hjelp av XPATH
  • Naviger tilbake
  • Skriv inn data i e-postboksen ved å bruke ID
  • Klikk på Registrer deg-knappen med ID

Trinn 3) Lese data fra egenskapsfilen

  1. Lesing av data fra egenskapsfilen kan gjøres ved å bruke den innebygde egenskapsklassen i java.util-pakken.
  2. Til å begynne med må et objekt av klassen Properties opprettes som nedenfor
  Properties obj = new Properties();
  1. Vi må lage et objekt av FileInputStream-klassen med banen til egenskapsfilen
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
  1. Lese data fra egenskapsfilen kan gjøres ved å bruke lastemetoden som tilbys av Properties-klassen i java. Koden nedenfor demonstrerer bruken av lastemetoden.
Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
obj.load(objfile);
String mobileTesting = obj.getProperty("MobileTesting");

Strengen "mobileTesting" vil inneholde XPATH for å identifisere koblingen for mobiltesting på nettsiden.

Trinn 4) Bruke egenskapsfilen i testskript

Egenskapsfilen kan brukes i testskript ved å lese data fra en egenskapsfil og overføre dataene som en parameter til findElement-metoden. Koden nedenfor demonstrerer bruken av data lest fra egenskapsfilen i testskript.

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

Nedenfor er den komplette koden som brukes for testscenarioet ovenfor.

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 WebDriver Object Repository ved hjelp av XML-fil

XML står for Extensible Markup Language. En XML-fil bruker Document Object Model (DOM) som den grunnleggende strukturen. XML-filformatet vil replikere HTML-formatet som nettsiden er bygd på. Nedenfor er listen over emner som vil bli dekket.

Trinn 1) Opprette en XML-fil i Eclipse

  1. Java-prosjektstrukturen nedenfor må opprettes i Eclipse.

Opprette en XML-fil i Eclipse

  1. Høyreklikk på prosjektmappen, velg Ny -> Annet

Opprette en XML-fil i Eclipse

  1. Velg XML-filen i XML-mappen og klikk på 'Neste'-knappen

Opprette en XML-fil i Eclipse

  1. Skriv inn et gyldig XML-filnavn og klikk på "Fullfør"-knappen

Opprette en XML-fil i Eclipse

  1. En XML-fil vil bli lagt til prosjektmappen som vist nedenfor

Opprette en XML-fil i Eclipse

Trinn 2) Lagre data på XML-fil

Data kan lagres i XML-fil i form av Document Object Model (DOM). For enkelhets skyld kan vi bruke testscenarioet nedenfor som et eksempel.

  • Klikk på Mobile Testing-koblingen ved hjelp av XPATH
  • Naviger tilbake til startsiden
  • Skriv inn data i e-postboksen ved å bruke ID
  • Klikk på Registrer deg-knappen med ID

Nedenfor er formatet på XML-filen som skal brukes.

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

Lagre XML-koden ovenfor i properties.xml

Lagre data på XML-fil

I designfanen vil du se

Lagre data på XML-fil

Trinn 3) Lese data fra XML-fil

1. Lesing av data fra XML-fil kan gjøres ved å bruke den innebygde 'dom4j'-klassen i java. Vær oppmerksom på at du må legge til JAR-filene nedenfor i byggebanen til prosjektet ditt før du fortsetter med koden.

  • jaxen.jar
  • dom4j-1.6.jar

2. Nedenfor er koden for å lese data fra XML-fil.

		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. Til å begynne med må vi lage et File-objekt og sende det som en parameter til 'read'-metoden til SAXReader-klassen. Når XML-fildataene er lest vellykket, kan vi få tilgang til individuelle noder i XML-dokumentet ved å bruke 'selectSingleNode'-metoden.

Trinn 4) Bruk av XML-fil i testskript

XML-fil kan brukes i testskript ved å lese data fra XML-fil og sende dataene som parameter til findElement-metoden. Koden nedenfor demonstrerer bruken av data lest fra XML-fil i testskript.

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

Koden nedenfor demonstrerer bruken av XML-fil i 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();				

	}		
}		

Last ned WebDriver Eclipse Prosjekt

Sammendrag

  • Et objektlager er et felles lagringssted for alle objekter
  • Selenium WebDriver tilbyr ikke et innebygd objektlager som standard
  • Du kan opprette 2 typer objektlager i Selenium
    1. Objektlager ved hjelp av egenskapsfil
    2. Objektlager ved hjelp av XML-fil
  • Egenskapsfilen er en tekstfil der data lagres i form av nøkkelverdi-par
  • XML-filformatet vil replikere HTML-formatet som nettsiden er bygd på.