Комментарии 6
Не понятно конечно как вы ушли от падений связанных с редизайном с таким вот пэйддж обджект... Ну да ладно, ушли так ушли, молодцы.
Как по мне так не хватает явных декораций для элементов, таких как 'button', 'input' и т.п., которые бы позволили вынести имплементации в свои интерфейсы.
Рест ажур можно было сделать тоже чуть более поддерживаемым, как минимум вынести path в сам класс юзеров, чтоб потом по всему коду не менять.
Ну а так, если честно, даже завидую, что заказчики вами довольны. Удачи, развивайтесь!
Спасибо за комментарий! Я понимаю, что редизайны могут вызывать сложности, особенно в контексте автоматизации тестирования. Мы стараемся использовать паттерн Page Object Model, чтобы минимизировать влияние изменений на тесты.
Что касается явных декораций, наш код уже содержит аннотации, такие как @Test, @Issue, @Story и @DisplayName. На данном этапе их нам вполне достаточно. Также стоит отметить, что названия методов описывают их функциональность, что тоже можно считать своего рода декорацией.
Эм...
Локаторы должны быть в отдельном модуле, а в пейджах должны быть методы, которые оперируют элементами через эти локаторы.
Спасибо за комментарий, такая логика тоже имеет место быть. Однако нам визуально проще держать их в одном классе, так же такая практика описана в книгах Selenium Design Patterns and Best Practices и Automated Testing with Selenium
Согласен, но всё зависит от объёма и сложности. Те же локаторы уже тяжело держать на пэйдже, когда на ней 20 элементов. А когда 200? Тут уж и селекторы в отдельном файле не справятся. У меня вообще уже организован поиск элемента на странице через его лэйбл (если подписан) и тип, к которому элемент относится (дропдаун, инпут и т.п.), так мне удалось сократить явные локаторы к минимуму. Но конечно, такое можно не для всего сделать.
Спустя некоторое время, когда UI-тесты были написаны, у ручных тестировщиков стало меньше рутинной работы,
Точнее, у них вообще не стало работы ;) (немного сарказма)
Автоматизация тестирования, которая не ломается при первом редизайне