WebElement的计算是惰性的。也就是说,如果您从不在PageObject中使用WebElement字段,则永远不会调用它的“
findElement”。参考。
如果不想
WebDriver每次都查询元素,则必须使用
@CacheLookup注释。
那我的问题清单部分呢?
从列表中查询时将触发findElements。说您有:
@FindBy(xpath = "//div[@class="langlist langlist-large"]//a")private List<WebElement> list;
以下代码示例均 触发 findElements:
list.isEmpty();
WebElement element = list.get(0);
在哪里
List<WebElement> newList = new ArrayList<WebElement>();newList = list;
不会触发 findElements()。
请检查
LocatingElementListHandler课程。我建议深入探讨答案。
您可能会发现PageFactory类中的以下代码注释有帮助:



