Capybaraで非表示要素を検索できない
更新日:2019.04.27
作成日:2017.06.24
Capybaraで、style="display: none;"
となっているある要素を取得しようと思ったら、思わぬところでハマった。
page.screenshot
でスクリーンショットを取っても、print page.html
でDOMを取得しても、そこにある要素がfindやhas_selector?メソッドから取得できなくて困った。
結論は、style="display: none;"
のような非表示の要素は、デフォルトでは検索条件にならない。
どうやら下記のvisible
オプションがあるようです。知らなくて、しばらく途方にくれていました。
http://www.rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Finders#all-instance_method
visible (Boolean, Symbol) — Only find elements with the specified visibility:
true - only finds visible elements.
false - finds invisible and visible elements.
:all - same as false; finds visible and invisible elements.
:hidden - only finds invisible elements.
:visible - same as true; only finds visible elements.
参考
Related contents
TECH
2015.07.25
Capybaraで「Request failed to reach server, check DNS and/or server status」のエラー