Objectrepository maken in Selenium WebDriver: XML & Eigenschappenbestand

Inhoudsopgave:

Anonim

Wat is een objectrepository?

Een objectrepository is een gemeenschappelijke opslaglocatie voor alle objecten. In de context van Selenium WebDriver zijn objecten doorgaans de locators die worden gebruikt om webelementen op unieke wijze te identificeren.

Het grote voordeel van het gebruik van objectrepository is de scheiding van objecten uit testgevallen. Als de locatorwaarde van één webelement verandert, hoeft alleen de objectrepository te worden gewijzigd in plaats van wijzigingen aan te brengen in alle testgevallen waarin de locator is gebruikt. Het onderhouden van een objectrepository verhoogt de modulariteit van de framework-implementatie.

In deze tutorial leer je-

  • Wat is een objectrepository?
  • Typen objectopslagplaatsen in Selenium Web Driver
  • Selenium Web Driver Object-repository met behulp van het eigenschappenbestand
  • Selenium WebDriver Object Repository met XML-bestand

Typen objectopslagplaatsen in Selenium Web Driver

Selenium WebDriver biedt standaard geen ingebouwde objectrepository. Objectrepository's kunnen echter worden gebouwd met behulp van de sleutel-waardepaarbenadering, waarbij de sleutel verwijst naar de naam die aan het object is gegeven en de waarde verwijst naar de eigenschappen die worden gebruikt om een ​​object op de webpagina uniek te identificeren.

Hieronder volgen de soorten objectrepository's die kunnen worden gemaakt in Selenium WebDriver.

  1. Object Repository met behulp van eigenschappenbestand
  2. Object Repository met XML-bestand

Selenium Web Driver Object-repository met behulp van het eigenschappenbestand

In deze benadering is het eigenschappenbestand een tekstbestand waarin gegevens worden opgeslagen in de vorm van sleutel-waardeparen. De onderstaande tutorial behandelt de volgende onderwerpen.

  • Een eigenschappenbestand maken in eclipse
  • Gegevens opslaan in eigenschappenbestand
  • Gegevens lezen uit eigenschappenbestand
  • Eigenschappenbestand gebruiken in testscripts

Stap 1) Een eigenschappenbestand maken in eclipse

  1. Om te beginnen moet de onderstaande Java-projectstructuur in Eclipse worden gemaakt. Projectnaam en pakketnaam kunnen elke geldige naam zijn.

  1. Klik met de rechtermuisknop op de hoofdprojectmap en selecteer Nieuw-> Andere

  1. Selecteer in het volgende venster Algemeen -> Bestand en klik op de knop 'Volgende'

  1. Geef een geldige bestandsnaam op met de extensie '.properties' in het nieuwe bestandsresource-venster en klik op de knop 'Voltooien'

  1. Een bestand met de naam 'application.properties' moet worden weergegeven in de projectstructuur

Stap 2) Gegevens opslaan in eigenschappenbestand

  1. Gegevens worden in het eigenschappenbestand opgeslagen in de vorm van sleutel-waardeparen, waarbij de sleutel uniek is in het hele bestand.
  2. We zullen proberen het eigenschappenbestand te gebruiken om webelementen te identificeren met behulp van locatorwaarden.
  3. Open het bestand application.properties in Eclipse en sla de volgende gegevens op
MobileTesting = // a [text () = 'MOBIEL TESTEN']EmailTextBox = philadelphia-field-emailSignUpButton = Philadelphia-field-submit

4) Voor deze tutorial wordt de volgende demo-website gebruikt: http://demo.guru99.com/test/guru99home/. Hier is het testscenario:

  • Klik op de link Mobile Testing met XPATH
  • Navigeer terug
  • Voer gegevens in het e-mailtekstvak in met behulp van ID
  • Klik op de knop Aanmelden met ID

Stap 3) Gegevens uit het eigenschappenbestand lezen

  1. Het lezen van gegevens uit het eigenschappenbestand kan worden gedaan met behulp van de ingebouwde klasse Eigenschappen in het pakket java.util.
  2. In eerste instantie moet een object van de klasse Properties worden gemaakt, zoals hieronder
 Eigenschappen obj = nieuwe Eigenschappen (); 
  1. We moeten een object van de FileInputStream-klasse maken met het pad naar het eigenschappenbestand
FileInputStream objfile = nieuwe FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");
  1. Het lezen van gegevens uit het eigenschappenbestand kan worden gedaan met behulp van de laadmethode die wordt aangeboden door de klasse Eigenschappen in java. De onderstaande code toont het gebruik van de laadmethode.
Eigenschappen obj = nieuwe Eigenschappen ();FileInputStream objfile = nieuwe FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);String mobileTesting = obj.getProperty ("MobileTesting");

De string 'mobileTesting' bevat de XPATH om de Mobile Testing-link op de webpagina te identificeren.

Stap 4) Eigenschappenbestand gebruiken in testscripts

Het eigenschappenbestand kan in testscripts worden gebruikt door gegevens uit een eigenschappenbestand te lezen en de gegevens als parameter door te geven aan de methode findElement. De onderstaande code demonstreert het gebruik van gegevens die zijn gelezen uit het eigenschappenbestand in testscripts.

driver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). click (); 

Het onderstaande is de volledige code die wordt gebruikt voor het bovenstaande testscenario.

