Depozitul de obiecte în Selenium (Fișier XML și proprietăți)
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.
Avantajul major al utilizării depozitului de obiecte este segregarea obiectelor din cazurile de testare. Dacă valoarea locatorului unui element web se modifică, trebuie schimbat doar depozitul de obiecte, în loc să se facă modificări în toate cazurile de testare în care a fost utilizat locatorul. Menținerea unui depozit de obiecte crește modularitatea implementării cadrului.
Tipuri de depozite de obiecte în Selenium Driver web
Selenium WebDriver nu oferă în mod implicit un depozit de obiecte încorporat. Cu toate acestea, depozitele 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 unic un obiect în pagina 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, fișierul 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.
- Crearea unui fișier de proprietăți în eclipse
- Stocarea datelor în fișierul de proprietăți
- Citirea datelor din fișierul de proprietăți
- Utilizarea fișierului de proprietăți în scripturile de testare
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-> Altele
- Î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 noua fereastră de resurse de fișier și faceți clic pe butonul „Finish”
- Un fișier numit „application.properties” trebuie să fie afișat pe Structura proiectului
Pasul 2) Stocarea datelor în fișierul de proprietăți
- Datele sunt stocate în fișierul 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 Testare mobilă folosind XPATH
- Navigați înapoi
- Introduceți datele în caseta text de e-mail folosind ID-ul
- Faceți clic pe butonul Înregistrare folosind ID
Pasul 3) Citirea datelor din fișierul de proprietăți
- Citirea datelor din fișierul de proprietăți se poate face folosind clasa proprietăți încorporată furnizată în pachetul java.util.
- Inițial, un obiect din clasa Proprietăți trebuie creat ca mai jos
Properties obj = new Properties();
- Trebuie să creăm un obiect din clasa FileInputStream cu calea către fișierul de proprietăți
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
- Citirea datelor din fișierul de proprietăți se poate face folosind metoda de încărcare oferită de clasa Proprietăți în java. Codul de mai jos demonstrează utilizarea metodei de încărcare.
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
Fișierul de proprietăți poate fi utilizat în scripturile de testare prin citirea datelor dintr-un fișier de proprietăți și transmiterea datelor ca parametru la metoda findElement. Codul de mai jos demonstrează utilizarea datelor citite din fișierul 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); // Nagigate 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 înseamnă Extensible Markup Language. Un fișier XML utilizează Document Object Model (DOM) ca structură de bază. Formatul de fișier XML va replica formatul HTML pe care este construită pagina web. Mai jos este lista subiectelor care vor fi tratate.
- 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 „Terminare”.
- 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 formă de Document Object Model (DOM). Din motive de simplitate, putem folosi scenariul de testare de mai jos ca exemplu.
- Faceți clic pe linkul Testare mobilă folosind XPATH
- Navigați Înapoi la pagina de pornire
- Introduceți datele în caseta text de e-mail folosind ID-ul
- Faceți clic pe butonul Înregistrare folosind ID
Mai jos este formatul fișierului XML care trebuie 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 din fișierul XML poate fi realizată folosind clasa „dom4j” încorporată în java. Vă rugăm să rețineți că trebuie să adăugați fișierele JAR de mai jos în calea de construcție a proiectului înainte de a continua cu codul.
- jaxen.jar
- dom4j-1.6.jar
2. Mai jos este codul pentru a citi datele 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 la metoda „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
Fișierul XML poate fi utilizat în scripturile de testare prin citirea datelor din fișierul XML și transmiterea datelor ca parametru la metoda findElement. Codul de mai jos demonstrează utilizarea datelor citite din fișierul XML în scripturile 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 fișierului 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
Rezumat
- Un depozit de obiecte este o locație de stocare comună pentru toate obiectele
- Selenium WebDriver nu oferă în mod implicit un depozit de obiecte încorporat
- Puteți crea 2 tipuri de depozit de obiecte în Selenium
- Depozitul de obiecte folosind fișierul de proprietăți
- Depozitul de obiecte folosind fișierul XML
- Fișierul de proprietăți este un fișier text în care datele sunt stocate sub formă de perechi cheie-valoare
- Formatul de fișier XML va replica formatul HTML pe care este construită pagina web.