2016-05-31 13 views
1

Стандартный WebElement поведениеКак работает ленивая загрузка с помощью Yandex HtmlElements?

Стандартный WebElement отложенной загрузки работает следующим образом:

// Will not try to find button until perform an operation on it such as button.click(); 
@FindBy(id = "button") 
private WebElement button; 

// Button list will be created immediately 
@FindBy(id = "button") 
private List<WebElement> buttons; 

// Button list will be created after waiting 5 seconds 
@Timeout(5) 
@FindBy(id = "button") 
private List<WebElement> buttons; 

Яндекс HtmlElements/TypifiedElement поведение

Будет ли следующий быть загружен немедленно или лениво загружается при первом использовании?

@FindBy(id = "button") 
private CustomButton button;  // Extends TypifiedElement 

@FindBy(id = "block") 
private CustomComponent block;  // Extends HtmlElements 

ответ

2

Он работает так же, как и стандартные WebElements - поиск элементов будет выполняться в первый раз, когда вы пытаетесь получить доступ к ним.

+0

И если компонент HtmlElement имеет список или другие компоненты на основе HtmlElement в качестве полей, он все еще ленив загружен? Список загружается сразу же, или если использование неявных тайм-аутов будет ждать полной продолжительности таймаута перед загрузкой - в любом случае, не будет загружаться без лени. Так интересно, если они оказывают какое-либо влияние на классы контейнеров ленивой загрузки ... –

+0

Да, все «внутренние» поля HtmlElement будут лениться загружены. – artkoshelev