我正在尝试获取超链接的文本,旁边有一个标记图标“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());
}
答案 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"));
}
});