我想把所有元素都放在 selenium 里 WebElement
,例如:
<div>
<element>
<header>header</header>
<p>Paragraph</p>
</element>
<element>
<p>Another Paragraph</p>
</element>
</div>
我想得到一个包含子元素在内的所有元素的列表,就像这样。。。
部门
要素
收割台
段落
要素
段落
所以我试过这个 element.findElements(By.xpath("*"))
但这只会回来
要素
要素
所以我尝试了一个递归方法来得到所有的child
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
是的,但我好像找不到
1条答案
按热度按时间whitzsjs1#
我们可以用
WebElement.findElements
方法获取元素中所有元素的列表。对于上面的html,要获得div中所有元素的列表,我们可以使用以下代码: