Dan Rubio
Dan Rubio

Reputation: 4887

Capybara Conundrum, field cannot be found

I'm perplexed about an error message that I am receiving from my feature spec regarding a missing capybara element.

I have a simple form in my new.html.erb as shown below:

<h1>Register a Building</h1>
<h4 class="notice"></h4>
<%= simple_form_for @building do |f| %>
  <%= f.input :street_address %>
  <%= f.input :city %>
  <%= f.input :state, collection: Building::STATES %>
  <%= f.input :postal_code %>
  <%= f.input :description %>
  <%= f.button :submit %>
<% end %>

My feature_spec is testing for the registration of a new building with the required fields as shown below:

scenario 'I want to submit a valid building to record' do
building_count = Building.count
visit new_building_path
fill_in 'Street address', with: '5555 Summer Drive'
fill_in 'City', with: 'Boston'
fill_in ' State', with: 'WA'
fill_in 'Postal code', with: '78526'
fill_in 'Description', with: ''
click_on 'Create Building'
expect(page).to have_content('Building Submitted')
expect(page).to have_content('')
expect(Building.count).to eql(building_count + 1)

end

Everything is fine up until it reaches the state field. I keep getting an element not found error, but when I do a save and open page it is CLEARLY there.

Here is my error:

 Failure/Error: fill_in 'State', with: 'WA'
 Capybara::ElementNotFound:
   Unable to find field "State"

I've noticed the double/single quotes in the error message but when I match the quotes and change them nothing happens. Also, I've inspected my element and I get that the title is this " State". I've changed my test to look for " State" not "State" but still to no avail. What can I do to fix or get around this?

Upvotes: 0

Views: 66

Answers (1)

user740584
user740584

Reputation:

Your State field is a select box not a text field.

Use:

select 'WA', from: 'State'

fill_in specifically looks for the field as fillable, i.e. text fields and text areas.

The Capybara docmentation about this is here: http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Actions

Upvotes: 1

Related Questions