2016-05-31 54 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; 

Yandex的HTML元素/ 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