我目前正在运行一个检查特定元素的测试,然后对它做一些事情.该元素需要一点点javascript完成踢,但在计时器我已经有Capybara设置.
由于某些原因
assert session.has_xpath?(xpath_route)
Run Code Online (Sandbox Code Playgroud)
工作正常,但是
assert link=session.first(:xpath, xpath_route)
Run Code Online (Sandbox Code Playgroud)
失败,说它找不到元素.并且很快 - 在等待计时器用完之前很久.
我只能假设这意味着计时器只适用于匹配器,而不是发现者,这很好,但我怎么能强迫它继续寻找直到找到我正在寻找的元素?
假设在使用时超时不适用,这是正确的first.但是你可以使用这个wait_until方法,它会一直重试,直到超时到期,或者块返回真值,所以:
page.wait_until() do
session.first(:xpath, xpath_route)
end
Run Code Online (Sandbox Code Playgroud)