Jam*_*aly 30 ruby testing ruby-on-rails capybara
我们的电子商务网站上存在一个问题,即用户偶尔会两次点击"结帐",并且会对其卡进行两次充值.
这是一个常见的错误,容易修复,但我想在我们的水豚设置中测试解决方案.一旦我调用click_button('checkout'),我是否可以假装我是用户点击浏览器后退按钮然后再次调用click_button('checkout')?
小智 38
你可能想尝试:
When(/^I go back$/) do
page.evaluate_script('window.history.back()')
end
Run Code Online (Sandbox Code Playgroud)
这将需要在支持javascript的驱动程序中运行senario(selenium/celerity/akephalos)
如果您通过gem 使用webkit作为capybara javascript驱动程序page.driver.go_back,则可以使用capybara-webkit.还需要:js => true为scenario.
至少在capybara 2.10和selenium-webdriver 2.53这个作品:
When(/^I go back$/) do
page.go_back
end
Run Code Online (Sandbox Code Playgroud)
它基本上是jbarr答案的捷径。有关详细信息,请参阅 上的水豚文档go_back。
顺便说一句:反面部分是page.go_forward。
我在Webrat中使用过这个方法。我确信类似的东西对水豚来说也会起作用。
When(/^I go back$/) do
visit request.env['HTTP_REFERER']
end
Run Code Online (Sandbox Code Playgroud)
旁注:“redirect_to :back”方法由于某种原因对我不起作用。
| 归档时间: |
|
| 查看次数: |
10996 次 |
| 最近记录: |