Module: PageObject::LoadsPlatform

Included in:
PageObject, IndexedProperties::TableOfElements
Defined in:
lib/page-object/loads_platform.rb

Overview

module which provides a function for determining which platform to provide to the page object

Instance Method Summary collapse

Instance Method Details

#adapter_for(element_or_browser, adapters) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/page-object/loads_platform.rb', line 25

def adapter_for element_or_browser, adapters
  adapter = adapters.values.find { |adapter|
    adapter.is_for?(element_or_browser)
  }
  unless adapter
    message = "Unable to pick a platform for the provided browser or element: #{element_or_browser.inspect}."
    message += "\nnil was passed to the PageObject constructor instead of a valid browser or element object." if element_or_browser.nil?
    raise message
  end
  adapter
end

#browser_for(root, adapters) ⇒ Object



21
22
23
# File 'lib/page-object/loads_platform.rb', line 21

def browser_for root,adapters
  adapter_for(root,adapters).browser_for(root)
end

#browser_root_for(browser, adapters) ⇒ Object



41
42
43
# File 'lib/page-object/loads_platform.rb', line 41

def browser_root_for browser, adapters
  adapter_for(browser,adapters).browser_root_for(browser)
end

#load_platform(browser, adapters) ⇒ Object

Determines which platform the Page Object should use based upon browser

Examples:

platform =  load_platform(watir_webdriver_browser, PageObject.Adapters.list).send(:new, watir_webdriver_browser)

Parameters:

  • A (Object)

    browser driver that has a supported adapter

  • a (adapters)

    list of adapters that are currently supported



17
18
19
# File 'lib/page-object/loads_platform.rb', line 17

def load_platform(browser, adapters)
  adapter_for(browser,adapters).create_page_object(browser)
end

#root_element_for(root, adapters) ⇒ Object



37
38
39
# File 'lib/page-object/loads_platform.rb', line 37

def root_element_for root, adapters
  adapter_for(root,adapters).root_element_for(root)
end