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

Содержание:

Anonim

Что такое репозиторий объектов?

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

Основным преимуществом использования репозитория объектов является отделение объектов от тестовых примеров. Если значение локатора одного веб-элемента изменяется, необходимо изменить только репозиторий объектов, а не вносить изменения во все тестовые случаи, в которых использовался локатор. Поддержка репозитория объектов увеличивает модульность реализации фреймворка.

В этом руководстве вы узнаете:

  • Что такое репозиторий объектов?
  • Типы репозиториев объектов в Selenium Web Driver
  • Репозиторий объектов Selenium Web Driver с использованием файла свойств
  • Репозиторий объектов Selenium WebDriver с использованием XML-файла

Типы репозиториев объектов в Selenium Web Driver

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

Ниже приведены типы репозиториев объектов, которые можно создать в Selenium WebDriver.

  1. Репозиторий объектов с использованием файла свойств
  2. Репозиторий объектов с использованием файла XML

Репозиторий объектов Selenium Web Driver с использованием файла свойств

В этом подходе файл свойств представляет собой текстовый файл, в котором данные хранятся в виде пар ключ-значение. В приведенном ниже руководстве рассматриваются следующие темы.

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

Шаг 1) Создание файла свойств в eclipse

  1. Для начала в eclipse необходимо создать приведенную ниже структуру проекта Java. Имя проекта и имя пакета могут быть любыми допустимыми именами.

  1. Щелкните правой кнопкой мыши основную папку проекта и выберите New-> Other.

  1. В следующем окне выберите Общие -> Файл и нажмите кнопку «Далее».

  1. Укажите допустимое имя файла с расширением .properties в окне нового файлового ресурса и нажмите кнопку «Готово».

  1. Файл с именем application.properties должен отображаться в структуре проекта.

Шаг 2) Сохранение данных в файле свойств

  1. Данные хранятся в файле свойств в виде пар ключ-значение, причем ключ является уникальным для всего файла.
  2. Мы попытаемся использовать файл свойств для идентификации веб-элементов с помощью значений локатора.
  3. Откройте файл application.properties в Eclipse и сохраните следующие данные
MobileTesting = // a [text () = 'МОБИЛЬНОЕ ТЕСТИРОВАНИЕ']EmailTextBox = адрес электронной почты поля филадельфииSignUpButton = поле-филадельфия-отправить

4) Для этого руководства используется следующий демонстрационный веб-сайт: http://demo.guru99.com/test/guru99home/. Вот тестовый сценарий:

  • Нажмите ссылку "Мобильное тестирование" с помощью XPATH.
  • Вернуться назад
  • Введите данные в текстовое поле электронной почты, используя идентификатор
  • Нажмите на кнопку «Зарегистрироваться», используя 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 для идентификации ссылки 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

  1. Приведенную ниже структуру Java-проекта необходимо создать в Eclipse.

  1. Щелкните правой кнопкой мыши папку проекта, выберите New -> Other.

  1. Выберите файл XML в папке XML и нажмите кнопку «Далее».

  1. Введите допустимое имя XML-файла и нажмите кнопку «Готово».

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

Шаг 2) Сохранение данных в XML-файле

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

  • Нажмите ссылку "Мобильное тестирование" с помощью XPATH.
  • Вернуться на главную страницу
  • Введите данные в текстовое поле электронной почты, используя идентификатор
  • Нажмите на кнопку «Зарегистрироваться», используя ID.

Ниже приведен формат XML-файла, который будет использоваться.

 // a [text () = 'МОБИЛЬНОЕ ТЕСТИРОВАНИЕ']  филадельфия-поле-электронная почта  филадельфия-поле-отправить 

Сохраните приведенный выше 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
    1. Репозиторий объектов с использованием файла свойств
    2. Репозиторий объектов с использованием файла XML
  • Файл свойств - это текстовый файл, в котором данные хранятся в виде пар ключ-значение.
  • Формат файла XML будет копировать формат HTML, на котором построена веб-страница.