2013-02-25 9 views
8

隠し要素の値を取得する必要があります。カピバラで隠れ要素の値を取得するには?

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

それはnilを返します。

は、私は、次のコードを試してみました。

+0

ページのHTMLを表示してください。 –

+0

@JustinKo HTMLを完全に知っている必要はありません。 –

+0

@AndreyBotalov、私は、表示されていないスパンやタイプ 'hidden'の入力要素を見ているかどうかを確認したかっただけです。他の質問でこれまで混乱があった。 –

答えて

20

Capybara 2.1から、text:allを渡し、ドライバに関係なくを使用できます。

また、あなたはマッチャーの:textオプション(:visiblefalseであれば、彼らは内部text:allを渡します)を使用することができます:古いカピバラ2.0.xのtext

page.should have_css('#sample', visible: false, text: 'expected 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 –

+0

これは最新のCapybaraのためには機能しません – Dean

+0

@Deanそれはうまくいくはずです。私はOPが値ではなくテキストを得たいと思ったばかりです。 –

15

あなたは単にすることができ見つける隠された要素とそれの価値を得る。

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

だから、簡単な;)

関連する問題