2013-10-17 25 views
0

我有一個表單的頁面。提交表單時,會向服務器發出AJAX調用。如果成功,將頁面重定向到使用JavaScript如下新的一頁:如何使用Capybara 2.1聲明AJAX完整並重定向?

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

如何使用水豚我測試這個重定向?我正在使用水豚的Selenium webdriver。填寫並提交表單很簡單,但我不確定如何測試此AJAX +重定向組合。

看來wait_until也被刪除在水豚2(http://www.elabs.se/blog/53-why-wait_until-was-removed-from-capybara),所以我真的不知道如何斷言這個重定向。

謝謝!

回答

-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"