我目前正在运行一个测试,检查一个特定的元素,然后对它做一些事情。元素花了一点时间让javascript完成启动,但在计时器内,我已经将Capybara设置为。
For some reason
assert session.has_xpath?(xpath_route)
可以,但是
assert link=session.first(:xpath, xpath_route)
失败,表示无法找到该元素。而且要快——在等待计时器用完之前。
我只能假设这意味着计时器只适用于匹配器,而不是查找器,这很好,但我怎么能强迫它继续查找,直到找到我正在寻找的元素?
假设使用first
时不适用超时,这是正确的。但是您可以使用wait_until
方法,它将继续重试,直到超时过期,或者块返回真实的东西,所以:
page.wait_until() do
session.first(:xpath, xpath_route)
end