capybara 経由で selenium を使ってテストする時に、確認ダイアログを含む js をテストする方法のまとめ。
昔のやり方
クリックする前に、confirm の内容を差し替える方法。
page.evaluate_script('window.confirm = function() { return true; }') page.click('Remove')
最近のやり方
最近の selenium-webdriver は確認ダイアログに対応したらしく、下記のように書けるようになったらしい。最近の主流はこっちみたい。
page.click('Remove') page.driver.browser.switch_to.alert.accept