在我的测试中,我有一个步骤,我填写一个字段并按 Enter。然后该字段在下一页返回结果集。
这是我的辅助方法:
def search(term)
fill_in('query-text', :with => term)
click_button('search-button')
end
之后,我有一个步骤简单地说:
page.should have_content(tutor)
但是,问题是即使我的页面加载了结果之后的页面,它之后的步骤也会通过,即使它应该是错误的。我在该步骤中设置了一个调试器,当我手动检查它时,断言也会失败,正如我所期望的那样。我的假设是下一步是在页面重新加载之前进行检查。我在搜索方法的末尾放置了一个睡眠,使其看起来像:
def search(term)
fill_in('query-text', :with => term)
click_button('search-button')
sleep 5
end
但我觉得使用 sleep 是解决这个问题的一种方法。我正在使用 Capybara 2,因此删除了 wait_until 的使用。有没有比依赖睡眠更好的方法来处理这个问题?