Test whether a form field exists with Cucumber and Capybara

Updated . Posted . Visible to the public.

The step definition below lets you say:

 Then I should see a field "Password"
 But I should not see a field "Role"

Here is the step definition:

Then /^I should( not)? see a field "([^"]*)"$/ do |negate, name|
  expectation = negate ? :should_not : :should
  begin
    field = find_field(name)
  rescue Capybara::ElementNotFound
    # In Capybara 0.4+ #find_field raises an error instead of returning nil
  end
  field.send(expectation, be_present)
end

Note that you might have to adapt the step definition for older Capybaras. Unfortunately the Capybara API wasn't very stable over time.

Henning Koch
Last edit
Keywords
form, input
License
Source code in this card is licensed under the MIT License.
Posted by Henning Koch to makandra dev (2012-02-03 12:37)