Хранилище на обекти в Selenium (XML и файл със свойства)

Какво е хранилище на обекти?

Хранилището на обекти е общо място за съхранение на всички обекти. в Selenium В контекста на WebDriver обектите обикновено са локаторите, използвани за уникално идентифициране на уеб елементи.

Основното предимство на използването на обектно хранилище е отделянето на обекти от тестови случаи. Ако стойността на локатора на един уеб елемент се промени, трябва да се промени само хранилището на обекта, вместо да се правят промени във всички тестови случаи, в които е използван локаторът. Поддържането на обектно хранилище увеличава модулността на изпълнението на рамката.

Видове хранилища на обекти в Selenium Уеб драйвер

Selenium WebDriver не предлага вградено хранилище на обекти по подразбиране. Въпреки това хранилищата на обекти могат да бъдат изградени с помощта на подхода на двойката ключ-стойност, при който ключът се отнася до името, дадено на обекта, а стойността се отнася до свойствата, използвани за уникално идентифициране на обект в рамките на уеб страницата.

По-долу са типовете хранилища на обекти, в които могат да бъдат създадени Selenium WebDriver.

  1. Хранилище на обекти, използващо файл със свойства
  2. Обектно хранилище, използващо XML файл

Selenium Хранилище на уеб драйвери, използващо файл със свойства

При този подход файлът със свойства е текстов файл, в който данните се съхраняват под формата на двойки ключ-стойност. Урокът по-долу ще разгледа следните теми.

Стъпка 1) Създаване на файл със свойства в eclipse

  1. Като начало, структурата на Java проекта по-долу трябва да бъде създадена в eclipse. Името на проекта и името на пакета могат да бъдат всякакви валидни имена.

Създаване на файл със свойства в Eclipse

  1. Щракнете с десния бутон върху основната папка на проекта и изберете New-> Other

Създаване на файл със свойства в Eclipse

  1. В следващия прозорец изберете Общи -> Файл и щракнете върху бутона "Напред".

Създаване на файл със свойства в Eclipse

  1. Въведете валидно име на файл с разширение „.properties“ в прозореца на новия файлов ресурс и щракнете върху бутона „Край“

Създаване на файл със свойства в Eclipse

  1. Файл с име „application.properties“ трябва да се покаже в структурата на проекта

Създаване на файл със свойства в Eclipse

Стъпка 2) Съхраняване на данни във файл със свойства

  1. Данните се съхраняват във файла със свойства под формата на двойки ключ-стойност, като ключът е уникален във файла.
  2. Ще се опитаме да използваме файла със свойства, за да идентифицираме уеб елементи с помощта на стойности на локатора.
  3. Отворете файла application.properties в Eclipse и съхранявайте следните данни
MobileTesting=//a[text()='MOBILE TESTING']
EmailTextBox = philadelphia-field-email
SignUpButton = philadelphia-field-submit

 Съхраняване на данни във файл със свойства

4) За този урок се използва следният демонстрационен уебсайт:

https://demo.guru99.com/test/guru99home/. Ето тестов сценарий:

  • Кликнете върху връзката Мобилно тестване с помощта на XPATH
  • Придвижване назад
  • Въведете данни в текстовото поле на имейл, като използвате ID
  • Кликнете върху бутона Регистрирайте се с помощта на ID

Стъпка 3) Четене на данни от файла със свойства

  1. Четенето на данни от файла със свойства може да се извърши с помощта на вградения клас Properties, предоставен в пакета java.util.
  2. Първоначално трябва да се създаде обект от клас Properties, както е показано по-долу
  Properties obj = new Properties();
  1. Трябва да създадем обект от клас FileInputStream с пътя към файла със свойства
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
  1. Четенето на данни от файла със свойства може да се извърши с помощта на метода за зареждане, предлаган от класа Properties в java. Кодът по-долу демонстрира използването на метода за зареждане.
