Erstellen eines Objekt-Repositorys in Selenium WebDriver: XML & Eigenschaftendatei

Inhaltsverzeichnis:

Anonim

Was ist ein Objekt-Repository?

Ein Objekt-Repository ist ein gemeinsamer Speicherort für alle Objekte. Im Selenium WebDriver-Kontext sind Objekte normalerweise die Locators, mit denen Webelemente eindeutig identifiziert werden.

Der Hauptvorteil der Verwendung des Objekt-Repositorys ist die Trennung von Objekten von 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. Das Verwalten eines Objekt-Repositorys erhöht die Modularität der Framework-Implementierung.

In diesem Tutorial lernen Sie:

  • Was ist ein Objekt-Repository?
  • Arten von Objekt-Repositorys in Selenium Web Driver
  • Selenium Web Driver-Objekt-Repository mithilfe der Eigenschaftendatei
  • Selenium WebDriver-Objekt-Repository mit XML-Datei

Arten von Objekt-Repositorys in Selenium Web Driver

Selenium WebDriver bietet standardmäßig kein eingebautes Objekt-Repository an. Objektrepositorys können jedoch unter Verwendung des Schlüssel-Wert-Paar-Ansatzes erstellt werden, wobei sich der Schlüssel auf den Namen bezieht, der dem Objekt gegeben wurde, und der Wert sich auf die Eigenschaften bezieht, die zum eindeutigen Identifizieren eines Objekts innerhalb der Webseite verwendet werden.

Im Folgenden sind die Arten von Objektrepositorys aufgeführt, die in Selenium WebDriver erstellt werden können.

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

Selenium Web Driver-Objekt-Repository mithilfe der Eigenschaftendatei

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

  • Erstellen einer Eigenschaftendatei in Eclipse
  • Speichern von Daten in einer Eigenschaftendatei
  • Daten aus der Eigenschaftendatei lesen
  • Verwenden der Eigenschaftendatei in Testskripten

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.

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

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

  1. Geben Sie im neuen Dateiressourcenfenster einen gültigen Dateinamen mit der Erweiterung '.properties' ein und klicken Sie auf die Schaltfläche 'Fertig stellen'

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

Schritt 2) Speichern von Daten in der Eigenschaftendatei

  1. Daten werden in Form von Schlüssel-Wert-Paaren in der Eigenschaftendatei gespeichert, wobei der Schlüssel in der gesamten Datei eindeutig ist.
  2. Wir werden versuchen, die Eigenschaftendatei zu verwenden, um Webelements mithilfe von Locator-Werten zu identifizieren.
  3. Öffnen Sie die Datei application.properties in Eclipse und speichern Sie die folgenden Daten
MobileTesting = // a [text () = 'MOBILE TESTING']EmailTextBox = Philadelphia-Feld-E-MailSignUpButton = Philadelphia-Field-Submit

4) Für dieses Tutorial wird die folgende Demo-Website verwendet: http://demo.guru99.com/test/guru99home/. Hier ist das Testszenario:

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

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
 Eigenschaften obj = neue Eigenschaften (); 
  1. Wir müssen ein Objekt der FileInputStream-Klasse mit dem Pfad zur Eigenschaftendatei erstellen
FileInputStream objfile = neuer FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");
  1. Das Lesen von Daten aus der Eigenschaftendatei kann mithilfe der Lademethode erfolgen, die von der Properties-Klasse in Java angeboten wird. Der folgende Code veranschaulicht die Verwendung der Lademethode.
Eigenschaften obj = neue Eigenschaften ();FileInputStream objfile = neuer FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);String mobileTesting = obj.getProperty ("MobileTesting");

Die Zeichenfolge 'mobileTesting' enthält XPATH, um den Link Mobile Testing auf der Webseite zu identifizieren.

Schritt 4) Verwenden der Eigenschaftendatei in Testskripten

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

driver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Diese E-Mail-Adresse wird vor Spambots geschützt. Zum Anzeigen muss JavaScript aktiviert sein.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). click (); 

Das Folgende ist der vollständige Code, der für das obige Testszenario verwendet wird.

