Jos*_*pez 4 java selenium xpath selenium-webdriver
我试图获取 selenium 内的所有元素WebElement
,例如:
<div>
<element>
<header>header</header>
<p>Paragraph</p>
</element>
<element>
<p>Another Paragraph</p>
</element>
</div>
Run Code Online (Sandbox Code Playgroud)
我想获取其中所有元素(包括子元素)的列表,就像这样......
所以我尝试过这个
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>());
}
Run Code Online (Sandbox Code Playgroud)
但查询时间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());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28698 次 |
最近记录: |