Tworzenie repozytorium obiektów w Selenium WebDriver: XML & Plik właściwości

Spisie treści:

Anonim

Co to jest repozytorium obiektów?

Repozytorium obiektów to wspólne miejsce przechowywania wszystkich obiektów. W kontekście Selenium WebDriver obiekty byłyby zazwyczaj lokalizatorami używanymi do jednoznacznej identyfikacji elementów sieci.

Główną zaletą korzystania z repozytorium obiektów jest oddzielenie obiektów od przypadków testowych. Jeśli wartość lokalizatora jednego elementu sieci Web ulegnie zmianie, należy zmienić tylko repozytorium obiektów, zamiast wprowadzać zmiany we wszystkich przypadkach testowych, w których został użyty lokalizator. Utrzymanie repozytorium obiektów zwiększa modułowość implementacji frameworka.

W tym samouczku nauczysz się:

  • Co to jest repozytorium obiektów?
  • Typy repozytoriów obiektów w sterowniku sieciowym Selenium
  • Repozytorium obiektów Selenium Web Driver przy użyciu pliku Właściwości
  • Repozytorium obiektów Selenium WebDriver przy użyciu pliku XML

Typy repozytoriów obiektów w sterowniku sieciowym Selenium

Selenium WebDriver domyślnie nie oferuje wbudowanego repozytorium obiektów. Jednak repozytoria obiektów można budować przy użyciu podejścia par klucz-wartość, w którym klucz odnosi się do nazwy nadanej obiektowi, a wartość odnosi się do właściwości używanych do jednoznacznej identyfikacji obiektu na stronie internetowej.

Poniżej przedstawiono typy repozytoriów obiektów, które można utworzyć w Selenium WebDriver.

  1. Repozytorium obiektów przy użyciu pliku Właściwości
  2. Repozytorium obiektów przy użyciu pliku XML

Repozytorium obiektów Selenium Web Driver przy użyciu pliku Właściwości

W tym podejściu plik właściwości jest plikiem tekstowym, w którym dane są przechowywane w postaci par klucz-wartość. Poniższy samouczek dotyczy następujących tematów.

  • Tworzenie pliku właściwości w zaćmieniu
  • Zapisywanie danych w pliku właściwości
  • Odczytywanie danych z pliku właściwości
  • Używanie pliku właściwości w skryptach testowych

Krok 1) Tworzenie pliku właściwości w programie Eclipse

  1. Na początek poniższa struktura projektu Java musi zostać utworzona w zaćmieniu. Nazwa projektu i nazwa pakietu mogą być dowolnymi prawidłowymi nazwami.

  1. Kliknij prawym przyciskiem myszy główny folder projektu i wybierz Nowy-> Inne

  1. W następnym oknie wybierz Ogólne -> Plik i kliknij przycisk „Dalej”

  1. Podaj prawidłową nazwę pliku z rozszerzeniem „.properties” w nowym oknie zasobu pliku i kliknij przycisk „Zakończ”

  1. Plik o nazwie „application.properties” musi być wyświetlony w strukturze projektu

Krok 2) Zapisywanie danych w pliku właściwości

  1. Dane są przechowywane w pliku właściwości w postaci par klucz-wartość, przy czym klucz jest unikalny w całym pliku.
  2. Postaramy się użyć pliku właściwości do identyfikacji elementów internetowych za pomocą wartości lokalizatora.
  3. Otwórz plik application.properties w Eclipse i zapisz następujące dane
MobileTesting = // a [text () = 'TESTOWANIE MOBILNE']EmailTextBox = philadelphia-field-emailSignUpButton = philadelphia-field-submit

4) W tym samouczku używana jest następująca witryna demonstracyjna: http://demo.guru99.com/test/guru99home/. Oto scenariusz testowy:

  • Kliknij łącze Testowanie mobilne za pomocą XPATH
  • Cofnij się
  • Wprowadź dane do pola tekstowego e-maila za pomocą identyfikatora
  • Kliknij przycisk Zarejestruj się za pomocą identyfikatora

Krok 3) Odczyt danych z pliku właściwości

  1. Odczyt danych z pliku properties może odbywać się za pomocą wbudowanej klasy Properties dostarczonej w pakiecie java.util.
  2. Początkowo należy utworzyć obiekt klasy Properties jak poniżej
 Właściwości obj = new Properties (); 
  1. Musimy stworzyć obiekt klasy FileInputStream ze ścieżką do pliku właściwości
FileInputStream objfile = new FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");
  1. Odczyt danych z pliku properties można wykonać metodą load oferowaną przez klasę Properties w java. Poniższy kod demonstruje użycie metody ładowania.
Właściwości obj = new Properties ();FileInputStream objfile = new FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);String mobileTesting = obj.getProperty ("MobileTesting");

Ciąg „mobileTesting” będzie zawierał XPATH do identyfikacji linku do testów mobilnych na stronie internetowej.

Krok 4) Używanie pliku właściwości w skryptach testowych

Plik właściwości można używać w skryptach testowych, odczytując dane z pliku właściwości i przekazując dane jako parametr do metody findElement. Poniższy kod demonstruje użycie danych odczytanych z pliku properties w skryptach testowych.

driver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Ten adres e-mail jest chroniony przed robotami spamującymi. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). click (); 

