Задать вопрос
SanchelliosProg
@SanchelliosProg
Java, Android, Software Testing

Хорошо ли делать поля (WebElements) public в реализации PageObject?

Дело в том, что с некоторыми элементами операции проводятся действительно простые: кликнуть, ввести значение и т.д.
Насколько это bad/good practice делать поля PageObject публичными?
  • Вопрос задан
  • 47 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@1001001
Это ваша личная кухня, как решите с коллегами так и делайте. )
Но держусь мнения, что в PageObject надо держать не поля а логику.
Вот есть у вас кнопка для закидывания товара в корзину, сделали поле в PO
By pay = By.id("pay")
(не важна By, или WebElement, или еще какая обертка). Теперь в нескольких тестах вы используете его
@Test
publuc void UserShoudBeAdblePay(){
  ...
  driver.findElement(pay).click();
}

А дальше приложение развивается и кнопка превращается в drop-down где два пукнка кинуть в корзину и купить сразу, теперь вы идете и лопатите весь код добавляя клик для открытия drop-down.
А если вы будете закладывать логику в PO, то править надо будет в 1 месте
public void putInBasket() {
        driver.findElement(By.id("pay")).click();
    }


public void putInBasket() {
        driver.findElement(By.id("drop-down")).click();
        driver.findElement(By.id("pay")).click();
    }


Другое дело, что возможно вам и не нуден PageObject, если у вас UI тесты, которые проверяют то, что нельзя проверить более низкоуровневыми тестами, есть шанс что PO в целом излишен )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы