Oprettelse af objektlager i Selenium WebDriver: XML & Egenskaber-fil

Indholdsfortegnelse:

Anonim

Hvad er et objektlager?

Et objektopbevaringssted er et fælles lagersted for alle objekter. I Selenium WebDriver-sammenhæng vil objekter typisk være de lokaliseringsmidler, der bruges til entydigt at identificere webelementer.

Den største fordel ved at bruge objektopbevaring er adskillelsen af ​​objekter fra testcases. Hvis lokaliseringsværdien af ​​et webelement ændres, skal kun objektopbevaringsområdet ændres snarere end at foretage ændringer i alle testtilfælde, hvor lokalisatoren er blevet brugt. Vedligeholdelse af et objektopbevaringssted øger modulopbygget ved implementering af rammer.

I denne vejledning lærer du-

  • Hvad er et objektlager?
  • Typer af objektopbevaringssteder i Selenium Driver
  • Selenium Driver Driver Objektlager ved hjælp af egenskabsfilen
  • Selenium WebDriver Object Repository ved hjælp af XML-fil

Typer af objektopbevaringssteder i Selenium Driver

Selenium WebDriver tilbyder ikke et indbygget objektlager som standard. Imidlertid kan objektopbevaringssteder bygges ved hjælp af nøgleværdipar-tilgangen, hvor nøglen henviser til navnet, der gives til objektet, og værdien henviser til de egenskaber, der bruges til entydigt at identificere et objekt på websiden.

Følgende er de typer objektopbevaringssteder, der kan oprettes i Selenium WebDriver.

  1. Objektlager ved hjælp af egenskabsfilen
  2. Objektlager ved hjælp af XML-fil

Selenium Driver Driver Objektlager ved hjælp af egenskabsfilen

I denne tilgang er egenskabsfilen en tekstfil, hvor data lagres i form af nøgleværdipar. Nedenstående tutorial behandler følgende emner.

  • Oprettelse af en egenskabsfil i formørkelse
  • Lagring af data i egenskabsfilen
  • Læsning af data fra egenskabsfilen
  • Brug af egenskabsfilen i testskripter

Trin 1) Oprettelse af en egenskabsfil i formørkelse

  1. Til at begynde med skal nedenstående java-projektstruktur oprettes i formørkelse. Projektnavn og pakkenavn kan være ethvert gyldigt navn.

  1. Højreklik på projektmappen og vælg Ny-> Andet

  1. I det næste vindue skal du vælge Generelt -> Fil og klikke på knappen 'Næste'

  1. Angiv et gyldigt filnavn med filtypenavnet '.properties' i det nye filressourcevindue, og klik på knappen 'Udfør'

  1. En fil med navnet 'application.properties' skal vises på projektstrukturen

Trin 2) Lagring af data i egenskabsfilen

  1. Data gemmes i egenskabsfilen i form af nøgleværdipar, hvor nøglen er unik på tværs af filen.
  2. Vi vil forsøge at bruge egenskabsfilen til at identificere webelementer ved hjælp af lokaliseringsværdier.
  3. Åbn filen application.properties i Eclipse, og gem følgende data
MobileTesting = // a [text () = 'MOBIL TESTING']EmailTextBox = philadelphia-field-emailSignUpButton = philadelphia-field-submit

4) Til denne tutorial bruges følgende demo-websted: http://demo.guru99.com/test/guru99home/. Her er testscenarie:

  • Klik på Mobile Testing link ved hjælp af XPATH
  • Naviger tilbage
  • Indtast data i e-mail-tekstfelt ved hjælp af ID
  • Klik på Tilmeld-knappen ved hjælp af ID

Trin 3) Læsning af data fra egenskabsfilen

  1. Læsning af data fra egenskabsfilen kan udføres ved hjælp af den indbyggede egenskabsklasse, der leveres i pakken java.util.
  2. Oprindeligt skal der oprettes et objekt af egenskabsklassen som nedenfor
 Egenskaber obj = nye egenskaber (); 
  1. Vi er nødt til at oprette et objekt af FileInputStream-klassen med stien til egenskabsfilen
FileInputStream objfile = ny FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");
  1. Læsning af data fra egenskabsfilen kan udføres ved hjælp af indlæsningsmetode, der tilbydes af egenskabsklassen i java. Nedenstående kode viser brugen af ​​belastningsmetode.
Egenskaber obj = nye egenskaber ();FileInputStream objfile = ny FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);String mobileTesting = obj.getProperty ("MobileTesting");

Strengen 'mobileTesting' indeholder XPATH for at identificere Mobile Test-linket på websiden.

Trin 4) Brug af egenskabsfilen i testskripter

Egenskabsfilen kan bruges i testskripter ved at læse data fra en egenskabsfil og videregive dataene som en parameter til findElement-metoden. Nedenstående kode viser brugen af ​​data, der læses fra egenskabsfilen i testskripter.

driver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). klik ();driver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). klik (); 

Nedenstående er den komplette kode, der bruges til ovenstående testscenarie.

