Class: TestCentricity::SelectList
- Defined in:
- lib/testcentricity_web/elements/select_list.rb
Instance Attribute Summary collapse
-
#list_item ⇒ Object
Returns the value of attribute list_item.
-
#selected_item ⇒ Object
Returns the value of attribute selected_item.
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.
- #define_list_elements(element_spec) ⇒ Object
-
#get_option_count ⇒ Integer
Return the number of options in a 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.
-
#read_only? ⇒ Boolean
Is Siebel JComboBox set to read-only?.
- #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_and_drop, #drag_by, #enabled?, #exists?, #get_attribute, #get_locator, #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_value_changes, #wait_until_value_is, #wait_until_visible
Constructor Details
#initialize(parent, locator, context) ⇒ SelectList
Returns a new instance of SelectList.
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 6 def initialize(parent, locator, context) @parent = parent @locator = locator @context = context @type = :selectlist @alt_locator = nil list_spec = { :list_item => 'option', :selected_item => 'option[selected]' } define_list_elements(list_spec) end |
Instance Attribute Details
#list_item ⇒ Object
Returns the value of attribute list_item.
3 4 5 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 3 def list_item @list_item end |
#selected_item ⇒ Object
Returns the value of attribute selected_item.
4 5 6 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 4 def selected_item @selected_item 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.
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 43 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| select_item(obj, item) end else select_item(obj, option) end end end |
#choose_siebel_option(option) ⇒ Object
Select the specified option in a Siebel OUI select box object.
130 131 132 133 134 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 130 def choose_siebel_option(option) Capybara.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 |
#define_list_elements(element_spec) ⇒ Object
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 19 def define_list_elements(element_spec) element_spec.each do | element, value | case element when :list_item @list_item = value when :selected_item @selected_item = value end end end |
#get_option_count ⇒ Integer
Return the number of options in a select box object. Supports standard HTML select objects and Chosen select objects.
90 91 92 93 94 95 96 97 98 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 90 def get_option_count obj, _ = find_element object_not_found_exception(obj, nil) if first(:css, 'li.active-result') obj.all('li.active-result').count else obj.all(@list_item).count end 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.
73 74 75 76 77 78 79 80 81 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 73 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(@list_item).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.
114 115 116 117 118 119 120 121 122 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 114 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(@selected_item).text end end |
#get_siebel_options ⇒ Array
Return array of strings of all options in a Siebel OUI select box object.
142 143 144 145 146 147 148 149 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 142 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 |
#read_only? ⇒ Boolean
Is Siebel JComboBox set to read-only?
168 169 170 171 172 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 168 def read_only? obj, _ = find_element object_not_found_exception(obj, nil) !!obj.native.attribute('readonly') end |
#verify_options(expected, enqueue = false) ⇒ Object
100 101 102 103 104 105 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 100 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
151 152 153 154 155 156 157 158 159 160 |
# File 'lib/testcentricity_web/elements/select_list.rb', line 151 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 |