Objekt-Repository in Selenium (XML- und Eigenschaftendatei)

Was ist ein Objekt-Repository?

Ein Objekt-Repository ist ein gemeinsamer Speicherort für alle Objekte. In Selenium Im WebDriver-Kontext sind Objekte typischerweise die Locators, die zur eindeutigen Identifizierung von Webelementen verwendet werden.

Der Hauptvorteil der Verwendung eines Objekt-Repositorys ist die Trennung von Objekten und Testfällen. Wenn sich der Locator-Wert eines Webelements ändert, muss nur das Objekt-Repository geändert werden, anstatt in allen Testfällen, in denen der Locator verwendet wurde, Änderungen vorzunehmen. Die Pflege eines Objekt-Repositorys erhöht die Modularität der Framework-Implementierung.

Arten von Objekt-Repositorys in Selenium Web-Treiber

Selenium WebDriver bietet standardmäßig kein integriertes Objekt-Repository. Objektrepositorys können jedoch mithilfe des Schlüssel-Wert-Paar-Ansatzes erstellt werden, bei dem sich der Schlüssel auf den Namen des Objekts und der Wert auf die Eigenschaften bezieht, die zur eindeutigen Identifizierung eines Objekts auf der Webseite verwendet werden.

Die folgenden Objekt-Repository-Typen können in Selenium WebDriver.

  1. Objekt-Repository mithilfe der Eigenschaftendatei
  2. Objekt-Repository mit XML-Datei

Selenium Web Driver Object-Repository mithilfe der Eigenschaftendatei

Bei diesem Ansatz ist die Eigenschaftendatei eine Textdatei, in der Daten in Form von Schlüssel-Wert-Paaren gespeichert sind. Das folgende Tutorial behandelt die folgenden Themen.

Schritt 1) ​​Erstellen einer Eigenschaftendatei in Eclipse

  1. Zunächst muss die folgende Java-Projektstruktur in Eclipse erstellt werden. Projektname und Paketname können beliebige gültige Namen sein.

Erstellen einer Eigenschaftendatei in Eclipse

  1. Klicken Sie mit der rechten Maustaste auf den Hauptprojektordner und wählen Sie Neu -> Andere

Erstellen einer Eigenschaftendatei in Eclipse

  1. Wählen Sie im nächsten Fenster „Allgemein -> Datei“ und klicken Sie auf die Schaltfläche „Weiter“.

Erstellen einer Eigenschaftendatei in Eclipse

  1. Geben Sie im Fenster „Neue Dateiressource“ einen gültigen Dateinamen mit der Erweiterung „.properties“ ein und klicken Sie auf die Schaltfläche „Fertig stellen“.

Erstellen einer Eigenschaftendatei in Eclipse

  1. Eine Datei mit dem Namen „application.properties“ muss in der Projektstruktur angezeigt werden

Erstellen einer Eigenschaftendatei in Eclipse

Schritt 2) Speichern von Daten in der Eigenschaftendatei

  1. Daten werden in der Eigenschaftendatei in Form von Schlüssel-Wert-Paaren gespeichert, wobei der Schlüssel in der gesamten Datei eindeutig ist.
  2. Wir werden versuchen, die Eigenschaftendatei zu verwenden, um Webelemente mithilfe von Locator-Werten zu identifizieren.
  3. Öffnen Sie die Datei application.properties in Eclipse und speichern folgende Daten
MobileTesting=//a[text()='MOBILE TESTING']
EmailTextBox = philadelphia-field-email
SignUpButton = philadelphia-field-submit

Speichern von Daten in einer Eigenschaftendatei

4) Für dieses Tutorial wird die folgende Demo-Website verwendet:

https://demo.guru99.com/test/guru99home/. Hier ist das Testszenario:

  • Klicken Sie mit XPATH auf den Link Mobile Testing
  • Zurück navigieren
  • Geben Sie die Daten mithilfe der ID in das E-Mail-Textfeld ein
  • Klicken Sie auf die Schaltfläche „Anmelden“ mit ID

Schritt 3) Lesen von Daten aus der Eigenschaftendatei

  1. Das Lesen von Daten aus der Eigenschaftendatei kann mithilfe der integrierten Eigenschaftenklasse erfolgen, die im Paket java.util bereitgestellt wird.
  2. Zunächst muss ein Objekt der Properties-Klasse wie folgt erstellt werden
  Properties obj = new Properties();
  1. Wir müssen ein Objekt der FileInputStream-Klasse mit dem Pfad zur Eigenschaftendatei erstellen
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
  1. Das Lesen von Daten aus der Eigenschaftendatei kann mithilfe der von der Properties-Klasse in Java angebotenen Lademethode erfolgen. Der folgende Code demonstriert die Verwendung der Lademethode.
Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
obj.load(objfile);
String mobileTesting = obj.getProperty("MobileTesting");

Die Zeichenfolge „mobileTesting“ enthält den XPATH zur Identifizierung des Mobile Testing-Links auf der Webseite.

Schritt 4) Verwendung der Eigenschaftendatei in Testskripten

Die Eigenschaftendatei kann in Testskripten verwendet werden, indem Daten aus einer Eigenschaftendatei gelesen und als Parameter an die Methode findElement übergeben werden. Der folgende Code demonstriert die Verwendung von aus der Eigenschaftendatei gelesenen Daten in Testskripten.

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

Nachfolgend finden Sie den vollständigen Code, der für das obige Testszenario verwendet wird.

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-Objekt-Repository mit XML-Datei

XML steht für Extensible Markup Language. Eine XML-Datei verwendet das Document Object Model (DOM) als Grundstruktur. Das XML-Dateiformat repliziert das HTML-Format, auf dem die Webseite aufgebaut ist. Nachfolgend finden Sie die Liste der Themen, die behandelt werden.

Schritt 1) ​​Erstellen einer XML-Datei in Eclipse

  1. Die folgende Java-Projektstruktur muss erstellt werden Eclipse.

Erstellen einer XML-Datei in Eclipse

  1. Klicken Sie mit der rechten Maustaste auf den Projektordner und wählen Sie Neu -> Andere

Erstellen einer XML-Datei in Eclipse

  1. Wählen Sie die XML-Datei im XML-Ordner aus und klicken Sie auf die Schaltfläche „Weiter“.

Erstellen einer XML-Datei in Eclipse

  1. Geben Sie einen gültigen XML-Dateinamen ein und klicken Sie auf die Schaltfläche „Fertig stellen“.

Erstellen einer XML-Datei in Eclipse

  1. Dem Projektordner wird eine XML-Datei hinzugefügt, wie unten gezeigt

Erstellen einer XML-Datei in Eclipse

Schritt 2) Speichern der Daten in einer XML-Datei

Daten können in einer XML-Datei in Form eines Document Object Model (DOM) gespeichert werden. Der Einfachheit halber können wir das folgende Testszenario als Beispiel verwenden.

  • Klicken Sie mit XPATH auf den Link Mobile Testing
  • Navigieren Sie zurück zur Startseite
  • Geben Sie die Daten mithilfe der ID in das E-Mail-Textfeld ein
  • Klicken Sie auf die Schaltfläche „Anmelden“ mit ID

Nachfolgend finden Sie das zu verwendende Format der XML-Datei.

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

Speichern Sie den obigen XML-Code in Properties.xml

Speichern von Daten in einer XML-Datei

Auf der Registerkarte „Design“ sehen Sie

Speichern von Daten in einer XML-Datei

Schritt 3) Daten aus der XML-Datei lesen

1. Das Lesen von Daten aus einer XML-Datei kann mithilfe der in Java integrierten Klasse „dom4j“ erfolgen. Bitte beachten Sie, dass Sie die folgenden JAR-Dateien zum Buildpfad Ihres Projekts hinzufügen müssen, bevor Sie mit dem Code fortfahren.

  • jaxen.jar
  • dom4j-1.6.jar

2. Unten finden Sie den Code zum Lesen von Daten aus einer XML-Datei.

		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. Zunächst müssen wir ein File-Objekt erstellen und es als Parameter an die Methode „read“ der Klasse SAXReader übergeben. Sobald die XML-Dateidaten erfolgreich gelesen wurden, können wir mit der Methode „selectSingleNode“ auf einzelne Knoten des XML-Dokuments zugreifen.

Schritt 4) Verwendung einer XML-Datei in Testskripten

Die XML-Datei kann in Testskripten verwendet werden, indem Daten aus der XML-Datei gelesen und als Parameter an die Methode findElement übergeben werden. Der folgende Code demonstriert die Verwendung von aus einer XML-Datei gelesenen Daten in Testskripten.

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

Der folgende Code demonstriert die Verwendung von XML-Dateien in 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();				

	}		
}		

Laden Sie den WebDriver herunter Eclipse Projekt

Zusammenfassung

  • Ein Objekt-Repository ist ein gemeinsamer Speicherort für alle Objekte
  • Selenium WebDriver bietet standardmäßig kein integriertes Objekt-Repository
  • Sie können in zwei Arten von Objekt-Repositorys erstellen Selenium
    1. Objekt-Repository mithilfe der Eigenschaftendatei
    2. Objekt-Repository mit XML-Datei
  • Die Eigenschaftendatei ist eine Textdatei, in der Daten in Form von Schlüssel-Wert-Paaren gespeichert werden
  • Das XML-Dateiformat repliziert das HTML-Format, auf dem die Webseite aufgebaut ist.