2

私の Rails アプリケーションには、javascript 関数を実行するリンクを含むページがあります。

<%= link_to_function("Add an address", "add_fields(this)".html_safe) %>

私のキュウリ機能には次のものがあります。

And I press "Add an address"

そして、私が得るメッセージは次のとおりです。

Capybara::ElementNotFound: no button with value or id or text 'Add an address' found

私はおそらく何かを見逃していますが、それが何であるかを見つけることができません..

4

5 に答える 5

3

次のうち、1つだけを実行する必要があります。

  • 送信ボタンの名前を「作成」に変更します
  • テストを「そして「保存」を押す」に変更します
  • ボタンにIDを追加し、次のようにテストも変更します。

    view
    = f.submit'保存'、:id =>:foo

    テスト
    そして私は「foo」を押します

于 2010-09-02T14:53:39.333 に答える
2

ジョアミルホによって解決されました:

次のいずれかを実行する必要があります。

送信ボタンの名前を「Create」に変更します テストを「And I press "Save"」に変更します ボタンに ID を追加し、テストも次のように変更します。

view = f.submit '保存', :id => :foo

テストそして「foo」を押します

1 シナリオ (1 パス) 3 ステップ (3 パス) 0m2.510s

ここで同じ動作、私は使用しています:

Rails 3 キュウリ/カピバラ/ハムル

Feature: Manage posts
  In order to [goal]
  [stakeholder]
  wants [behaviour]

  @wip
  Scenario: Register new post             # features/manage_posts.feature:6
    Given I am on the new post page       # features/step_definitions/web_steps.rb:19
    When I fill in "Title" with "title 1" # features/step_definitions/web_steps.rb:40
    And I fill in "Body" with "body 1"    # features/step_definitions/web_steps.rb:40
    And I uncheck "Published"             # features/step_definitions/web_steps.rb:83
    And I press "Create"                  # features/step_definitions/web_steps.rb:27     
    Then I should see "title 1"           # features/step_definitions/web_steps.rb:108
    And I should see "body 1"             # features/step_definitions/web_steps.rb:108
    And I should see "false"              # features/step_definitions/web_steps.rb:108

ステップ:

When /^(?:|I )press "([^"]*)"(?: within "([^"]*)")?$/ do |button, selector|   with_scope(selector) do
    click_button(button)
    selenium.wait_for_page_to_load   
    end  
end

新規を表示:

%h1 New post

= render 'form'

= link_to 'Back', posts_path

エラー:

 no button with value or id or text 'Create' found (Capybara::ElementNotFound)
      ./features/step_definitions/web_steps.rb:29
      ./features/step_definitions/web_steps.rb:14:in `with_scope'
      ./features/step_definitions/web_steps.rb:28:in `/^(?:|I )press "([^"]*)"(?: within "([^"]*)")?$/'
      features/manage_posts.feature:11:in `And I press "Create"'

_形:

= form_for @post do |f| 
  -if @post.errors.any?
    #errorExplanation
      %h2= "#{pluralize(@post.errors.count, "error")} prohibited this post from being saved:"
      %ul 
        - @post.errors.full_messages.each do |msg|
          %li= msg 

  .field
    = f.label :title
    = f.text_field :title
  .field
    = f.label :body
    = f.text_area :body
  .field
    = f.label :published
    = f.check_box :published
  .actions
    = f.submit 'Save'
于 2010-09-02T10:48:25.480 に答える
1

私はあなたが望むと信じています

And I follow "Add an Address"
于 2011-06-22T18:41:36.170 に答える
0

Sebastian: リンクに ID を追加して、テストで参照してみてください。

于 2010-09-02T18:51:43.193 に答える
0

リンクを作成していたのにボタンを押そうとしたことが元の問題ではありませんでしたか?

カピバラのドキュメントを注意深く読むと、メソッドが異なることがわかります。

于 2011-06-22T09:48:44.753 に答える