![](/img/trans.png)
[英]List<WebElement> is not storing all the required elements in selenium
[英]Selenium how to get all elements inside a WebElement
我正在嘗試獲取 selenium WebElement
所有元素,例如:
<div>
<element>
<header>header</header>
<p>Paragraph</p>
</element>
<element>
<p>Another Paragraph</p>
</element>
</div>
我想得到一個包含子元素在內的所有元素的列表,就像這樣......
所以我試過這個
element.findElements(By.xpath("*"))
但這只會返回
然后我嘗試了一種遞歸方法來獲取所有孩子
private static ArrayList<WebElement> getAllElements(WebElement element, ArrayList<WebElement> ret) {
ret.add(element);
List<WebElement> childs = element.findElements(By.xpath("*"));
for(WebElement e: childs)
getAllElements(e,ret);
return ret;
}
private static List<WebElement> getAllElements(WebElement element) {
return getAllElements(element,new ArrayList<WebElement>());
}
但是查詢findElements()
花費的時間太長
我想一定有一個xpath
方式,但我似乎找不到它
我們可以使用WebElement.findElements
方法來獲取元素內所有元素的列表。
對於上面的 HTML,要獲取 div 中存在的所有元素的列表,我們可以使用以下代碼:
// Get webelement for div tag
WebElement element = driver.findElement(By.tagName("div"));
// Below will return a list of all elements inside element
List<WebElement> webEleList = element.findElements(By.xpath(".//*"));
//For above given HTML it will print 5. As there are 5 elements inside div
System.out.println(webEleList.size());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.