需要等到对象大小达到Capybara的预期值

时间:2015-12-10 17:33:14

标签: ruby selenium-webdriver capybara site-prism

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

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

但我希望在wait_for加载之前使用wait_until / elements(collection of objects)命令。所以我想在下面使用:

@page.wait_until_elements.size == 12

我该怎么做?请帮忙。

2 个答案:

答案 0 :(得分:0)

许多Site-Prism方法支持Capybara查询选项。在这种特殊情况下,您可以使用:count选项指定要等待的确切数字。

expect(@page).to have_elements :count => 12, :wait => 10

有关详细信息,请参阅文档的Using Capybara Query Options部分。

答案 1 :(得分:0)

值得指出的是,虽然这里的答案是前一段时间的(并且对于以后找到此答案的其他人),水豚的查询质量却大大提高了。

这里使用的最佳选择可能是minimum: 12,它会等到您至少有12个,然后隐式等待Capybara.default_wait_time

如果您想在线使用服务员,还可以使用等待键来指定

@page.elements(wait: 3, minimum: 12)-这将等待3秒钟,然后再抱怨元素集不存在或直到您拥有12个元素。在这种情况下,它将继续。