java - findelements(by.xpath()) 仅返回列表的一个索引

标签 java selenium xpath selenium-webdriver

我这里的代码行是:

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/

相关文章:

java - 我们在我们的产品中使用Java Applet 技术。是否有其他供应商提供的 Oracle Java Web 插件的替代方案?

java - Android/Java 初学者 - 帮助了解 Intent 和添加两个数字

java - 如何等待第二个窗口完全加载

javascript - Uncaught ReferenceError : driver is not defined while switching to Default Content through Selenium WebDriver

selenium - 如何在 Jenkins 中通过电子邮件通知发送/发布 Selenium 测试报告?

dom - DOMDocument xpath查询图像扩展名不等于特定文本吗?

java - 我应该在 throws 规范中声明未经检查的异常吗?

Java - 如何在 LWJGL 中使用顶点缓冲区对象?

xml - XPath 过滤子节点

java - 在 JAXP 中使用 XPath 检索 XML 节点和节点属性的值