Вот простое решение, которое не требует capybary-webkit, qt, lmnop или чего-либо еще.
Не требует кнопку отправки. Люди говорят, что это нужно, но что угодно.
Просто обезьяна заплатить класс или два
# /spec/support/capybara.rb
class Capybara::Session
def submit(element)
Capybara::RackTest::Form.new(driver, element.native).submit({})
end
end
Тогда вы можете сделать что-то вроде
require 'support/capybara'
before do
create :lead
create :user, :different_email
end
it 'Searchable' do
visit users_path
page.should have_content 'Slicer'
page.should have_content 'Dicer'
fill_in 'Search', with: 'dice'
form = find '#search-form' # find the form
page.submit form # use the new .submit method, pass form as the argument
page.should have_content 'Dicer'
page.should_not have_content 'Slicer'
end
Это похоже на ответ jacob , но для него вы должны определить это в середине теста.
Для этого решения вы можете определить это в каком-то файле в каталоге / support или в начале этой спецификации и т. Д. Это уменьшает беспорядок в тесте.