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