Как правильно использовать инкапсуляцию в Page Object паттерне?
Подскажите как правильно использовать инкапсуляцию в Page Object паттерне.
Читал что клиенту должны быть доступны только методы из PageObject, например login, addToCart и т.д, и в тестах лучше не использовать методы selenium, например driver.click().
Но часто в тестах нужен доступ к элементам страницы, нужно просто на них кликнуть например или проверить видимость.
Если скрывать все элементы страницы в PageObject инкапсуляция доходит до абсурда, и придется писать геттеры под каждый элемент или методы вроде addToCartButtonClick().
Вроде бы правильно скрывать элементы внутри PageObject и использовать только методы, но на практике это очень неудобно. Как сделать правильно?