【问题标题】:Capybara first() only works when I add :minimum=>1Capybara first() 仅在我添加 :minimum=>1 时有效
【发布时间】:2018-12-27 23:11:58
【问题描述】:

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)

【问题讨论】:

    标签: ruby selenium testing cucumber capybara


    【解决方案1】:

    如 Capybara Upgrading.md 中所述 - https://github.com/teamcapybara/capybara/blob/master/UPGRADING.md#finders - first 的行为在 Capybara 2.x 和 3.x 之间发生了变化 - 如果元素没有立即返回,first 将在 2.x 中立即返回 nil调用方法时存在。在 3.x 中,它将等待至少一个匹配元素存在。听起来您更新的库之一期待 Capybara 3.x 的行为,所以看看您在升级 cucumber 时还更新了什么(如果您也在使用它,可能是 site_prism??)

    【讨论】:

    • 谢谢 Thomas,我会检查一下现在是哪个库
    • @Nils_e 你知道 Capybara 3.x 的行为是什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多