Пример лень гуглить, проще ответить на ваш вопрос.
Page Object разделяет автотесты на три уровня:
1 - Локаторы. Это, фактически, набор констант.
Выделять их в отдельные файлы и классы нужно по двум, основным, причинам:
- Так их проще поддерживать и актуализировать. А борьба с "устаревшими" локаторами - это чуть ли не половина всей работы по поддержке автотестов в рабочем состоянии.
- Для того, что бы можно было ссылаться на один и тот же элемент в рамках разных страниц.
2 - Страницы и их объекты:
На этом уровне абстракции содержится бизнес логика приложения и её интерфейсное воплощение.
Такой подход, опять же, позволяет упрощать поддержку. Структура автотестов соответствует структуре интерфейса.
3 - Логика тестов.
Здесь уже содержатся конкретные степы и assertы для оных.
Такое деление позволяет чётко понимать, что и где тебе надо менять в зависимости от ситуации.
Поменялся элемент, но логика приложения осталась прежняя - заменил локатор. Поменялась логика и структура приложения - актуализируешь Page. Нужно актуализировать\дополнить сам тест (т.е. последовательность степов и Expected Result) -> меняешь сам тест.
Надеюсь поможет. :)