Úložiště objektů v Selenium (XML a soubor vlastností)
Co je to objektové úložiště?
Úložiště objektů je společné úložiště pro všechny objekty. v Selenium V kontextu WebDriver by objekty byly obvykle lokátory používané k jedinečné identifikaci webových prvků.
Hlavní výhodou použití objektového úložiště je oddělení objektů od testovacích případů. Pokud se změní hodnota lokátoru jednoho webového prvku, je třeba změnit pouze úložiště objektů, nikoli provádět změny ve všech testovacích případech, ve kterých byl lokátor použit. Údržba úložiště objektů zvyšuje modularitu implementace rámce.
Typy úložišť objektů v Selenium Webový ovladač
Selenium WebDriver ve výchozím nastavení nenabízí vestavěné úložiště objektů. Úložiště objektů však lze vytvořit pomocí přístupu páru klíč-hodnota, kde klíč odkazuje na název daného objektu a hodnota odkazuje na vlastnosti používané k jedinečné identifikaci objektu na webové stránce.
Níže jsou uvedeny typy úložišť objektů, které lze vytvořit Selenium WebDriver.
- Úložiště objektů pomocí souboru Vlastnosti
- Objektové úložiště pomocí souboru XML
Selenium Úložiště objektů webového ovladače pomocí souboru Vlastnosti
V tomto přístupu je soubor vlastností textový soubor, ve kterém jsou data uložena ve formě párů klíč-hodnota. Níže uvedený tutoriál se bude zabývat následujícími tématy.
- Vytvoření souboru vlastností v Eclipse
- Ukládání dat do souboru vlastností
- Čtení dat ze souboru vlastností
- Použití souboru vlastností v testovacích skriptech
Krok 1) Vytvoření souboru vlastností v Eclipse
- Pro začátek je třeba vytvořit níže uvedenou strukturu java projektu v Eclipse. Název projektu a název balíčku mohou být libovolné platné názvy.
- Klepněte pravým tlačítkem myši na hlavní složku projektu a vyberte Nový-> Jiné
- V dalším okně vyberte Obecné -> Soubor a klikněte na tlačítko 'Další'
- V okně nového prostředku souboru zadejte platný název souboru s příponou '.properties' a klikněte na tlačítko 'Dokončit'
- Ve struktuře projektu musí být zobrazen soubor s názvem 'application.properties'
Krok 2) Uložení dat do souboru vlastností
- Data jsou uložena v souboru vlastností ve formě párů klíč-hodnota, přičemž klíč je v celém souboru jedinečný.
- Pokusíme se použít soubor vlastností k identifikaci webových prvků pomocí hodnot lokátoru.
- Otevřete soubor application.properties v Eclipse a uložte si následující data
MobileTesting=//a[text()='MOBILE TESTING'] EmailTextBox = philadelphia-field-email SignUpButton = philadelphia-field-submit
4) Pro tento tutoriál se používá následující demo web:
https://demo.guru99.com/test/guru99home/. Zde je testovací scénář:
- Klikněte na odkaz Mobile Testing pomocí XPATH
- Přejít zpět
- Zadejte data do textové schránky e-mailu pomocí ID
- Klikněte na tlačítko Zaregistrovat se pomocí ID
Krok 3) Načtení dat ze souboru vlastností
- Čtení dat ze souboru vlastností lze provést pomocí vestavěné třídy Vlastnosti poskytované v balíčku java.util.
- Nejprve je třeba vytvořit objekt třídy Vlastnosti, jak je uvedeno níže
Properties obj = new Properties();
- Potřebujeme vytvořit objekt třídy FileInputStream s cestou k souboru vlastností
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
- Čtení dat ze souboru vlastností lze provést pomocí metody načítání nabízené třídou Properties v jazyce Java. Níže uvedený kód ukazuje použití metody zatížení.
Properties obj = new Properties(); FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties"); obj.load(objfile); String mobileTesting = obj.getProperty("MobileTesting");
Řetězec 'mobileTesting' bude obsahovat XPATH k identifikaci odkazu Mobile Testing na webové stránce.
Krok 4) Použití souboru vlastností v testovacích skriptech
Soubor vlastností lze použít v testovacích skriptech načtením dat ze souboru vlastností a předáním dat jako parametru metodě findElement. Níže uvedený kód ukazuje použití dat načtených ze souboru vlastností v testovacích skriptech.
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();
Níže je uveden úplný kód použitý pro výše uvedený testovací scénář.
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 WebDriver Object Repository pomocí XML souboru
XML je zkratka pro Extensible Markup Language. Soubor XML používá jako základní strukturu Document Object Model (DOM). Formát souboru XML bude replikovat formát HTML, na kterém je webová stránka vytvořena. Níže je uveden seznam témat, která budou pokryta.
- Vytvoření souboru XML v Eclipse
- Ukládání dat do XML souboru
- Čtení dat z XML souboru
- Použití XML souboru v testovacích skriptech
Krok 1) Vytvoření souboru XML v Eclipse
- Níže uvedená struktura java projektu musí být vytvořena v Eclipse.
- Klepněte pravým tlačítkem myši na složku projektu, vyberte Nový -> Jiné
- Vyberte soubor XML ve složce XML a klikněte na tlačítko 'Další'
- Zadejte platný název souboru XML a klikněte na tlačítko 'Dokončit'
- Soubor XML bude přidán do složky projektu, jak je znázorněno níže
Krok 2) Uložení dat do souboru XML
Data mohou být uložena v XML souboru ve formě Document Object Model (DOM). Pro jednoduchost můžeme jako příklad použít níže uvedený testovací scénář.
- Klikněte na odkaz Mobile Testing pomocí XPATH
- Přejděte zpět na domovskou stránku
- Zadejte data do textové schránky e-mailu pomocí ID
- Klikněte na tlačítko Zaregistrovat se pomocí ID
Níže je uveden formát souboru XML, který se má použít.
<menu> <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting> <email> philadelphia-field-email</email> <signup> philadelphia-field-submit </signup> </menu>
Uložte výše uvedený kód XML do souboru properties.xml
V záložce design uvidíte
Krok 3) Načtení dat ze souboru XML
1. Čtení dat ze souboru XML lze provést pomocí vestavěné třídy 'dom4j' v jazyce Java. Vezměte prosím na vědomí, že před pokračováním v kódu musíte přidat níže uvedené soubory JAR do cesty k sestavení vašeho projektu.
- jaxen.jar
- dom4j-1.6.jar
2. Níže je uveden kód pro čtení dat ze souboru 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. Nejprve musíme vytvořit objekt File a předat jej jako parametr metodě 'read' třídy SAXReader. Jakmile jsou data souboru XML úspěšně načtena, můžeme přistupovat k jednotlivým uzlům dokumentu XML pomocí metody 'selectSingleNode'.
Krok 4) Použití souboru XML v testovacích skriptech
Soubor XML lze použít v testovacích skriptech načtením dat ze souboru XML a předáním dat jako parametru metodě findElement. Níže uvedený kód demonstruje použití dat načtených ze souboru XML v testovacích skriptech.
driver.findElement(By.xpath(mobileTesting)).click(); driver.findElement(By.id(emailTextBox)).sendKeys("testguru99@gmail.com"); driver.findElement(By.id(signUpButton)).click();
Níže uvedený kód demonstruje použití souboru XML v selenovém 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(); } }
Stáhněte si WebDriver Eclipse Projekt
Shrnutí
- Úložiště objektů je společné úložiště pro všechny objekty
- Selenium WebDriver ve výchozím nastavení nenabízí vestavěné úložiště objektů
- Můžete vytvořit 2 typy objektového úložiště Selenium
- Úložiště objektů pomocí souboru Vlastnosti
- Objektové úložiště pomocí souboru XML
- Soubor vlastností je textový soubor, ve kterém jsou uložena data ve formě párů klíč-hodnota
- Formát souboru XML bude replikovat formát HTML, na kterém je webová stránka vytvořena.