Комментарии 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, вы поддерживаете эту либу? Сами ей пользуетесь? А то репа выглядит заброшенной.
спасибо за отзыв! либу, к сожалению, не поддерживаю, потому ей особо никто и не пользуется :) А сам использую регулярно (правда немного в другом виде), так как работаю в основном со сложными интерфейсами, где важен порядок :)
Автор статьи почему-то нигде не указал что сам и является разработчиком этой библиотеки
Пишем сложный Page object для playwright тестов вместе с Dorama