Objekt-Repository in Selenium
⚡ Intelligente Zusammenfassung
Objekt-Repository in Selenium Die Element-Locators werden in einer einzigen externen Datei zentralisiert und somit von den Testskripten getrennt. Dieser Ansatz vereinfacht die Wartung und ermöglicht es Testern, Locators an einer zentralen Stelle zu aktualisieren, anstatt zahlreiche Testfälle bearbeiten zu müssen.

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 größte Vorteil eines Objekt-Repositorys liegt in der Trennung von Objekten und Testfällen. Ändert sich der Locator-Wert eines Web-Elements, muss lediglich das Objekt-Repository angepasst werden, anstatt alle Testfälle, in denen der Locator verwendet wurde, zu ändern. 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. Objekt-Repositories lassen sich jedoch mithilfe von Schlüssel-Wert-Paaren erstellen, wobei der Schlüssel den Namen des Objekts und der Wert die Eigenschaften angibt, die zur eindeutigen Identifizierung des Objekts innerhalb der Webseite verwendet werden.
Die folgenden Objekt-Repository-Typen können in Selenium WebDriver.
- Objekt-Repository mithilfe der Eigenschaftendatei
- Objekt-Repository mit XML-Datei
Selenium Web Driver Object-Repository mithilfe der Eigenschaftendatei
Bei diesem Ansatz ist eine Eigenschaftendatei eine Textdatei, in der Daten in Form von Schlüssel-Wert-Paaren gespeichert werden. Das folgende Tutorial behandelt die folgenden Themen.
Schritt 1) Erstellen einer Eigenschaftendatei in Eclipse
- Zunächst muss die unten stehende Java-Projektstruktur in Eclipse erstellt werden. Projektname und Paketname können beliebige gültige Namen sein.
- Klicken Sie mit der rechten Maustaste auf den Hauptprojektordner und wählen Sie Neu -> Andere.
- Im nächsten Fenster wählen Sie Allgemein -> Datei und klicken auf die Schaltfläche „Weiter“.
- Geben Sie im Fenster „Neue Dateiressource“ einen gültigen Dateinamen mit der Erweiterung „.properties“ ein und klicken Sie auf die Schaltfläche „Fertigstellen“.
- In der Projektstruktur muss eine Datei mit dem Namen „application.properties“ angezeigt werden.
Schritt 2) Speichern von Daten in der Eigenschaftendatei
- Die Daten werden in einer Eigenschaftendatei in Form von Schlüssel-Wert-Paaren gespeichert, wobei der Schlüssel innerhalb der Datei eindeutig ist.
- Wir werden versuchen, mithilfe der Eigenschaftendatei Webelemente anhand von Locatorwerten zu identifizieren.
- Ö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
4) Für dieses Tutorial wird die folgende Demo-Website verwendet:
https://demo.guru99.com/test/guru99home/Hier ist das Testszenario:
- Klicken Sie mithilfe von 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
- Das Lesen von Daten aus einer Properties-Datei kann mithilfe der integrierten Properties-Klasse aus dem java.util-Paket erfolgen.
- Zunächst muss ein Objekt der Klasse Properties wie folgt erstellt werden:
Properties obj = new Properties();
- Wir müssen ein Objekt der Klasse FileInputStream mit dem Pfad zur Eigenschaftendatei erstellen.
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
- Daten aus einer Properties-Datei können mithilfe der `load`-Methode der `Properties`-Klasse in Java gelesen werden. Der folgende Code veranschaulicht die Verwendung der `load`-Methode.
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
Eine Eigenschaftendatei kann in Testskripten verwendet werden, indem Daten aus der Eigenschaftendatei gelesen und als Parameter an die Methode `findElement` übergeben werden. Der folgende Code veranschaulicht die Verwendung von Daten aus einer Eigenschaftendatei 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); // 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-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 bildet das HTML-Format nach, auf dem die Webseite basiert. Im Folgenden finden Sie eine Liste der behandelten Themen.
- Erstellen einer XML-Datei in Eclipse
- Speichern von Daten in einer XML-Datei
- Daten aus XML-Datei lesen
- Verwendung einer XML-Datei in Testskripten
Schritt 1) Erstellen einer XML-Datei in Eclipse
- Die folgende Java-Projektstruktur muss erstellt werden Eclipse.
- Klicken Sie mit der rechten Maustaste auf den Projektordner und wählen Sie Neu -> Andere
- Wählen Sie die XML-Datei im XML-Ordner aus und klicken Sie auf die Schaltfläche „Weiter“.
- Geben Sie einen gültigen XML-Dateinamen ein und klicken Sie auf die Schaltfläche „Fertigstellen“.
- Dem Projektordner wird eine XML-Datei hinzugefügt, wie unten gezeigt
Schritt 2) Speichern der Daten in einer XML-Datei
Daten können in einer XML-Datei im Format des Document Object Model (DOM) gespeichert werden. Zur Vereinfachung kann das folgende Testszenario als Beispiel verwendet werden.
- Klicken Sie mithilfe von XPath auf den Link „Mobile Testing“.
- 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 ist das Format der zu verwendenden XML-Datei aufgeführt.
<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
Auf der Registerkarte „Design“ sehen Sie
Schritt 3) Daten aus der XML-Datei lesen
1. Daten aus einer XML-Datei können mithilfe der in Java integrierten Klasse „dom4j“ gelesen werden. Bitte beachten Sie, dass Sie die unten aufgeführten JAR-Dateien zum Build-Pfad Ihres Projekts hinzufügen müssen, bevor Sie mit dem Code fortfahren.
- jaxen.jar
- dom4j-1.6.jar
2. Nachfolgend der Code zum Lesen von Daten aus der 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 muss ein File-Objekt erstellt und als Parameter an die Methode „read“ der Klasse SAXReader übergeben werden. Sobald die XML-Datei erfolgreich gelesen wurde, können die einzelnen Knoten des XML-Dokuments mit der Methode „selectSingleNode“ aufgerufen werden.
Schritt 4) Verwendung einer XML-Datei in Testskripten
Eine 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 veranschaulicht die Verwendung von Daten aus einer XML-Datei 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 einer XML-Datei 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













