質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.32%
for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

0回答

106閲覧

Capybara::ElementNotFound:を解決したいです

pazu6090

総合スコア0

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2024/12/02 01:06

実現したいこと

ターミナルでテストを実行
% bundle exec rspec spec/system/users_spec.rb

ユーザー新規登録
ユーザー新規登録ができるとき
正しい情報を入力すればユーザー新規登録ができてトップページに移動する (FAILED - 1)
ユーザー新規登録ができないとき
誤った情報ではユーザー新規登録ができずに新規登録ページへ戻ってくる

Failures:

  1. ユーザー新規登録 ユーザー新規登録ができるとき 正しい情報を入力すればユーザー新規登録ができてトップページに移動する
    Failure/Error: fill_in 'Password_confirmation', with: @user.password_confirmation

    Capybara::ElementNotFound:
    Unable to find field "Password_confirmation" that is not disabled

    ./spec/system/users_spec.rb:19:in `block (3 levels) in <top (required)>'

Finished in 13.57 seconds (files took 1.29 seconds to load)
2 examples, 1 failure

Failed examples:

rspec ./spec/system/users_spec.rb:8 # ユーザー新規登録 ユーザー新規登録ができるとき 正しい情報を入力すればユーザー新規登録ができてトップページに移動する

↑テストを実行した時に、
Capybara::ElementNotFound:
Unable to find field "Password_confirmation" that is not disabled
のエラーが出て、色々試しましたが原因がわかりません。

↓vsコード spec/system//users_spec.rb

require 'rails_helper'

RSpec.describe 'ユーザー新規登録', type: :system do
before do
@user = FactoryBot.build(:user)
end
context 'ユーザー新規登録ができるとき' do
it '正しい情報を入力すればユーザー新規登録ができてトップページに移動する' do
# トップページに移動する
visit root_path
# トップページにサインアップページへ遷移するボタンがあることを確認する
expect(page).to have_content('新規登録')
# 新規登録ページへ移動する
visit new_user_registration_path
# ユーザー情報を入力する
fill_in 'user_nickname', with: @user.nickname
fill_in 'Email', with: @user.email
fill_in 'Password', with: @user.password
text fill_in 'Password_confirmation', with: @user.password_confirmation
# サインアップボタンを押すとユーザーモデルのカウントが1上がることを確認する
expect{
find('input[name="commit"]').click
sleep 1
}.to change { User.count }.by(1)
# トップページへ遷移することを確認する
expect(page).to have_current_path(root_path)
# カーソルを合わせるとログアウトボタンが表示されることを確認する
expect(
find('.user_nav').find('span').hover
ターミナルでテストを実行
% bundle exec rspec spec/system/users_spec.rb

ユーザー新規登録
ユーザー新規登録ができるとき
正しい情報を入力すればユーザー新規登録ができてトップページに移動する (FAILED - 1)
ユーザー新規登録ができないとき
誤った情報ではユーザー新規登録ができずに新規登録ページへ戻ってくる

Failures:

  1. ユーザー新規登録 ユーザー新規登録ができるとき 正しい情報を入力すればユーザー新規登録ができてトップページに移動する
    Failure/Error: fill_in 'Password_confirmation', with: @user.password_confirmation

    Capybara::ElementNotFound:
    Unable to find field "Password_confirmation" that is not disabled

    ./spec/system/users_spec.rb:19:in `block (3 levels) in <top (required)>'

Finished in 13.57 seconds (files took 1.29 seconds to load)
2 examples, 1 failure

Failed examples:

rspec ./spec/system/users_spec.rb:8 # ユーザー新規登録 ユーザー新規登録ができるとき 正しい情報を入力すればユーザー新規登録ができてトップページに移動する

↑テストを実行した時に、
Capybara::ElementNotFound:
Unable to find field "Password_confirmation" that is not disabled
のエラーが出て、色々試しましたが原因がわかりません。

↓vsコード spec/system//users_spec.rb

require 'rails_helper'

RSpec.describe 'ユーザー新規登録', type: :system do
before do
@user = FactoryBot.build(:user)
end
context 'ユーザー新規登録ができるとき' do
it '正しい情報を入力すればユーザー新規登録ができてトップページに移動する' do
# トップページに移動する
visit root_path
# トップページにサインアップページへ遷移するボタンがあることを確認する
expect(page).to have_content('新規登録')
# 新規登録ページへ移動する
visit new_user_registration_path
# ユーザー情報を入力する
fill_in 'user_nickname', with: @user.nickname
fill_in 'Email', with: @user.email
fill_in 'Password', with: @user.password
fill_in 'Password_confirmation', with: @user.password_confirmation
# サインアップボタンを押すとユーザーモデルのカウントが1上がることを確認する
expect{
find('input[name="commit"]').click
sleep 1
}.to change { User.count }.by(1)
# トップページへ遷移することを確認する
expect(page).to have_current_path(root_path)
# カーソルを合わせるとログアウトボタンが表示されることを確認する
expect(
find('.user_nav').find('span').hover
).to have_content('ログアウト')
# サインアップページへ遷移するボタンや、ログインページへ遷移するボタンが表示されていないことを 確認する
expect(page).to have_no_content('新規登録')
expect(page).to have_no_content('ログイン')
end
end
context 'ユーザー新規登録ができないとき' do
it '誤った情報ではユーザー新規登録ができずに新規登録ページへ戻ってくる' do
# トップページに移動する
# トップページにサインアップページへ遷移するボタンがあることを確認する
# 新規登録ページへ移動する
# ユーザー情報を入力する
# サインアップボタンを押してもユーザーモデルのカウントは上がらないことを確認する
# 新規登録ページへ戻されることを確認する
end
end
end

