我正在尝试解析以下 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/