featureスペックで確認ダイアログをクリックしたい

capybara (2.2.1)
poltergeist (1.5.0)
rails (4.1.1)

link_toヘルパーにカスタムdata属性confirmを書くとjsの確認ダイアログを生成してくれる。

 <%= link_to icon("trash"), admin_book_path(book), method: :delete, data: { confirm: "#{book.name}』を削除しますがよろしいですか?" }, class: "destroy" %>

featureスペックでこのダイアログに対してアクションを起こす場合は、jsを使っているのでjavascriptドライバが動くようにしないといけない。
ちなjsが動くようにする時はscenarioメソッドにjs: trueを渡す。

javascriptドライバにwebkit使っているの場合

page.driver.browser.switch_to.alert.accept
page.driver.browser.switch_to.alert.dismiss

のように書くと、ダイアログに対して「OK」「キャンセル」を選択できる。

poltergeistを使っている場合

webkitと違って上記のようなAPIはないようで常に「OK」が選択される。


http://stackoverflow.com/questions/6930927/how-do-i-confirm-a-javascript-popup-with-capybara