Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialJAKZ AIZZAT
7,813 PointsCapyBara Element Not Found
Its give me an error. I'm using capybara and its said ElementNotFound
Failures:
1) Creating todo lists displays an error when the todo list has a title less than 3 characters Failure/Error: fill_in "Description", with: "This is what I'm doing today." Capybara::ElementNotFound: Unable to find field "Description" # ./spec/features/todo_lists/create_spec.rb:44:in `block (2 levels) in '
2) Creating todo lists displays an error when the todo list has no title Failure/Error: fill_in "Description", with: "This is what I'm doing today." Capybara::ElementNotFound: Unable to find field "Description" # ./spec/features/todo_lists/create_spec.rb:24:in `block (2 levels) in '
3) Creating todo lists redirects to the todo list index page on success Failure/Error: fill_in "Description", with: "This is what I'm doing today." Capybara::ElementNotFound: Unable to find field "Description" # ./spec/features/todo_lists/create_spec.rb:11:in `block (2 levels) in '
create_spec.rb
require "spec_helper"
describe "Creating todo lists" do
it "redirects to the todo list index page on success" do
visit "/todo_lists"
click_link "New Todo list"
expect(page).to have_content("New todo_list")
fill_in "Title", with: "My todo list"
fill_in "Description", with: "This is what I'm doing today."
click_button "Create Todo list"
expect(page).to have_content("My todo list")
end
it "displays an error when the todo list has no title" do
expect(TodoList.count).to eq(0)
visit "/todo_lists"
click_link "New Todo list"
expect(page).to have_content("New todo_list")
fill_in "Title", with: ""
fill_in "Description", with: "This is what I'm doing today."
click_button "Create Todo list"
expect(page).to have_content("error")
expect(TodoList.count).to eq(0)
visit "/todo_lists"
expect(page).to_not have_content("This is what I'm doing today.")
end
it "displays an error when the todo list has a title less than 3 characters" do
expect(TodoList.count).to eq(0)
visit "/todo_lists"
click_link "New Todo list"
expect(page).to have_content("New todo_list")
fill_in "Title", with: "Hi"
fill_in "Description", with: "This is what I'm doing today."
click_button "Create Todo list"
expect(page).to have_content("error")
expect(TodoList.count).todo eq(0)
visit "/todo_lists"
expect(page).to_not have_content("This is what I'm doing today.")
end
end
todo_list.rb
class TodoList < ActiveRecord::Base
validates :title, presence: true
validates :title, length: { minimum: 3}
end
1 Answer
Brandon Barrette
20,485 PointsSo in your todo_list form you have a label on the text_area for Description. It's either spelled wrong or not capitalized and capybara can't find it.
If the label is "description" but you are asking for it to find "Description" it's going to error out.