2017-02-16 24 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