Использование Page Object паттерна и С# для Selenium Webdriver

Использование Page Object паттерна и С# для Selenium Webdriver

Всем привет. Недавно один с моих подписчиков попросил показать реализацию паттерна Page Object и C# для автоматизации сайта с использование Selenium Webdriver. Немного ранее было рассмотрено применение для java. Приведу пример и для С#.

На примере простенького функционала поиска в Bing создадим проект “Unit Test Project” в Visual Studio.

page_object_1

Нам понадобится добавить следующие классы:

  • Page Object (BingMainPage) – содержит свойства всех элементов на странице. Также он включает все необходимые действия (Search, Navigate) и валидацию.
  • UI Tests (BingTests) – содержит сам тест и объект предыдущего класса.

Также нам понадобится добавить библиотеки Selenium к нашему проекту: выберите References -> Manage NuGet Packages…

page_object_2

Тест будет выполнять переход на Bing, поиск определенного словосочетания и проверять количество результатов. Для этого нам понадобится всего лишь 2 класса: BingMainPage и BingTests.

Можно увидеть, что поиск элементов выполняется с помощью следующей конструкции:


Инициализация всех элементов происходит в конструкторе с использованием статического метода InitElements и в момент, когда драйвер переходит на страницу:

Класс тестов выглядит следующим образом:


Конечный cолюшен и результат выполнения тестов представлен ниже:

page_object_3

До новых материалов. Подписывайтесь на рассылку!

RelatedPost