我正在使用带有Cucumber和Capybara的Ruby on Rails.
我将如何测试一个简单的确认命令("你确定吗?")?
另外,我在哪里可以找到有关此问题的进一步文档?
我想在Ruby上添加link_to函数的确认消息.
= link_to 'Reset message', :action=>'reset' ,:confirm=>'Are you sure?'
Run Code Online (Sandbox Code Playgroud)
任何想法为什么它不起作用?
ruby link-to ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2
我已经通过了水豚的帖子+点击提示框,但似乎没有任何工作.以下是我的情景:
场景:当我单击更新按钮时出现一个警告框,其中包含"确定"和"取消"按钮.单击"确定",然后出现新表单.
我正在编写请求规范,即使用rspec和capybara.主要问题是单击警告框:以下是我的代码:
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
Run Code Online (Sandbox Code Playgroud)
但执行脚本会给我以下错误:
失败/错误:page.evaluate_script('data-confirm = function(){return true;}')Selenium :: WebDriver :: Error :: UnexpectedJavascriptError:左侧无效赋值#./ spec/summary/user_upgrades_spec.rb :30
对于第二个例子即
page.driver.browser.switch_to.alert.accept
我的代码:
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
Run Code Online (Sandbox Code Playgroud)我收到错误: …
我使用rspec-rails 2.14.0.rc1和capybara 2.4.1从rails 3.2.19升级到rails 4.1.5.所有测试都通过了,我只剩下一个弃用警告:
[DEPRECATION] Capybara::Webkit::Driver#accept_js_confirms! is deprecated. Please use Capybara::Session#accept_confirm instead.
Run Code Online (Sandbox Code Playgroud)
导致这种情况的代码行是
page.driver.accept_js_confirms!
Run Code Online (Sandbox Code Playgroud)
如何更改此行以消除弃用警告?