为什么水豚"wait for page to load"计时器似乎适用于匹配者而不是发现者?



我目前正在运行一个测试,检查一个特定的元素,然后对它做一些事情。元素花了一点时间让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

最新更新