Go back to the main page

Submitting a form without a button using Capybara

This article is over 2 years old. Proceed with caution.

Regards ♨ – Minimul

 

Code below is based on this gist and this pull request.

Only tested in Capybara 1.3 and solely works when using the Rack test driver.

## Load code after Capybara

class Capybara::Driver::Node
  def submit_form!
    raise NotImplementedError
  end
end

class Capybara::RackTest::Node
  def submit_form!
    Capybara::RackTest::Form.new(driver, self.native).submit({})
  end
end

class Capybara::Node::Element
  def submit_form!
    wait_until { base.submit_form! }
  end
end

Usage:

You must enter in the form element itself as a selector e.g.:


find('#form-element-id').submit_form!
find('form').submit_form!
all('form').last.submit_form!

Comment on this article?