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