Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 7

А в каких ситуациях вот эта обертка над оберткой по вашему мнению приносит пользу? Как будто бы кажется что для большинства кейсов обычный PageObject уже оверкилл: селекторы уникальные, между страницами в контексте одного сценария ходишь не так уж часто. По крайней мере у меня какой-то такой опыт

Спасибо за комментарий!
Согласен, действительно, стоит отталкиваться от ситуации и масштабов проекта, а так же от подхода к написанию к тестов. Совершенно точно, где-то это будет овекилл. Описанный PO хорошо подходит для больших проектов, где требуется, в том числе, описывать сквозные юзерские сценарии. Из плюсов, в моем понимании:

  • Простая и понятная архитектура PO (это особенно важно, когда над кодом работает большая команда - помогает придерживаться единого стиля).

  • Сам PO становится читабельнее - глядя на любое свойство класс PO становится понятно - это простой локатор, список локатора, компонент, или список компонентов. В результате чего становится понятно, как с этим свойством взаимодействовать.

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

Компоненты могут быть переиспользоваться. Какой-нибудь dropdown menu может встречаться на разных страницах и, что более важно, в разных частях одной страницы. Кроме того, могут рендериться списки, состоящие из инстансов одного компонента.

Это значит, что ваше исходное условие "селекторы уникальные" — ошибочно.

Таким образом, имеется потребность:

  • Описывать Page Object Components и вставлять один и тот же Page Object с разными scope в разные Page Object (или даже в один Page Object).

  • Page Object Components должны вставляться поштучно и массивами, с удобной возможностью их фильтровать, выбирать нужный по высокоуровневому критерию. Сами Page Object тоже хотелось бы определять единообразно и как-то организовать.

Эта библиотека Dorama на первый взгляд просто идеально решает задачу. Она проста, понятна, компактна и при этом продумана. Прямо то, что мне нужно. 😻

@pavel_808, вы поддерживаете эту либу? Сами ей пользуетесь? А то репа выглядит заброшенной.

спасибо за отзыв! либу, к сожалению, не поддерживаю, потому ей особо никто и не пользуется :) А сам использую регулярно (правда немного в другом виде), так как работаю в основном со сложными интерфейсами, где важен порядок :)

Расскажите, пожалуйста, что вы изменили?

Думаю, я столкнусь со всеми теми же челленджами, что и вы. Был бы рад стать вашим пользователем и контрибьютером.

Автор статьи почему-то нигде не указал что сам и является разработчиком этой библиотеки

Справедливо. Дописал, спасибо

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации