我一直收到这个错误:
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 %>
答案 0 :(得分:2)
看起来你的应用正在使用JavaScript。使用capybara,您需要在处理JS页面的块中添加:js => true
选项。
尝试:
it "should create a new entry", :js => true do
在尝试fill_in
字段之前,您可能还需要先渲染表单。
另外,我建议您查看capybara的集成DSL。详细了解here
答案 1 :(得分:0)
事实证明语法是正确的,但问题是测试是在错误的RSpec规范文件中。当我将这个测试交换到integration_test文件时,它运行得很好。