pakke com.objectrepository.demo;importere java.io.FileInputStream;import java.io.FileNotFoundException;importere java.io.IOException;import java.util.Properties;importer org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;offentlig klasse DemoOR {offentlig statisk ugyldig hoved (String [] args) kaster IOException {// Opret WebDriver-instansWebDriver driver;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");driver = ny ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). vindue (). maksimere ();// Indlæs egenskaberne FileEgenskaber obj = nye egenskaber ();FileInputStream objfile = ny FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);// Nagigate for at linke Mobile Testing og Backdriver.findElement (By.xpath (obj.getProperty ("MobileTesting")). klik ();driver.navigate (). tilbage ();// Indtast data i formdriver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). klik ();}}

Selenium WebDriver Object Repository ved hjælp af XML-fil

XML står for Extensible Markup Language. En XML-fil bruger Document Object Model (DOM) som den grundlæggende struktur. XML-filformat replikerer det HTML-format, hvorpå websiden er bygget. Nedenfor er listen over emner, der vil blive dækket.

  • Oprettelse af en XML-fil i formørkelse
  • Lagring af data i XML-fil
  • Læsning af data fra XML-fil
  • Brug af XML-fil i testskripter

Trin 1) Oprettelse af en XML-fil i formørkelse

  1. Nedenstående java-projektstruktur skal oprettes i Eclipse.

  1. Højreklik på projektmappen, vælg Ny -> Andet

  1. Vælg XML-filen i XML-mappen, og klik på knappen 'Næste'

  1. Indtast et gyldigt XML-filnavn, og klik på knappen 'Udfør'

  1. En XML-fil føjes til projektmappen som vist nedenfor

Trin 2) Lagring af data i XML-fil

Data kan gemmes i XML-fil i form af DOM (Document Object Model). For enkelheds skyld kan vi bruge nedenstående testscenarie som et eksempel.

  • Klik på Mobile Testing link ved hjælp af XPATH
  • Naviger tilbage til startsiden
  • Indtast data i e-mail-tekstfelt ved hjælp af ID
  • Klik på Tilmeld-knappen ved hjælp af ID

Nedenstående er formatet på XML-fil, der skal bruges.

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

Gem ovenstående XML-kode i egenskaber. Xml

På fanen design vil du se

Trin 3) Læsning af data fra XML-fil

1. Læsning af data fra XML-fil kan opnås ved hjælp af den indbyggede klasse 'dom4j' i java. Bemærk venligst, at du skal tilføje nedenstående JAR-filer til projektstien inden du fortsætter med koden.

  • jaxen.jar
  • dom4j-1.6.jar

2. Nedenfor er koden til at læse data fra XML-fil.

File inputFile = ny fil (System.getProperty ("user.dir") + "\\ egenskaber.xml");SAXReader saxReader = ny SAXReader ();Dokumentdokument = saxReader.read (inputFile);String mobileTesting = document.selectSingleNode ("// menu / mobiltesting"). GetText ();String emailTextBox = document.selectSingleNode ("// menu / email"). GetText ();String signUpButton = document.selectSingleNode ("// menu / tilmelding"). GetText ();

3. Oprindeligt skal vi oprette et filobjekt og videregive det som en parameter til 'læse'-metoden i SAXReader-klassen. Når XML-fildataene er læst med succes, kan vi få adgang til individuelle noder i XML-dokument ved hjælp af 'selectSingleNode' -metoden.

Trin 4) Brug af XML-fil i testskripts

XML-fil kan bruges i testskripter ved at læse data fra XML-fil og videregive dataene som parameter til findElement-metoden. Nedenstående kode viser brugen af ​​data, der læses fra XML-fil i testskripter.

driver.findElement (By.xpath (mobileTesting)). klik ();driver.findElement (By.id (emailTextBox)). sendKeys (" Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den.");driver.findElement (By.id (signUpButton)). klik ();

Nedenstående kode viser brugen af ​​XML-fil i selen WebDriver

pakke com.objectrepository.demo;import java.io. *;importer java.util. *;import org.dom4j. *;import org.dom4j.io.SAXReader;importer org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;offentlig klasse DemoORXML {public static void main (String [] args) kaster DocumentException {// Oprettelse af WebDriver-instansWebDriver driver;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");driver = ny ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). vindue (). maksimere ();// Læsning af XML-filFile inputFile = ny fil (System.getProperty ("user.dir") + "\\ egenskaber.xml");SAXReader saxReader = ny SAXReader ();Dokumentdokument = saxReader.read (inputFile);String mobileTesting = document.selectSingleNode ("// menu / mobiltesting"). GetText ();String emailTextBox = document.selectSingleNode ("// menu / email"). GetText ();String signUpButton = document.selectSingleNode ("// menu / tilmelding"). GetText ();// Navigering til mobiltest og tilbagedriver.findElement (By.xpath (mobileTesting)). klik ();driver.navigate (). tilbage ();// Indtastning af formulardatadriver.findElement (By.id (emailTextBox)). sendKeys (" Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den.");driver.findElement (By.id (signUpButton)). klik ();}}

Download WebDriver Eclipse Project

Resumé:

  • Et objektopbevaringssted er et fælles lagersted for alle objekter
  • Selenium WebDriver tilbyder ikke et indbygget objektlager som standard
  • Du kan oprette 2 typer objektopbevaring i selen
    1. Objektlager ved hjælp af egenskabsfilen
    2. Objektlager ved hjælp af XML-fil
  • Egenskabsfilen er en tekstfil, hvor data lagres i form af nøgleværdipar
  • XML-filformat replikerer det HTML-format, hvorpå websiden er bygget.