2013-02-25 46 views
8

我需要獲取隱藏元素的值。如何獲得水豚隱藏的元素值?

我嘗試下面的代碼:

page.find(:xpath, "//span[@id='sample']").text 

返回零。

+0

請出示該頁面的HTML。 – 2013-02-25 13:54:08

+0

@JustinKo不需要知道整個HTML – 2013-02-25 20:28:21

+0

@AndreyBotalov,我只是想確認我們是否正在查看不可見的跨度或類型爲「hidden」的輸入元素。之前在其他問題上一直存在混淆。 – 2013-02-26 16:11:28

回答

20

從水豚2.1你可以通過:alltext和使用find('#sample').text(:all)無論驅動程序。

您也可以使用的匹配的:text選項(他們將在內部傳遞:alltext如果:visiblefalse):

page.should have_css('#sample', visible: false, text: 'expected text') 

在舊水豚2.0.x的text沒有這樣的選項,僅返回可見的文本。

要返回可見和不可見的文字,你可以使用:

  • 硒:
page.evaluate_script("document.getElementById('sample').textContent") 
  • rack_test:
find('#sample').native.text 
+0

文檔:http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Finders – 2013-12-10 22:43:25

+0

這不適用於最新的水豚 – Dean 2015-01-15 18:03:08

+0

@Dean我認爲它應該工作。我只是假設OP想要獲得文本,而不是價值。 – 2015-01-16 18:10:42

15

你可以簡單地找隱藏的元素並獲得它的價值。

find('#sample', visible: false).value 

這麼簡單;)