Objektförråd i Selenium (XML och egenskapsfil)

Vad är ett objektförråd?

Ett objektförråd är en gemensam lagringsplats för alla objekt. I Selenium WebDriver-kontext skulle objekt vanligtvis vara de lokaliseringsorgan som används för att unikt identifiera webbelement.

Den stora fördelen med att använda objektförråd är att objekt skiljs från testfall. Om lokaliseringsvärdet för ett webbelement ändras, behöver bara objektförrådet ändras istället för att göra ändringar i alla testfall där lokaliseringen har använts. Att underhålla ett objektförråd ökar modulariteten i ramverksimplementeringen.

Typer av objektförråd i Selenium Webb drivrutin

Selenium WebDriver erbjuder inte ett inbyggt objektförråd som standard. Emellertid kan objektförråd byggas med användning av nyckel-värdepar-metoden där nyckeln hänvisar till namnet som ges till objektet och värdet hänvisar till egenskaperna som används för att unikt identifiera ett objekt på webbsidan.

Följande är de typer av objektförråd som kan skapas i Selenium WebDriver.

  1. Objektförråd med hjälp av egenskapsfilen
  2. Objektförråd med XML-fil

Selenium Webbdrivrutinsobjektförråd med hjälp av egenskapsfilen

I detta tillvägagångssätt är egenskapsfilen en textfil där data lagras i form av nyckel-värdepar. Handledningen nedan kommer att behandla följande ämnen.

Steg 1) Skapa en egenskapsfil i eclipse

  1. Till att börja med måste java-projektstrukturen nedan skapas i eclipse. Projektnamn och paketnamn kan vara alla giltiga namn.

Skapa en egenskapsfil i Eclipse

  1. Högerklicka på huvudprojektmappen och välj Nytt-> Annat

Skapa en egenskapsfil i Eclipse

  1. I nästa fönster väljer du Allmänt -> Arkiv och klickar på knappen "Nästa".

Skapa en egenskapsfil i Eclipse

  1. Ange ett giltigt filnamn med tillägget ".properties" i det nya filresursfönstret och klicka på knappen "Slutför"

Skapa en egenskapsfil i Eclipse

  1. En fil med namnet 'application.properties' måste visas på Project Structure

Skapa en egenskapsfil i Eclipse

Steg 2) Lagra data i egenskapsfilen

  1. Data lagras i egenskapsfilen i form av nyckel-värdepar, där nyckeln är unik i filen.
  2. Vi kommer att försöka använda egenskapsfilen för att identifiera webbelement med hjälp av lokaliseringsvärden.
  3. Öppna filen application.properties i Eclipse och lagra följande data
MobileTesting=//a[text()='MOBILE TESTING']
EmailTextBox = philadelphia-field-email
SignUpButton = philadelphia-field-submit

Lagra data i egenskapsfilen

4) För denna handledning används följande demowebbplats:

http://demo.guru99.com/test/guru99home/. Här är testscenariot:

  • Klicka på länken Mobile Testing med XPATH
  • Navigera tillbaka
  • Ange data i e-postrutan med ID
  • Klicka på knappen Registrera dig med ID

Steg 3) Läsa data från egenskapsfilen

  1. Läsa data från egenskapsfilen kan göras med den inbyggda klassen Properties som finns i paketet java.util.
  2. Inledningsvis måste ett objekt av klassen Properties skapas enligt nedan
  Properties obj = new Properties();
  1. Vi måste skapa ett objekt av klassen FileInputStream med sökvägen till egenskapsfilen
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
  1. Läsa data från egenskapsfilen kan göras med laddningsmetoden som erbjuds av klassen Properties i java. Koden nedan visar användningen av laddningsmetoden.
Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
obj.load(objfile);
String mobileTesting = obj.getProperty("MobileTesting");

Strängen 'mobileTesting' kommer att innehålla XPATH för att identifiera länken Mobile Testing på webbsidan.

Steg 4) Använda egenskapsfilen i testskript

Egenskapsfilen kan användas i testskript genom att läsa data från en egenskapsfil och skicka data som en parameter till findElement-metoden. Koden nedan visar användningen av data som läses från 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();

Nedan är den fullständiga koden som används för ovanstående testscenario.

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 WebDriver Object Repository som använder XML-fil

XML står för Extensible Markup Language. En XML-fil använder Document Object Model (DOM) som grundstruktur. XML-filformatet replikerar HTML-formatet som webbsidan är konstruerad på. Nedan är listan över ämnen som kommer att behandlas.

Steg 1) Skapa en XML-fil i eclipse

  1. Nedanstående java-projektstruktur måste skapas i Eclipse.

Skapa en XML-fil i Eclipse

  1. Högerklicka på projektmappen, välj Nytt -> Annat

Skapa en XML-fil i Eclipse

  1. Välj XML-filen i XML-mappen och klicka på knappen "Nästa".

Skapa en XML-fil i Eclipse

  1. Ange ett giltigt XML-filnamn och klicka på knappen "Slutför".

Skapa en XML-fil i Eclipse

  1. En XML-fil kommer att läggas till projektmappen enligt nedan

Skapa en XML-fil i Eclipse

Steg 2) Lagra data i XML-fil

Data kan lagras i XML-fil i form av Document Object Model (DOM). För enkelhets skull kan vi använda testscenariot nedan som exempel.

  • Klicka på länken Mobile Testing med XPATH
  • Navigera tillbaka till startsidan
  • Ange data i e-postrutan med ID
  • Klicka på knappen Registrera dig med ID

Nedanstående är formatet på XML-filen som ska användas.

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

Lagra ovanstående XML-kod i properties.xml

Lagra data på XML-fil

I designfliken ser du

Lagra data på XML-fil

Steg 3) Läsa data från XML-fil

1. Läsa data från XML-filen kan utföras med den inbyggda 'dom4j'-klassen i java. Observera att du måste lägga till nedanstående JAR-filer i byggvägen för ditt projekt innan du fortsätter med koden.

  • jaxen.jar
  • dom4j-1.6.jar

2. Nedan finns koden för att läsa data från 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. Inledningsvis måste vi skapa ett File-objekt och skicka det som en parameter till 'read'-metoden för SAXReader-klassen. När XML-fildata har lästs framgångsrikt kan vi komma åt enskilda noder i XML-dokumentet med metoden "selectSingleNode".

Steg 4) Använda XML-fil i testskript

XML-fil kan användas i testskript genom att läsa data från XML-fil och skicka data som parameter till findElement-metoden. Koden nedan visar användningen av data som läses från XML-filen i testskript.

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

Koden nedan visar användningen 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("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();				

	}		
}		

Ladda ner WebDriver Eclipse Projekt

Sammanfattning

  • Ett objektförråd är en gemensam lagringsplats för alla objekt
  • Selenium WebDriver erbjuder inte ett inbyggt objektförråd som standard
  • Du kan skapa 2 typer av objektförråd i Selenium
    1. Objektförråd med hjälp av egenskapsfilen
    2. Objektförråd med XML-fil
  • Egenskapsfilen är en textfil där data lagras i form av nyckel-värdepar
  • XML-filformatet replikerar HTML-formatet som webbsidan är konstruerad på.