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

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

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

Резюмирую:

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

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