2011-07-11 6 views
2

Je suis un débutant relativement débutant une nouvelle application Ruby on Rails. J'ai commencé en suivant une combinaison d'instructions à https://github.com/intridea/omniauth, http://www.communityguides.eu/articles/16, http://intridea.com/2011/1/31/easy-rails-admin-login-with-google-apps-and-omniauth?blog=company. Au moment où tout semblait fonctionner correctement, j'ai commencé à écrire mes premières caractéristiques et étapes de concombre. J'ai réussi à faire quelques pas, mais j'ai été bloqué sur une marche que je pensais avoir été construite. J'ai un formulaire avec deux submit_tag s mais je ne peux pas obtenir un scénario pour réussir un And I press "button" étape de base.Échec du bouton 'concombre' du concombre (Capybara :: ElementNotFound)

peut-être des pierres précieuses pertinentes:

 
rails (3.1.0.rc4) 
capybara (1.0.0) 
cucumber (1.0.1) 
cucumber-rails (1.0.2) 
nokogiri (1.4.7) 
gherkin (2.4.5) 
rack-test (0.6.0) 
selenium-webdriver (0.2.2) 
section

du formulaire en question:

<%= form_tag :controller => "services", :action => "newaccount" do %> 
    <%= submit_tag "confirm", :id => "confirm", :title => "confirm", :value => "confirm", :text => "confirm", :name => "confirm" %> 
    <%= submit_tag "cancel", :id => "cancel", :title => "cancel", :value => "cancel", :text => "cancel", :name => "cancel" %> 
<% end %> 
scénario

en question:

Scenario: I register with a valid and currently active google account 
    Given I am not registered 
    When I sign in with a valid and currently active google account 
     And I press "confirm" # <-- THE PROBLEMATIC STEP 
    Then I should see "Your account has been created and you have been signed in!" 

Je pense que c'est le web_step pertinent (droit de le web_steps.rb par défaut que je n'ai pas édité du tout):

When /^(?:|I)press "([^"]*)"$/ do |button| 
    click_button(button) 
end 

sortie de concombre concerné:

Scenario: I register with a valid and currently active google account   # features/auth_and_auth/initial_tests.feature:6 
    Given I am not registered              # features/step_definitions/authentication_steps.rb:1 
    When I sign in with a valid and currently active google account    # features/step_definitions/authentication_steps.rb:5 
    And I press "confirm"               # features/step_definitions/web_steps.rb:52 
    no button with value or id or text 'confirm' found (Capybara::ElementNotFound) 
    (eval):2:in `click_button' 
    ./features/step_definitions/web_steps.rb:53:in `/^(?:|I)press "([^"]*)"$/' 
    features/auth_and_auth/initial_tests.feature:9:in `And I press "confirm"' 
    Then I should see "Your account has been created and you have been signed in!" # features/step_definitions/web_steps.rb:105 

sortie html pertinente:

<input id="confirm" name="confirm" text="confirm" title="confirm" type="submit" value="confirm"> 
<input id="cancel" name="cancel" text="cancel" title="cancel" type="submit" value="cancel"> 

Comme il est évident, je l'ai pris en compte value, id, text, ainsi que name et title. J'ai également vu un message qui disait que le type d'entrée devait être spécifié comme submit, ce qui semble être le cas. Et j'ai essayé avec le bouton confirm et le bouton cancel. Après avoir cherché partout où je connaissais, et en essayant chaque suggestion qui semblait même à distance pertinente, je suis dans une impasse. Qu'est-ce que je rate?

+3

Etes-vous sûr que le concombre est réellement sur la bonne page lorsque l'étape est appelée? Capybara a une méthode 'save_and_open_page' incroyablement utile .. essayez de placer cela au-dessus de l'appel click_button dans web_steps.rb et vérifiez que c'est bien sur la bonne page. – idlefingers

Répondre

3

Je ne suis pas sûr si le code ci-dessous est la meilleure façon de résoudre le problème que j'ai rencontré, mais il passe l'étape pertinente à passer.

 
When /^(?:|I)press "([^"]*)"$/ do |button| 
# click_button(button) # the original web_steps.rb version that fails 
    %{I press (button)} # my revised version that passes 
end 

Je serais encore apprécier des commentaires sur:

  • pourquoi la version originale web_steps.rb échoue,
  • que ce soit une approche appropriée ou non, et
  • s'il y a un moyen plus «rails» pour faire face à cela.
+0

Merci @ MacSean ça a marché pour moi aussi. Je cherchais cette solution depuis 3 jours .. tu as fait ma journée :) –

Questions connexes