Opprette Object Repository i Selenium WebDriver: XML & Egenskapsfil

Innholdsfortegnelse:

Anonim

Hva er et Object Repository?

Et objektlager er et vanlig lagringssted for alle objekter. I Selenium WebDriver-sammenheng vil objekter vanligvis være lokaliseringsapparatene som brukes til å identifisere webelementer på en unik måte.

Den største fordelen med å bruke objektregister er adskillelsen av objekter fra testtilfeller. Hvis lokaliseringsverdien til ett nettelement endres, trenger bare objektlageret å endres i stedet for å gjøre endringer i alle testtilfeller der lokalisatoren har blitt brukt. Ved å opprettholde et objektlager øker modulariteten til implementering av rammeverk.

I denne veiledningen vil du lære-

  • Hva er et Object Repository?
  • Typer av objekthus i Selenium Driver
  • Selenium Driver Driver Object repository ved hjelp av Properties-filen
  • Selenium WebDriver Object Repository ved hjelp av XML-fil

Typer av objekthus i Selenium Driver

Selenium WebDriver tilbyr ikke et innebygd objektlager som standard. Imidlertid kan objektlager bygges ved å bruke nøkkelverdipar-tilnærmingen, hvor nøkkelen refererer til navnet som er gitt til objektet, og verdien refererer til egenskapene som brukes til å identifisere et objekt unikt på websiden.

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

  1. Object Repository ved hjelp av Properties-filen
  2. Object Repository ved hjelp av XML-fil

Selenium Driver Driver Object repository ved hjelp av Properties-filen

I denne tilnærmingen er egenskapsfil en tekstfil der data lagres i form av nøkkelverdipar. Opplæringen nedenfor vil ta opp følgende emner.

  • Opprette en eiendomsfil i formørkelse
  • Lagring av data i egenskapsfilen
  • Lese data fra eiendomsfilen
  • Bruker egenskapsfil i testskripter

Trinn 1) Opprette en eiendomsfil i formørkelse

  1. Til å begynne med må Java-prosjektstrukturen nedenfor opprettes i formørkelse. Prosjektnavn og pakkenavn kan være ethvert gyldig navn.

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

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

  1. Gi et gyldig filnavn med utvidelsen '.properties' i det nye filressursvinduet og klikk på 'Fullfør' -knappen

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

Trinn 2) Lagring av data i egenskapsfilen

  1. Data lagres i egenskapsfil i form av nøkkelverdipar, hvor nøkkelen er unik over hele filen.
  2. Vi vil prøve å bruke egenskapsfilen til å identifisere webelementer ved hjelp av lokaliseringsverdier.
  3. Åpne filen application.properties i Eclipse og lagre følgende data
MobileTesting = // a [text () = 'MOBILTESTING']EmailTextBox = philadelphia-field-emailSignUpButton = philadelphia-field-submit

4) For denne veiledningen brukes følgende demo-nettsted: http://demo.guru99.com/test/guru99home/. Her er testscenario:

  • Klikk på lenken Mobile Testing ved hjelp av XPATH
  • Naviger tilbake
  • Skriv inn data i e-postteksten ved hjelp av ID
  • Klikk på Registrer-knappen ved hjelp av ID

Trinn 3) Lesing av data fra egenskapsfilen

  1. Lesing av data fra egenskapsfilen kan gjøres ved hjelp av den innebygde klassen Properties i pakken java.util.
  2. Opprinnelig må et objekt av klassen Properties opprettes som nedenfor
 Egenskaper obj = nye egenskaper (); 
  1. Vi må lage et objekt av FileInputStream-klassen med banen til egenskaper-filen
FileInputStream objfile = ny FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");
  1. Lesing av data fra eiendomsfilen kan gjøres ved hjelp av lastemetoden som tilbys av Properties-klassen i java. Koden nedenfor viser bruken av lastemetoden.
Egenskaper obj = nye egenskaper ();FileInputStream objfile = ny FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);String mobileTesting = obj.getProperty ("MobileTesting");

Strengen 'mobileTesting' vil inneholde XPATH for å identifisere lenken Mobile Testing på websiden.

Trinn 4) Bruke egenskapsfil i testskript

Egenskapsfil kan brukes i testskript ved å lese data fra en egenskapsfil og sende dataene som en parameter til findElement-metoden. Koden nedenfor viser bruken av data som er lest fra egenskapsfilen i testskriptene.

driver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). klikk ();driver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). klikk (); 

Nedenfor er den komplette koden som brukes for testscenariet ovenfor.

