CapybaraでElementNotFoundと出た時の対処法
RSpecでよく使用されるCapybara
ブラウザでの操作やエミュレーターでの操作を全てRuby上で書けるし代行してくれる優れものなのですが、feature Specで決まって
capybara::ElementNotFound:Unable to find visible field
というエラーが発生するためそれの原因と解決策を忘れない様書いておきます
今回はウェブブラウザーを使用します
どのブラウザーでもいいですがGoogle Chromを使用していきます
どういった状況で発生するのか
fill_inでどの要素にどの値を入れてほしいかを教えたら
fill_in "email", with: "[email protected]"
capybaraさんから
そんな要素ないから値が入らないです
と怒られました
Failure/Error: fill_in "email", with: "[email protected]"
エラー内容的には、「emailってメソッドないんですけど間違えてないですか?」と教えてくれます
なので修正方法としてはここを直していく感じです
解決法
rails serverを開き、Capybaraでtestしたい場所(サイト)まで移動します
そこでMacなら「option + command + C」を押して開発者ツールを起動します
testしたいところにカーソルを近づけると・・・
こんな感じで表示されます(今回はemailを入れるinputタグを見本としています)
そしてここをクリックすると
こうやってHTML形式でinputの詳細が出てくるので、その中の
name = "session[email]"
をCapybaraのfill_inに読ませればうまく動作してくれると思います
Author And Source
この問題について(CapybaraでElementNotFoundと出た時の対処法), 我々は、より多くの情報をここで見つけました https://qiita.com/pooooon/items/4fbc429d07e4b65ed928著者帰属:元の著者の情報は、元の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 .