Перейти к содержимому

Фотография

Инициализация элементов через PageFactory

PageFactory Инициализация

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Deformator

Deformator

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 02 сентября 2014 - 11:48

Добрый день форумчане. Только недавно я начал изучать Page Object и PageFactory так что глупые вопросы присутствуют.  Ситуация следующая - существует к примеру 2 страницы (Java классы). 1-я SignupPage и 2 -я AdminPage. На первой странице определены все поля, селекты и кнопки через @FindBy, также присутствуют методы (регистрация, регистрация только по обязательным полям и т.д.). 2-я страница представляет собой админку, однако в админке при нажатии CreateUser открывается та же форма, что и на SignUp, т.е. по сути нужно заполнить те же элементы. Что нужно сделать, что бы не переписывать снова все элементы? Ведь они уже расписаны на SignUpPage? Как их инициализировать для AdminPage?

 

Пример:

public class AdminPage {

    Driver driver;

    public AdminPage(Driver driver) {
        this.driver = driver;
        PageFactory.initElements(driver,SignupPage.class);
    }

    public String findH1() {
        return h1.getText();
    }
}

в данном случае h1 элемент определен в классе SignupPage и IDE репортит что не может реализовать символ h1 т.к. типа его нет в этом классе. Заранее спасибо )


  • 0

- Ты программист?

- Нет, я тестировщик.

- А кто это?


#2 ashipovalov

ashipovalov

    Активный участник

  • Members
  • PipPip
  • 142 сообщений
  • ФИО:Шиповалов Александр


Отправлено 03 сентября 2014 - 04:20

Отнаследуйте одну страницу от другой. Или заведите общий класс Page, и в него перенести этот метод.
  • 0

#3 Deformator

Deformator

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 03 сентября 2014 - 06:24

Отнаследуйте одну страницу от другой. Или заведите общий класс Page, и в него перенести этот метод.

 

1-й вариант не подходит. А насчет 2-го - я так понимаю туда можно выносить все Вебэлементы (вместе с xpath) и методы, которые используются на нескольких страницах? Ну а потом наследоваться от этой страницы? Корректно ли это будет со стороны правильного построения структуры? Интересуют мнения экспертов :)


  • 0

- Ты программист?

- Нет, я тестировщик.

- А кто это?


#4 Nwd

Nwd

    Новый участник

  • Members
  • Pip
  • 28 сообщений

Отправлено 18 сентября 2014 - 16:54

Я не эксперт, но почему не сделать:

1. один класс - page

2. второй класс - method работы с этой пейджой

3. собственно, тест


  • 0



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных