2012-01-24 9 views
11

Puedo obtener otros métodos de capibara como visit, fill_in, select etc .. para trabajar. pero no clic¿Por qué obtengo el método indefinido `clic 'para Cucumber :: Rails :: World? en Cucumber/Capybara steps

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 

error:

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' 

Respuesta

1

Tal vez nos referimos a utilizar click_link?

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

También hay click_button

Si ninguno de estos se adapte a sus necesidades, a continuación, se puede llamar click sobre un elemento.

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

Si ninguna de las anteriores es útil, entonces aquí hay una lista de todos los métodos de click, si se identifica la persona que desea utilizar, que puede ser capaz de ayudar aún más.

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

+0

No, yo quería hacer clic, ya que puede seleccionar un enlace o un botón. pero tu segundo método es ordenado, ¡gracias! Encontré la respuesta, publicada a continuación. – Ivan

Cuestiones relacionadas