Paket 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;öffentliche Klasse DemoOR {public static void main (String [] args) löst IOException aus {// WebDriver-Instanz erstellenWebDriver-Treiber;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Treiber = neuer ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). window (). maxim ();// Lade die EigenschaftendateiEigenschaften obj = neue Eigenschaften ();FileInputStream objfile = neuer FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);// Nagigate, um Mobile Testing und Back zu verknüpfendriver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.navigate (). back ();// Daten in Formular eingebendriver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Diese E-Mail-Adresse wird vor Spambots geschützt. Zum Anzeigen muss JavaScript aktiviert sein.");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. Unten finden Sie eine Liste der Themen, die behandelt werden.

  • Erstellen einer XML-Datei in Eclipse
  • Speichern von Daten in einer XML-Datei
  • Lesen von Daten aus einer XML-Datei
  • Verwenden einer XML-Datei in Testskripten

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

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

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

  1. Wählen Sie die XML-Datei im XML-Ordner aus und klicken Sie auf "Weiter"

  1. Geben Sie einen gültigen XML-Dateinamen ein und klicken Sie auf "Fertig stellen"

  1. Eine XML-Datei wird wie unten gezeigt zum Projektordner hinzugefügt

Schritt 2) Speichern von Daten in einer XML-Datei

Daten können in Form eines Document Object Model (DOM) in einer XML-Datei 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 Daten mit der ID in das E-Mail-Textfeld ein
  • Klicken Sie mit der ID auf die Schaltfläche Anmelden

Das folgende Format zeigt die zu verwendende XML-Datei.

 // a [text () = 'MOBILE TESTING']  philadelphia-field-email  philadelphia-field-submit 

Speichern Sie den obigen XML-Code in der Datei properties.xml

Auf der Registerkarte Design sehen Sie

Schritt 3) Lesen von Daten aus einer XML-Datei

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 Erstellungspfad Ihres Projekts hinzufügen müssen, bevor Sie mit dem Code fortfahren können.

  • jaxen.jar
  • dom4j-1.6.jar

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

Datei inputFile = neue Datei (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = neuer SAXReader ();Dokument 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 Dateiobjekt erstellen und es als Parameter an die 'read'-Methode der SAXReader-Klasse übergeben. Sobald die XML-Dateidaten erfolgreich gelesen wurden, können wir mit der Methode 'selectSingleNode' auf einzelne Knoten des XML-Dokuments zugreifen.

Schritt 4) Verwenden der XML-Datei in Testskripten

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

driver.findElement (By.xpath (mobileTesting)). click ();driver.findElement (By.id (emailTextBox)). sendKeys (" Diese E-Mail-Adresse ist vor Spambots geschützt. Zum Anzeigen muss JavaScript aktiviert sein.");driver.findElement (By.id (signUpButton)). click ();

Der folgende Code demonstriert die Verwendung von XML-Dateien in Selenium WebDriver

Paket 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;öffentliche Klasse DemoORXML {public static void main (String [] args) löst DocumentException {aus// WebDriver-Instanz erstellenWebDriver-Treiber;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Treiber = neuer ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). window (). maxim ();// XML-Datei lesenDatei inputFile = neue Datei (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = neuer SAXReader ();Dokument 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 ();// Navigieren zu Mobile Testing und zurückdriver.findElement (By.xpath (mobileTesting)). click ();driver.navigate (). back ();// Formulardaten eingebendriver.findElement (By.id (emailTextBox)). sendKeys (" Diese E-Mail-Adresse ist vor Spambots geschützt. Zum Anzeigen muss JavaScript aktiviert sein.");driver.findElement (By.id (signUpButton)). click ();}}}}

Laden Sie das WebDriver Eclipse-Projekt herunter

Zusammenfassung:

  • Ein Objekt-Repository ist ein gemeinsamer Speicherort für alle Objekte
  • Selenium WebDriver bietet standardmäßig kein eingebautes Objekt-Repository an
  • Sie können in Selenium zwei Arten von Objekt-Repositorys erstellen
    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.