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
-
.audio(element_name, locator) ⇒ Object
Declare and instantiate a single HTML5 audio UI Element for this page section.
- .audios(element_hash) ⇒ Object
-
.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 a 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.
-
.video(element_name, locator) ⇒ Object
Declare and instantiate a single video UI Element for this page section.
- .videos(element_hash) ⇒ Object
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)?.
-
#hover ⇒ Object
Hover the cursor over a Section object.
-
#initialize(name, parent, locator, context) ⇒ PageSection
constructor
A new instance of PageSection.
-
#populate_data_fields(data, wait_time = nil, integrity_check = false) ⇒ 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
.audio(element_name, locator) ⇒ Object
Declare and instantiate a single HTML5 audio UI Element for this page section.
382 383 384 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 382 def self.audio(element_name, locator) define_element(element_name, TestCentricity::Audio, locator) end |
.audios(element_hash) ⇒ Object
386 387 388 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 386 def self.audios(element_hash) element_hash.each(&method(:audio)) end |
.button(element_name, locator) ⇒ Object
Declare and instantiate a single button UI Element for this page section.
172 173 174 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 172 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.
184 185 186 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 184 def self.(element_hash) element_hash.each(&method(:button)) end |
.cell_button(element_name, locator, table, column) ⇒ Object
Declare and instantiate a cell button in a table column on this page section.
415 416 417 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 415 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.
428 429 430 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 428 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.
455 456 457 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 455 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.
441 442 443 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 441 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.
223 224 225 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 223 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.
236 237 238 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 236 def self.checkboxes(element_hash) element_hash.each(&method(:checkbox)) 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 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 160 def self.elements(element_hash) element_hash.each(&method(:element)) end |
.filefield(element_name, locator) ⇒ Object
Declare and instantiate a single File Field UI Element for this page section.
397 398 399 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 397 def self.filefield(element_name, locator) define_element(element_name, TestCentricity::FileField, locator) end |
.filefields(element_hash) ⇒ Object
401 402 403 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 401 def self.filefields(element_hash) element_hash.each(&method(:filefield)) end |
.image(element_name, locator) ⇒ Object
Declare and instantiate a single image UI Element for this page section.
352 353 354 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 352 def self.image(element_name, locator) define_element(element_name, TestCentricity::Image, locator) end |
.images(element_hash) ⇒ Object
356 357 358 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 356 def self.images(element_hash) element_hash.each(&method(:image)) end |
.label(element_name, locator) ⇒ Object
Declare and instantiate a single label UI Element for this page section.
274 275 276 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 274 def self.label(element_name, locator) define_element(element_name, TestCentricity::Label, locator) end |
.labels(element_hash) ⇒ Object
278 279 280 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 278 def self.labels(element_hash) element_hash.each(&method(:label)) end |
.link(element_name, locator) ⇒ Object
Declare and instantiate a single link UI Element for this page section.
290 291 292 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 290 def self.link(element_name, locator) define_element(element_name, TestCentricity::Link, locator) end |
.links(element_hash) ⇒ Object
294 295 296 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 294 def self.links(element_hash) element_hash.each(&method(:link)) end |
.list(element_name, locator) ⇒ Object
Declare and instantiate a single list UI Element for this page section.
336 337 338 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 336 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.
468 469 470 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 468 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.
480 481 482 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 480 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.
492 493 494 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 492 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
340 341 342 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 340 def self.lists(element_hash) element_hash.each(&method(:list)) end |
.radio(element_name, locator, proxy = nil) ⇒ Object
Declare and instantiate a single radio button UI Element for this page section.
249 250 251 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 249 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.
262 263 264 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 262 def self.radios(element_hash) element_hash.each(&method(:radio)) end |
.section(section_name, obj, locator = nil) ⇒ Object
Instantiate a single PageSection object within this PageSection object.
503 504 505 506 507 508 509 510 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 503 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
512 513 514 515 516 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 512 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.
321 322 323 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 321 def self.selectlist(element_name, locator) define_element(element_name, TestCentricity::SelectList, locator) end |
.selectlists(element_hash) ⇒ Object
325 326 327 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 325 def self.selectlists(element_hash) element_hash.each(&method(:selectlist)) end |
.table(element_name, locator) ⇒ Object
Declare and instantiate a single table UI Element for this page section.
305 306 307 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 305 def self.table(element_name, locator) define_element(element_name, TestCentricity::Table, locator) end |
.tables(element_hash) ⇒ Object
309 310 311 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 309 def self.tables(element_hash) element_hash.each(&method(:table)) end |
.textfield(element_name, locator) ⇒ Object
Declare and instantiate a single text field UI Element for this page section.
196 197 198 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 196 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.
210 211 212 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 210 def self.textfields(element_hash) element_hash.each(&method(:textfield)) 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 |
.video(element_name, locator) ⇒ Object
Declare and instantiate a single video UI Element for this page section.
367 368 369 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 367 def self.video(element_name, locator) define_element(element_name, TestCentricity::Video, locator) end |
.videos(element_hash) ⇒ Object
371 372 373 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 371 def self.videos(element_hash) element_hash.each(&method(:video)) end |
Instance Method Details
#click ⇒ Object
Click on a Section object
669 670 671 672 673 674 675 676 677 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 669 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
708 709 710 711 712 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 708 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)?
545 546 547 548 549 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 545 def disabled? section, = find_section section_not_found_exception(section) section.disabled? end |
#displayed? ⇒ Boolean
Is section object displayed in browser window?
582 583 584 585 586 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 582 def displayed? section, = find_section section_not_found_exception(section) section.displayed? end |
#double_click ⇒ Object
Double-click on a Section object
684 685 686 687 688 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 684 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?
535 536 537 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 535 def enabled? !disabled? end |
#exists? ⇒ Boolean
Does Section object exists?
524 525 526 527 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 524 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
975 976 977 978 979 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 975 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
981 982 983 984 985 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 981 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)?
572 573 574 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 572 def hidden? !visible? end |
#hover ⇒ Object
Hover the cursor over a Section object
731 732 733 734 735 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 731 def hover section, = find_section section_not_found_exception(section) section.hover end |
#populate_data_fields(data, wait_time = nil, integrity_check = false) ⇒ 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.
940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 940 def populate_data_fields(data, wait_time = nil, integrity_check = false) 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") if integrity_check && data_field.get_value != data_param data_field.set('') data_field.send_keys(data_param) data_field.send_keys(:tab) end when :section data_field.set(data_param) end end end end end |
#right_click ⇒ Object
Right-click on a Section object
695 696 697 698 699 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 695 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
720 721 722 723 724 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 720 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
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 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 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 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 737 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 :name actual = ui_object.get_attribute(:name) when :title actual = ui_object.title 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 :alt actual = ui_object.alt when :src actual = ui_object.src when :autoplay actual = ui_object.autoplay? when :ended actual = ui_object.ended? when :controls actual = ui_object.controls? when :loop actual = ui_object.loop? when :muted actual = ui_object.muted? when :default_muted actual = ui_object.default_muted? when :paused actual = ui_object.paused? when :seeking actual = ui_object.seeking? when :current_time actual = ui_object.current_time when :default_playback_rate actual = ui_object.default_playback_rate when :duration actual = ui_object.duration when :playback_rate actual = ui_object.playback_rate when :ready_state actual = ui_object.ready_state when :volume actual = ui_object.volume 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 :count, :count_visible actual = ui_object.count(visible = true) when :count_all actual = ui_object.count(visible = :all) when :siebel_options actual = ui_object. when :style actual = ui_object.style when :href actual = ui_object.href when :role actual = ui_object.role when :aria_label actual = ui_object.aria_label when :aria_disabled actual = ui_object.aria_disabled? when :tabindex actual = ui_object.tabindex when :aria_labelledby actual = ui_object.aria_labelledby when :aria_describedby actual = ui_object.aria_describedby when :aria_live actual = ui_object.aria_live when :aria_selected actual = ui_object.aria_selected? when :aria_hidden actual = ui_object.aria_hidden? when :aria_expanded actual = ui_object. when :aria_required actual = ui_object.aria_required? when :aria_invalid actual = ui_object.aria_invalid? when :aria_checked actual = ui_object.aria_checked? when :aria_readonly actual = ui_object.aria_readonly? when :aria_pressed actual = ui_object.aria_pressed? when :aria_haspopup actual = ui_object.aria_haspopup? when :aria_sort actual = ui_object.aria_sort when :aria_rowcount actual = ui_object.aria_rowcount when :aria_colcount actual = ui_object.aria_colcount 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 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?
557 558 559 560 561 562 563 564 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 557 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.
595 596 597 598 599 600 601 602 603 604 605 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 595 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.
614 615 616 617 618 619 620 621 622 623 624 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 614 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.
652 653 654 655 656 657 658 659 660 661 662 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 652 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.
633 634 635 636 637 638 639 640 641 642 643 |
# File 'lib/testcentricity_web/web_core/page_sections_helper.rb', line 633 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 |