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 button An alert box appears which contains "OK" and "Cancel" button. Click on "Ok" then new form appears.
I am writing request specs i.e. using rspec and capybara. Main problem is to click on the alert box: Following is my code:
context "update" do
before(:all) do
Capybara.current_driver = :selenium
end
after(:all) do
Capybara.use_default_driver
end
it "update user to trainer" do
click_button('Search')
sleep 3
page.evaluate_script('data-confirm = function() { return true; }')
page.click('OK')
click_button('Upgrade')
end
end
But executing script gives me following error:
Failure/Error: page.evaluate_script('data-confirm = function() { return true; }') Selenium::WebDriver::Error::UnexpectedJavascriptError: invalid assignment left-hand side # ./spec/requests/user_upgrades_spec.rb:30
For the second example i.e.
page.driver.browser.switch_to.alert.accept
My code :
context "update" do
before(:all) do
Capybara.current_driver = :selenium
end
after(:all) do
Capybara.use_default_driver
end
it "update user to trainer" do
click_button('Search')
sleep 3
click_button('Upgrade')
page.driver.browser.switch_to.alert.accept
end
end
I get error:
Failure/Error: page.driver.browser.switch_to.alert.accept Selenium::WebDriver::Error::UnhandledError:
Please let me know how to proceed further
You can click on an alert box like this:
page.driver.browser.switch_to.alert.accept