LoginSignup
0
0

More than 3 years have passed since last update.

System Specでブラウザのダイアログを操作する方法

Posted at

どうもShota(@Mii4a2501)です。
System SpecでDestroyアクションを行う際、ダイアログを操作しようとしたところ、はまってしまったので備忘録。

alert_confirmとdismiss_confirm

pageインスタンスには、

alert_confirm => OKを押す用のメソッド
dismiss_confirm => キャンセルを押す用のメソッド

この二つの操作用メソッドが用意されています。
(accept_alertというOKボタンのみダイアログ用の操作メソッドもあるようです)

注意点

上記メソッドを使う際、若干の工夫が必要です。

qiita.rb
expect{ 
  page.accept_confirm
  # expectブロック内に一つ以上のfind,expectが必要
  expect(page).to have_content "削除に成功しました"
}.to change(School, :count).by(-1)

このようにして、expectブロック内に一つ以上findやexpectがない限り、ダイアログが表示されacceptされる前に次に進んでしまい、結果がfailureとなってしまいます。
(ちなみに自分はまだ現場未経験の人間なのですがこのテクニックはおなじみだそうで....)

最後に

同じ状況に陥ってしまった方の助けになれば幸いです!

0
0
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
0
0