Sha256: 2fb4215830d496446e6b22874eda8966dce263a9a5386b061bd4a8663d16ba76
Contents?: true
Size: 1.16 KB
Versions: 4
Compression:
Stored size: 1.16 KB
Contents
module TestCentricity class FileField < UIElement def initialize(parent, locator, context) @parent = parent @locator = locator @context = context @type = :filefield @alt_locator = nil end def attach_file(file_path) Capybara.ignore_hidden_elements = false page.attach_file(@locator, file_path) Capybara.ignore_hidden_elements = true end def drop_files(files) js_script = "fileList = Array();" files.count.times do |i| # generate a fake input selector page.execute_script("if ($('#seleniumUpload#{i}').length == 0) { seleniumUpload#{i} = window.$('<input/>').attr({id: 'seleniumUpload#{i}', type:'file'}).appendTo('body'); }") # attach file to the fake input selector through Capybara attach_file("seleniumUpload#{i}", files[i]) # create the fake js event js_script = "#{js_script} fileList.push(seleniumUpload#{i}.get(0).files[0]);" end # trigger the fake drop event page.execute_script("#{js_script} e = $.Event('drop'); e.originalEvent = {dataTransfer : { files : fileList } }; $('##{@locator}').trigger(e);") end end end
Version data entries
4 entries across 4 versions & 1 rubygems