带有Selenium的标签之间的getText

时间:2013-05-29 19:30:16

标签: 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调用返回一个空字符串。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

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

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