目前我可以使用下面的代码来验证对象大小:
expect((@page.elements).size).to eq(12)
但我想使用wait_for
/wait_until
命令,直到这些elements(collection of objects)
负载。所以我想像下面这样使用:
@page.wait_until_elements.size == 12
我怎样才能做到这一点?请帮忙。
目前我可以使用下面的代码来验证对象大小:
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)
- 在抱怨元素集不存在或直到你有 12 个元素之前,这将等待最多 3 秒。在这种情况下,它将继续。