diff --git a/lib/capybara/selenium/node.rb b/lib/capybara/selenium/node.rb index e7234558..5a34c0da 100644 --- a/lib/capybara/selenium/node.rb +++ b/lib/capybara/selenium/node.rb @@ -300,7 +300,7 @@ private def set_file(value) # rubocop:disable Naming/AccessorMethodName path_names = value.to_s.empty? ? [] : value - native.send_keys(Array(path_names).join("\n")) + native.send_keys(Array(path_names).map(&File.method(:expand_path)).join("\n")) end def set_content_editable(value) # rubocop:disable Naming/AccessorMethodName diff --git a/spec/shared_selenium_session.rb b/spec/shared_selenium_session.rb index 467a1aad..0726899e 100644 --- a/spec/shared_selenium_session.rb +++ b/spec/shared_selenium_session.rb @@ -321,6 +321,13 @@ RSpec.shared_examples 'Capybara::Session' do |session, mode| session.click_button('Upload Multiple') expect(session.body).to include('5 | ') # number of files end + + it 'can attach a relative file' do + session.visit('/form') + session.attach_file('Single Document', 'spec/fixtures/capybara.csv') + session.click_button('Upload Single') + expect(session.body).to include('Content-type: text/csv') + end end context 'Windows' do