我这里的代码行是:
List<WebElement> element = driver.findElements(By.xpath("*"));
for(int i=0; i<element.size(); i++)
{
System.out.println(i + element.get(i).getText());
}
出于某种原因,当迭代列表时,它返回列表的一个索引中的所有元素。换句话说,元素的大小只有1。
如何将元素返回到列表的多个索引中?
最佳答案
如果 driver
位于文档的根部,则 *
将仅匹配一个元素,即顶部的元素。如果您想选择整个文档中的所有元素,那么这将是正确的 XPath:
List<WebElement> element = driver.findElements(By.xpath("//*"));
请注意,HTML 元素的字符串值是它包含的文本加上其后代文本的组合,一直向下递归。例如:
<p>
<b>Here is some bold <i>italic</i> text.</b>
Here is some normal text.
</p>
p
元素的字符串值为:
Here is some bold italic text.
Here is some normal text.
b
元素的字符串值为:
Here is some bold italic text.
i
元素的字符串值为:italic
。
因此,如果您要实际选择所有元素并打印出它们的内容,您将会遇到一些重复。
关于java - findelements(by.xpath()) 仅返回列表的一个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22307669/