获取具有不同图标的超链接的文本

时间:2015-03-20 05:46:37

标签: java selenium-webdriver

我正在尝试获取超链接的文本,旁边有一个标记图标“ins”。当我编写下面的代码时,它会打印“?”而不是text.screen镜头附加了测试中的应用程序![屏幕截图] .Kindly帮我解决问题。

列出links = driver.findElements(By.tagName(“ins”));

    System.out.println("the number of movie links in the site is "+links.size());

    for (int i = 1; i<=links.size(); i=i+1)

    {

        System.out.println(links.get(i).getText());

    }

1 个答案:

答案 0 :(得分:2)

所以你可以使用//ins[@class='icon movie']/ancestor::a到达元素,然后使用

for (int i = 0; i<links.size(); i++){
    System.out.println(links.get(i).getAttribute("href"));
}

同样在你的循环中省略列表中的第一个元素。是错误还是需要? 此外,您可以将增强型for循环用于此目的:

for (WebElement webelement : links){
    System.out.println(links.get(i).getAttribute("href"));
}

如果您正在使用新的Java 8,您可以探索以下新功能:

links.forEach(new Consumer<WebElement>() {
    @Override
    public void accept(WebElement t) {
        System.out.println(t.getAttribute("href"));
    }
});