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

Фотография

ExpectedCondition и Page Object Pattern


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

#1 ArthurVonDieselschaft

ArthurVonDieselschaft

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

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

Отправлено 29 марта 2012 - 14:44

В разработке тестов использую паттерн Page Object, а также Page Element и вместо WebElement создал свои пользовательские типы (TextField, Table, etc..).
Для поиска элементов пользуюсь аннотацией @FindBy

Тут и возник вопрос:
Для тестирования Ajax приложений используют ExpectedCondition.
Но если прописывается аннотация, то элемент ищеться в тот момент когда мы к аннотируемому элементу обращаемся.
Как использовать совмесно ExpectedCondition и аннотации @FindBy?

Заранее спасибо за идеи
  • 0

#2 D2Phoenix

D2Phoenix

    Постоянный участник

  • Members
  • PipPipPip
  • 200 сообщений
  • ФИО:Чадюк Вадим
  • Город:Гродно


Отправлено 29 марта 2012 - 15:08

А зачем вы юзаете @FindBy и ExpectedCondition для одного и того же элемента???

ps. Может это поможет. Также по-идее включение имплицитных ожиданий должно помочь
  • 0

#3 ArthurVonDieselschaft

ArthurVonDieselschaft

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

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

Отправлено 30 марта 2012 - 07:24

Через @FindBy у меня на странице описаны все элементы.
А теперь мне нужно узнать появился ли элемент на странице. Но локатор второй раз писать как-то не очень красиво.

По ссылочке вопрос по теме, но к сожалению без ответа, так как я уже использую свой декоратор
PageFactory.initElements(new ExtendedFieldDecorator(driver), this);

  • 0

#4 D2Phoenix

D2Phoenix

    Постоянный участник

  • Members
  • PipPipPip
  • 200 сообщений
  • ФИО:Чадюк Вадим
  • Город:Гродно


Отправлено 30 марта 2012 - 07:32

Через @FindBy у меня на странице описаны все элементы.
А теперь мне нужно узнать появился ли элемент на странице. Но локатор второй раз писать как-то не очень красиво.

По ссылочке вопрос по теме, но к сожалению без ответа, так как я уже использую свой декоратор

PageFactory.initElements(new ExtendedFieldDecorator(driver), this);

Ну у вас 2 варианта:
1) Не юзать @FindBy к этому элементу либо описать его второй раз в ExpectedCondition
2) Юзать вместо ExpectedCondition имплицитные ожидания
  • 0

#5 ArthurVonDieselschaft

ArthurVonDieselschaft

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

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

Отправлено 30 марта 2012 - 07:36

Спасибо за ответ.

Выходит у меня только один выбор, поскольку имплицитные ожидания синхронные, что не подходит для моего приложения.


Существует ли функция, чтоб из объекта извлечь его xpath или css selector который был указан в аннотации?
  • 0

#6 ArthurVonDieselschaft

ArthurVonDieselschaft

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

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

Отправлено 30 марта 2012 - 09:40

Нашлось удовлетворяющее меня решение - написать свой класс ExpectedCondition, где учесть что я не передаю ему локаторы, а готовые элементы.
  • 0


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

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