2

我不断收到此错误:

Capybara::ElementNotFound:
       cannot fill in, no text field, text area or password field with id, name, or label 'Morning' found.

我已经重置了 spork,完成了完整的数据库重置,尝试为表单元素分配一个 ID,等等。这可能是什么问题?

days_controller_spec.rb

require 'spec_helper'

describe DaysController do

  describe "New" do

    describe "with valid information" do

      it "should create a new entry" do
        visit 'days#new'
        fill_in "Morning", with: "Test"
        click_button "Submit"
      end
    end
  end
end

days_controller.rb

<%= form_for @day do |f| %>

  <%= f.label :morning %>
  <%= f.text_field :morning %>

  <%= f.button :submit %>
<% end %>
4

2 回答 2

2

看起来您的应用正在使用 JavaScript。使用 capybara,您需要向:js => true处理 JS 页面的块添加选项。

尝试:

it "should create a new entry", :js => true do

fill_in在尝试使用该字段之前,您可能还需要先呈现表单。

另外,我建议您查看 capybara 的集成 DSL。在此处阅读有关它的更多信息

于 2013-03-23T03:54:58.303 回答
0

结果证明语法都是正确的,但问题是测试在错误的 RSpec 规范文件中。当我将此测试交换到一个 integration_test 文件时,它工作得很好。

于 2013-03-23T04:08:37.060 回答