Створення сховища об’єктів у Selenium WebDriver: XML & Файл властивостей

Зміст:

Anonim

Що таке сховище об’єктів?

Сховище об’єктів - це загальне місце зберігання для всіх об’єктів. У контексті Selenium WebDriver об'єкти, як правило, є локаторами, що використовуються для унікальної ідентифікації веб-елементів.

Основною перевагою використання сховища об’єктів є відокремлення об’єктів від тестових випадків. Якщо значення локатора одного веб-елемента змінюється, потрібно змінювати лише сховище об’єктів, а не вносити зміни у всі тестові випадки, в яких використовувався локатор. Ведення сховища об’єктів збільшує модульність реалізації фреймворку.

У цьому підручнику ви дізнаєтесь-

  • Що таке сховище об’єктів?
  • Типи сховищ об’єктів у веб-драйвері Selenium
  • Сховище об’єктів веб-драйвера Selenium за допомогою файлу властивостей
  • Сховище об’єктів Selenium WebDriver за допомогою файлу XML

Типи сховищ об’єктів у веб-драйвері Selenium

За замовчуванням Selenium WebDriver не пропонує вбудованого сховища об’єктів. Однак сховища об'єктів можуть бути побудовані за допомогою підходу пари ключ-значення, де ключ посилається на ім'я, дане об'єкту, а значення посилається на властивості, що використовуються для унікальної ідентифікації об'єкта на веб-сторінці.

Нижче наведено типи сховищ об’єктів, які можна створити в Selenium WebDriver.

  1. Сховище об’єктів за допомогою файлу властивостей
  2. Сховище об'єктів за допомогою XML-файлу

Сховище об’єктів веб-драйвера Selenium за допомогою файлу властивостей

У цьому підході файл властивостей - це текстовий файл, в якому дані зберігаються у формі пар ключ-значення. У наведеному нижче підручнику будуть розглянуті наступні теми.

  • Створення файлу властивостей у eclipse
  • Зберігання даних у файлі властивостей
  • Зчитування даних із файлу властивостей
  • Використання файлу властивостей у тестових скриптах

Крок 1) Створення файлу властивостей у eclipse

  1. Для початку наведену нижче структуру проекту Java потрібно створити в eclipse. Назва проекту та назва пакета можуть бути будь-якими дійсними іменами.

  1. Клацніть правою кнопкою миші на головній папці проекту та виберіть New-> Other

  1. У наступному вікні виберіть Загальне -> Файл і натисніть кнопку «Далі»

  1. Введіть дійсну назву файлу з розширенням '.properties' у новому вікні файлового ресурсу та натисніть кнопку 'Готово'

  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/. Ось сценарій тесту:

  • Клацніть на посилання Mobile Testing за допомогою XPATH
  • Перейти назад
  • Введіть дані в текстове поле електронної пошти, використовуючи ідентифікатор
  • Клацніть на кнопку Зареєструватися, використовуючи ідентифікатор

Крок 3) Зчитування даних із файлу властивостей

  1. Зчитування даних із файлу властивостей може здійснюватися за допомогою вбудованого класу Властивості, наданого в пакеті java.util.
  2. Спочатку потрібно створити об’єкт класу Properties, як показано нижче
 Властивості obj = new Властивості (); 
  1. Нам потрібно створити об’єкт класу FileInputStream із шляхом до файлу властивостей
FileInputStream objfile = новий FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");
  1. Зчитування даних із файлу властивостей може здійснюватися за допомогою методу завантаження, запропонованого класом Properties у Java. Наведений нижче код демонструє використання методу навантаження.
Властивості obj = new Властивості ();FileInputStream objfile = новий FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");obj.load (objfile);Рядок 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 (" Ця електронна адреса захищена від спам-ботів. Для її перегляду потрібно увімкнути JavaScript.");driver.findElement (By.id (obj.getProperty ("SignUpButton"))). click (); 

Нижче наведено повний код, використаний для вищезазначеного сценарію тесту.

пакет 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 = new Властивості ();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"))). click ();}}

Сховище об’єктів Selenium WebDriver за допомогою файлу XML

XML розшифровується як Extensible Markup Language. XML-файл використовує об'єктну модель документа (DOM) як базову структуру. Формат файлу XML повторює формат HTML, на якому побудована веб-сторінка. Нижче наведено перелік тем, які будуть висвітлені.

  • Створення XML-файлу в eclipse
  • Зберігання даних у файлі XML
  • Зчитування даних із XML-файлу
  • Використання XML-файлу в тестових сценаріях

Крок 1) Створення XML-файлу в eclipse

  1. Наведена нижче структура проекту Java повинна бути створена в Eclipse.

  1. Клацніть правою кнопкою миші на папці проекту, виберіть Створити -> Інше

  1. Виберіть XML-файл у папці XML і натисніть кнопку «Далі»

  1. Введіть дійсне ім'я файлу XML і натисніть кнопку "Готово"

  1. XML-файл буде доданий до папки проекту, як показано нижче

Крок 2) Зберігання даних у файлі XML

Дані можуть зберігатися у файлі XML у формі об'єктної моделі документа (DOM). Для простоти ми можемо використати наведений нижче сценарій тесту як приклад.

  • Клацніть на посилання Mobile Testing за допомогою XPATH
  • Поверніться на головну сторінку
  • Введіть дані в текстове поле електронної пошти, використовуючи ідентифікатор
  • Клацніть на кнопку Зареєструватися, використовуючи ідентифікатор

Нижче наведено формат файлу XML, який буде використовуватися.

<меню> // a [text () = 'МОБІЛЬНЕ ТЕСТУВАННЯ']  philadelphia-field-email  philadelphia-field-submit 

Збережіть наведений вище код XML у Properties.xml

На вкладці дизайн ви побачите

Крок 3) Зчитування даних із XML-файлу

1. Зчитування даних із XML-файлу може здійснюватися за допомогою вбудованого класу 'dom4j' в Java. Зверніть увагу, що вам потрібно додати наведені нижче файли JAR у шлях побудови вашого проекту, перш ніж продовжувати роботу з кодом.

  • jaxen.jar
  • dom4j-1.6.jar

2. Нижче наведено код для зчитування даних із XML-файлу.

Файл inputFile = новий файл (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = новий SAXReader ();Документ документа = saxReader.read (inputFile);Рядок mobileTesting = document.selectSingleNode ("// меню / mobiletesting"). GetText ();Рядок emailTextBox = document.selectSingleNode ("// меню / електронна пошта"). GetText ();Рядок 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-файлуФайл inputFile = новий файл (System.getProperty ("user.dir") + "\\ properties.xml");SAXReader saxReader = новий SAXReader ();Документ документа = saxReader.read (inputFile);Рядок mobileTesting = document.selectSingleNode ("// меню / mobiletesting"). GetText ();Рядок emailTextBox = document.selectSingleNode ("// меню / електронна пошта"). GetText ();Рядок 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, на якому побудована веб-сторінка.