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

Фотография

Не работает List<WebElement> из PageFactory


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

#21 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 31 марта 2016 - 06:55

Элементы проинициализируются, но первый поиск их на странице будет только тогда, когда в рамках теста к ним будет первое обращение.
И вот тогда уже - может быть NPE, если таких элементов на странице в данный момент нет.

 
Ну очевидно, что если нет обращения к элементу, то не будет и NPE
 
Это очень похоже на код:
//нет ошибки     
 String s = null;
//NPE
 s.length();

Причем здесь это? 
Вы написали, что initElements вызывает NPE на "любом FindBy", я уточнила - что это не так, т.к. initElements не вызывает NPE "любом FindBy" сам по себе.
Инициализация через initElements и обращение к элементу - не одно и тоже.
 
На приведенный вами код - не похоже вообще.
В вашем варианте - действительно будет NPE все время.
Похоже на что-то вроде:
WebElement element = tryToSearchThisElement();

public WebElement tryToSearchThisElement() {
     return driver.findElement(<locator_из_аннотации>);
}
Ошибка будет только в том случае, если элемента действительно нет на странице в тот момент, когда его будут искать.
При правильном использовании - не будет и NPE.
  • 0

#22 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 31 марта 2016 - 07:00

Ладно, хорошо. Написанное мной было не совсем понятно


  • 0


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

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