2015-07-11 66 views
3

我无法获得使用硒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,等...),但似乎没有任何工作。任何帮助,将不胜感激。

+0

你肯定的是,webdriver的情况下加载有问题的网页? – luksch

+0

是给定的HTML真的那么由装载的webdriver?该页面没有JavaScript或CSS?两者都可以影响webdriver的方式,可以解释你的发现。 – luksch

+0

是网页被加载。我试过使用不同的单元驱动程序,页面确实加载。 –

回答

1

我会尝试使用下面的CSS

#wordList>span 

实现找到从父节点跨度:

List<WebElement> spans = driver.findElements(By.cssSelector("#wordList>span")); 
for (WebElement span : spans) { 
    System.out.println(span.getText()); 
} 

使用标记名跨度不从定位元素非常可行一个网页,因为它可以包含很多。

+0

你的代码的工作,但只使用FirefoxDriver时。 HtmlUnitDriver没有返回结果...谢谢你! –