【问题标题】:undefined method `have' for #<Object:0x007f997fabf778> (NoMethodError)#<Object:0x007f997fabf778> 的未定义方法 `have' (NoMethodError)
【发布时间】:2017-10-08 10:15:53
【问题描述】:

我收到“have”方法的未定义方法错误消息。

expect(@gymhomepage.find_your_local_gym).to have(@gymhomepage.find_your_local_gym.first_gym_location)

我正在尝试断言 first_gym_location css 是否位于 find_your_local_gym 部分中。

Please see my framework on Github

有人有什么建议吗?

【问题讨论】:

  • 没有人会在 Github 上阅读您的整个项目,您的问题需要自成一体。

标签: ruby rspec automation cucumber capybara


【解决方案1】:

Capybara 不提供have 匹配器,它提供了一堆have_&lt;something&gt; 匹配器。假设 @gymhomepage.find_your_local_gym.first_gym_location 返回一个 CSS 选择器,那么您将使用

expect(@gymhomepage.find_your_local_gym).to have_css(@gymhomepage.find_your_local_gym.first_gym_location)

如果 @gymhomepage.find_your_local_gym.first_gym_location 是一种方法,它可以找到已经作用域的元素,你只需要这样做

expect(@gymhomepage.find_your_local_gym.first_gym_location).to be

因为通过在其上调用它已经保证将其限定在find_your_local_gym 元素中(假设您没有陷入 XPath 陷阱 - https://github.com/teamcapybara/capybara#beware-the-xpath--trap

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    相关资源
    最近更新 更多