fill_inで、ローカルホストを立ち上げ、検証コードを使用しました。
https://gyazo.com/d2a3a7cc42a219ab53f0f4eb1b219908

Password_confirmationの_がなかったので追記してテストしたんですが、それでも同じエラーが出ます。
エラー解決できずに困っているんですが、どなたか解答またはアドバイスお願い致します。 ).to have_content('ログアウト')
# サインアップページへ遷移するボタンや、ログインページへ遷移するボタンが表示されていないことを確認す. る.
expect(page).to have_no_content('新規登録')
expect(page).to have_no_content('ログイン')
end
end
context 'ユーザー新規登録ができないとき' do
it '誤った情報ではユーザー新規登録ができずに新規登録ページへ戻ってくる' do
# トップページに移動する
# トップページにサインアップページへ遷移するボタンがあることを確認する
# 新規登録ページへ移動する
# ユーザー情報を入力する
# サインアップボタンを押してもユーザーモデルのカウントは上がらないことを確認する
# 新規登録ページへ戻されることを確認する
end
end
end

fill_inで、ローカルホストを立ち上げ、検証コードを使用しました。

https://gyazo.com/d2a3a7cc42a219ab53f0f4eb1b219908

Password_confirmationの_がなかったので追記してテストしたんですが、それでも同じエラーが出ます。
エラー解決できずに困っているんですが、どなたか解答またはアドバイスお願い致します。

発生している問題・分からないこと

Capybara::ElementNotFound:
Unable to find field "Password_confirmation" that is not disabled

エラーメッセージ

error

1ユーザー新規登録 2 ユーザー新規登録ができるとき 3 正しい情報を入力すればユーザー新規登録ができてトップページに移動する (FAILED - 1) 4 ユーザー新規登録ができないとき 5 誤った情報ではユーザー新規登録ができずに新規登録ページへ戻ってくる 6 7Failures: 8 9 1) ユーザー新規登録 ユーザー新規登録ができるとき 正しい情報を入力すればユーザー新規登録ができてトップページに移動する 10 Failure/Error: fill_in 'Password_confirmation', with: @user.password_confirmation 11 12 Capybara::ElementNotFound: 13 Unable to find field "Password_confirmation" that is not disabled 14 15 [Screenshot Image]: /Users/pazu/projects/pictweet/tmp/capybara/failures_r_spec_example_groups_nested_nested_正しい情報を入力すればユーザー新規登録ができてトップページに移動する_141.png 16 17 18 # ./spec/system/users_spec.rb:19:in `block (3 levels) in <top (required)>' 19 20Finished in 13.57 seconds (files took 1.29 seconds to load) 212 examples, 1 failure 22 23Failed examples: 24 25rspec ./spec/system/users_spec.rb:8 # ユーザー新規登録 ユーザー新規登録ができるとき 正しい情報を入力すればユーザー新規登録ができてトップページに移動する

該当のソースコード

Ruby

1require 'rails_helper' 2 3RSpec.describe 'ユーザー新規登録', type: :system do 4 before do 5 @user = FactoryBot.build(:user) 6 end 7 context 'ユーザー新規登録ができるとき' do 8 it '正しい情報を入力すればユーザー新規登録ができてトップページに移動する' do 9 # トップページに移動する 10 visit root_path 11 # トップページにサインアップページへ遷移するボタンがあることを確認する 12 expect(page).to have_content('新規登録') 13 # 新規登録ページへ移動する 14 visit new_user_registration_path 15 # ユーザー情報を入力する 16 fill_in 'user_nickname', with: @user.nickname 17 fill_in 'Email', with: @user.email 18 fill_in 'Password', with: @user.password 19 fill_in 'Password_confirmation', with: @user.password_confirmation 20 # サインアップボタンを押すとユーザーモデルのカウントが1上がることを確認する 21 expect{ 22 find('input[name="commit"]').click 23 sleep 1 24 }.to change { User.count }.by(1) 25 # トップページへ遷移することを確認する 26 expect(page).to have_current_path(root_path) 27 # カーソルを合わせるとログアウトボタンが表示されることを確認する 28 expect( 29 find('.user_nav').find('span').hover 30 ).to have_content('ログアウト') 31 # サインアップページへ遷移するボタンや、ログインページへ遷移するボタンが表示されていないことを確認する 32 expect(page).to have_no_content('新規登録') 33 expect(page).to have_no_content('ログイン') 34 end 35 end 36 context 'ユーザー新規登録ができないとき' do 37 it '誤った情報ではユーザー新規登録ができずに新規登録ページへ戻ってくる' do 38 # トップページに移動する 39 # トップページにサインアップページへ遷移するボタンがあることを確認する 40 # 新規登録ページへ移動する 41 # ユーザー情報を入力する 42 # サインアップボタンを押してもユーザーモデルのカウントは上がらないことを確認する 43 # 新規登録ページへ戻されることを確認する 44 end 45 end 46end 47

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

Password_confirmationの_がなかったので追記してテストしたんですが、それでも同じエラーが出ます。
エラー解決できずに困っているんですが、どなたか解答またはアドバイスお願い致します。

補足

macbook AppleM3
mac OS. 15.1.1(24B91)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.32%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問