Перейти к содержимому

Фотография

Применение POM к крупному порталу


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 alexnemtsov

alexnemtsov

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Александр
  • Город:Москва

Отправлено 18 апреля 2017 - 12:18

Здравствуйте!

 

Никак не могу понять, как применить паттерн Page Object в моём случае и применим ли он вообще. Пишу автотесты для крупного портала в связке Selenium/C#/NUnit. Портал резнесён на несколько поддоменов, имеет много разных разделов, но все они взаимосвязаны и на них есть огромное количество одинаковых элементов (не блоков, а именно элементов) в разных комбинациях на разных страницах. То есть, допустим, имеются элементы "A", "B", "C", и "D", и их наличие на страницах выглядит примерно следующим образом: страница 1 - A, C, D; страница 2 - B, C, D; страница 3 - C; страница 4 - B, D и т.д.

 

Получается, что если, в соответствии с POM, создавать отдельные классы для каждой страницы (коих в сумме наберётся под сотню) и объявлять в них эти элементы, то будут тонны повторяемого кода. Разбиение на блоки тоже не подходит, потому что, как я уже упоминал выше, набор элементов в пределах однотипного блока на разных страницах также может варьироваться.

 

Пока единственный вариант, который мне видится наименьшим из зол, - описать все используемые тестами элементы в одном классе. Недостаток такого подхода очевиден - огромный класс с сотнями свойств, именовать которые приходится в стиле "MainSearchPageLeftColomnFilterPriceMin", иначе в этом нагромождении будет вообще непонятно, что и откуда. Но что-то мне подсказывает, что есть варианты гораздо лучше.

 

Извиняюсь, если подобное обсуждение здесь уже есть, но не смог найти.


  • 0

#2 Little_CJIOH

Little_CJIOH

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 18 апреля 2017 - 12:30

Пришло время читать хорошую книжку:

http://www.ozon.ru/c...ail/id/2457392/

навскидку: паттерн компоновщик и что-то из порождающих паттернов.
  • 0

#3 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 18 апреля 2017 - 12:56

Для Java есть https://github.com/y...ls/htmlelements

 

Но это для Java, а не для C# ((


  • 0

#4 alexnemtsov

alexnemtsov

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Александр
  • Город:Москва

Отправлено 18 апреля 2017 - 14:32

Пришло время читать хорошую книжку:

http://www.ozon.ru/c...ail/id/2457392/

навскидку: паттерн компоновщик и что-то из порождающих паттернов.

 

Спасибо! Вкратце погуглил про "компоновщик" - и вправду выглядит подходящим решением.


  • 0

#5 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 19 апреля 2017 - 12:17

Для Java есть https://github.com/y...ls/htmlelements

 

Но это для Java, а не для C# ((

И для C# они есть

https://www.nuget.or...s/HtmlElements/


  • 0

#6 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 19 апреля 2017 - 12:41

Тогда вообще супер, не вижу проблемы


  • 0

#7 alexnemtsov

alexnemtsov

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:Александр
  • Город:Москва

Отправлено 21 апреля 2017 - 07:46

Тоже не знал, что он для шарпа есть. Спасибо!


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных