我目前正在运行一项检查特定元素的测试,然后对其进行一些处理。该元素需要一些javascript完成踢,但在计时器我已经有Capybara设置。
出于某种原因
assert session.has_xpath?(xpath_route)
工作正常,但
assert link=session.first(:xpath, xpath_route)
失败,说无法找到该元素。并且很快 - 在等待计时器用完之前很久。
我只能假设这意味着计时器只适用于匹配器,而不适用于探测器,这很好,但我怎么能强迫它继续观察直到找到我正在寻找的元素?
答案 0 :(得分:5)
使用first
时,假设超时不适用,这是正确的。但是你可以使用wait_until
方法,它会一直重试,直到超时到期,或者块返回真值,所以:
page.wait_until() do
session.first(:xpath, xpath_route)
end