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.

  • 🗂️ Concept de bază: Stochează localizatorii interfeței utilizator ca perechi cheie-valoare, păstrate separat de Selenium Logica de testare WebDriver.
  • 📄 Abordarea fișierului de proprietăți: Stochează locatorii într-un fișier text .properties, citit la momentul execuției prin intermediul clasei java.util.Properties.
  • 🧩 Abordarea fișierelor XML: Folosește un fișier XML cu Document Object Model și dom4j pentru a citi locatorii prin selectSingleNode.
  • 🔧 Flux de implementare: Creați fișierul, stocați datele cheie-valoare, citiți valorile în variabile, apoi transmiteți-le către findElement.
  • 🛡️ Beneficiu de întreținere: Când un localizator se modifică, actualizați doar fișierul repozitoriu, nu fiecare caz de testare afectat.

Depozitul de obiecte în Selenium

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.

  1. Depozitul de obiecte folosind fișierul de proprietăți
  2. 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

  1. Pentru început, structura proiectului Java de mai jos trebuie creată în Eclipse. Numele proiectului și numele pachetului pot fi orice nume valide.

Crearea unui fișier de proprietăți în Eclipse

  1. Faceți clic dreapta pe folderul principal al proiectului și selectați Nou-> Altul

Crearea unui fișier de proprietăți în Eclipse

  1. În fereastra următoare, selectați General -> Fișier și faceți clic pe butonul „Următorul”

Crearea unui fișier de proprietăți în Eclipse

  1. 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”.

Crearea unui fișier de proprietăți în Eclipse

  1. Un fișier numit „application.properties” trebuie afișat în structura proiectului.

Crearea unui fișier de proprietăți în Eclipse

Pasul 2) Stocarea datelor în fișierul de proprietăți

  1. Datele sunt stocate într-un fișier de proprietăți sub formă de perechi cheie-valoare, cheia fiind unică în întregul fișier.
  2. Vom încerca să folosim fișierul de proprietăți pentru a identifica elementele web folosind valori de localizare.
  3. 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

Stocarea datelor în fișierul de proprietăți

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

  1. Citirea datelor dintr-un fișier de proprietăți se poate face utilizând clasa Properties încorporată, furnizată în pachetul java.util.
  2. Inițial, trebuie creat un obiect din clasa Properties după cum urmează:
  Properties obj = new Properties();
  1. 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");
  1. 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.

Pasul 1) Crearea unui fișier XML în eclipse

  1. Structura proiectului java de mai jos trebuie creată în Eclipse.

Crearea unui fișier XML în Eclipse

  1. Faceți clic dreapta pe folderul proiectului, selectați Nou -> Altul

Crearea unui fișier XML în Eclipse

  1. Selectați fișierul XML din folderul XML și faceți clic pe butonul „Următorul”.

Crearea unui fișier XML în Eclipse

  1. Introduceți un nume de fișier XML valid și faceți clic pe butonul „Finalizare”.

Crearea unui fișier XML în Eclipse

  1. Un fișier XML va fi adăugat în folderul proiectului, așa cum se arată mai jos

Crearea unui fișier XML în Eclipse

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

Stocarea datelor pe fișierul XML

În fila design veți vedea

Stocarea datelor pe fișierul XML

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

Întrebări frecvente

Un depozit de obiecte stochează locatorii de elemente doar extern. Modelul de Obiecte de Pagină este un model mai amplu care include locatorii și acțiunile paginii în interiorul claselor de pagină.

Da. Locatorii pot fi stocați și în fișiere Excel sau CSV, citiți folosind o bibliotecă precum Apache POI și transmiși către findElement.

Folosiți chei clare și descriptive, grupați locatorii după pagină, preferați locatorii stabili, cum ar fi ID-ul, și evitați duplicatele. Păstrați un singur depozit per modul, astfel încât o modificare a locatorului să actualizeze o singură intrare.

Da. Mai multe instrumente asistate de inteligență artificială scanează o pagină, detectează elemente și exportă locatori predefiniți într-un depozit. Testerii ar trebui să verifice în continuare locatorii pentru stabilitate.

Auto-repararea prin inteligență artificială observă atributele elementelor în timpul rulării și, atunci când un localizator stocat se defectează, selectează automat o alternativă potrivită. Acest lucru menține testele în funcțiune chiar și în cazul unor modificări minore ale interfeței și reduce întreținerea.

Rezumați această postare cu: