java - 使用 Selenium 获取标签之间的文本

标签 java xml selenium

我正在尝试解析以下 XML 文件,以便获得一些属性。我需要做的一件事是验证标签之间的内容不为空。为此,我想我可以使用为 Web 元素提供的 getText 方法。

XML 文件:

<results>
    <result index="1">
        <track>
            <creator>Cool</creator>
            <album>Amazing</album>
            <title>Awesome and Fun</title>
        </track>
    </result>
</results>

我用于解析并获取我想要的内容的代码如下(请记住,有多个结果):

boolean result = false;

driver.get(url);

List<WebElement> result_list = driver.findElements(By.xpath(".//result"));

if (result_list.size() == num_results) {

try {
    for (int i = 0; i < result_list.size(); i++) {
    WebElement track = result_list.get(i).findElement(By.xpath(".//track"));

    WebElement creator = track.findElement(By.xpath(".//creator"));
            System.out.println(creator.getText());
    track.findElement(By.xpath(".//album"));
    track.findElement(By.xpath(".//title"));
    }
    result = true;
}
catch (Exception e) {
    result = false;
}
}       
return result;

问题在于,当创建者标记之间存在明显的文本时,System.out.println 调用会返回空字符串。任何帮助将不胜感激!

最佳答案

这里的问题很可能是将该 xml 文件加载到浏览器中使浏览器本身将 xml 文档更改为 html 解释。在 Chrome 中加载它会产生 <track></track>确认您输出的空白字符串的标记。

我会查看 xml 解析器,而不是尝试通过自动化工具来完成此操作。

关于java - 使用 Selenium 获取标签之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16822317/

相关文章:

java - 如何在 java 中创建我们自己的 O(1) 子字符串函数,就像在 jdk 6 中一样。

Python 在 BeautifulSoup 中解析时跳过 XML 子节点

python - 使用 Python 进行网页抓取 : How to scroll into a view by pixels?

python - 脚本无法通过 Selenium 和 Python 使用 xpath 或 id 或其他任何内容找到按钮

css - RobotFramework 中使用 selenium 的复合类选择器

java - Android Studio 与 Java : ArrayAdapter not working correctly

java - Mongo Http配置类未找到错误

java - hibernate/投影中的 Ucase 等价物?

java - 像这个示例一样解析 XML 的好方法?

java - fragment 中的 OnClickListener 不再起作用