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