読者です 読者をやめる 読者になる 読者になる

Capybaraで非表示要素を対象とする

Capybaraで非表示(style="display: none;")になっている要素を検索対象にできないか調べたら、 visibleオプションが使えることが分かった。

例えば、以下のような感じだ

find("#hoeg", visible: false)
have_selector('.hoge', visible: false)
have_css('#hoge', visible: false)

また Capybara.ignore_hidden_elements = falseとすると、visibleオプションを渡さなくても非表示要素が検索対象になる。

なので、以下のようにしてもよい。

before { Capybara.ignore_hidden_elements = false }
after { Capybara.ignore_hidden_elements = true }

参考 http://qiita.com/upinetree/items/4d4022c90ce32b68c38d http://kakakakakku.hatenablog.com/entry/2015/05/14/124653