Objektlager i Selenium
โก Smart opsummering
Objektlager i Selenium centraliserer elementlokaliseringsvรฆrktรธjer i en enkelt ekstern fil og adskiller dem fra testscripts. Denne tilgang forbedrer vedligeholdelsen og giver testere mulighed for at opdatere lokaliseringsvรฆrktรธjer รฉt sted i stedet for at skulle redigere mange testcases.

Hvad er et objektlager?
Et objektlager er en fรฆlles lagerplads for alle objekter. I Selenium WebDriver-kontekst, vil objekter typisk vรฆre lokalisatorerne, der bruges til entydigt at identificere webelementer.
Den stรธrste fordel ved at bruge et objektlager er adskillelsen af โโobjekter fra testcases. Hvis locator-vรฆrdien for รฉt webelement รฆndres, er det kun objektlageret, der skal รฆndres, i stedet for at der skal foretages รฆndringer i alle testcases, hvor locatoren er blevet brugt. Vedligeholdelse af et objektlager รธger modulariteten af โโโโframework-implementeringen.
Typer af objektlager i Selenium Web driver
Selenium WebDriver tilbyder ikke et indbygget objektlager som standard. Objektlagre kan dog bygges ved hjรฆlp af nรธgle-vรฆrdi-par-tilgangen, hvor nรธglen refererer til det navn, der er givet til objektet, og vรฆrdien refererer til de egenskaber, der bruges til entydigt at identificere et objekt pรฅ websiden.
Fรธlgende er de typer objektlager, der kan oprettes i Selenium WebDriver.
- Objektlager ved hjรฆlp af egenskabsfil
- Objektlager ved hjรฆlp af XML-fil
Selenium Web Driver Object repository ved hjรฆlp af Properties fil
I denne tilgang er en egenskabsfil en tekstfil, hvor data gemmes i form af nรธgle-vรฆrdi-par. Nedenstรฅende vejledning vil behandle fรธlgende emner.
Trin 1) Oprettelse af en egenskabsfil i eclipse
- Til at begynde med skal nedenstรฅende Java-projektstruktur oprettes i Eclipse. Projektnavnet og pakkenavnet kan vรฆre et hvilket som helst gyldigt navn.
- Hรธjreklik pรฅ projektets hovedmappe og vรฆlg Ny-> Andet
- I det nรฆste vindue skal du vรฆlge Generelt -> Filer og klikke pรฅ knappen 'Nรฆste'.
- Angiv et gyldigt filnavn med filtypenavnet '.properties' i det nye filressourcevindue, og klik pรฅ knappen 'Udfรธr'.
- En fil med navnet 'application.properties' skal vises i projektstrukturen.
Trin 2) Lagring af data pรฅ egenskabsfil
- Data gemmes i en egenskabsfil i form af nรธgle-vรฆrdi-par, hvor nรธglen er unik pรฅ tvรฆrs af filen.
- Vi vil forsรธge at bruge egenskabsfilen til at identificere webelementer ved hjรฆlp af locator-vรฆrdier.
- ร bn application.properties-filen i Eclipse og gemme fรธlgende data
MobileTesting=//a[text()='MOBILE TESTING'] EmailTextBox = philadelphia-field-email SignUpButton = philadelphia-field-submit
4) Til denne tutorial bruges fรธlgende demo-websted:
https://demo.guru99.com/test/guru99home/Her er testscenariet:
- Klik pรฅ linket Mobiltestning ved hjรฆlp af XPATH
- Naviger tilbage
- Indtast data i e-mail-tekstfeltet ved hjรฆlp af ID
- Klik pรฅ knappen Tilmeld dig med ID
Trin 3) Lรฆsning af data fra egenskabsfil
- Datalรฆsning fra en properties-fil kan gรธres ved hjรฆlp af den indbyggede Properties-klasse, der findes i java.util-pakken.
- I starten skal et objekt af Properties-klassen oprettes som vist nedenfor.
Properties obj = new Properties();
- Vi skal oprette et objekt af FileInputStream-klassen med stien til egenskabsfilen.
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
- Datalรฆsning fra en properties-fil kan udfรธres ved hjรฆlp af load-metoden, der tilbydes af Properties-klassen i Java. Koden nedenfor demonstrerer brugen af โโload-metoden.
Properties obj = new Properties(); FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties"); obj.load(objfile); String mobileTesting = obj.getProperty("MobileTesting");
Strengen 'mobileTesting' vil indeholde XPATH for at identificere Mobile Testing-linket pรฅ websiden.
Trin 4) Brug af egenskabsfil i testscripts
En egenskabsfil kan bruges i testscripts ved at lรฆse data fra egenskabsfilen og sende dataene som en parameter til findElement-metoden. Koden nedenfor demonstrerer brugen af โโdata lรฆst fra en egenskabsfil i testscripts.
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();
Nedenstรฅende er den komplette kode, der bruges til ovenstรฅende testscenarie.
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("https://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); // Navigate 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 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-filformatet vil replikere HTML-formatet, som websiden er bygget op efter. Nedenfor er en liste over emner, der vil blive dรฆkket.
- Oprettelse af en XML-fil i eclipse
- Lagring af data pรฅ XML-fil
- Lรฆser data fra XML-fil
- Brug af XML-fil i testscripts
Trin 1) Oprettelse af en XML-fil i eclipse
- Nedenstรฅende java-projektstruktur skal oprettes i Eclipse.
- Hรธjreklik pรฅ projektmappen, vรฆlg Ny -> Andet
- Vรฆlg XML-filen i XML-mappen, og klik pรฅ knappen 'Nรฆste'.
- Indtast et gyldigt XML-filnavn, og klik pรฅ knappen 'Udfรธr'.
- En XML-fil vil blive tilfรธjet til projektmappen som vist nedenfor
Trin 2) Lagring af data pรฅ XML-fil
Data kan gemmes i en XML-fil i form af en Document Object Model (DOM). For nemheds skyld kan vi bruge nedenstรฅende testscenarie som et eksempel.
- Klik pรฅ linket Mobiltestning ved hjรฆlp af XPATH
- Naviger tilbage til startsiden
- Indtast data i e-mail-tekstfeltet ved hjรฆlp af ID
- Klik pรฅ knappen Tilmeld dig med ID
Nedenfor er formatet for den XML-fil, der skal bruges.
<menu> <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting> <email> philadelphia-field-email</email> <signup> philadelphia-field-submit </signup> </menu>
Gem ovenstรฅende XML-kode i properties.xml
I designfanen kan du se
Trin 3) Lรฆsning af data fra XML-fil
1. Datalรฆsning fra en XML-fil kan udfรธres ved hjรฆlp af den indbyggede 'dom4j'-klasse i Java. Bemรฆrk venligst, at du skal tilfรธje nedenstรฅende JAR-filer til byggestien for dit projekt, fรธr du fortsรฆtter med koden.
- jaxen.jar
- dom4j-1.6.jar
2. Nedenfor er koden til at lรฆse data fra XML-filen.
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. Fรธrst skal vi oprette et File-objekt og sende det som en parameter til 'read'-metoden i SAXReader-klassen. Nรฅr XML-fildataene er lรฆst korrekt, kan vi fรฅ adgang til individuelle noder i XML-dokumentet ved hjรฆlp af 'selectSingleNode'-metoden.
Trin 4) Brug af XML-fil i testscripts
En XML-fil kan bruges i testscripts ved at lรฆse data fra XML-filen og sende dataene som en parameter til findElement-metoden. Koden nedenfor demonstrerer brugen af โโdata lรฆst fra en XML-fil i testscripts.
driver.findElement(By.xpath(mobileTesting)).click(); driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(signUpButton)).click();
Koden nedenfor demonstrerer brugen af โโen 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("https://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(); } }
Download WebDriver Eclipse Projekt













