2011-03-22 29 views
1

我有一個HTML文件,必須使用硒進行解析。 我需要提取div標籤中包含的文本,該標籤具有唯一的id。 原始文件如下:Selenium getText行爲

<div id="debugState" style="display:none"> 
      Model: ModelCode[UK51] 
      Features: [S08TL, S0230, S0851, S0428, S01CD, S0879, S01CA, S08SP, S0698, S01CB, S0548, S08SC, S08TM, S04AK, S01CC, S0801] 
      Packages: [S0801] 
</div> 

所執行的命令如下:selenium.getText("//div[@id='debugState']"); ,其結果是空字符串(而不是包含的文本)。我做錯了什麼,或者這是由於style="display:none"交換機的預期結果。

回答

1

您是否試過刪除style="display:none"屬性以查看它對您的測試有什麼影響?根據the JavaDoc這種方法應該做你所需要的。

+0

你說得對。 getText public java.lang.String getText(java.lang.String locator) 從接口Selenium複製的描述 獲取元素的文本。這適用於包含文本的任何元素。此命令使用元素的textContent(類似Mozilla的瀏覽器)或innerText(類似IE的瀏覽器),它是向用戶顯示的呈現文本。 – Luixv 2011-03-24 07:45:15

1

我真的很難通過使用getText()方法嘗試在web元素中獲取文本。 例如,如果你正在嘗試使用更新它後檢索元素中的文本:

WebElement test = driver.findElement(By.id("idvalue")); 

當您使用WebElement.getText()API打印文本的內容,你最終會得到在更新字段之前包含舊值。

我建議通過執行JScr​​ipt訪問DOM信息(在我的情況下,我已經在我用Selenium測試的頁面中包含了jQuery)。即使元素被隱藏,就像你的情況一樣,你會得到你所需要的。

String test = (String)((JavascriptExecutor)driver).executeScript("return $('#idvalue').text()"); 

p.s.我正在使用jQuery文本()假設我的id值是一個DIV元素

+1

Upvote for this,因爲如果元素可見,getText將只返回數據,但有時你確實想要測試隱藏元素的文本,executeScript是唯一的方法。 – 2012-10-11 16:18:28

相關問題