Repozitorij objekata u Selenium

โšก Pametni saลพetak

Repozitorij objekata u Selenium centralizira lokatore elemenata u jednoj vanjskoj datoteci, odvajajuฤ‡i ih od testnih skripti. Ovaj pristup poboljลกava odrลพavanje i omoguฤ‡uje testerima aลพuriranje lokatora na jednom mjestu umjesto ureฤ‘ivanja mnogih testnih sluฤajeva.

  • ๐Ÿ—‚๏ธ Osnovni koncept: Pohranjuje lokatore korisniฤkog suฤelja kao parove kljuฤ-vrijednost, odvojeno od Selenium Logika testiranja WebDrivera.
  • ๐Ÿ“„ Pristup datoteci svojstava: Pohrani lokatore u tekstualnu datoteku .properties, koja se ฤita za vrijeme izvoฤ‘enja putem klase java.util.Properties.
  • ๐Ÿงฉ Pristup XML datoteci: Koristite XML datoteku s Document Object Modelom i dom4j za ฤitanje lokatora putem selectSingleNode.
  • ๐Ÿ”ง Tijek implementacije: Izradi datoteku, pohrani podatke o parovima kljuฤ-vrijednost, uฤitaj vrijednosti u varijable, a zatim ih proslijedi funkciji findElement.
  • ๐Ÿ›ก๏ธ Prednost odrลพavanja: Kada se lokator promijeni, aลพurirajte samo datoteku repozitorija, a ne svaki pogoฤ‘eni testni sluฤaj.

Repozitorij objekata u Selenium

ล to je repozitorij objekata?

Repozitorij objekata je zajedniฤko mjesto za pohranu svih objekata. U Selenium U kontekstu WebDrivera, objekti bi obiฤno bili lokatori koji se koriste za jedinstvenu identifikaciju web elemenata.

Glavna prednost koriลกtenja repozitorija objekata je odvajanje objekata od testnih sluฤajeva. Ako se promijeni vrijednost lokatora jednog web elementa, potrebno je promijeniti samo repozitorij objekata, umjesto da se mijenjaju svi testni sluฤajevi u kojima je lokator koriลกten. Odrลพavanje repozitorija objekata poveฤ‡ava modularnost implementacije okvira.

Vrste spremiลกta objekata u Selenium Web upravljaฤki program

Selenium WebDriver ne nudi ugraฤ‘eno spremiลกte objekata prema zadanim postavkama. Meฤ‘utim, spremiลกta objekata mogu se izgraditi koriลกtenjem pristupa para kljuฤ-vrijednost, gdje se kljuฤ odnosi na naziv dani objektu, a vrijednost na svojstva koja se koriste za jedinstvenu identifikaciju objekta unutar web stranice.

Sljedeฤ‡e su vrste repozitorija objekata u kojima se moลพe stvoriti Selenium WebDriver.

  1. Repozitorij objekata pomoฤ‡u datoteke svojstava
  2. Repozitorij objekata koji koristi XML datoteku

Selenium Web Driver Object repozitorij koji koristi datoteku svojstava

U ovom pristupu, datoteka svojstava je tekstualna datoteka u kojoj su podaci pohranjeni u obliku parova kljuฤ-vrijednost. Donji vodiฤ ฤ‡e se baviti sljedeฤ‡im temama.

Korak 1) Stvaranje datoteke svojstava u eclipse

  1. Za poฤetak, potrebno je u Eclipseu stvoriti donju strukturu Java projekta. Naziv projekta i naziv paketa mogu biti bilo koja valjana imena.

Stvaranje datoteke svojstava u Eclipse

  1. Desnom tipkom miลกa kliknite glavnu mapu projekta i odaberite Novo-> Ostalo

Stvaranje datoteke svojstava u Eclipse

  1. U sljedeฤ‡em prozoru odaberite Opฤ‡enito -> Datoteka i kliknite gumb 'Dalje'.

