Class: TestCentricity::PageObject
- Includes:
- Capybara::DSL, Capybara::Node::Matchers, Test::Unit::Assertions
- Defined in:
- lib/testcentricity/web_core/page_objects_helper.rb
Class Method Summary collapse
-
.button(element_name, locator) ⇒ Object
Declare and instantiate a single button UI Element for this page object.
-
.buttons(element_hash) ⇒ Object
Declare and instantiate a collection of buttons for this page object.
-
.cell_button(element_name, locator, table, column) ⇒ Object
Declare and instantiate a cell button in a table column on this page object.
-
.cell_checkbox(element_name, locator, table, column, proxy = nil) ⇒ Object
Declare and instantiate a cell checkbox in a table column on this page object.
-
.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 object.
-
.checkbox(element_name, locator, proxy = nil) ⇒ Object
Declare and instantiate a single checkbox UI Element for this page object.
-
.checkboxes(element_hash) ⇒ Object
Declare and instantiate a collection of checkboxes for this page object.
-
.element(element_name, locator) ⇒ Object
Declare and instantiate a single generic UI Element for this page object.
-
.elements(element_hash) ⇒ Object
Declare and instantiate a collection of generic UI Elements for this page object.
-
.filefield(element_name, locator) ⇒ Object
Declare and instantiate a single File Field UI Element for this page object.
- .filefields(element_hash) ⇒ Object
-
.image(element_name, locator) ⇒ Object
Declare and instantiate an single image UI Element for this page object.
- .images(element_hash) ⇒ Object
-
.label(element_name, locator) ⇒ Object
Declare and instantiate a single label UI Element for this page object.
- .labels(element_hash) ⇒ Object
-
.link(element_name, locator) ⇒ Object
Declare and instantiate a single link UI Element for this page object.
- .links(element_hash) ⇒ Object
-
.list(element_name, locator) ⇒ Object
Declare and instantiate a single list UI Element for this page object.
-
.list_button(element_name, locator, list) ⇒ Object
Declare and instantiate a list button in a row of a list object on this page 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 page 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 page object.
- .lists(element_hash) ⇒ Object
-
.radio(element_name, locator, proxy = nil) ⇒ Object
Declare and instantiate a single radio button UI Element for this page object.
-
.radios(element_hash) ⇒ Object
Declare and instantiate a collection of radio buttons for this page object.
-
.section(section_name, class_name, locator = nil) ⇒ Object
Instantiate a single PageSection object for this page object.
- .sections(section_hash) ⇒ Object
-
.selectlist(element_name, locator) ⇒ Object
Declare and instantiate a single select list UI Element for this page object.
- .selectlists(element_hash) ⇒ Object
-
.table(element_name, locator) ⇒ Object
Declare and instantiate a single table UI Element for this page object.
- .tables(element_hash) ⇒ Object
-
.textfield(element_name, locator) ⇒ Object
Declare and instantiate a single text field UI Element for this page object.
-
.textfields(element_hash) ⇒ Object
Declare and instantiate a collection of text fields for this page object.
-
.trait(trait_name, &block) ⇒ Object
Define a trait for this page object.
Instance Method Summary collapse
-
#exists? ⇒ Boolean
Does Page object exists?.
- #load_page ⇒ Object
- #navigate_to ⇒ Object
- #open_portal ⇒ Object
-
#populate_data_fields(data, wait_time = nil) ⇒ Object
Populate the specified UI elements on this page with the associated data from a Hash passed as an argument.
-
#secure? ⇒ Boolean
Is current Page object URL secure?.
- #verify_page_contains(content) ⇒ Object
- #verify_page_exists ⇒ Object
- #verify_page_ui ⇒ Object
- #verify_ui_states(ui_states) ⇒ Object
-
#wait_until_exists(seconds = nil) ⇒ Object
Wait until the page object exists, or until the specified wait time has expired.
-
#wait_until_gone(seconds = nil) ⇒ Object
Wait until the page object no longer exists, or until the specified wait time has expired.
Class Method Details
.button(element_name, locator) ⇒ Object
Declare and instantiate a single button UI Element for this page object.
61 62 63 64 65 66 67 68 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 61 def self.(element_name, locator) define_method(element_name) do ivar_name = "@#{element_name}" ivar = instance_variable_get(ivar_name) return ivar if ivar instance_variable_set(ivar_name, TestCentricity::Button.new(element_name, self, locator, :page)) end end |
.buttons(element_hash) ⇒ Object
Declare and instantiate a collection of buttons for this page object.
78 79 80 81 82 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 78 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 object.
341 342 343 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 341 def self.(element_name, locator, table, column) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellButton.new("#{element_name}", self, "#{locator}", :page, #{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 object.
354 355 356 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 354 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}", :page, #{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.
381 382 383 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 381 def self.cell_image(element_name, locator, table, column) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CellImage.new("#{element_name}", self, "#{locator}", :page, #{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 object.
367 368 369 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 367 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}", :page, #{table}, #{column}, #{proxy});end)) end |
.checkbox(element_name, locator, proxy = nil) ⇒ Object
Declare and instantiate a single checkbox UI Element for this page object.
126 127 128 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 126 def self.checkbox(element_name, locator, proxy = nil) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::CheckBox.new("#{element_name}", self, "#{locator}", :page, #{proxy});end)) end |
.checkboxes(element_hash) ⇒ Object
Declare and instantiate a collection of checkboxes for this page object.
139 140 141 142 143 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 139 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 object.
30 31 32 33 34 35 36 37 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 30 def self.element(element_name, locator) define_method(element_name) do ivar_name = "@#{element_name}" ivar = instance_variable_get(ivar_name) return ivar if ivar instance_variable_set(ivar_name, TestCentricity::UIElement.new(element_name, self, locator, :page)) end end |
.elements(element_hash) ⇒ Object
Declare and instantiate a collection of generic UI Elements for this page object.
47 48 49 50 51 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 47 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 object.
316 317 318 319 320 321 322 323 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 316 def self.filefield(element_name, locator) define_method(element_name) do ivar_name = "@#{element_name}" ivar = instance_variable_get(ivar_name) return ivar if ivar instance_variable_set(ivar_name, TestCentricity::FileField.new(element_name, self, locator, :page)) end end |
.filefields(element_hash) ⇒ Object
325 326 327 328 329 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 325 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 object.
294 295 296 297 298 299 300 301 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 294 def self.image(element_name, locator) define_method(element_name) do ivar_name = "@#{element_name}" ivar = instance_variable_get(ivar_name) return ivar if ivar instance_variable_set(ivar_name, TestCentricity::Image.new(element_name, self, locator, :page)) end end |
.images(element_hash) ⇒ Object
303 304 305 306 307 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 303 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 object.
181 182 183 184 185 186 187 188 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 181 def self.label(element_name, locator) define_method(element_name) do ivar_name = "@#{element_name}" ivar = instance_variable_get(ivar_name) return ivar if ivar instance_variable_set(ivar_name, TestCentricity::Label.new(element_name, self, locator, :page)) end end |
.labels(element_hash) ⇒ Object
190 191 192 193 194 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 190 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 object.
204 205 206 207 208 209 210 211 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 204 def self.link(element_name, locator) define_method(element_name) do ivar_name = "@#{element_name}" ivar = instance_variable_get(ivar_name) return ivar if ivar instance_variable_set(ivar_name, TestCentricity::Link.new(element_name, self, locator, :page)) end end |
.links(element_hash) ⇒ Object
213 214 215 216 217 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 213 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 object.
271 272 273 274 275 276 277 278 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 271 def self.list(element_name, locator) define_method(element_name) do ivar_name = "@#{element_name}" ivar = instance_variable_get(ivar_name) return ivar if ivar instance_variable_set(ivar_name, TestCentricity::List.new(element_name, self, locator, :page)) end end |
.list_button(element_name, locator, list) ⇒ Object
Declare and instantiate a list button in a row of a list object on this page object.
394 395 396 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 394 def self.(element_name, locator, list) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::ListButton.new("#{element_name}", self, "#{locator}", :page, #{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 page object.
406 407 408 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 406 def self.list_checkbox(element_name, locator, list, proxy = nil) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::ListCheckBox.new("#{element_name}", self, "#{locator}", :page, #{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 page object.
418 419 420 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 418 def self.list_radio(element_name, locator, list, proxy = nil) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::ListRadio.new("#{element_name}", self, "#{locator}", :page, #{list}, #{proxy});end)) end |
.lists(element_hash) ⇒ Object
280 281 282 283 284 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 280 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 object.
154 155 156 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 154 def self.radio(element_name, locator, proxy = nil) class_eval(%(def #{element_name};@#{element_name} ||= TestCentricity::Radio.new("#{element_name}", self, "#{locator}", :page, #{proxy});end)) end |
.radios(element_hash) ⇒ Object
Declare and instantiate a collection of radio buttons for this page object.
167 168 169 170 171 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 167 def self.radios(element_hash) element_hash.each do |element_name, locator| radio(element_name, locator) end end |
.section(section_name, class_name, locator = nil) ⇒ Object
Instantiate a single PageSection object for this page object.
429 430 431 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 429 def self.section(section_name, class_name, locator = nil) class_eval(%(def #{section_name};@#{section_name} ||= #{class_name}.new("#{section_name}", self, "#{locator}", :page);end)) end |
.sections(section_hash) ⇒ Object
433 434 435 436 437 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 433 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 object.
249 250 251 252 253 254 255 256 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 249 def self.selectlist(element_name, locator) define_method(element_name) do ivar_name = "@#{element_name}" ivar = instance_variable_get(ivar_name) return ivar if ivar instance_variable_set(ivar_name, TestCentricity::SelectList.new(element_name, self, locator, :page)) end end |
.selectlists(element_hash) ⇒ Object
258 259 260 261 262 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 258 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 object.
226 227 228 229 230 231 232 233 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 226 def self.table(element_name, locator) define_method(element_name) do ivar_name = "@#{element_name}" ivar = instance_variable_get(ivar_name) return ivar if ivar instance_variable_set(ivar_name, TestCentricity::Table.new(element_name, self, locator, :page)) end end |
.tables(element_hash) ⇒ Object
235 236 237 238 239 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 235 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 object.
92 93 94 95 96 97 98 99 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 92 def self.textfield(element_name, locator) define_method(element_name) do ivar_name = "@#{element_name}" ivar = instance_variable_get(ivar_name) return ivar if ivar instance_variable_set(ivar_name, TestCentricity::TextField.new(element_name, self, locator, :page)) end end |
.textfields(element_hash) ⇒ Object
Declare and instantiate a collection of text fields for this page object.
111 112 113 114 115 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 111 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 object.
18 19 20 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 18 def self.trait(trait_name, &block) define_method(trait_name.to_s, &block) end |
Instance Method Details
#exists? ⇒ Boolean
Does Page object exists?
494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 494 def exists? raise "Page object #{self.class.name} does not have a page_locator trait defined" unless defined?(page_locator) saved_wait_time = Capybara.default_max_wait_time Capybara.default_max_wait_time = 0.1 tries ||= 2 attributes = [:id, :css, :xpath] type = attributes[tries] obj = page.find(type, page_locator) obj != nil rescue Capybara.default_max_wait_time = saved_wait_time retry if (tries -= 1) > 0 false ensure Capybara.default_max_wait_time = saved_wait_time end |
#load_page ⇒ Object
470 471 472 473 474 475 476 477 478 479 480 481 482 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 470 def load_page return if exists? if defined?(page_url) && !page_url.nil? visit page_url begin page.driver.browser.switch_to.alert.accept rescue => e end unless Environ.browser == :safari || Environ.browser == :ie || Environ.is_device? else navigate_to end verify_page_exists end |
#navigate_to ⇒ Object
466 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 466 def navigate_to; end |
#open_portal ⇒ Object
439 440 441 442 443 444 445 446 447 448 449 450 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 439 def open_portal environment = Environ.current environment.hostname.blank? ? url = "#{environment.base_url}#{environment.append}" : url = "#{environment.hostname}/#{environment.base_url}#{environment.append}" if environment.user_id.blank? || environment.password.blank? visit "#{environment.protocol}://#{url}" else visit "#{environment.protocol}://#{environment.user_id}:#{environment.password}@#{url}" end Environ.portal_state = :open end |
#populate_data_fields(data, wait_time = nil) ⇒ Object
Populate the specified UI elements on this page 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.
683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 683 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 data_field.get_siebel_object_type == 'JComboBox' ? data_field.set("#{data_param}\t") : data_field.choose_option(data_param) 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 |
#secure? ⇒ Boolean
Is current Page object URL secure?
547 548 549 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 547 def secure? !current_url.match(/^https/).nil? end |
#verify_page_contains(content) ⇒ Object
484 485 486 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 484 def verify_page_contains(content) raise "Expected page to have content '#{content}'" unless page.has_content?(:visible, content) end |
#verify_page_exists ⇒ Object
452 453 454 455 456 457 458 459 460 461 462 463 464 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 452 def verify_page_exists raise "Page object #{self.class.name} does not have a page_locator trait defined" unless defined?(page_locator) unless page.has_selector?(page_locator) body_class = find(:xpath, '//body')[:class] = %( Expected page to have selector '#{page_locator}' but found '#{body_class}' instead. Actual URL of page loaded = #{URI.parse(current_url)}. ) = "#{}\nExpected URL of page was #{page_url}." if defined?(page_url) raise end PageManager.current_page = self end |
#verify_page_ui ⇒ Object
468 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 468 def verify_page_ui; end |
#verify_ui_states(ui_states) ⇒ Object
551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 551 def verify_ui_states(ui_states) 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 :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(state, actual, error_msg) end end rescue ObjectNotFoundError => e ExceptionQueue.enqueue_exception(e.) ensure ExceptionQueue.post_exceptions end |
#wait_until_exists(seconds = nil) ⇒ Object
Wait until the page 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.
518 519 520 521 522 523 524 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 518 def wait_until_exists(seconds = nil) timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds wait = Selenium::WebDriver::Wait.new(timeout: timeout) wait.until { exists? } rescue raise "Page object #{self.class.name} not found after #{timeout} seconds" unless exists? end |
#wait_until_gone(seconds = nil) ⇒ Object
Wait until the page 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.
533 534 535 536 537 538 539 |
# File 'lib/testcentricity/web_core/page_objects_helper.rb', line 533 def wait_until_gone(seconds = nil) timeout = seconds.nil? ? Capybara.default_max_wait_time : seconds wait = Selenium::WebDriver::Wait.new(timeout: timeout) wait.until { !exists? } rescue raise "Page object #{self.class.name} remained visible after #{timeout} seconds" if exists? end |