从相同的xpath获得两个不同的结果

时间:2018-04-06 06:22:15

标签: html selenium selenium-webdriver

HTML代码:

<div class="deviceName truncate"><a ng-href="#" href="#" style="">Hello  World</a></div>

每个<a>元素,链接文本包含双倍空格"Hello World"

在List

中检索信息
List<WebElement> findAllUserName = driver.findElements
                (By.xpath("//div[@class='deviceName truncate']//a[text()]"));

        for (WebElement webElement : findAllUserName) {
            String findUSerText = webElement.getText();
            System.out.println(findUSerText);
        }

它的列表结果包含单个空格"Hello World"

如何克服这种情况?要比较文字,

关注此背后,想要将list元素与给定字符串进行比较:

driver.findElement(By.xpath("//div[@class='deviceName truncate']//a[contains(text(),'" + name + "')]"))

考虑到双倍空间,

1 个答案:

答案 0 :(得分:0)

如果您只是检查浏览器如何呈现链接,您会发现它也只有一个空间。请参阅此讨论:Do browsers remove whitespace in between text of any html tag

所以你应该像这样添加一个样式到你的页面

a {
   white-space: pre; 
}

这将使您的所有链接都无格式化。

或尝试动态注入特定元素的样式,如下所示:How can i set new style of element using selenium web-driver

Here is the example有两个相同的链接但设置了不同的样式。