11

Пост №7. Создание своего test framework-а с нуля. Часть 3

Всем привет! В предыдущих постах я начал рассказывать про создание своего test framework-а с нуля. В них рассказывалось про выбор технологий, создание проекта в IDE, структуру и написание feature на языке Gherkin, создание Step-ов для реализации тестовой логики. Сегодня, как и обещал, начнем рассматривать описание page-ов, используя методологию Page Object Pattern.


Итак, начнем. Все классы, связанные с описанием страниц, по понятным приинам расположены в package-е java. Дабы не путаться и грамотно структурировать проект, все классы-pages располагаем в package Pages, все остальные вспомогательные в других packages. 

Теперь начнем рассматривать реализацию. Начнем пожалуй с описания базового класса BasePage. В нем реализованы основные функции, применяемые при описании страниц. То есть по факту, в нем написаны функции и методы, вызываемые в остальных классах. Это реализовано для того, чтобы не было повторения кода и лишней копипасты.

В данном классе реализованы такие методы, как: получение элемента, определение фрейма на странице, ожидание загруски JS и JQuery, заполнение формы значениями. Для примера можно рассмотреть метод заполнения формы элементами.

Это универсальный метод, который сначала определяет сам элемент, далее его тип, а после, в зависимости от типа элемента, присваивает ему то или иное значение. Так же данный метод позволяет работать с фреймами т.е. первоначально он определяет, находится элемент во фрейме или нет, далее по вышеописанному сценарию.

Далее рассмотрим пример написания класса, описывающего элементы страницы. 

Из примера видно, что первоначально происходит инициализация всех элементов на странице и вызов WebDriver-а. Для этого используется PageFactory совместно с FieldDecorator. Они позволяют проинициализировать и проиндексировать элементы страницы. Далее мы определяем необходимые нам элементы и присваиваем им имена. Так как у нас изначально были описаны типы элементов, то соответственно при присвоении имен, мы сразу же обозначили и тип элемента (например, public Textbox loginField, что означает, что данный элемент - это текстбокс). И после описания элементов происходит непосредственно написание действий над этими элементами. Ниже еще один пример описания страницы.

Заключение.

Итак, подведем итоги. В данном посте были рассмотрены примеры описания элементов страниц и их использование. В следующем посте будут рассмотрены Util-классы, облегчающие написание page object и делающих тесты более гибкими и расширяемыми.


З.Ы. Всем спасибо за внимание и интерес. Для тех, кому интересно посмотреть код проекта, то его можно найти по ссылке. Буду рад всем комментариям.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества