Objektumtár be Selenium

⚡ Okos összefoglaló

Objektumtár be Selenium egyetlen külső fájlba központosítja az elemlokátorokat, elkülönítve őket a tesztszkriptektől. Ez a megközelítés javítja a karbantartást, és lehetővé teszi a tesztelők számára, hogy egy helyen frissítsék a lokátorokat a sok teszteset szerkesztése helyett.

  • 🗂️ Alapkoncepció: A felhasználói felület helymeghatározóit kulcs-érték párokként tárolja, elkülönítve a Selenium WebDriver tesztelési logika.
  • 📄 Tulajdonságfájl megközelítés: A lokátorokat egy .properties szövegfájlban tárolja, amelyet futásidőben a java.util.Properties osztályon keresztül olvas be.
  • 🧩 XML fájl megközelítés: Használj egy XML fájlt a Document Object Modellel és a dom4j-vel a lokátorok beolvasásához a selectSingleNode-on keresztül.
  • 🔧 Megvalósítási folyamat: Hozd létre a fájlt, tárold el a kulcs-érték adatokat, olvasd be az értékeket változókba, majd add át őket a findElementnek.
  • 🛡️ Karbantartási előny: Amikor egy lokátor megváltozik, csak a repository fájlt frissítse, ne minden érintett tesztesetet.

Objektumtár be Selenium

Mi az objektumtár?

Az objektumtár az összes objektum közös tárolási helye. Ban ben Selenium WebDriver kontextusban az objektumok általában a webes elemek egyedi azonosítására használt lokátorok.

Az objektumtár használatának fő előnye az objektumok elkülönítése a tesztesetektől. Ha egy webes elem lokátorértéke megváltozik, akkor csak az objektumtárat kell módosítani, ahelyett, hogy az összes olyan tesztesetet módosítanánk, amelyben a lokátort használták. Az objektumtár fenntartása növeli a keretrendszer implementációjának modularitását.

Az objektumtárak típusai itt Selenium Web Driver

Selenium A WebDriver alapértelmezés szerint nem kínál beépített objektumtárat. Az objektumtárak azonban kulcs-érték páros megközelítéssel hozhatók létre, ahol a kulcs az objektumnak adott névre, az érték pedig a weboldalon belüli objektum egyedi azonosítására használt tulajdonságokra utal.

Az alábbiakban bemutatjuk a létrehozható objektumtárak típusait Selenium WebDriver.

  1. Objektumtár a Properties fájl használatával
  2. Objektumtár XML-fájl használatával

Selenium Web Driver Objektumtár a Properties fájl használatával

Ebben a megközelítésben a tulajdonságfájl egy szövegfájl, amelyben az adatok kulcs-érték párok formájában tárolódnak. Az alábbi oktatóanyag a következő témákat tárgyalja.

1. lépés) Tulajdonságfájl létrehozása az eclipse-ben

  1. Először is, az alábbi Java projektstruktúrát kell létrehozni az Eclipse-ben. A projektnév és a csomagnév bármilyen érvényes név lehet.

Tulajdonságfájl létrehozása itt Eclipse

  1. Kattintson jobb gombbal a fő projektmappára, és válassza az Új-> Egyéb lehetőséget.

Tulajdonságfájl létrehozása itt Eclipse

  1. A következő ablakban válaszd az Általános -> Fájl menüpontot, majd kattints a „Tovább” gombra.

Tulajdonságfájl létrehozása itt Eclipse

  1. Adjon meg egy érvényes fájlnevet '.properties' kiterjesztéssel az új fájl erőforrás ablakban, majd kattintson a 'Befejezés' gombra.

Tulajdonságfájl létrehozása itt Eclipse

  1. Egy „application.properties” nevű fájlnak kell megjelennie a projektstruktúrában.

Tulajdonságfájl létrehozása itt Eclipse

2. lépés) Adatok tárolása tulajdonságfájlban

  1. Az adatokat egy tulajdonságfájlban tároljuk kulcs-érték párok formájában, ahol a kulcs egyedi a fájlban.
  2. Megpróbáljuk a properties fájlt használni a webes elemek azonosítására lokátorértékek segítségével.
  3. Nyissa meg az application.properties fájlt a Eclipse és tárolja a következő adatokat
MobileTesting=//a[text()='MOBILE TESTING']
EmailTextBox = philadelphia-field-email
SignUpButton = philadelphia-field-submit

Adatok tárolása tulajdonságfájlban

4) Ehhez az oktatóanyaghoz a következő bemutató webhelyet használjuk:

https://demo.guru99.com/test/guru99home/Itt van a tesztforgatókönyv:

  • Kattintson a Mobil tesztelés linkre az XPATH használatával
  • Navigáljon vissza
  • Írja be az adatokat az e-mail szövegmezőbe azonosító használatával
  • Kattintson a Regisztráció gombra az azonosító használatával

3. lépés: Adatok beolvasása a tulajdonságfájlból

  1. Egy properties fájlból az adatok olvasása a java.util csomagban található beépített Properties osztály használatával végezhető el.
  2. Kezdetben létre kell hozni egy Properties osztályú objektumot az alábbiak szerint:
  Properties obj = new Properties();
  1. Létre kell hoznunk egy FileInputStream osztályú objektumot a properties fájl elérési útjával.
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
  1. Egy properties fájlból az adatok olvasása a Java Properties osztálya által kínált load metódussal végezhető el. Az alábbi kód a load metódus használatát mutatja be.
Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
obj.load(objfile);
String mobileTesting = obj.getProperty("MobileTesting");

