module Capybara::Node::Actions
Public Instance Methods
drop_file(locator, *args)
click to toggle source
# File lib/dropybara.rb, line 10 def drop_file(locator, *args) element_id = "dropybara_input_#{rand(1000)}" driver.execute_script <<-JS var input = document.createElement('input'); input.setAttribute('type', 'file'); input.setAttribute('id', '#{element_id}') document.body.appendChild(input); JS attach_file(element_id, *args).tap do driver.execute_script <<-JS var input = document.getElementById('#{element_id}'); var target = document.querySelector('#{locator}'); var data = new DataTransfer(); data.files = input.files; data.items.add(input.files[0]); data.types = ['Files']; var event = new DragEvent('drop', { target: target, dataTransfer: data }); target.dispatchEvent(event); document.body.removeChild(input); JS end end