让capybara等到Ajax结束

时间:2015-10-12 02:51:05

标签: ruby-on-rails rspec capybara

我有一个功能测试,页面上列出了待办事项列表,然后点击第一个待办事项以查看该待办事项的详细信息。第一个todo链接ID为todo_1。

我面临的问题是,在我访问链接之前,我不知道如何等待链接出现。使用AJAX调用在表中列出了待办事项。

1 个答案:

答案 0 :(得分:1)

Capybara在其大部分发现者和动作中都有等待行为,所以你通常不必专门等待ajax完成,因为Capybara等待页面上的可见变化发生。所以,如果你这样做

visit 'page path'
find('selector to the todo div that gets clicked first').click
click_link 'todo_1'

click_link将等待Capybara.default_max_wait_time秒,以显示链接。如果测试中的时间不够长,您可以增加Capybara.default_max_wait_time或将等待选项传递给需要更长潜在等待时间的特定方法调用

click_link 'todo_1', wait: 10

如果我不明白你在做什么,请发布更多的html以使其更清晰