Capybara::ElementNotFound 无法找到字段 "Title"
Capybara::ElementNotFound Unable to find Field "Title"
我想不通这里出了什么问题。我在网上搜索了几个小时,只发现有类似问题的人,我已经尝试了他们的解决方案,但我仍然遇到这个错误。我是 运行 一个测试,它告诉我它找不到元素标题,但我正在我的代码中查看它,我也在本地主机上看到它。当我在检查器中查看它时,它的字段名称为标题。
任何帮助将不胜感激。
我正在 new.html.erb
上渲染的 _form.html.erb
<div class='form-group'>
<div class='control-label col-md-1'>
<%= f.label :title %>
</div>
<div class='col-md-11'>
<%= f.text_field :title, class: 'form-control', placeholder: 'Title of movie', autofocus: true %>
</div>
我的控制器
def create
@movie = current_admin.movies.build(movie_params)
if @movie.save
flash[:success] = "Movie has been created"
redirect_to root_path
else
flash.now[:danger] = "Movie has not been created"
render :new
end
end
我的功能规范
fill_in "Title", with: "Movie title"
fill_in "Synopsis", with: "Lorem Ipsum"
fill_in "Year released", with: "Date"
click_button "Add Movie”
我的错误
Capybara::ElementNotFound
Unable to find field “Title”
这里是GitHub,如果你觉得有必要的话可以看看。
通过在 fill_in 调用之前查看 page.html
,您可以看到您的用户未登录。这是因为您正在调用 login_as(@kyle)
,默认范围为:user,但您正在尝试登录管理员。你想要 login_as(@kyle, scope: :admin)
我想不通这里出了什么问题。我在网上搜索了几个小时,只发现有类似问题的人,我已经尝试了他们的解决方案,但我仍然遇到这个错误。我是 运行 一个测试,它告诉我它找不到元素标题,但我正在我的代码中查看它,我也在本地主机上看到它。当我在检查器中查看它时,它的字段名称为标题。 任何帮助将不胜感激。
我正在 new.html.erb
上渲染的 _form.html.erb<div class='form-group'>
<div class='control-label col-md-1'>
<%= f.label :title %>
</div>
<div class='col-md-11'>
<%= f.text_field :title, class: 'form-control', placeholder: 'Title of movie', autofocus: true %>
</div>
我的控制器
def create
@movie = current_admin.movies.build(movie_params)
if @movie.save
flash[:success] = "Movie has been created"
redirect_to root_path
else
flash.now[:danger] = "Movie has not been created"
render :new
end
end
我的功能规范
fill_in "Title", with: "Movie title"
fill_in "Synopsis", with: "Lorem Ipsum"
fill_in "Year released", with: "Date"
click_button "Add Movie”
我的错误
Capybara::ElementNotFound
Unable to find field “Title”
这里是GitHub,如果你觉得有必要的话可以看看。
通过在 fill_in 调用之前查看 page.html
,您可以看到您的用户未登录。这是因为您正在调用 login_as(@kyle)
,默认范围为:user,但您正在尝试登录管理员。你想要 login_as(@kyle, scope: :admin)