【RSpec】【Capybara】非表示にしている要素の取得の仕方
解決したいこと
結合テストコードを作成している際に、
上のようにメニューボタンを押した時だけ現れるテキストを確認するために、
expect{
find('input[class="menu-btn"]').click
}.to have_content('新規登録')
このように記述したらエラーが出ました。
調べると、非表示になっている要素は書き方を変えないと検出されないとのことでした。
今回の解決方法
users_spec.rb
expect(find('.menu-content', visible: false).text(:all)).to include '新規登録'
expect(find('.menu-content', visible: false).text(:all)).to include '新規登録'
上のような書き方で無事テストを通せるようになりました。
visible: false のオプションで非表示になっている要素も含めて検出できるようになります。
参考
https://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Finders
https://chaika.hatenablog.com/entry/2019/10/08/083000
Author And Source
この問題について(【RSpec】【Capybara】非表示にしている要素の取得の仕方), 我々は、より多くの情報をここで見つけました https://qiita.com/hmae12/items/ad468357a3e8ea4c9162著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .