Ú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.

  1. Úložiště objektů pomocí souboru Vlastnosti
  2. 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.

Krok 1) Vytvoření souboru vlastností v Eclipse

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

Vytvoření souboru vlastností v Eclipse

  1. Klepněte pravým tlačítkem myši na hlavní složku projektu a vyberte Nový-> Jiné

Vytvoření souboru vlastností v Eclipse

  1. V dalším okně vyberte Obecné -> Soubor a klikněte na tlačítko 'Další'

Vytvoření souboru vlastností v Eclipse

  1. V okně nového prostředku souboru zadejte platný název souboru s příponou '.properties' a klikněte na tlačítko 'Dokončit'

Vytvoření souboru vlastností v Eclipse

  1. Ve struktuře projektu musí být zobrazen soubor s názvem 'application.properties'

Vytvoření souboru vlastností v Eclipse

Krok 2) Uložení dat do souboru vlastností

  1. Data jsou uložena v souboru vlastností ve formě párů klíč-hodnota, přičemž klíč je v celém souboru jedinečný.
  2. Pokusíme se použít soubor vlastností k identifikaci webových prvků pomocí hodnot lokátoru.
  3. 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

Ukládání dat do souboru vlastností

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í

  1. Čtení dat ze souboru vlastností lze provést pomocí vestavěné třídy Vlastnosti poskytované v balíčku java.util.
  2. Nejprve je třeba vytvořit objekt třídy Vlastnosti, jak je uvedeno níže
  Properties obj = new Properties();
  1. Potřebujeme vytvořit objekt třídy FileInputStream s cestou k souboru vlastností
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
  1. Č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.

Krok 1) Vytvoření souboru XML v Eclipse

  1. Níže uvedená struktura java projektu musí být vytvořena v Eclipse.

Vytvoření souboru XML v Eclipse

  1. Klepněte pravým tlačítkem myši na složku projektu, vyberte Nový -> Jiné

Vytvoření souboru XML v Eclipse

  1. Vyberte soubor XML ve složce XML a klikněte na tlačítko 'Další'

Vytvoření souboru XML v Eclipse

  1. Zadejte platný název souboru XML a klikněte na tlačítko 'Dokončit'

Vytvoření souboru XML v Eclipse

  1. Soubor XML bude přidán do složky projektu, jak je znázorněno níže

Vytvoření souboru XML v Eclipse

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

Ukládání dat do souboru XML

V záložce design uvidíte

Ukládání dat do souboru XML

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
    1. Úložiště objektů pomocí souboru Vlastnosti
    2. 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.