おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

capybara で確認ダイアログを含む js をテストする

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