Class: TestCentricity::SelectList
- Defined in:
- lib/testcentricity_web/elements/select_list.rb
Instance Attribute Summary
Attributes inherited from UIElement
#alt_locator, #context, #locator, #parent, #type
Instance Method Summary collapse
-
#choose_option(option) ⇒ Object
Select the specified option in a select box object.
-
#choose_siebel_option(option) ⇒ Object
Select the specified option in a Siebel OUI select box object.
-
#get_options ⇒ Array
Return array of strings of all options in a select box object.
-
#get_selected_option ⇒ String
Return text of first selected option in a select box object.
-
#get_siebel_options ⇒ Array
Return array of strings of all options in a Siebel OUI select box object.
-
#initialize(parent, locator, context) ⇒ SelectList
constructor
A new instance of SelectList.
- #verify_options(expected, enqueue = false) ⇒ Object
- #verify_siebel_options(expected, enqueue = false) ⇒ Object
Methods inherited from UIElement
#clear_alt_locator, #click, #click_at, #disabled?, #double_click, #drag_by, #enabled?, #exists?, #get_attribute, #get_list_items, #get_locator, #get_native_attribute, #get_object_type, #get_siebel_object_type, #get_value, #hidden?, #hover, #invoke_siebel_dialog, #send_keys, #set, #set_alt_locator, #verify_value, #visible?, #wait_until_exists, #wait_until_gone, #wait_until_value_changes, #wait_until_value_is, #wait_until_visible
Constructor Details
#initialize(parent, locator, context) ⇒ SelectList
Returns a new instance of SelectList.
3 4 5 6 7 8 9 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 3 def initialize(parent, locator, context) @parent = parent @locator = locator @context = context @type = :selectlist @alt_locator = nil end |
Instance Method Details
#choose_option(option) ⇒ Object
Select the specified option in a select box object. Accepts a String or Hash. Supports standard HTML select objects and Chosen select objects.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 24 def choose_option(option) obj, _ = find_element object_not_found_exception(obj, nil) obj.click if first(:css, 'li.active-result') if option.is_a?(Array) option.each do |item| page.find(:css, 'li.active-result', text: item.strip).click end else first(:css, 'li.active-result', text: option).click end else if option.is_a?(Array) option.each do |item| obj.select item end elsif option.is_a?(Hash) obj.find("option[value='#{option[:value]}']").click if option.has_key?(:value) obj.find(:xpath, "option[#{option[:index]}]").select_option if option.has_key?(:index) obj.select option[:text] if option.has_key?(:text) else obj.select option end end end |
#choose_siebel_option(option) ⇒ Object
Select the specified option in a Siebel OUI select box object.
98 99 100 101 102 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 98 def choose_siebel_option(option) .wait_on_first_by_default = true invoke_siebel_popup first(:xpath, "//li[@class='ui-menu-item']", :exact => true, :match => :prefer_exact, text: option).click end |
#get_options ⇒ Array
Return array of strings of all options in a select box object. Supports standard HTML select objects and Chosen select objects.
58 59 60 61 62 63 64 65 66 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 58 def obj, _ = find_element object_not_found_exception(obj, nil) if first(:css, 'li.active-result') obj.all('li.active-result').collect(&:text) else obj.all('option').collect(&:text) end end |
#get_selected_option ⇒ String
Return text of first selected option in a select box object. Supports standard HTML select objects and Chosen select objects.
82 83 84 85 86 87 88 89 90 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 82 def get_selected_option obj, _ = find_element object_not_found_exception(obj, nil) if first(:css, 'li.active-result') obj.first("//li[contains(@class, 'result-selected')]").text else obj.first('option[selected]').text end end |
#get_siebel_options ⇒ Array
Return array of strings of all options in a Siebel OUI select box object.
110 111 112 113 114 115 116 117 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 110 def invoke_siebel_popup sleep(0.5) = page.all(:xpath, "//li[@class='ui-menu-item']").collect(&:text) obj, _ = find_element obj.native.send_keys(:escape) end |
#verify_options(expected, enqueue = false) ⇒ Object
68 69 70 71 72 73 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 68 def (expected, enqueue = false) actual = enqueue ? ExceptionQueue.enqueue_assert_equal(expected, actual, "Expected list of options in list #{@locator}") : assert_equal(expected, actual, "Expected list of options in list #{@locator} to be #{expected} but found #{actual}") end |
#verify_siebel_options(expected, enqueue = false) ⇒ Object
119 120 121 122 123 124 125 126 127 128 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 119 def (expected, enqueue = false) invoke_siebel_popup sleep(0.5) actual = page.all(:xpath, "//li[@class='ui-menu-item']").collect(&:text) enqueue ? ExceptionQueue.enqueue_assert_equal(expected, actual, "Expected list of options in list #{@locator}") : assert_equal(expected, actual, "Expected list of options in list #{@locator} to be #{expected} but found #{actual}") obj, _ = find_element obj.native.send_keys(:escape) end |