Rspecで確認メッセージを選択する記述方法
システムスペックを書いている時に確認ダイアログを選択する方法を知らなかったので調べてみました。
前提
内容
とりあえず分からないなりに書いてみると、案の定エラーがでました。
Selenium::WebDriver::Error::UnexpectedAlertOpenError
テストのビュー該当部分はこんな感じです。
= form_with model: @contact, local: true do |f| .form-group = f.label :message = f.text_area :message, size: '10x10', class: 'form-control' = f.submit '送信する', class: 'btn btn-primary', data: { confirm: '送信しますか?' }
解決方法
確認ダイアログを選択するにはaccept_confirm
と使うと良いそうです。
なので、上記の「送信する」の場合にはこのようになります。
page.accept_confirm do click_on '送信する' end
これで確認ダイアログを選択でき、テストを走らせたところパスしました。
ちなみに、確認ダイアログでキャンセルを選択する場合はこのように書けば良いようです。
page.dismiss_confirm do click_on '送信する' end