2010-09-01 126 views
2

在我的Rails应用程序,我有与执行JavaScript函数的链接页面:黄瓜,水豚和ElementNotFound

<%= 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 

我可能会错过一些东西,但我找不到它是什么..

回答

3

你应该做一个,只有一个,如下:

  • 重命名提交按钮“创建'
  • 更改您的测试 '我按 “保存”,'
  • 添加到您的按钮的ID,也改变了测试,像这样:

    视图
    = f.submit '保存',:ID =>:富

    测试
    我按下“富”

2

通过joaomilho解决:

你应该做一个,只有一个,以下:

重命名提交按钮“创建” 更改测试“我按‘保存’” 添加到您的按钮的ID,也改变了测试,像这样:

视图 = f.submit '保存',:ID =>:FOO

测试 我按下 “富”

1方案(1后) 3个步骤(3后) 0m2.510s

这里

相同的行为,我使用的是:

Rails 3的黄瓜/水豚/ Haml的

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:

= 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' 
0

塞巴斯蒂安:尝试将ID添加到您的链接,并在测试中引用它。

0

是不是原来的问题,你正在创建一个链接但试图按按钮

仔细阅读水豚文档,你会看到方法是不同的。

1

我相信你想

And I follow "Add an Address"