Depozitul de obiecte în Selenium
⚡ Rezumat inteligent
Depozitul de obiecte în Selenium centralizează localizatorii de elemente într-un singur fișier extern, separându-i de scripturile de testare. Această abordare îmbunătățește întreținerea și permite testerilor să actualizeze localizatorii într-un singur loc, în loc să editeze mai multe cazuri de testare.

Ce este un depozit de obiecte?
Un depozit de obiecte este o locație de stocare comună pentru toate obiectele. În Selenium În contextul WebDriver, obiectele ar fi de obicei locatorii utilizați pentru a identifica în mod unic elementele web.
Principalul avantaj al utilizării unui repozitoriu de obiecte este segregarea obiectelor de cazurile de testare. Dacă valoarea locatorului unui element web se modifică, trebuie modificat doar repozitoriul de obiecte, în loc să se facă modificări în toate cazurile de testare în care a fost utilizat locatorul. Menținerea unui repozitoriu de obiecte crește modularitatea implementării framework-ului.
Tipuri de depozite de obiecte în Selenium Driver web
Selenium WebDriver nu oferă în mod implicit un repozitoriu de obiecte încorporat. Cu toate acestea, repozitoriile de obiecte pot fi construite folosind abordarea perechii cheie-valoare, în care cheia se referă la numele dat obiectului, iar valoarea se referă la proprietățile utilizate pentru a identifica în mod unic un obiect în cadrul paginii web.
Următoarele sunt tipurile de depozite de obiecte care pot fi create în Selenium WebDriver.
- Depozitul de obiecte folosind fișierul de proprietăți
- Depozitul de obiecte folosind fișierul XML
Selenium Depozitul Web Driver Object utilizând fișierul Proprietăți
În această abordare, un fișier de proprietăți este un fișier text în care datele sunt stocate sub formă de perechi cheie-valoare. Tutorialul de mai jos va aborda următoarele subiecte.
Pasul 1) Crearea unui fișier de proprietăți în eclipse
- Pentru început, structura proiectului Java de mai jos trebuie creată în Eclipse. Numele proiectului și numele pachetului pot fi orice nume valide.
- Faceți clic dreapta pe folderul principal al proiectului și selectați Nou-> Altul
- În fereastra următoare, selectați General -> Fișier și faceți clic pe butonul „Următorul”
- Furnizați un nume de fișier valid cu extensia „.properties” în fereastra noii resurse de fișier și faceți clic pe butonul „Finalizare”.
- Un fișier numit „application.properties” trebuie afișat în structura proiectului.
Pasul 2) Stocarea datelor în fișierul de proprietăți
- Datele sunt stocate într-un fișier de proprietăți sub formă de perechi cheie-valoare, cheia fiind unică în întregul fișier.
- Vom încerca să folosim fișierul de proprietăți pentru a identifica elementele web folosind valori de localizare.
- Deschideți fișierul application.properties în Eclipse și stocați următoarele date
MobileTesting=//a[text()='MOBILE TESTING'] EmailTextBox = philadelphia-field-email SignUpButton = philadelphia-field-submit
4) Pentru acest tutorial, se utilizează următorul site web demonstrativ:
https://demo.guru99.com/test/guru99home/Iată scenariul de testare:
- Faceți clic pe linkul Mobile Testing folosind XPATH
- Navigați înapoi
- Introduceți datele în caseta de text a e-mailului folosind ID-ul
- Faceți clic pe butonul Înregistrare folosind ID
Pasul 3) Citirea datelor din fișierul de proprietăți
- Citirea datelor dintr-un fișier de proprietăți se poate face utilizând clasa Properties încorporată, furnizată în pachetul java.util.
- Inițial, trebuie creat un obiect din clasa Properties după cum urmează:
Properties obj = new Properties();
- Trebuie să creăm un obiect al clasei FileInputStream cu calea către fișierul de proprietăți
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
- Citirea datelor dintr-un fișier de proprietăți se poate face folosind metoda load oferită de clasa Properties din Java. Codul de mai jos demonstrează utilizarea metodei load.
Properties obj = new Properties(); FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties"); obj.load(objfile); String mobileTesting = obj.getProperty("MobileTesting");
Șirul „mobileTesting” va conține XPATH pentru a identifica linkul Mobile Testing din pagina web.
Pasul 4) Utilizarea fișierului de proprietăți în scripturile de testare
Un fișier de proprietăți poate fi utilizat în scripturile de testare prin citirea datelor din fișierul de proprietăți și transmiterea datelor ca parametru metodei findElement. Codul de mai jos demonstrează utilizarea datelor citite dintr-un fișier de proprietăți în scripturile de testare.
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();
Mai jos este codul complet utilizat pentru scenariul de testare de mai sus.
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 Depozitul de obiecte WebDriver folosind fișierul XML
XML este prescurtarea de la Extensible Markup Language (Limbaj de marcare extensibil). Un fișier XML folosește Document Object Model (DOM) ca structură de bază. Formatul de fișier XML va reproduce formatul HTML pe baza căruia este construită pagina web. Mai jos este lista subiectelor care vor fi abordate.
- Crearea unui fișier XML în eclipse
- Stocarea datelor în fișierul XML
- Citirea datelor din fișierul XML
- Utilizarea fișierului XML în scripturile de testare
Pasul 1) Crearea unui fișier XML în eclipse
- Structura proiectului java de mai jos trebuie creată în Eclipse.
- Faceți clic dreapta pe folderul proiectului, selectați Nou -> Altul
- Selectați fișierul XML din folderul XML și faceți clic pe butonul „Următorul”.
- Introduceți un nume de fișier XML valid și faceți clic pe butonul „Finalizare”.
- Un fișier XML va fi adăugat în folderul proiectului, așa cum se arată mai jos
Pasul 2) Stocarea datelor în fișierul XML
Datele pot fi stocate într-un fișier XML sub forma unui model de obiecte document (DOM). Pentru simplitate, putem folosi scenariul de testare de mai jos ca exemplu.
- Faceți clic pe linkul Mobile Testing folosind XPATH
- Navigați înapoi la pagina principală
- Introduceți datele în caseta de text a e-mailului folosind ID-ul
- Faceți clic pe butonul Înregistrare folosind ID
Mai jos este formatul fișierului XML care va fi utilizat.
<menu> <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting> <email> philadelphia-field-email</email> <signup> philadelphia-field-submit </signup> </menu>
Stocați codul XML de mai sus în properties.xml
În fila design veți vedea
Pasul 3) Citirea datelor din fișierul XML
1. Citirea datelor dintr-un fișier XML se poate realiza folosind clasa „dom4j” încorporată în Java. Rețineți că trebuie să adăugați fișierele JAR de mai jos în calea de compilare a proiectului înainte de a continua cu codul.
- jaxen.jar
- dom4j-1.6.jar
2. Mai jos este codul pentru citirea datelor din fișierul XML.
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. Inițial, trebuie să creăm un obiect File și să îl transmitem ca parametru metodei „read” a clasei SAXReader. Odată ce datele fișierului XML sunt citite cu succes, putem accesa nodurile individuale ale documentului XML folosind metoda „selectSingleNode”.
Pasul 4) Utilizarea fișierului XML în scripturile de testare
Un fișier XML poate fi utilizat în scripturi de testare prin citirea datelor din fișierul XML și transmiterea datelor ca parametru metodei findElement. Codul de mai jos demonstrează utilizarea datelor citite dintr-un fișier XML în scripturi de testare.
driver.findElement(By.xpath(mobileTesting)).click(); driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(signUpButton)).click();
Codul de mai jos demonstrează utilizarea unui fișier XML în 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(); } }
Descărcați WebDriver Eclipse Proiect













