Class: TestCentricity::PageSection
- Includes:
- Capybara::DSL, Capybara::Node::Matchers, Test::Unit::Assertions
- Defined in:
- lib/testcentricity_web/web_core/page_sections_helper.rb
Constant Summary collapse
- XPATH_SELECTORS =
['//', '[@', '[contains(']
- CSS_SELECTORS =
['#', ':nth-child(', ':first-child', ':last-child', ':nth-of-type(', ':first-of-type', ':last-of-type', '^=', '$=', '*=', ':contains(']
Instance Attribute Summary collapse
-
#context ⇒ Object
readonly
Returns the value of attribute context.
-
#list_index ⇒ Object
Returns the value of attribute list_index.
-
#locator ⇒ Object
Returns the value of attribute locator.
-
#locator_type ⇒ Object
Returns the value of attribute locator_type.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#parent ⇒ Object
Returns the value of attribute parent.
-
#parent_list ⇒ Object
Returns the value of attribute parent_list.
Class Method Summary collapse
-
.button(element_name, locator) ⇒ Object
Declare and instantiate a single button UI Element for this page section.
-
.buttons(element_hash) ⇒ Object
Declare and instantiate a collection of buttons for this page section.
-
.cell_button(element_name, locator, table, column) ⇒ Object
Declare and instantiate a cell button in a table column on this page section.
-
.cell_checkbox(element_name, locator, table, column, proxy = nil) ⇒ Object
Declare and instantiate a cell checkbox in a table column on this page section.
-
.cell_image(element_name, locator, table, column) ⇒ Object
Declare and instantiate a cell image in a table column on this page object.
-
.cell_radio(element_name, locator, table, column, proxy = nil) ⇒ Object
Declare and instantiate a cell radio in a table column on this page section.
-
.checkbox(element_name, locator, proxy = nil) ⇒ Object
Declare and instantiate a single checkbox UI Element for this page section.
-
.checkboxes(element_hash) ⇒ Object
Declare and instantiate a collection of checkboxes for this page section.
-
.element(element_name, locator) ⇒ Object
Declare and instantiate a single generic UI Element for this page section.
-
.elements(element_hash) ⇒ Object
Declare and instantiate a collection of generic UI Elements for this page section.
-
.filefield(element_name, locator) ⇒ Object
Declare and instantiate a single File Field UI Element for this page section.
- .filefields(element_hash) ⇒ Object
-
.image(element_name, locator) ⇒ Object
Declare and instantiate an single image UI Element for this page section.
- .images(element_hash) ⇒ Object
-
.label(element_name, locator) ⇒ Object
Declare and instantiate a single label UI Element for this page section.
- .labels(element_hash) ⇒ Object
-
.link(element_name, locator) ⇒ Object
Declare and instantiate a single link UI Element for this page section.
- .links(element_hash) ⇒ Object
-
.list(element_name, locator) ⇒ Object
Declare and instantiate a single list UI Element for this page section.
-
.list_button(element_name, locator, list) ⇒ Object
Declare and instantiate a list button in a row of a list object on this section object.
-
.list_checkbox(element_name, locator, list, proxy = nil) ⇒ Object
Declare and instantiate a list checkbox in a row of a list object on this section object.
-
.list_radio(element_name, locator, list, proxy = nil) ⇒ Object
Declare and instantiate a list radio in a row of a list object on this section object.
- .lists(element_hash) ⇒ Object
-
.radio(element_name, locator, proxy = nil) ⇒ Object
Declare and instantiate a single radio button UI Element for this page section.
-
.radios(element_hash) ⇒ Object
Declare and instantiate a collection of radio buttons for this page section.
-
.section(section_name, obj, locator = nil) ⇒ Object
Instantiate a single PageSection object within this PageSection object.
- .sections(section_hash) ⇒ Object
-
.selectlist(element_name, locator) ⇒ Object
Declare and instantiate a single select list UI Element for this page section.
- .selectlists(element_hash) ⇒ Object
-
.table(element_name, locator) ⇒ Object
Declare and instantiate a single table UI Element for this page section.
- .tables(element_hash) ⇒ Object
-
.textfield(element_name, locator) ⇒ Object
Declare and instantiate a single text field UI Element for this page section.
-
.textfields(element_hash) ⇒ Object
Declare and instantiate a collection of text fields for this page section.
-
.trait(trait_name, &block) ⇒ Object
Define a trait for this page section.
Instance Method Summary collapse
-
#click ⇒ Object
Click on a Section object.
-
#click_at(x, y) ⇒ Object
Click at a specific location within a Section object.
-
#disabled? ⇒ Boolean
Is Section object disabled (not enabled)?.
-
#displayed? ⇒ Boolean
Is section object displayed in browser window?.
-
#double_click ⇒ Object
Double-click on a Section object.
-
#enabled? ⇒ Boolean
Is Section object enabled?.
-
#exists? ⇒ Boolean
Does Section object exists?.
- #get_all_items_count ⇒ Object
- #get_all_list_items ⇒ Object
- #get_attribute(attrib) ⇒ Object
- #get_item_count ⇒ Object
- #get_list_items ⇒ Object
- #get_locator ⇒ Object
- #get_locator_type ⇒ Object
- #get_name ⇒ Object
- #get_native_attribute(attrib) ⇒ Object
- #get_object_type ⇒ Object
- #get_parent_list ⇒ Object
-
#hidden? ⇒ Boolean
Is Section object hidden (not visible)?.
-
#initialize(name, parent, locator, context) ⇒ PageSection
constructor
A new instance of PageSection.
-
#populate_data_fields(data, wait_time = nil) ⇒ Object
Populate the specified UI elements in this Section object with the associated data from a Hash passed as an argument.
-
#right_click ⇒ Object
Right-click on a Section object.
-
#send_keys(*keys) ⇒ Object
Send keystrokes to a Section object.
- #set_list_index(list, index = 1) ⇒ Object
- #set_parent(parent) ⇒ Object
- #verify_list_items(expected, enqueue = false) ⇒ Object
- #verify_ui_states(ui_states, fail_message = nil) ⇒ Object
-
#visible? ⇒ Boolean
Is Section object visible?.
-
#wait_until_exists(seconds = nil, post_exception = true) ⇒ Object
Wait until the Section object exists, or until the specified wait time has expired.
-
#wait_until_gone(seconds = nil, post_exception = true) ⇒ Object
Wait until the Section object no longer exists, or until the specified wait time has expired.
-
#wait_until_hidden(seconds = nil, post_exception = true) ⇒ Object
Wait until the Section object is hidden, or until the specified wait time has expired.
-
#wait_until_visible(seconds = nil, post_exception = true) ⇒ Object
Wait until the Section object is visible, or until the specified wait time has expired.
Constructor Details
#initialize(name, parent, locator, context) ⇒ PageSection
Returns a new instance of PageSection.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 19 def initialize(name, parent, locator, context) @name = name @parent = parent @locator = locator @context = context @parent_list = nil @list_index = nil is_xpath = XPATH_SELECTORS.any? { |selector| @locator.include?(selector) } is_css = CSS_SELECTORS.any? { |selector| @locator.include?(selector) } @locator_type = if is_xpath && !is_css :xpath elsif is_css && !is_xpath :css elsif !is_css && !is_xpath :css else :css end end |
Instance Attribute Details
#context ⇒ Object (readonly)
Returns the value of attribute context.
9 10 11 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 9 def context @context end |
#list_index ⇒ Object
Returns the value of attribute list_index.
13 14 15 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 13 def list_index @list_index end |
#locator ⇒ Object
Returns the value of attribute locator.
10 11 12 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 10 def locator @locator end |
#locator_type ⇒ Object
Returns the value of attribute locator_type.
14 15 16 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 14 def locator_type @locator_type end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
9 10 11 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 9 def name @name end |
#parent ⇒ Object
Returns the value of attribute parent.
11 12 13 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 11 def parent @parent end |
#parent_list ⇒ Object
Returns the value of attribute parent_list.
12 13 14 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 12 def parent_list @parent_list end |
Class Method Details
.button(element_name, locator) ⇒ Object
Declare and instantiate a single button UI Element for this page section.
174 175 176 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 174 def self.(element_name, locator) define_element(element_name, TestCentricity::Button, locator) end |
.buttons(element_hash) ⇒ Object
Declare and instantiate a collection of buttons for this page section.
186 187 188 189 190 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 186 def self.(element_hash) element_hash.each do |element_name, locator| (element_name, locator) end end |
.cell_button(element_name, locator, table, column) ⇒ Object
Declare and instantiate a cell button in a table column on this page section.
409 410 411 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 409 def self.(element_name, locator, table, column) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellButton.new("#{element_name}", self, "#{locator}", :section, #{table}, #{column});end)) end |
.cell_checkbox(element_name, locator, table, column, proxy = nil) ⇒ Object
Declare and instantiate a cell checkbox in a table column on this page section.
422 423 424 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 422 def self.cell_checkbox(element_name, locator, table, column, proxy = nil) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellCheckBox.new("#{element_name}", self, "#{locator}", :section, #{table}, #{column}, #{proxy});end)) end |
.cell_image(element_name, locator, table, column) ⇒ Object
Declare and instantiate a cell image in a table column on this page object.
449 450 451 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 449 def self.cell_image(element_name, locator, table, column) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellImage.new("#{element_name}", self, "#{locator}", :section, #{table}, #{column});end)) end |
.cell_radio(element_name, locator, table, column, proxy = nil) ⇒ Object
Declare and instantiate a cell radio in a table column on this page section.
435 436 437 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 435 def self.cell_radio(element_name, locator, table, column, proxy = nil) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellRadio.new("#{element_name}", self, "#{locator}", :section, #{table}, #{column}, #{proxy});end)) end |
.checkbox(element_name, locator, proxy = nil) ⇒ Object
Declare and instantiate a single checkbox UI Element for this page section.
229 230 231 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 229 def self.checkbox(element_name, locator, proxy = nil) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CheckBox.new("#{element_name}", self, "#{locator}", :section, #{proxy});end)) end |
.checkboxes(element_hash) ⇒ Object
Declare and instantiate a collection of checkboxes for this page section.
242 243 244 245 246 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 242 def self.checkboxes(element_hash) element_hash.each do |element_name, locator| checkbox(element_name, locator) end end |
.element(element_name, locator) ⇒ Object
Declare and instantiate a single generic UI Element for this page section.
148 149 150 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 148 def self.element(element_name, locator) define_element(element_name, TestCentricity::UIElement, locator) end |
.elements(element_hash) ⇒ Object
Declare and instantiate a collection of generic UI Elements for this page section.
160 161 162 163 164 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 160 def self.elements(element_hash) element_hash.each do |element_name, locator| element(element_name, locator) end end |
.filefield(element_name, locator) ⇒ Object
Declare and instantiate a single File Field UI Element for this page section.
389 390 391 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 389 def self.filefield(element_name, locator) define_element(element_name, TestCentricity::FileField, locator) end |
.filefields(element_hash) ⇒ Object
393 394 395 396 397 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 393 def self.filefields(element_hash) element_hash.each do |element_name, locator| filefield(element_name, locator) end end |
.image(element_name, locator) ⇒ Object
Declare and instantiate an single image UI Element for this page section.
372 373 374 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 372 def self.image(element_name, locator) define_element(element_name, TestCentricity::Image, locator) end |
.images(element_hash) ⇒ Object
376 377 378 379 380 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 376 def self.images(element_hash) element_hash.each do |element_name, locator| image(element_name, locator) end end |
.label(element_name, locator) ⇒ Object
Declare and instantiate a single label UI Element for this page section.
284 285 286 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 284 def self.label(element_name, locator) define_element(element_name, TestCentricity::Label, locator) end |
.labels(element_hash) ⇒ Object
288 289 290 291 292 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 288 def self.labels(element_hash) element_hash.each do |element_name, locator| label(element_name, locator) end end |
.link(element_name, locator) ⇒ Object
Declare and instantiate a single link UI Element for this page section.
302 303 304 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 302 def self.link(element_name, locator) define_element(element_name, TestCentricity::Link, locator) end |
.links(element_hash) ⇒ Object
306 307 308 309 310 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 306 def self.links(element_hash) element_hash.each do |element_name, locator| link(element_name, locator) end end |
.list(element_name, locator) ⇒ Object
Declare and instantiate a single list UI Element for this page section.
354 355 356 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 354 def self.list(element_name, locator) define_element(element_name, TestCentricity::List, locator) end |
.list_button(element_name, locator, list) ⇒ Object
Declare and instantiate a list button in a row of a list object on this section object.
462 463 464 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 462 def self.(element_name, locator, list) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::ListButton.new("#{element_name}", self, "#{locator}", :section, #{list});end)) end |
.list_checkbox(element_name, locator, list, proxy = nil) ⇒ Object
Declare and instantiate a list checkbox in a row of a list object on this section object.
474 475 476 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 474 def self.list_checkbox(element_name, locator, list, proxy = nil) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::ListCheckBox.new("#{element_name}", self, "#{locator}", :section, #{list}, #{proxy});end)) end |
.list_radio(element_name, locator, list, proxy = nil) ⇒ Object
Declare and instantiate a list radio in a row of a list object on this section object.
486 487 488 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 486 def self.list_radio(element_name, locator, list, proxy = nil) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellRadio.new("#{element_name}", self, "#{locator}", :section, #{list}, #{proxy});end)) end |
.lists(element_hash) ⇒ Object
358 359 360 361 362 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 358 def self.lists(element_hash) element_hash.each do |element_name, locator| list(element_name, locator) end end |
.radio(element_name, locator, proxy = nil) ⇒ Object
Declare and instantiate a single radio button UI Element for this page section.
257 258 259 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 257 def self.radio(element_name, locator, proxy = nil) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::Radio.new("#{element_name}", self, "#{locator}", :section, #{proxy});end)) end |
.radios(element_hash) ⇒ Object
Declare and instantiate a collection of radio buttons for this page section.
270 271 272 273 274 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 270 def self.radios(element_hash) element_hash.each do |element_name, locator| radio(element_name, locator) end end |
.section(section_name, obj, locator = nil) ⇒ Object
Instantiate a single PageSection object within this PageSection object.
497 498 499 500 501 502 503 504 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 497 def self.section(section_name, obj, locator = nil) define_method(section_name) do ivar_name = "@#{section_name}" ivar = instance_variable_get(ivar_name) return ivar if ivar instance_variable_set(ivar_name, obj.new(section_name, self, "#{locator}", :section)) end end |
.sections(section_hash) ⇒ Object
506 507 508 509 510 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 506 def self.sections(section_hash) section_hash.each do |section_name, class_name| section(section_name, class_name) end end |
.selectlist(element_name, locator) ⇒ Object
Declare and instantiate a single select list UI Element for this page section.
337 338 339 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 337 def self.selectlist(element_name, locator) define_element(element_name, TestCentricity::SelectList, locator) end |
.selectlists(element_hash) ⇒ Object
341 342 343 344 345 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 341 def self.selectlists(element_hash) element_hash.each do |element_name, locator| selectlist(element_name, locator) end end |
.table(element_name, locator) ⇒ Object
Declare and instantiate a single table UI Element for this page section.
319 320 321 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 319 def self.table(element_name, locator) define_element(element_name, TestCentricity::Table, locator) end |
.tables(element_hash) ⇒ Object
323 324 325 326 327 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 323 def self.tables(element_hash) element_hash.each do |element_name, locator| table(element_name, locator) end end |
.textfield(element_name, locator) ⇒ Object
Declare and instantiate a single text field UI Element for this page section.
200 201 202 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 200 def self.textfield(element_name, locator) define_element(element_name, TestCentricity::TextField, locator) end |
.textfields(element_hash) ⇒ Object
Declare and instantiate a collection of text fields for this page section.
214 215 216 217 218 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 214 def self.textfields(element_hash) element_hash.each do |element_name, locator| textfield(element_name, locator) end end |
.trait(trait_name, &block) ⇒ Object
Define a trait for this page section.
136 137 138 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 136 def self.trait(trait_name, &block) define_method(trait_name.to_s, &block) end |
Instance Method Details
#click ⇒ Object
Click on a Section object
663 664 665 666 667 668 669 670 671 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 663 def click section, = find_section section_not_found_exception(section) begin section.click rescue section.click_at(10, 10) unless Capybara.current_driver == :poltergeist end end |
#click_at(x, y) ⇒ Object
Click at a specific location within a Section object
702 703 704 705 706 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 702 def click_at(x, y) section, = find_section section_not_found_exception(section) section.click_at(x, y) end |
#disabled? ⇒ Boolean
Is Section object disabled (not enabled)?
539 540 541 542 543 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 539 def disabled? section, = find_section section_not_found_exception(section) section.disabled? end |
#displayed? ⇒ Boolean
Is section object displayed in browser window?
576 577 578 579 580 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 576 def displayed? section, = find_section section_not_found_exception(section) section.displayed? end |
#double_click ⇒ Object
Double-click on a Section object
678 679 680 681 682 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 678 def double_click section, = find_section section_not_found_exception(section) page.driver.browser.action.double_click(section.native).perform end |
#enabled? ⇒ Boolean
Is Section object enabled?
529 530 531 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 529 def enabled? !disabled? end |
#exists? ⇒ Boolean
Does Section object exists?
518 519 520 521 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 518 def exists? section, = find_section section != nil end |
#get_all_items_count ⇒ Object
95 96 97 98 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 95 def get_all_items_count raise 'No parent list defined' if @parent_list.nil? @parent_list.get_all_items_count end |
#get_all_list_items ⇒ Object
100 101 102 103 104 105 106 107 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 100 def get_all_list_items items = [] (1..get_all_items_count).each do |item| set_list_index(nil, item) items.push(get_value(:all)) end items end |
#get_attribute(attrib) ⇒ Object
887 888 889 890 891 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 887 def get_attribute(attrib) section, = find_section section_not_found_exception(section) section[attrib] end |
#get_item_count ⇒ Object
81 82 83 84 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 81 def get_item_count raise 'No parent list defined' if @parent_list.nil? @parent_list.get_item_count end |
#get_list_items ⇒ Object
86 87 88 89 90 91 92 93 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 86 def get_list_items items = [] (1..get_item_count).each do |item| set_list_index(nil, item) items.push(get_value) end items end |
#get_locator ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 40 def get_locator locator = if @locator.empty? && defined?(section_locator) section_locator else @locator end unless @parent_list.nil? locator = if @locator_type == @parent_list.get_locator_type "#{@parent_list.get_locator} #{locator}" else "#{@parent_list.get_locator}|#{locator}" end unless @list_index.nil? locator = if @locator_type == :xpath "#{locator}[#{@list_index}]" else "#{locator}:nth-of-type(#{@list_index})" end end end if @context == :section && !@parent.nil? && !@parent.get_locator.nil? "#{@parent.get_locator}|#{locator}" else locator end end |
#get_locator_type ⇒ Object
68 69 70 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 68 def get_locator_type @locator_type end |
#get_name ⇒ Object
120 121 122 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 120 def get_name @name end |
#get_native_attribute(attrib) ⇒ Object
893 894 895 896 897 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 893 def get_native_attribute(attrib) section, = find_section section_not_found_exception(section) section.native.attribute(attrib) end |
#get_object_type ⇒ Object
116 117 118 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 116 def get_object_type :section end |
#get_parent_list ⇒ Object
72 73 74 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 72 def get_parent_list @parent_list end |
#hidden? ⇒ Boolean
Is Section object hidden (not visible)?
566 567 568 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 566 def hidden? !visible? end |
#populate_data_fields(data, wait_time = nil) ⇒ Object
Populate the specified UI elements in this Section object with the associated data from a Hash passed as an argument. Data values must be in the form of a String for textfield and select list controls. For checkbox and radio buttons, data must either be a Boolean or a String that evaluates to a Boolean value (Yes, No, 1, 0, true, false).
The optional wait_time parameter is used to specify the time (in seconds) to wait for each UI element to become visible before entering the associated data value. This option is useful in situations where entering data, or setting the state of a UI element might cause other UI elements to become visible or active. Specifying a wait_time value ensures that the subsequent UI elements will be ready to be interacted with as states are changed. If the wait time is nil, then the wait time will be 5 seconds.
To delete all text content in a text field, pass !DELETE as the data to be entered.
857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 857 def populate_data_fields(data, wait_time = nil) timeout = wait_time.nil? ? 5 : wait_time data.each do |data_field, data_param| unless data_param.blank? # make sure the intended UI target element is visible before trying to set its value data_field.wait_until_visible(timeout) if data_param == '!DELETE' data_field.clear else case data_field.get_object_type when :checkbox data_field.set_checkbox_state(data_param.to_bool) when :selectlist if data_field.get_siebel_object_type == 'JComboBox' data_field.set("#{data_param}\t") else data_field.choose_option(data_param) end when :radio data_field.set_selected_state(data_param.to_bool) when :textfield data_field.set("#{data_param}\t") when :section data_field.set(data_param) end end end end end |
#right_click ⇒ Object
Right-click on a Section object
689 690 691 692 693 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 689 def right_click section, = find_section section_not_found_exception(section) page.driver.browser.action.context_click(section.native).perform end |
#send_keys(*keys) ⇒ Object
Send keystrokes to a Section object
714 715 716 717 718 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 714 def send_keys(*keys) section, = find_section section_not_found_exception(section) section.send_keys(*keys) end |
#set_list_index(list, index = 1) ⇒ Object
76 77 78 79 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 76 def set_list_index(list, index = 1) @parent_list = list unless list.nil? @list_index = index end |
#set_parent(parent) ⇒ Object
124 125 126 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 124 def set_parent(parent) @parent = parent end |
#verify_list_items(expected, enqueue = false) ⇒ Object
109 110 111 112 113 114 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 109 def verify_list_items(expected, enqueue = false) actual = get_list_items enqueue ? ExceptionQueue.enqueue_assert_equal(expected, actual, "Expected list '#{get_name}' (#{get_locator})") : assert_equal(expected, actual, "Expected list object '#{get_name}' (#{get_locator}) to be #{expected} but found #{actual}") end |
#verify_ui_states(ui_states, fail_message = nil) ⇒ Object
720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 720 def verify_ui_states(ui_states, = nil) ui_states.each do |ui_object, object_states| object_states.each do |property, state| case property when :class actual = ui_object.get_attribute(:class) when :exists actual = ui_object.exists? when :enabled actual = ui_object.enabled? when :disabled actual = ui_object.disabled? when :visible actual = ui_object.visible? when :hidden actual = ui_object.hidden? when :displayed actual = ui_object.displayed? when :width actual = ui_object.width when :height actual = ui_object.height when :x actual = ui_object.x when :y actual = ui_object.y when :readonly actual = ui_object.read_only? when :checked actual = ui_object.checked? when :selected actual = ui_object.selected? when :value, :caption actual = ui_object.get_value when :maxlength actual = ui_object.get_max_length when :rowcount actual = ui_object.get_row_count when :columncount actual = ui_object.get_column_count when :placeholder actual = ui_object.get_placeholder when :min actual = ui_object.get_min when :max actual = ui_object.get_max when :step actual = ui_object.get_step when :loaded actual = ui_object.loaded? when :broken actual = ui_object.broken? when :options, :items, :list_items actual = ui_object.get_list_items when :optioncount, :itemcount actual = ui_object.get_item_count when :all_items, :all_list_items actual = ui_object.get_all_list_items when :all_items_count actual = ui_object.get_all_items_count when :column_headers actual = ui_object.get_header_columns when :siebel_options actual = ui_object. else if property.is_a?(Hash) property.each do |key, value| case key when :cell actual = ui_object.get_table_cell(value[0].to_i, value[1].to_i) when :row actual = ui_object.get_table_row(value.to_i) when :column actual = ui_object.get_table_column(value.to_i) when :item actual = ui_object.get_list_item(value.to_i) when :attribute actual = ui_object.get_attribute(value) when :native_attribute actual = ui_object.get_native_attribute(value) end end else props = property.to_s.split('_') case props[0].to_sym when :cell cell = property.to_s.delete('cell_') cell = cell.split('_') actual = ui_object.get_table_cell(cell[0].to_i, cell[1].to_i) when :row row = property.to_s.delete('row_') actual = ui_object.get_table_row(row.to_i) when :column column = property.to_s.delete('column_') actual = ui_object.get_table_column(column.to_i) when :item item = property.to_s.delete('item_') actual = ui_object.get_list_item(item.to_i) end end end error_msg = "Expected UI object '#{ui_object.get_name}' (#{ui_object.get_locator}) #{property} property to" ExceptionQueue.enqueue_comparison(ui_object, state, actual, error_msg) end end rescue ObjectNotFoundError => e ExceptionQueue.enqueue_exception(e.) ensure ExceptionQueue.post_exceptions() end |
#visible? ⇒ Boolean
Is Section object visible?
551 552 553 554 555 556 557 558 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 551 def visible? section, = find_section exists = section visible = false visible = section.visible? if exists # the section is visible if it exists and it is not invisible exists && visible ? true : false end |
#wait_until_exists(seconds = nil, post_exception = true) ⇒ Object
Wait until the Section object exists, or until the specified wait time has expired. If the wait time is nil, then the wait time will be Capybara.default_max_wait_time.
589 590 591 592 593 594 595 596 597 598 599 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 589 def wait_until_exists(seconds = nil, post_exception = true) timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds wait = Selenium::WebDriver::Wait.new(timeout: timeout) wait.until { exists? } rescue if post_exception raise "Could not find Section object '#{get_name}' (#{get_locator}) after #{timeout} seconds" unless exists? else exists? end end |
#wait_until_gone(seconds = nil, post_exception = true) ⇒ Object
Wait until the Section object no longer exists, or until the specified wait time has expired. If the wait time is nil, then the wait time will be Capybara.default_max_wait_time.
608 609 610 611 612 613 614 615 616 617 618 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 608 def wait_until_gone(seconds = nil, post_exception = true) timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds wait = Selenium::WebDriver::Wait.new(timeout: timeout) wait.until { !exists? } rescue if post_exception raise "Section object '#{get_name}' (#{get_locator}) remained visible after #{timeout} seconds" if exists? else exists? end end |
#wait_until_hidden(seconds = nil, post_exception = true) ⇒ Object
Wait until the Section object is hidden, or until the specified wait time has expired. If the wait time is nil, then the wait time will be Capybara.default_max_wait_time.
646 647 648 649 650 651 652 653 654 655 656 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 646 def wait_until_hidden(seconds = nil, post_exception = true) timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds wait = Selenium::WebDriver::Wait.new(timeout: timeout) wait.until { hidden? } rescue if post_exception raise "Section object '#{get_name}' (#{get_locator}) remained visible after #{timeout} seconds" if visible? else visible? end end |
#wait_until_visible(seconds = nil, post_exception = true) ⇒ Object
Wait until the Section object is visible, or until the specified wait time has expired. If the wait time is nil, then the wait time will be Capybara.default_max_wait_time.
627 628 629 630 631 632 633 634 635 636 637 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 627 def wait_until_visible(seconds = nil, post_exception = true) timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds wait = Selenium::WebDriver::Wait.new(timeout: timeout) wait.until { visible? } rescue if post_exception raise "Could not find Section object '#{get_name}' (#{get_locator}) after #{timeout} seconds" unless visible? else visible? end end |