pakke com.objectrepository.demo;importere java.io.FileInputStream;importere java.io.FileNotFoundException;importere java.io.IOException;importere java.util.Properties;importer org.openqa.selenium.By;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.chrome.ChromeDriver;offentlig klasse DemoOR {public static void main (String [] args) kaster IOException {// Opprett WebDriver InstanceWebDriver driver;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");driver = ny ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). vindu (). maksimere ();// Last inn egenskapene FileEgenskaper obj = nye egenskaper ();FileInputStream objfile = ny FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);// Nagigate for å koble Mobile Testing og Backdriver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). klikk ();driver.navigate (). tilbake ();// Skriv inn data i skjemaetdriver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). klikk ();}}

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 grunnstruktur. XML-filformat replikerer HTML-formatet som nettsiden er bygget på. Nedenfor er listen over emner som vil bli dekket.

  • Opprette en XML-fil i formørkelse
  • Lagring av data i XML-fil
  • Lese data fra XML-fil
  • Bruker XML-fil i testskript

Trinn 1) Opprette en XML-fil i formørkelse

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

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

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

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

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

Trinn 2) Lagring av data i XML-fil

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

  • Klikk på lenken Mobile Testing ved hjelp av XPATH
  • Naviger tilbake til hjemmesiden
  • Skriv inn data i e-postteksten ved hjelp av ID
  • Klikk på Registrer-knappen ved hjelp av ID

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

 // a [text () = 'MOBILTESTING']  philadelphia-field-email  philadelphia-field-submit 

Lagre XML-koden ovenfor i properties.xml

I designfanen vil du se

Trinn 3) Lesing av data fra XML-fil

1. Lesing av data fra XML-filer kan oppnås ved hjelp av den innebygde 'dom4j' klassen i java. Vær oppmerksom på at du må legge til JAR-filene nedenfor i byggestien til prosjektet ditt før du fortsetter med koden.

  • jaxen.jar
  • dom4j-1.6.jar

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

File inputFile = ny fil (System.getProperty ("user.dir") + "\\ egenskaper.xml");SAXReader saxReader = ny SAXReader ();Dokumentdokument = saxReader.read (inputFile);String mobileTesting = document.selectSingleNode ("// menu / mobiletesting"). GetText ();Streng emailTextBox = document.selectSingleNode ("// meny / e-post"). GetText ();String signUpButton = document.selectSingleNode ("// menu / signup"). GetText ();

3. Opprinnelig må vi lage et filobjekt og sende det som en parameter til "lese" -metoden i SAXReader-klassen. Når XML-fildataene er lest vellykket, kan vi få tilgang til individuelle noder i XML-dokument ved å bruke 'selectSingleNode' -metoden.

Trinn 4) Bruke 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 viser bruken av data som er lest fra XML-fil i testskript.

driver.findElement (By.xpath (mobileTesting)). klikk ();driver.findElement (By.id (emailTextBox)). sendKeys (" Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.");driver.findElement (By.id (signUpButton)). klikk ();

Koden nedenfor viser bruken av XML-filer i selen WebDriver

pakke com.objectrepository.demo;importer java.io. *;importer java.util. *;importer org.dom4j. *;importer org.dom4j.io.SAXReader;importer org.openqa.selenium.By;importer org.openqa.selenium.WebDriver;importer org.openqa.selenium.chrome.ChromeDriver;offentlig klasse DemoORXML {public static void main (String [] args) kaster DocumentException {// Opprette WebDriver InstanceWebDriver driver;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");driver = ny ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). vindu (). maksimere ();// Leser XML-filFile inputFile = ny fil (System.getProperty ("user.dir") + "\\ egenskaper.xml");SAXReader saxReader = ny SAXReader ();Dokumentdokument = saxReader.read (inputFile);String mobileTesting = document.selectSingleNode ("// menu / mobiletesting"). GetText ();Streng emailTextBox = document.selectSingleNode ("// meny / e-post"). GetText ();String signUpButton = document.selectSingleNode ("// menu / signup"). GetText ();// Navigere til mobiltesting og tilbakedriver.findElement (By.xpath (mobileTesting)). klikk ();driver.navigate (). tilbake ();// Skrive inn skjemadatadriver.findElement (By.id (emailTextBox)). sendKeys (" Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.");driver.findElement (By.id (signUpButton)). klikk ();}}

Last ned WebDriver Eclipse Project

Sammendrag:

  • Et objektlager er et vanlig lagringssted for alle objekter
  • Selenium WebDriver tilbyr ikke et innebygd objektlager som standard
  • Du kan opprette to typer objektlager i selen
    1. Object Repository ved hjelp av Properties-filen
    2. Object Repository ved hjelp av XML-fil
  • Egenskapsfilen er en tekstfil der data lagres i form av nøkkelverdipar
  • XML-filformat replikerer HTML-formatet som nettsiden er bygget på.