実現したいこと
RSpecのSystem specにて
ログイン画面にあるパスワードフォームに入力された値を特定のアイコンをクリックすることによって表示⇔非表示に変える機能をテストしたい
前提
windows11
ruby 3.0.5
rails 7.0.4.2
rspec-rails 6.0.1
capybara 3.38.0
selenium-webdriver 4.8.1
webdrivers 5.2.0
ローカルでのブラウザ操作では機能しています。
発生している問題・エラーメッセージ
Failure/Error: expect(find('#textPassword1')[:type]).to eq "text" expected: "text" got: "password" (compared using ==)
該当のソースコード
systemspec.rb
1before do 2 driven_by(:rack_test) 3end 4 5it "", js:true do 6 visit login_path 7 expect(find('#textPassword1')[:type]).to eq "password" 8 find('#buttonEye1').click 9 expect(find('#textPassword1')[:type]).to eq "text" 10end
new.html.erb
1該当箇所のみ抜粋 2<div class="input-group d-flex"> 3 <%= f.password_field :password, class: 'form_control w-auto mb-0 flex-grow-1', id: "textPassword1" %> 4 <span id="buttonEye1" class="input-group-text fa fa-eye" onclick="pushHideButton(1)"></span> 5</div>
show_password.js
1function pushHideButton(num) { 2 var txtPass = document.getElementById(`textPassword${num}`); 3 var btnEye = document.getElementById(`buttonEye${num}`); 4 if (txtPass.type === "text") { 5 txtPass.type = "password"; 6 btnEye.className = "input-group-text fa fa-eye"; 7 } else { 8 txtPass.type = "text"; 9 btnEye.className = "input-group-text fa fa-eye-slash"; 10 } 11}
試したこと
visit・findの後にsleepで時間を置いてみてもダメでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/03/20 05:32