我目前正在运行一个测试来检查一个特定的元素,然后对它做一些事情。该元素需要一点时间才能让 javascript 完成启动,但在我为 Capybara 设置的计时器内。
出于某种原因
assert session.has_xpath?(xpath_route)
工作正常,但是
assert link=session.first(:xpath, xpath_route)
失败,说找不到元素。并且很快 - 早在等待计时器用完之前。
我只能假设这意味着计时器只适用于匹配器,而不适用于查找器,这很好,但我如何才能强制它继续查找直到找到我要查找的元素?
最佳答案
假设在使用first
时超时不适用,您是正确的。但是您可以使用 wait_until
方法,它会一直重试直到超时到期,或者 block 返回一些真实的东西,所以:
page.wait_until() do
session.first(:xpath, xpath_route)
end
关于ruby - 为什么 Capybara "wait for page to load"计时器似乎适用于匹配器而不适用于发现器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7690624/