Properties obj = new Properties();
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
obj.load(objfile);
String mobileTesting = obj.getProperty("MobileTesting");

Низът „mobileTesting“ ще съдържа XPATH за идентифициране на връзката за мобилно тестване в рамките на уеб страницата.

Стъпка 4) Използване на файл със свойства в тестови скриптове

Файлът със свойства може да се използва в тестови скриптове чрез четене на данни от файл със свойства и предаване на данните като параметър на метода findElement. Кодът по-долу демонстрира използването на данни, прочетени от файл със свойства в тестови скриптове.

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

По-долу е пълният код, използван за горния тестов сценарий.

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, използващо XML файл

XML означава Extensible Markup Language. XML файлът използва Document Object Model (DOM) като основна структура. XML файловият формат ще копира HTML формата, върху който е изградена уеб страницата. По-долу е даден списък с теми, които ще бъдат обхванати.

Стъпка 1) Създаване на XML файл в eclipse

  1. Трябва да се създаде структурата на Java проекта по-долу Eclipse.

Създаване на XML файл в Eclipse

  1. Щракнете с десния бутон върху папката на проекта, изберете New -> Other

Създаване на XML файл в Eclipse

  1. Изберете XML файла в папката XML и щракнете върху бутона „Напред“.

Създаване на XML файл в Eclipse

  1. Въведете валидно име на XML файл и щракнете върху бутона „Край“.

Създаване на XML файл в Eclipse

  1. XML файл ще бъде добавен към папката на проекта, както е показано по-долу

Създаване на XML файл в Eclipse

Стъпка 2) Съхраняване на данни в XML файл

Данните могат да се съхраняват в XML файл под формата на Document Object Model (DOM). За по-голяма простота можем да използваме тестовия сценарий по-долу като пример.

  • Кликнете върху връзката Мобилно тестване с помощта на XPATH
  • Навигирайте обратно към началната страница
  • Въведете данни в текстовото поле на имейл, като използвате ID
  • Кликнете върху бутона Регистрирайте се с помощта на ID

По-долу е форматът на XML файла, който ще се използва.

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

Съхранявайте горния XML код в properties.xml

Съхраняване на данни в XML файл

В раздела дизайн ще видите

Съхраняване на данни в XML файл

Стъпка 3) Четене на данни от XML файл

1. Четенето на данни от XML файл може да се осъществи с помощта на вградения клас 'dom4j' в java. Моля, обърнете внимание, че трябва да добавите JAR файловете по-долу в пътеката за изграждане на вашия проект, преди да продължите с кода.

  • jaxen.jar
  • dom4j-1.6.jar

2. По-долу е кодът за четене на данни от 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. Първоначално трябва да създадем File обект и да го предадем като параметър към метода 'read' на класа SAXReader. След като данните от XML файла бъдат прочетени успешно, можем да получим достъп до отделни възли на XML документ, като използваме метода „selectSingleNode“.

Стъпка 4) Използване на XML файл в тестови скриптове

XML файлът може да се използва в тестови скриптове чрез четене на данни от XML файл и предаване на данните като параметър на метода findElement. Кодът по-долу демонстрира използването на данни, прочетени от XML файл в тестови скриптове.

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

Кодът по-долу демонстрира използването на XML файл в 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();				

	}		
}		

Изтеглете WebDriver Eclipse Проект

Oбобщение

  • Хранилището на обекти е общо място за съхранение на всички обекти
  • Selenium WebDriver не предлага вградено хранилище на обекти по подразбиране
  • Можете да създадете 2 типа хранилище на обекти в Selenium
    1. Хранилище на обекти, използващо файл със свойства
    2. Обектно хранилище, използващо XML файл
  • Файлът със свойства е текстов файл, в който данните се съхраняват под формата на двойки ключ-стойност
  • XML файловият формат ще копира HTML формата, върху който е изградена уеб страницата.

Обобщете тази публикация с: