Что такое репозиторий объектов?
Репозиторий объектов - это общее место для хранения всех объектов. В контексте Selenium WebDriver объекты обычно являются локаторами, используемыми для уникальной идентификации веб-элементов.
Основным преимуществом использования репозитория объектов является отделение объектов от тестовых примеров. Если значение локатора одного веб-элемента изменяется, необходимо изменить только репозиторий объектов, а не вносить изменения во все тестовые случаи, в которых использовался локатор. Поддержка репозитория объектов увеличивает модульность реализации фреймворка.
В этом руководстве вы узнаете:
- Что такое репозиторий объектов?
- Типы репозиториев объектов в Selenium Web Driver
- Репозиторий объектов Selenium Web Driver с использованием файла свойств
- Репозиторий объектов Selenium WebDriver с использованием XML-файла
Типы репозиториев объектов в Selenium Web Driver
Selenium WebDriver по умолчанию не предлагает встроенного репозитория объектов. Однако репозитории объектов могут быть созданы с использованием подхода пары ключ-значение, в котором ключ относится к имени, данному объекту, а значение относится к свойствам, используемым для однозначной идентификации объекта на веб-странице.
Ниже приведены типы репозиториев объектов, которые можно создать в Selenium WebDriver.
- Репозиторий объектов с использованием файла свойств
- Репозиторий объектов с использованием файла XML
Репозиторий объектов Selenium Web Driver с использованием файла свойств
В этом подходе файл свойств представляет собой текстовый файл, в котором данные хранятся в виде пар ключ-значение. В приведенном ниже руководстве рассматриваются следующие темы.
- Создание файла свойств в eclipse
- Сохранение данных в файле свойств
- Чтение данных из файла свойств
- Использование файла свойств в тестовых скриптах
Шаг 1) Создание файла свойств в eclipse
- Для начала в eclipse необходимо создать приведенную ниже структуру проекта Java. Имя проекта и имя пакета могут быть любыми допустимыми именами.
- Щелкните правой кнопкой мыши основную папку проекта и выберите New-> Other.
- В следующем окне выберите Общие -> Файл и нажмите кнопку «Далее».
- Укажите допустимое имя файла с расширением .properties в окне нового файлового ресурса и нажмите кнопку «Готово».
- Файл с именем application.properties должен отображаться в структуре проекта.
Шаг 2) Сохранение данных в файле свойств
- Данные хранятся в файле свойств в виде пар ключ-значение, причем ключ является уникальным для всего файла.
- Мы попытаемся использовать файл свойств для идентификации веб-элементов с помощью значений локатора.
- Откройте файл application.properties в Eclipse и сохраните следующие данные
MobileTesting = // a [text () = 'МОБИЛЬНОЕ ТЕСТИРОВАНИЕ']EmailTextBox = адрес электронной почты поля филадельфииSignUpButton = поле-филадельфия-отправить
4) Для этого руководства используется следующий демонстрационный веб-сайт: http://demo.guru99.com/test/guru99home/. Вот тестовый сценарий:
- Нажмите ссылку "Мобильное тестирование" с помощью XPATH.
- Вернуться назад
- Введите данные в текстовое поле электронной почты, используя идентификатор
- Нажмите на кнопку «Зарегистрироваться», используя ID.
Шаг 3) Чтение данных из файла свойств
- Чтение данных из файла свойств может быть выполнено с помощью встроенного класса Properties, предоставленного в пакете java.util.
- Первоначально необходимо создать объект класса Properties, как показано ниже.
Свойства obj = новые свойства ();
- Нам нужно создать объект класса FileInputStream с путем к файлу свойств
FileInputStream objfile = новый FileInputStream (System.getProperty ("user.dir") + "\\ application.properties");
- Чтение данных из файла свойств может быть выполнено с помощью метода загрузки, предлагаемого классом Properties в java. Приведенный ниже код демонстрирует использование метода загрузки.
Свойства obj = новые свойства ();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;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) выбрасывает 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, чтобы связать Mobile Testing и Backdriver.findElement (By.xpath (obj.getProperty ("MobileTesting"))). click ();driver.navigate (). назад ();// Вводим данные в форму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.
- Щелкните правой кнопкой мыши папку проекта, выберите New -> Other.
- Выберите файл XML в папке XML и нажмите кнопку «Далее».
- Введите допустимое имя XML-файла и нажмите кнопку «Готово».
- XML-файл будет добавлен в папку проекта, как показано ниже.
Шаг 2) Сохранение данных в XML-файле
Данные могут храниться в XML-файле в виде объектной модели документа (DOM). Для простоты мы можем использовать приведенный ниже тестовый сценарий в качестве примера.
- Нажмите ссылку "Мобильное тестирование" с помощью XPATH.
- Вернуться на главную страницу
- Введите данные в текстовое поле электронной почты, используя идентификатор
- Нажмите на кнопку «Зарегистрироваться», используя ID.
Ниже приведен формат XML-файла, который будет использоваться.
Сохраните приведенный выше 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 ();Документ document = saxReader.read (inputFile);String mobileTesting = document.selectSingleNode ("// меню / mobiletesting"). GetText ();String 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-файла в selenium WebDriver.
пакет 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) выбрасывает 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 ();Документ document = saxReader.read (inputFile);String mobileTesting = document.selectSingleNode ("// меню / mobiletesting"). GetText ();String emailTextBox = document.selectSingleNode ("// меню / электронная почта"). GetText ();String signUpButton = document.selectSingleNode ("// меню / регистрация"). GetText ();// Переход к мобильному тестированию и обратноdriver.findElement (By.xpath (mobileTesting)). click ();driver.navigate (). назад ();// Ввод данных формыdriver.findElement (By.id (emailTextBox)). sendKeys (" Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для его просмотра.");driver.findElement (By.id (signUpButton)). click ();}}
Загрузите проект WebDriver Eclipse
Резюме:
- Репозиторий объектов - это общее хранилище для всех объектов.
- Selenium WebDriver по умолчанию не предлагает встроенного репозитория объектов.
- Вы можете создать 2 типа репозитория объектов в Selenium
- Репозиторий объектов с использованием файла свойств
- Репозиторий объектов с использованием файла XML
- Файл свойств - это текстовый файл, в котором данные хранятся в виде пар ключ-значение.
- Формат файла XML будет копировать формат HTML, на котором построена веб-страница.