Stvaranje datoteke svojstava u Eclipse

  1. U novom prozoru resursa datoteke unesite valjani naziv datoteke s ekstenzijom '.properties' i kliknite gumb 'Zavrลกi'.

Stvaranje datoteke svojstava u Eclipse

  1. Datoteka pod nazivom 'application.properties' mora biti prikazana u strukturi projekta

Stvaranje datoteke svojstava u Eclipse

Korak 2) Pohranjivanje podataka u datoteku svojstava

  1. Podaci se pohranjuju u datoteci svojstava u obliku parova kljuฤ-vrijednost, pri ฤemu je kljuฤ jedinstven u cijeloj datoteci.
  2. Pokuลกat ฤ‡emo koristiti datoteku svojstava za identifikaciju web elemenata pomoฤ‡u vrijednosti lokatora.
  3. Otvorite datoteku application.properties u Eclipse i pohranite sljedeฤ‡e podatke
MobileTesting=//a[text()='MOBILE TESTING']
EmailTextBox = philadelphia-field-email
SignUpButton = philadelphia-field-submit

Pohranjivanje podataka u datoteku svojstava

4) Za ovaj vodiฤ koristi se sljedeฤ‡a demo web stranica:

https://demo.guru99.com/test/guru99home/Evo testnog scenarija:

  • Kliknite na poveznicu Testiranje mobilnih ureฤ‘aja pomoฤ‡u XPATH-a
  • Navigacija natrag
  • Unesite podatke u tekstualni okvir e-poลกte koristeฤ‡i ID
  • Kliknite na gumb Prijavi se koristeฤ‡i ID

Korak 3) ฤŒitanje podataka iz datoteke svojstava

  1. ฤŒitanje podataka iz datoteke svojstava moลพe se obaviti pomoฤ‡u ugraฤ‘ene klase Properties koja se nalazi u paketu java.util.
  2. U poฤetku je potrebno kreirati objekt klase Properties kao ลกto je prikazano u nastavku
  Properties obj = new Properties();
  1. Moramo kreirati objekt klase FileInputStream s putanjom do datoteke svojstava
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
  1. ฤŒitanje podataka iz datoteke svojstava moลพe se obaviti pomoฤ‡u metode uฤitavanja koju nudi klasa Properties u Javi. Donji kod demonstrira koriลกtenje metode uฤitavanja.
Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
obj.load(objfile);
String mobileTesting = obj.getProperty("MobileTesting");

Niz 'mobileTesting' sadrลพavat ฤ‡e XPATH za identifikaciju veze za mobilno testiranje unutar web stranice.

Korak 4) Koriลกtenje datoteke svojstava u testnim skriptama

Datoteka svojstava moลพe se koristiti u testnim skriptama ฤitanjem podataka iz datoteke svojstava i prosljeฤ‘ivanjem podataka kao parametra metodi findElement. Donji kod pokazuje koriลกtenje podataka proฤitanih iz datoteke svojstava u testnim skriptama.

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();

Dolje je potpuni kod koriลกten za gornji testni scenarij.

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 Repozitorij objekata WebDriver pomoฤ‡u XML datoteke

XML je kratica za Extensible Markup Language (proลกirivi jezik za oznaฤavanje). XML datoteka koristi model objekta dokumenta (DOM) kao osnovnu strukturu. Format XML datoteke replicirat ฤ‡e HTML format na kojem je izgraฤ‘ena web stranica. U nastavku je popis tema koje ฤ‡e biti obraฤ‘ene.

Korak 1) Stvaranje XML datoteke u eclipse

  1. Potrebno je izraditi donju strukturu java projekta Eclipse.

Stvaranje XML datoteke u Eclipse

  1. Desnom tipkom miลกa kliknite mapu projekta, odaberite Novo -> Ostalo

Stvaranje XML datoteke u Eclipse

  1. Odaberite XML datoteku unutar XML mape i kliknite gumb 'Dalje'.

Stvaranje XML datoteke u Eclipse

  1. Unesite valjani naziv XML datoteke i kliknite gumb 'Zavrลกi'

