How do I confirm a javascript popup with Capybara? How do I confirm a javascript popup with Capybara? ruby-on-rails ruby-on-rails

How do I confirm a javascript popup with Capybara?


Adding an answer for those hitting this in 2016 and beyond. You can now use Capybara directly to accept a confirmation box. You do this by wrapping the code that causes the confirmation box to appear in the accept_confirm function.

accept_confirm do  click_link 'Destroy'end


First of all switch to using Selenium as the driver by putting an @javascript tag in front of your scenario.

The following code in your cucumber step will then confirm the dialogue:

page.driver.browser.switch_to.alert.accept# orpage.driver.browser.switch_to.alert.dismiss# orpage.driver.browser.switch_to.alert.text

As @NobbZ said, this question has been asked and answered before here: How to test a confirm dialog with Cucumber?.

More selenium documentation available here too: http://code.google.com/p/selenium/wiki/RubyBindings#JavaScript_dialogs


for capybara-webkit:

page.driver.browser.accept_js_confirmspage.driver.browser.reject_js_confirms

which is still working, but the documentation says also:

page.driver.accept_js_confirms!page.driver.accept_js_confirms!

See https://github.com/thoughtbot/capybara-webkit , search "accept_js_confirms"