53
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CapybaraでElementNotFoundと出た時の対処法

Posted at

RSpecでよく使用されるCapybara
ブラウザでの操作やエミュレーターでの操作を全てRuby上で書けるし代行してくれる優れものなのですが、feature Specで決まって

capybara::ElementNotFound:Unable to find visible field

というエラーが発生するためそれの原因と解決策を忘れない様書いておきます
今回はウェブブラウザーを使用します
どのブラウザーでもいいですがGoogle Chromを使用していきます

どういった状況で発生するのか

fill_inでどの要素にどの値を入れてほしいかを教えたら

./spec/features/sign_up_spec.rb
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したいところにカーソルを近づけると・・・
スクリーンショット 2019-09-28 23.39.30.png
こんな感じで表示されます(今回はemailを入れるinputタグを見本としています)
そしてここをクリックすると
スクリーンショット 2019-09-28 23.39.42.png
こうやってHTML形式でinputの詳細が出てくるので、その中の

name = "session[email]"

をCapybaraのfill_inに読ませればうまく動作してくれると思います

53
36
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
53
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?