A „mobileTesting” karakterlánc tartalmazza az XPATH-t, amely azonosítja a mobiltesztelés hivatkozást a weboldalon.

4. lépés) A tulajdonságfájl használata tesztszkriptekben

Egy tulajdonságfájl használható tesztszkriptekben úgy, hogy adatokat olvasunk be a tulajdonságfájlból, és paraméterként adjuk át a findElement metódusnak. Az alábbi kód bemutatja a tulajdonságfájlból beolvasott adatok használatát tesztszkriptekben.

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

Az alábbiakban a fenti tesztforgatókönyvhöz használt teljes kód látható.

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 objektumtár XML-fájl használatával

Az XML az Extensible Markup Language (bővíthető jelölőnyelv) rövidítése. Az XML fájlok a Document Object Model (DOM) alapstruktúrát használják. Az XML fájlformátum a weboldal alapjául szolgáló HTML formátumot másolja le. Az alábbiakban a tárgyalt témák listája látható.

1. lépés) XML-fájl létrehozása eclipse-ben

  1. Az alábbi java projektstruktúrát kell létrehozni Eclipse.

XML-fájl létrehozása Eclipse

  1. Kattintson a jobb gombbal a projekt mappára, válassza az Új -> Egyéb lehetőséget

XML-fájl létrehozása Eclipse

  1. Jelölje ki az XML fájlt az XML mappában, és kattintson a „Tovább” gombra.

XML-fájl létrehozása Eclipse

  1. Adjon meg egy érvényes XML fájlnevet, majd kattintson a „Befejezés” gombra.

XML-fájl létrehozása Eclipse

  1. Az alábbiak szerint egy XML-fájl kerül a projekt mappájába

XML-fájl létrehozása Eclipse

2. lépés) Adatok tárolása XML fájlba

Az adatok XML fájlban tárolhatók Document Object Model (DOM) formátumban. Az egyszerűség kedvéért az alábbi tesztforgatókönyvet használhatjuk példaként.

  • Kattintson a Mobil tesztelés linkre az XPATH használatával
  • Vissza a kezdőlapra
  • Írja be az adatokat az e-mail szövegmezőbe azonosító használatával
  • Kattintson a Regisztráció gombra az azonosító használatával

Az alábbiakban a használandó XML fájl formátuma látható.

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

Tárolja a fenti XML-kódot a property.xml fájlban

Adatok tárolása XML fájlba

A tervezés lapon látni fogja

Adatok tárolása XML fájlba

3. lépés) Adatok beolvasása XML fájlból

1. Az XML fájlból történő adatolvasás a Java beépített 'dom4j' osztályával végezhető el. Kérjük, vegye figyelembe, hogy a kód folytatása előtt hozzá kell adnia az alábbi JAR fájlokat a projekt építési útvonalához.

  • jaxen.jar
  • dom4j-1.6.jar

2. Az alábbi kód az XML fájlból történő adatolvasáshoz használható.

        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. Először létre kell hoznunk egy File objektumot, és paraméterként kell átadnunk a SAXReader osztály 'read' metódusának. Miután az XML fájl adatai sikeresen beolvasva lettek, a 'selectSingleNode' metódus segítségével elérhetjük az XML dokumentum egyes csomópontjait.

4. lépés) XML-fájl használata tesztszkriptekben

Egy XML fájl használható tesztszkriptekben úgy, hogy adatokat olvasunk be az XML fájlból, és paraméterként adjuk át a findElement metódusnak. Az alábbi kód bemutatja az XML fájlból beolvasott adatok használatát tesztszkriptekben.

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

Az alábbi kód egy XML fájl használatát mutatja be a selenium WebDriverben.

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

    }
}

Töltse le a WebDrivert Eclipse NetPoulSafe projekt

GYIK

Egy objektumtár csak külsőleg tárolja az elemlokátorokat. Az Oldal objektummodell egy tágabb minta, amely lokátorokat és oldalműveleteket csomagol az oldalosztályokon belül.

Igen. A lokátorok Excel vagy CSV fájlokban is tárolhatók, beolvashatók egy könyvtárral, például az Apache POI-val, és átadhatók a findElementnek.

Használjon egyértelmű, leíró kulcsokat, csoportosítsa a helymeghatározókat oldalanként, előnyben részesítse az állandó helymeghatározókat, például az azonosítót, és kerülje a duplikált elemeket. Modulonként egy adattárat tartson fenn, így a helymeghatározó módosítása egyetlen bejegyzést frissít.

Igen. Számos mesterséges intelligencia által támogatott eszköz beolvas egy oldalt, észleli az elemeket, és exportálja a kész lokátorokat egy adattárba. A tesztelőknek továbbra is ellenőrizniük kell a lokátorok stabilitását.

Az AI önjavító funkciója a futás során figyeli az elemek attribútumait, és amikor egy tárolt lokátor meghibásodik, automatikusan kiválaszt egy alternatív egyezést. Ezáltal a tesztek a kisebb felületváltozások ellenére is futnak, és csökken a karbantartási igény.

Foglald össze ezt a bejegyzést a következőképpen: