Class: TestCentricity::FileField
- Inherits:
-
UIElement
show all
- Defined in:
- lib/testcentricity_web/elements/file_field.rb
Instance Attribute Summary
Attributes inherited from UIElement
#alt_locator, #context, #locator, #name, #parent, #type
Instance Method Summary
collapse
Methods inherited from UIElement
#clear_alt_locator, #click, #click_at, #disabled?, #double_click, #drag_and_drop, #drag_by, #enabled?, #exists?, #get_attribute, #get_locator, #get_name, #get_native_attribute, #get_object_type, #get_siebel_object_type, #get_value, #hidden?, #hover, #invoke_siebel_dialog, #right_click, #send_keys, #set, #set_alt_locator, #verify_value, #visible?, #wait_until_exists, #wait_until_gone, #wait_until_hidden, #wait_until_value_changes, #wait_until_value_is, #wait_until_visible
Constructor Details
#initialize(name, parent, locator, context) ⇒ FileField
Returns a new instance of FileField.
3
4
5
6
|
# File 'lib/testcentricity_web/elements/file_field.rb', line 3
def initialize(name, parent, locator, context)
super
@type = :filefield
end
|
Instance Method Details
#drop_files(files) ⇒ Object
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/testcentricity_web/elements/file_field.rb', line 19
def drop_files(files)
js_script = 'fileList = Array();'
files.count.times do |i|
page.execute_script("if ($('#seleniumUpload#{i}').length == 0) { seleniumUpload#{i} = window.$('<input/>').attr({id: 'seleniumUpload#{i}', type:'file'}).appendTo('body'); }")
attach_file("seleniumUpload#{i}", files[i])
js_script = "#{js_script} fileList.push(seleniumUpload#{i}.get(0).files[0]);"
end
page.execute_script("#{js_script} e = $.Event('drop'); e.originalEvent = {dataTransfer : { files : fileList } }; $('#{@locator}').trigger(e);")
end
|
#file_attach(file_path) ⇒ Object
8
9
10
11
12
|
# File 'lib/testcentricity_web/elements/file_field.rb', line 8
def file_attach(file_path)
Capybara.ignore_hidden_elements = false
page.attach_file(@locator, file_path)
Capybara.ignore_hidden_elements = true
end
|
#file_upload(file_path) ⇒ Object
14
15
16
17
|
# File 'lib/testcentricity_web/elements/file_field.rb', line 14
def file_upload(file_path)
obj, = find_element(false)
obj.send_keys(file_path)
end
|
#ng_drop_file(file_path) ⇒ Object
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/testcentricity_web/elements/file_field.rb', line 33
def ng_drop_file(file_path)
page.execute_script("fakeFileInput = window.$('<input/>').attr({ id: 'fileFileInput', type: 'file' }).appendTo('body');")
page.attach_file('fakeFileInput', file_path)
js_script = "var scope = angular.element('#{@locator}').scope();"
js_script = "#{js_script} scope.files = [fakeFileInput.get(0).files[0]];"
page.execute_script(js_script)
end
|