2015-07-11 62 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沒有返回結果...謝謝你! –