水豚first()仅在我添加:minimum => 1时有效

时间:2018-07-19 17:48:51

标签: ruby selenium testing cucumber capybara

first()可以按预期的版本2.15.0进行操作,但是将cucumber 2.4.0更新为3.1.2后,这种方式就不再起作用了。

如果我们向其添加参数first(),则

:minimum=>1将起作用。如果我不考虑它,即使该元素在其中,它也会返回nil

first("div", :minimum=>1)

这是我们在gemfile.lock中的Capybara依赖项

  

水豚(2.15.0)         可寻址的         mini_mime(> = 0.1.3)         nokogiri(> = 1.3.3)         机架(> = 1.0.0)         机架测试(> = 0.5.4)         xpath(〜> 2.0)

1 个答案:

答案 0 :(得分:2)

如Capybara Upgrading.md-https://github.com/teamcapybara/capybara/blob/master/UPGRADING.md#finders中所述-在水豚2.x和3.x之间更改first的行为-如果{x1}在2.x中立即返回nil调用该方法时,元素并不立即存在。在3.x中,它将等待至少一个匹配元素存在。听起来好像您已更新的一个库中预期的是Capybara 3.x的行为,所以请查看升级黄瓜时还进行了其他更新(如果也使用first,则可以使用?)