Почему я получаю метод undefined `click 'для Cucumber:: Rails:: World? на этапах огурца/капибары

Я могу получить другие методы 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'

Ответ 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