2017-02-16 22 views
0

,因爲它是在某種程度上可能等待阿賈克斯呼叫(herethere),有沒有辦法等待或觀察水豚(html5 /瀏覽器歷史)的路線變化?路線改變是否會引發我們可以聽到的事件?水豚/觀察html5 /歷史路線變化

回答

1

推或從歷史彈出應該改變目前的網址,以便您可以使用have_current_path匹配

expect(page).to have_current_path("/whatever") 
+0

是的,我檢查了;我可能不夠準確。假設ajax調用的響應後路由發生了變化; Id需要等待ajax呼叫和路由更改。是否有JavaScript事件來聽取路線變化?我將編輯我的問題 – Ben

+0

@Ben爲什麼你需要等待ajax和路由改變 - 所有你必須等待的是路由改變,因爲這意味着ajax也會完成(實際上有很少的情況下wait_for_ajax應該是必須的),其中has_current_path將做到(最多Capybara.default_max_wait_time秒,通過:等待選項have_current_path,如果你想它可能會等待更長的時間) –

+0

好吧......我可能誤解了它*等待*的事實如果你使用正確的方法(使用expect(current_path).to eq(「/ somepath」)顯然是一個誤導性的錯誤) – Ben