• SIS Lab
  • >
  • Blog
  • >
  • Capybaraで非表示要素を検索できない

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.

参考

Ruby on Rails 5アプリケーションプログラミング
Ruby on Rails 5アプリケーションプログラミング
出版社:技術評論社
著者:山田 祥寛
発売日: 2017/04/14

Related contents