【问题标题】:Why do I get undefined method `click' for Cucumber::Rails::World ? in Cucumber / Capybara steps为什么我会为 Cucumber::Rails::World 获得未定义的方法“点击”?在黄瓜/水豚步骤
【发布时间】:2012-01-24 20:43:09
【问题描述】:

我可以使用其他 capybara 方法,例如 visit、fill_in、select 等。但不是点击

Given /^a no fee license called "([^"]*)"$/ do |arg1|
  @l = FactoryGirl.create(:license,
                      name: arg1)
end

When /^execute the license$/ do
  visit(license_path(@l))
  click('Execute License')
end

错误:

Scenario: no fee license is executed                                 # features/visitor_no_fee_license.feature:14
    When I fill out the licensee info with valid info                  # features/step_definitions/licenses_steps.rb:21
    And execute the license                                            # features/step_definitions/licenses_steps.rb:35
      undefined method `click' for #<Cucumber::Rails::World:0x007feebad4dec8> (NoMethodError)
      ./features/step_definitions/licenses_steps.rb:37:in `/^execute the license$/'
      features/visitor_no_fee_license.feature:16:in `And execute the license'

【问题讨论】:

    标签: ruby-on-rails cucumber capybara


    【解决方案1】:

    Capybara 的 DSL 发生了变化。如果您现在不知道它是链接还是按钮,请使用click_on 而不是点击。

    https://github.com/jnicklas/capybara/blob/549e67336c712a1ef2119ce5ff64dbbc7542480f/lib/capybara/session.rb

    【讨论】:

      【解决方案2】:

      也许您打算使用click_link

      When /^(?:|I )follow "([^"]*)"$/ do |link|
        click_link(link)
      end
      

      还有click_button

      如果这些都不适合您的需求,那么您可以在一个元素上调用 click

      When /^(?:|I )click "([^"]*)" span$/ do |selector|
        element ||= find('span', :text => selector)
        element.click
      end
      

      如果以上都没有帮助,那么这里列出了所有点击方法,如果您确定了您希望使用的方法,我可能会提供进一步的帮助。

      http://rubydoc.info/search/github/jnicklas/capybara/master?q=click

      【讨论】:

      • 不,我想点击,因为它可以选择链接或按钮。但是您的第二种方法很简洁,谢谢!我找到了答案,贴在下面。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-15
      • 2020-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多