pakket com.objectrepository.demo;importeer java.io.FileInputStream;importeer java.io.FileNotFoundException;importeer java.io.IOException;importeer java.util.Properties;import org.openqa.selenium.By;importeer org.openqa.selenium.WebDriver;importeer org.openqa.selenium.chrome.ChromeDriver;openbare les DemoOR {public static void main (String [] args) gooit IOException {// Maak een WebDriver-instantieWebDriver-stuurprogramma;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");driver = nieuwe ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). window (). maximaliseren ();// Laad het eigenschappenbestandEigenschappen obj = nieuwe Eigenschappen ();FileInputStream objfile = nieuwe FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);// Nagigate om Mobile Testing en Back te koppelendriver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.navigate (). terug ();// Voer gegevens in het formulier indriver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). click ();​​

Selenium WebDriver Object Repository met XML-bestand

XML staat voor Extensible Markup Language. Een XML-bestand gebruikt Document Object Model (DOM) als de basisstructuur. XML-bestandsformaat repliceert het HTML-formaat waarop de webpagina is gebouwd. Hieronder vindt u de lijst met onderwerpen die aan bod komen.

  • Een XML-bestand maken in eclipse
  • Gegevens opslaan in XML-bestand
  • Gegevens lezen uit XML-bestand
  • XML-bestand gebruiken in testscripts

Stap 1) Een XML-bestand maken in eclipse

  1. De onderstaande Java-projectstructuur moet in Eclipse worden gemaakt.

  1. Klik met de rechtermuisknop op de projectmap, selecteer Nieuw -> Overig

  1. Selecteer het XML-bestand in de XML-map en klik op de knop 'Volgende'

  1. Voer een geldige XML-bestandsnaam in en klik op de knop 'Voltooien'

  1. Een XML-bestand wordt toegevoegd aan de projectmap, zoals hieronder weergegeven

Stap 2) Gegevens opslaan in XML-bestand

Gegevens kunnen worden opgeslagen in XML-bestand in de vorm van Document Object Model (DOM). Voor de eenvoud kunnen we het onderstaande testscenario als voorbeeld gebruiken.

  • Klik op de link Mobile Testing met XPATH
  • Navigeer terug naar de startpagina
  • Voer gegevens in het e-mailtekstvak in met behulp van ID
  • Klik op de knop Aanmelden met ID

Het onderstaande is het formaat van het te gebruiken XML-bestand.

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

Sla de bovenstaande XML-code op in properties.xml

Op het ontwerptabblad ziet u

Stap 3) Gegevens uit XML-bestand lezen

1. Het lezen van gegevens uit XML-bestand kan worden bereikt met behulp van de ingebouwde 'dom4j'-klasse in java. Houd er rekening mee dat u de onderstaande JAR-bestanden moet toevoegen aan het buildpad van uw project voordat u doorgaat met de code.

  • jaxen.jar
  • dom4j-1.6.jar

2. Hieronder staat de code om gegevens uit het XML-bestand te lezen.

Bestand inputFile = nieuw bestand (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = nieuwe 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 / aanmelden"). GetText ();

3. In eerste instantie moeten we een File-object maken en dit als parameter doorgeven aan de 'read'-methode van de SAXReader-klasse. Zodra de XML-bestandsgegevens met succes zijn gelezen, hebben we toegang tot afzonderlijke knooppunten van het XML-document met behulp van de 'selectSingleNode'-methode.

Stap 4) XML-bestand gebruiken in testscripts

XML-bestand kan in testscripts worden gebruikt door gegevens uit XML-bestand te lezen en de gegevens als parameter door te geven aan de methode findElement. De onderstaande code demonstreert het gebruik van gegevens die uit een XML-bestand worden gelezen in testscripts.

driver.findElement (By.xpath (mobileTesting)). click ();driver.findElement (By.id (emailTextBox)). sendKeys (" Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken.");driver.findElement (By.id (signUpButton)). klik ();

De onderstaande code demonstreert het gebruik van een XML-bestand in selenium WebDriver

pakket com.objectrepository.demo;importeer java.io. *;importeer java.util. *;importeer org.dom4j. *;importeer org.dom4j.io.SAXReader;import org.openqa.selenium.By;importeer org.openqa.selenium.WebDriver;importeer org.openqa.selenium.chrome.ChromeDriver;openbare les DemoORXML {public static void main (String [] args) gooit DocumentException {// WebDriver-instantie makenWebDriver-stuurprogramma;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");driver = nieuwe ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). window (). maximaliseren ();// XML-bestand lezenBestand inputFile = nieuw bestand (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = nieuwe 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 / aanmelden"). GetText ();// Navigeren naar mobiel testen en terugdriver.findElement (By.xpath (mobileTesting)). click ();driver.navigate (). terug ();// Formuliergegevens invoerendriver.findElement (By.id (emailTextBox)). sendKeys (" Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te kunnen bekijken.");driver.findElement (By.id (signUpButton)). klik ();​​

Download het WebDriver Eclipse Project

Overzicht:

  • Een objectrepository is een gemeenschappelijke opslaglocatie voor alle objecten
  • Selenium WebDriver biedt standaard geen ingebouwde objectrepository
  • U kunt in Selenium 2 soorten objectrepository's maken
    1. Object Repository met behulp van eigenschappenbestand
    2. Object Repository met XML-bestand
  • Het eigenschappenbestand is een tekstbestand waarin gegevens worden opgeslagen in de vorm van sleutel-waardeparen
  • XML-bestandsformaat repliceert het HTML-formaat waarop de webpagina is gebouwd.