Репозиторій об'єктів в Selenium (XML і файл властивостей)
Що таке репозиторій об'єктів?
Репозиторій об’єктів — це загальне місце для зберігання всіх об’єктів. в Selenium У контексті WebDriver об’єкти зазвичай є локаторами, які використовуються для унікальної ідентифікації веб-елементів.
Основною перевагою використання репозиторію об’єктів є відокремлення об’єктів від тестових випадків. Якщо значення локатора одного веб-елемента змінюється, потрібно змінити лише репозиторій об’єктів, а не вносити зміни в усіх тестових випадках, у яких використовувався локатор. Підтримка репозиторію об’єктів збільшує модульність реалізації фреймворку.
Типи сховищ об'єктів в Selenium Веб-драйвер
Selenium WebDriver за замовчуванням не пропонує вбудоване сховище об’єктів. Однак репозиторії об’єктів можна створювати за допомогою підходу пари ключ-значення, де ключ посилається на назву об’єкта, а значення – на властивості, які використовуються для унікальної ідентифікації об’єкта на веб-сторінці.
Нижче наведено типи сховищ об’єктів, у яких можна створити Selenium WebDriver.
- Репозиторій об’єктів за допомогою файлу властивостей
- Репозиторій об'єктів із використанням файлу XML
Selenium Репозиторій об’єктів веб-драйвера з використанням файлу властивостей
У цьому підході файл властивостей є текстовим файлом, у якому дані зберігаються у формі пар ключ-значення. У наведеному нижче посібнику розглядатимуться такі теми.
- Створення файлу властивостей у eclipse
- Зберігання даних у файлі властивостей
- Читання даних із файлу властивостей
- Використання файлу властивостей у тестових сценаріях
Крок 1) Створення файлу властивостей у eclipse
- Для початку потрібно створити наведену нижче структуру проекту Java в eclipse. Назва проекту та назва пакета можуть бути будь-якими дійсними назвами.
- Клацніть правою кнопкою миші на головній папці проекту та виберіть Створити-> Інше
- У наступному вікні виберіть Загальні -> Файл і натисніть кнопку «Далі».
- Укажіть дійсне ім’я файлу з розширенням «.properties» у новому вікні ресурсу файлів і натисніть кнопку «Готово».
- Файл із назвою "application.properties" має відображатися в структурі проекту
Крок 2) Зберігання даних у файлі властивостей
- Дані зберігаються у файлі властивостей у формі пар ключ-значення, причому ключ є унікальним у всьому файлі.
- Ми спробуємо використати файл властивостей для ідентифікації веб-елементів за допомогою значень локатора.
- Відкрийте файл application.properties у Eclipse і збережіть наступні дані
MobileTesting=//a[text()='MOBILE TESTING'] EmailTextBox = philadelphia-field-email SignUpButton = philadelphia-field-submit
4) Для цього підручника використовується наступний демонстраційний веб-сайт:
http://demo.guru99.com/test/guru99home/
. Ось тестовий сценарій:
- Клацніть посилання Mobile Testing using XPATH
- Перейти назад
- Введіть дані в текстове поле електронної пошти за допомогою ідентифікатора
- Натисніть кнопку Зареєструватися за допомогою ідентифікатора
Крок 3) Читання даних із файлу властивостей
- Читання даних із файлу властивостей можна здійснити за допомогою вбудованого класу Properties, який міститься в пакеті java.util.
- Спочатку потрібно створити об’єкт класу Properties, як показано нижче
Properties obj = new Properties();
- Нам потрібно створити об’єкт класу FileInputStream із шляхом до файлу властивостей
FileInputStream objfile = new FileInputStream(System.getProperty("user.dir")+"\\application.properties");
- Читання даних із файлу властивостей можна здійснити за допомогою методу завантаження, запропонованого класом 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 для ідентифікації посилання Mobile Testing на веб-сторінці.
Крок 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("http://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-файл використовує об’єктну модель документа (DOM) як базову структуру. Формат файлу XML повторюватиме формат HTML, на основі якого створено веб-сторінку. Нижче наведено список тем, які будуть розглянуті.
- Створення XML-файлу в eclipse
- Зберігання даних у файлі XML
- Читання даних з файлу XML
- Використання файлу XML у сценаріях тестування
Крок 1) Створення XML-файлу в eclipse
- Наведену нижче структуру проекту Java потрібно створити в Eclipse.
- Клацніть правою кнопкою миші папку проекту, виберіть Створити -> Інше
- Виберіть файл XML у папці XML і натисніть кнопку «Далі».
- Введіть дійсну назву файлу XML і натисніть кнопку «Готово».
- Файл XML буде додано до папки проекту, як показано нижче
Крок 2) Зберігання даних у файлі XML
Дані можуть зберігатися в XML-файлі у формі Document Object Model (DOM). Для простоти ми можемо використати наведений нижче тестовий сценарій як приклад.
- Клацніть посилання Mobile Testing using XPATH
- Перейдіть на головну сторінку
- Введіть дані в текстове поле електронної пошти за допомогою ідентифікатора
- Натисніть кнопку Зареєструватися за допомогою ідентифікатора
Нижче наведено формат файлу XML, який буде використовуватися.
<menu> <mobiletesting>//a[text()='MOBILE TESTING']</mobiletesting> <email> philadelphia-field-email</email> <signup> philadelphia-field-submit </signup> </menu>
Збережіть наведений вище XML-код у property.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("http://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 Проекти
Підсумки
- Репозиторій об’єктів — це загальне місце для зберігання всіх об’єктів
- Selenium WebDriver за замовчуванням не пропонує вбудоване сховище об’єктів
- Ви можете створити 2 типи сховища об’єктів Selenium
- Репозиторій об’єктів за допомогою файлу властивостей
- Репозиторій об'єктів із використанням файлу XML
- Файл властивостей — це текстовий файл, у якому дані зберігаються у формі пар ключ-значення
- Формат файлу XML повторюватиме формат HTML, на основі якого створено веб-сторінку.