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.
- Object Repository ved hjelp av Properties-filen
- 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
- Til å begynne med må Java-prosjektstrukturen nedenfor opprettes i formørkelse. Prosjektnavn og pakkenavn kan være ethvert gyldig navn.
- Høyreklikk på hovedprosjektmappen og velg Ny-> Annet
- I det neste vinduet velger du Generelt -> Fil og klikker på 'Neste' -knappen
- Gi et gyldig filnavn med utvidelsen '.properties' i det nye filressursvinduet og klikk på 'Fullfør' -knappen
- En fil med navnet 'application.properties' må vises på Project Structure
Trinn 2) Lagring av data i egenskapsfilen
- Data lagres i egenskapsfil i form av nøkkelverdipar, hvor nøkkelen er unik over hele filen.
- Vi vil prøve å bruke egenskapsfilen til å identifisere webelementer ved hjelp av lokaliseringsverdier.
- Å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
- Lesing av data fra egenskapsfilen kan gjøres ved hjelp av den innebygde klassen Properties i pakken java.util.
- Opprinnelig må et objekt av klassen Properties opprettes som nedenfor
Egenskaper obj = nye egenskaper ();
- Vi må lage et objekt av FileInputStream-klassen med banen til egenskaper-filen
FileInputStream objfile = ny FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");
- 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
- Java-prosjektstrukturen nedenfor må opprettes i Eclipse.
- Høyreklikk på prosjektmappen, velg Ny -> Annet
- Velg XML-filen i XML-mappen og klikk på 'Neste' -knappen
- Skriv inn et gyldig XML-filnavn og klikk på 'Fullfør' -knappen
- 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
- Object Repository ved hjelp av Properties-filen
- 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å.