2012-01-24 10 views
11

Posso ottenere altri metodi di capibara come visitare, fill_in, selezionare ecc. per funzionare. ma non cliccaPerché ottengo il metodo non definito `clic 'per Cucumber :: Rails :: World? in passi Cucumber/Capybara

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 

errore:

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' 

risposta

1

Forse volevi dire usare click_link?

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

C'è anche click_button

Se nessuna di queste adatto alle vostre esigenze, allora si può chiamare click su un elemento.

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

Se nessuna delle precedenti è utile, poi qui ci sono un elenco di tutti i metodi di scatto, se si identifica quello che si desidera utilizzare, io possa essere in grado di assistere ulteriormente.

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

+0

No, volevo fare clic perché può selezionare un link o un pulsante. ma il tuo secondo metodo è pulito, grazie! Ho trovato la risposta, pubblicata di seguito. – Ivan

Problemi correlati