非表示の要素の値を取得する必要があります。
次のコードを試しました。
page.find(:xpath, "//span[@id='sample']").text
nilを返します。
Capybara 2.1から、ドライバーに関係なくパス:all
しtext
て使用できます。find('#sample').text(:all)
また:text
、マッチャーのオプションを使用することもできます( isの場合は内部的に渡さ:all
れます):text
:visible
false
page.should have_css('#sample', visible: false, text: 'expected text')
古いCapybara2.0.xtext
にはそのようなオプションがなく、表示されているテキストのみが返されていました。
表示されているテキストと表示されていないテキストの両方を返すには、次の場所で使用できます。
page.evaluate_script("document.getElementById('sample').textContent")
find('#sample').native.text
隠された要素を見つけて、その値を取得するだけです。
find('#sample', visible: false).value
とても簡単 ;)