ruby-on-rails - 禁用浏览器前进后退 - 阻止浏览器后退




如何模拟Capybara中的浏览器后退按钮? (4)

我们的电子商务网站上存在一个问题,即用户偶尔会点击“结帐”两次,并且他们的卡会被收取两次费用。

这是一个常见的错误并且易于修复,但我想在我们的水豚设置中测试解决方案。 一旦我调用click_button('checkout'),我是否可以假装我是用户点击浏览器后退按钮然后再次调用click_button('checkout')?


如果您通过capybara-webkit gem使用webkit作为page.driver.go_back javascript驱动程序, 可以使用page.driver.go_back 。 对于scenario还需要:js => true


您可能想尝试:

When(/^I go back$/) do
  page.evaluate_script('window.history.back()')
end

这将需要在一个支持javascript的驱动程序中运行senario(selenium / celerity / akephalos)


至少与capybara 2.10selenium-webdriver 2.53工作:

When(/^I go back$/) do
  page.go_back
end

它基本上是jbarr's答案的捷径。 有关详细信息,请参阅go_back上的go_back文档

顺便说一句:对应部分是page.go_forward






capybara