Разные подходы к Page object паттерну и где лучше хранить локаторы

design-patterns
locators
page-object
Теги: #<Tag:0x00007f7b64d4f800> #<Tag:0x00007f7b64d4f328> #<Tag:0x00007f7b64d4ef40>

(Эллина Кулагина) #41

У вас классичесский PageObjects подход, повезло вам! :slight_smile:


(Максим) #42

Я тоже использую с#, и как бы все работает, мы за основу взяли maqs решение, и интересный подход. Посмотрите


(Евгений Бухгаммер) #43

Резюмирую:

и тот подход и другой - никак не нарушает идею Page Object Pattern. Люди выносят классы с локаторами в отдельный файл, потому что в этом случае проще редактировать один файл, когда поменялась верстка. Это исключает возможность случайно закоммитить правки не относящиеся к локаторам, если локаторы хранились бы в PageObject’ах.

в куче языков проблем с множественным наследованием нет, например, в Python это отлично используется. В статических языках можно решить не наследованием, а композицией :slight_smile:
Ну и когда локаторов на страницу становится много, а атрибуты класса объявляются обычно в начале класса - бывает неудобно работать с классом пейдж объекта. А так – начинаешь писать, и оп, IDE тебе подмешанные в класс локаторы предлагает :slight_smile: