I have gone through the post of capybara + click on alert box but nothing seems to be work. Following is my scenario:
Scenario: When I click update
I know this is old but this now works in poltergeist too:
page.accept_alert
You can click on an alert box like this:
page.driver.browser.switch_to.alert.accept
Updated answer here, since the options above seem to have all been deprecated.
Capybara::Session#accept_alert seems to be the best way to accomplish this now, where the action that will trigger the alert should be passed in a block. http://www.rubydoc.info/github/jnicklas/capybara/Capybara/Session:accept_alert
e.g.:
page.accept_alert 'Alert text here' do
click_button('Search')
end
page.accept_alert
worked for me using Selenium. Other drivers will probably have their own syntax.
As Jillian Foley mentioned, it seems that other answers have been deprecated.
Try this line if you want to click on the ok button of the alert box:
page.evaluate_script('window.confirm = function() { return true; }')
Don't forget to mark your test with the javascript flag
it "update user to trainer", js: true do
...
end
and enable Capybara.javascript_driver with :webkit or :selenium in your spec_helper file
For WebKit:
page.accept_confirm { click_button "Upgrade" }
For Selenium:
page.driver.browser.switch_to.alert.accept