class Capybara::RackTest::Form
def add_input_param(field, params)
def add_input_param(field, params) if %w[radio checkbox].include? field['type'] if field['checked'] node = Capybara::RackTest::Node.new(driver, field) merge_param!(params, field['name'], node.value.to_s) end elsif %w[submit image].include? field['type'] # TODO: identify the click button here (in document order, rather # than leaving until the end of the params) elsif field['type'] == 'file' if multipart? file = if (value = field['value']).to_s.empty? NilUploadedFile.new else mime_info = MiniMime.lookup_by_filename(value) Rack::Test::UploadedFile.new(value, mime_info&.content_type&.to_s) end merge_param!(params, field['name'], file) else merge_param!(params, field['name'], File.basename(field['value'].to_s)) end else merge_param!(params, field['name'], field['value'].to_s) end end