Създаване на хранилище на обекти в Selenium WebDriver: XML & Файл със свойства

Съдържание:

Anonim

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

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

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

В този урок ще научите -

  • Какво е хранилище на обекти?
  • Видове хранилища на обекти в Selenium Web Driver
  • Хранилище на обекти за уеб драйвер на Selenium с помощта на файла Properties
  • Хранилище за обекти на Selenium WebDriver, използващо XML файл

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

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

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

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

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

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

  • Създаване на файл със свойства в eclipse
  • Съхраняване на данни във файл със свойства
  • Четене на данни от файла със свойства
  • Използване на файл със свойства в тестови скриптове

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

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

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

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

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

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

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

  1. Данните се съхраняват във файла със свойства под формата на двойки ключ-стойност, като ключът е уникален във файла.
  2. Ще се опитаме да използваме файла със свойства, за да идентифицираме webelements, използвайки локаторни стойности.
  3. Отворете файла application.properties в Eclipse и съхранявайте следните данни
MobileTesting = // a [text () = 'МОБИЛНО ИЗПИТВАНЕ']EmailTextBox = philadelphia-field-emailSignUpButton = philadelphia-field-submit

4) За този урок се използва следният демонстрационен уебсайт: http://demo.guru99.com/test/guru99home/. Ето тестовия сценарий:

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

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

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

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

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

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

driver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). кликнете (); 

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

пакет com.objectrepository.demo;импортиране на java.io.FileInputStream;импортиране на java.io.FileNotFoundException;импортиране на java.io.IOException;импортиране на java.util.Properties;внос org.openqa.selenium.By;импортиране на org.openqa.selenium.WebDriver;импортиране на org.openqa.selenium.chrome.ChromeDriver;публична класа DemoOR {public static void main (String [] args) хвърля IOException {// Създаване на екземпляр на WebDriverДрайвер за WebDriver;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");драйвер = нов ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). window (). maximize ();// Заредете файла със свойстватаСвойства obj = нови свойства ();FileInputStream objfile = нов FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);// Nagigate за свързване на мобилно тестване и обратноdriver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.navigate (). back ();// Въведете данни във формулярdriver.findElement (By.id (obj.getProperty ("EmailTextBox"))). sendKeys (" Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). кликнете ();}}

Хранилище за обекти на Selenium WebDriver, използващо XML файл

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

  • Създаване на XML файл в eclipse
  • Съхраняване на данни върху XML файл
  • Четене на данни от XML файл
  • Използване на XML файл в тестови скриптове

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • jaxen.jar
  • dom4j-1.6.jar

2. По-долу е даден кодът за четене на данни от XML файл.

File inputFile = нов файл (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = нов SAXReader ();Документ на документа = saxReader.read (inputFile);Низ mobileTesting = document.selectSingleNode ("// меню / mobiletesting"). GetText ();Низ emailTextBox = document.selectSingleNode ("// меню / имейл"). GetText ();String signUpButton = document.selectSingleNode ("// меню / регистрация"). 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 (" Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите.");driver.findElement (By.id (signUpButton)). click ();

Кодът по-долу демонстрира използването на XML файл в селен WebDriver

пакет com.objectrepository.demo;импортиране на java.io. *;импортиране на java.util. *;внос org.dom4j. *;внос org.dom4j.io.SAXReader;внос org.openqa.selenium.By;импортиране на org.openqa.selenium.WebDriver;импортиране на org.openqa.selenium.chrome.ChromeDriver;публичен клас DemoORXML {public static void main (String [] args) хвърля DocumentException {// Създаване на екземпляр на WebDriverДрайвер за WebDriver;System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");драйвер = нов ChromeDriver ();driver.get ("http://demo.guru99.com/test/guru99home/");driver.manage (). window (). maximize ();// Четене на XML файлFile inputFile = нов файл (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = нов SAXReader ();Документ на документа = saxReader.read (inputFile);Низ mobileTesting = document.selectSingleNode ("// меню / mobiletesting"). GetText ();Низ emailTextBox = document.selectSingleNode ("// меню / имейл"). GetText ();String signUpButton = document.selectSingleNode ("// меню / регистрация"). GetText ();// Придвижване до мобилно тестване и обратноdriver.findElement (By.xpath (mobileTesting)). click ();driver.navigate (). back ();// Въвеждане на данни за формуляраdriver.findElement (By.id (emailTextBox)). sendKeys (" Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите.");driver.findElement (By.id (signUpButton)). click ();}}

Изтеглете проекта WebDriver Eclipse

Резюме:

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