Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Capybara - Submit a form without button

I am trying to submit a form without button using just Capybara and Rspec (no Cucumber or Selenium, I know there is already a question about that).

I've seen there is a gist to add a method to submit a form without button:

module SubmitRackTestFormWithoutButton   def submit_form!     Capybara::RackTest::Form.new(driver, form).submit({})   end end Capybara::RackTest::Node.send :include, SubmitRackTestFormWithoutButton 

https://gist.github.com/989533, but I've not gotten it to work and I left a comment on it:

I get undefined method `submit_form!' for #Capybara::Node::Element:... actually by "Capybara::RackTest::Node.send :include, SubmitRackTestFormWithoutButton" the method submit_form! is added to the Node (not to the Element), but find return an Element

Do you have some idea to work out that gist, or some other solution to submit a form without button ?

Thanks

like image 202
Alessandro De Simone Avatar asked Jan 06 '12 11:01

Alessandro De Simone


1 Answers

All your production code should be testable, so if you add a code that is only used by the test than the test will make no sense...

Try to do this instead:

page.execute_script("$('form#your-form').submit()") 
like image 173
Marcelo Eden Avatar answered Sep 21 '22 19:09

Marcelo Eden