Stvaranje XML datoteke u Eclipse

  1. XML datoteka bit ฤ‡e dodana u mapu projekta kao ลกto je prikazano u nastavku

Stvaranje XML datoteke u Eclipse

Korak 2) Pohranjivanje podataka u XML datoteku

Podaci se mogu pohraniti u XML datoteku u obliku Document Object Modela (DOM). Radi jednostavnosti, kao primjer moลพemo upotrijebiti sljedeฤ‡i testni scenarij.

  • Kliknite na poveznicu Testiranje mobilnih ureฤ‘aja pomoฤ‡u XPATH-a
  • Natrag na poฤetnu stranicu
  • Unesite podatke u tekstualni okvir e-poลกte koristeฤ‡i ID
  • Kliknite na gumb Prijavi se koristeฤ‡i ID

U nastavku je prikazan format XML datoteke koji ฤ‡e se koristiti.

<menu>
      <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting>
      <email> philadelphia-field-email</email>
      <signup> philadelphia-field-submit </signup>
 </menu>

Pohranite gornji XML kod u property.xml

Pohranjivanje podataka u XML datoteku

Na kartici dizajn vidjet ฤ‡ete

Pohranjivanje podataka u XML datoteku

Korak 3) ฤŒitanje podataka iz XML datoteke

1. ฤŒitanje podataka iz XML datoteke moลพe se postiฤ‡i pomoฤ‡u ugraฤ‘ene klase 'dom4j' u Javi. Imajte na umu da morate dodati dolje navedene JAR datoteke u putanju izgradnje vaลกeg projekta prije nego ลกto nastavite s kodom.

  • jaxen.jar
  • dom4j-1.6.jar

2. U nastavku je kod za ฤitanje podataka iz XML datoteke.

        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. U poฤetku moramo kreirati objekt File i proslijediti ga kao parametar metodi 'read' klase SAXReader. Nakon ลกto se podaci XML datoteke uspjeลกno proฤitaju, moลพemo pristupiti pojedinaฤnim ฤvorovima XML dokumenta pomoฤ‡u metode 'selectSingleNode'.

Korak 4) Koriลกtenje XML datoteke u testnim skriptama

XML datoteka moลพe se koristiti u testnim skriptama ฤitanjem podataka iz XML datoteke i prosljeฤ‘ivanjem podataka kao parametra metodi findElement. Donji kod pokazuje koriลกtenje podataka proฤitanih iz XML datoteke u testnim skriptama.

driver.findElement(By.xpath(mobileTesting)).click();
driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com");
driver.findElement(By.id(signUpButton)).click();

Donji kod demonstrira koriลกtenje XML datoteke u selenium WebDriveru

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();

    }
}

Preuzmite WebDriver Eclipse Projekt

Pitanja i odgovori

Repozitorij objekata pohranjuje lokatore elemenata samo izvana. Model objekta stranice je ลกiri obrazac koji obuhvaฤ‡a lokatore i radnje stranice unutar klasa stranica.

Da. Lokatori se takoฤ‘er mogu pohraniti u Excel ili CSV datoteke, proฤitati pomoฤ‡u biblioteke kao ลกto je Apache POI i proslijediti findElementu.

Koristite jasne, opisne kljuฤeve, grupirajte lokatore po stranicama, preferirajte stabilne lokatore poput ID-a i izbjegavajte duplikate. Zadrลพite jedno spremiลกte po modulu kako bi promjena lokatora aลพurirala jedan unos.

Da. Nekoliko alata potpomognutih umjetnom inteligencijom skenira stranicu, detektira elemente i izvozi gotove lokatore u repozitorij. Testeri bi i dalje trebali pregledati lokatore radi stabilnosti.

Samoobnavljanje pomoฤ‡u umjetne inteligencije promatra atribute elemenata tijekom izvoฤ‘enja i, kada pohranjeni lokator pokvari, automatski odabire alternativno podudaranje. To odrลพava testove u radu unatoฤ manjim promjenama suฤelja i smanjuje odrลพavanje.

Saลพmite ovu objavu uz: