2012-01-24 10 views
11

Mogę uzyskać inne metody kapibara, takie jak wizyta, fill_in, wybierz itd .. do pracy. ale nie kliknijDlaczego otrzymuję niezdefiniowaną metodę "kliknij" w Cucumber :: Rails :: World? w krokach 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 

błąd:

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' 

Odpowiedz

1

Może chodziło o użycie click_link?

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

Istnieje również click_button

Jeżeli żadna z tych własnych potrzeb, można nazwać click na elemencie.

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

Jeśli żadne z powyższych jest pomocne, to tutaj znajduje się lista wszystkich metod click, jeśli zidentyfikować, który chcesz użyć, może będę mógł pomóc dalej.

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

+0

Nie chciałem kliknąć ponieważ może wybrać link lub przycisk. ale twoja druga metoda jest zgrabna, dzięki! Znalazłem odpowiedź, zamieszczoną poniżej. – Ivan