Poniżej znajduje się pełny kod użyty w powyższym scenariuszu testowym.

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;klasa publiczna DemoOR {public static void main (String [] args) rzuca IOException {// Utwórz instancję WebDriverSterownik WebDriver;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");sterownik = nowy ChromeDriver ();driver.get („http://demo.guru99.com/test/guru99home/”);driver.manage (). window (). maximize ();// Załaduj plik właściwościWłaściwości obj = new Properties ();FileInputStream objfile = new FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);// Nagigate to link Mobile Testing and Backdriver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.navigate (). back ();// Wprowadź dane do formularzadriver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Ten adres e-mail jest chroniony przed robotami spamującymi. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). click ();}}

Repozytorium obiektów Selenium WebDriver przy użyciu pliku XML

XML to skrót od Extensible Markup Language. Plik XML wykorzystuje model obiektu dokumentu (DOM) jako podstawową strukturę. Format pliku XML będzie replikować format HTML, na podstawie którego zbudowana jest strona internetowa. Poniżej znajduje się lista tematów, które zostaną poruszone.

  • Tworzenie pliku XML w Eclipse
  • Przechowywanie danych w pliku XML
  • Odczytywanie danych z pliku XML
  • Używanie pliku XML w skryptach testowych

Krok 1) Tworzenie pliku XML w Eclipse

  1. Poniższa struktura projektu Java musi zostać utworzona w Eclipse.

  1. Kliknij prawym przyciskiem myszy folder projektu, wybierz Nowy -> Inne

  1. Wybierz plik XML w folderze XML i kliknij przycisk „Dalej”

  1. Wprowadź prawidłową nazwę pliku XML i kliknij przycisk „Zakończ”

  1. Plik XML zostanie dodany do folderu projektu, jak pokazano poniżej

Krok 2) Przechowywanie danych w pliku XML

Dane mogą być przechowywane w pliku XML w postaci Document Object Model (DOM). Dla uproszczenia jako przykładu możemy użyć poniższego scenariusza testowego.

  • Kliknij łącze Testowanie mobilne za pomocą XPATH
  • Przejdź z powrotem do strony głównej
  • Wprowadź dane do pola tekstowego e-maila za pomocą identyfikatora
  • Kliknij przycisk Zarejestruj się za pomocą identyfikatora

Poniżej przedstawiono format pliku XML, który ma zostać użyty.

 // a [text () = 'TESTOWANIE MOBILNE']  philadelphia-field-email  philadelphia-field-submit 

Powyższy kod XML należy przechowywać w pliku properties.xml

W zakładce projektu zobaczysz

Krok 3) Odczyt danych z pliku XML

1. Odczyt danych z pliku XML można przeprowadzić za pomocą wbudowanej klasy „dom4j” w java. Pamiętaj, że przed kontynuowaniem kodu musisz dodać poniższe pliki JAR do ścieżki kompilacji projektu.

  • jaxen.jar
  • dom4j-1.6.jar

2. Poniżej znajduje się kod do odczytu danych z pliku XML.

File inputFile = nowy plik (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = new 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. Najpierw musimy stworzyć obiekt File i przekazać go jako parametr do metody 'read' klasy SAXReader. Po pomyślnym odczytaniu danych pliku XML możemy uzyskać dostęp do poszczególnych węzłów dokumentu XML za pomocą metody „selectSingleNode”.

Krok 4) Używanie pliku XML w skryptach testowych

Plik XML można wykorzystać w skryptach testowych, odczytując dane z pliku XML i przekazując dane jako parametr do metody findElement. Poniższy kod demonstruje użycie danych odczytanych z pliku XML w skryptach testowych.

driver.findElement (By.xpath (mobileTesting)). click ();driver.findElement (By.id (emailTextBox)). sendKeys (" Ten adres e-mail jest chroniony przed robotami spamującymi. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript.");driver.findElement (By.id (signUpButton)). click ();

Poniższy kod demonstruje użycie pliku XML w 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;klasa publiczna DemoORXML {public static void main (String [] args) rzuca wyjątek DocumentException {// Tworzenie instancji WebDriverSterownik WebDriver;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");sterownik = nowy ChromeDriver ();driver.get („http://demo.guru99.com/test/guru99home/”);driver.manage (). window (). maximize ();// Czytanie pliku XMLFile inputFile = nowy plik (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = new 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 ();// Przechodzenie do Testowania mobilnego i z powrotemdriver.findElement (By.xpath (mobileTesting)). click ();driver.navigate (). back ();// Wprowadzanie danych formularzadriver.findElement (By.id (emailTextBox)). sendKeys (" Ten adres e-mail jest chroniony przed robotami spamującymi. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript.");driver.findElement (By.id (signUpButton)). click ();}}

Pobierz projekt WebDriver Eclipse

Podsumowanie:

  • Repozytorium obiektów to wspólne miejsce przechowywania wszystkich obiektów
  • Selenium WebDriver domyślnie nie oferuje wbudowanego repozytorium obiektów
  • Możesz utworzyć 2 typy repozytorium obiektów w Selenium
    1. Repozytorium obiektów przy użyciu pliku Właściwości
    2. Repozytorium obiektów przy użyciu pliku XML
  • Plik właściwości jest plikiem tekstowym, w którym dane są przechowywane w postaci par klucz-wartość
  • Format pliku XML będzie replikować format HTML, na podstawie którego zbudowana jest strona internetowa.