需要等待,直到对象大小达到预期在凯比巴拉



目前我可以使用下面的代码来验证对象大小:

expect((@page.elements).size).to eq(12)

但我想使用wait_for/wait_until命令,直到这些elements(collection of objects)加载为止。所以我想使用如下:

@page.wait_until_elements.size == 12

我该怎么做?请帮忙。

许多Site Prism方法支持Capybara查询选项。在这种特殊情况下,可以使用:count选项指定要等待的确切数字。
expect(@page).to have_elements :count => 12, :wait => 10

有关更多详细信息,请参阅文档的"使用Capybara查询选项"部分。

值得指出的是,虽然这里的答案是不久前的(对于此后找到这个答案的其他人来说),但水豚查询的质量已经大大提高。

这里使用的最佳选项可能是minimum: 12,它将等待,直到您至少有12个它们,并且它将等待Capybara.default_wait_time隐式

如果你想在线使用服务员,你也可以用等待键指定

@page.elements(wait: 3, minimum: 12)-这需要等待3秒钟才能抱怨元素集不存在,或者直到你有12个元素。在这种情况下,它将继续。

最新更新