0

我有一个带有表格的页面。提交表单时,将对服务器进行 AJAX 调用。如果成功,页面将使用 JavaScript 重定向到新页面,如下所示:

$('form').bind('ajax:success', function(){
   window.location = redirect_url;
}); 

如何使用 Capybara 测试此重定向?我正在将 Selenium 网络驱动程序与 Capybara 一起使用。填写和提交表单很容易,但我不确定如何测试这个 AJAX + 重定向组合。

它似乎wait_until在 Capybara 2 ( http://www.elabs.se/blog/53-why-wait_until-was-removed-from-capybara ) 中也被删除了,所以我真的不确定如何断言这个重定向。

谢谢!

4

1 回答 1

-1

我找到了等待重定向的解决方案。

def wait_for_redirect(url)
  start = Time.now
  while true
    break if current_path == url
    if Time.now > start + 20.seconds
      fail "Redirect failed!"
    end
    sleep 0.5
  end
end

现在我可以打电话了wait_for_redirect "/some/url/here"

于 2013-10-17T23:48:53.937 回答