获得从跨度硒
问题描述:
我无法获得使用硒2.46.0文本列表的文本。我想要返回跨度中的每个文本值。获得从跨度硒
的HTML代码:
<p id="wordList">
<span>
owl
</span>
<span>
end
</span>
</p>
注意跨度标签没有一个类或ID来参考。
我的代码:
List<WebElement> spans = driver.findElements(By.tagName("span"));
for (WebElement span : spans) {
System.out.println(span.getText());
}
它没有任何返回任何文本。实际上,它甚至不认识到span标签存在。我也尝试了不同的变化(的XPath,CSSSelector,等...),但似乎没有任何工作。任何帮助,将不胜感激。
答
我会尝试使用下面的CSS
#wordList>span
实现找到从父节点跨度:
List<WebElement> spans = driver.findElements(By.cssSelector("#wordList>span"));
for (WebElement span : spans) {
System.out.println(span.getText());
}
使用标记名跨度不从定位元素非常可行一个网页,因为它可以包含很多。
+0
你的代码的工作,但只使用FirefoxDriver时。 HtmlUnitDriver没有返回结果...谢谢你! –
你肯定的是,webdriver的情况下加载有问题的网页? – luksch
是给定的HTML真的那么由装载的webdriver?该页面没有JavaScript或CSS?两者都可以影响webdriver的方式,可以解释你的发现。 – luksch
是网页被加载。我试过使用不同的单元驱动程序,页面确实加载。 –