2013-06-21 102 views
0

我想用硒來訪問一個CSS元素的文本。獲取CSS元素硒的文本

WebElement test = driver.findElement(By.cssSelector("div.CLFSBTextWithLink")); 
System.out.println(test.getText()); 

這就是我現在正在做的,但輸出是空的。

例如,在一個名爲「Company」的網站上可能存在鏈接或文本,當我使用Selenium檢查元素的位置時,它說目標是css = div.CLFSBTextWithLink。現在我想能夠以某種方式獲得「公司」的價值。

+2

你期望的輸出?目前還不清楚你想在這裏做什麼。 –

+0

例如,在一個名爲「Company」的網站上可能存在鏈接或文本,當我使用Selenium檢查元素的位置時,它說目標是css = div.CLFSBTextWithLink。現在我想能夠以某種方式獲得「公司」的價值。 – user2405920

+0

這應該絕對有效。確保頁面上只有一個元素與「div.CLFSBTextWithLink」匹配。如果有更多的,你必須改變你的選擇器,或者遍歷它們。如果您可以向我們展示HTMl的相關部分,我們可能會提出一個正確的選擇策略。 –

回答

2

如果你去http://viewer.opencalais.com/和輸入類似「有 一個叫鮑勃鮑勃人」,點擊提交,那麼你的實體 人在看到它的名字鮑勃鮑勃。我試圖從根本上得到這個名字「Bob Bob」 。


getText()文檔:

得到這個元素

的可見(即不通過CSS隱藏)的innerText但文本最初是隱藏的。您必須首先展開Person元素以使其可見。在這個特殊的「鮑勃鮑勃」的情況下,你可以使用:

driver.findElement(By.id("toggleVisibilityImage1")).click(); 

但始終確保你點擊正確的擴展。爲了使它更普遍,這選擇擴展旁的「人」的範疇:

//input[@class='collapseExpandIcon' and (../text()='Person')] 

,並解釋:

SELECT AN <input> ELEMENT 
//input[             ] 
     THAT IS AN EXPANDER 
     @class='collapseExpandIcon' 
            AND ITS PARENT NODE HAS TEXT "Person" 
            and (../text()='Person')