2016-05-31 15 views
1

Standard-WebElement VerhaltenWie funktioniert Lazy Loading mit den Yandex HtmlElements?

Standard-WebElement verzögertes Laden funktioniert wie folgt:

// 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; 

Yandex HtmlElements/TypifiedElement Verhalten

wird die folgende geladen sofort oder träge bei der ersten Verwendung geladen werden?

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

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

Antwort

2

Es funktioniert auf die gleiche Art und Weise wie Standard WebElements - die Suche nach Elementen wird erstmals ausgeführt werden, wenn Sie sie versuchen, zuzugreifen.

+0

Und wenn die HtmlElement-Komponente eine Liste oder andere HtmlElement-basierte Komponenten als Felder hat, ist es immer noch faul geladen? Die Liste wird sofort geladen, oder wenn implizite Timeouts verwendet werden, wird vor dem Laden auf die gesamte Dauer des Timeout gewartet - entweder nicht faul geladen. Also frage mich, ob diese Auswirkungen auf die Container-Klassen Lazy Loading haben ... –

+0

Ja, alle 'inneren' Felder von HtmlElement werden lazy geladen. – artkoshelev