Module: PageMagic

Extended by:
SingleForwardable
Defined in:
lib/page_magic.rb,
lib/page_magic/driver.rb,
lib/page_magic/drivers.rb,
lib/page_magic/element.rb,
lib/page_magic/mapping.rb,
lib/page_magic/session.rb,
lib/page_magic/version.rb,
lib/page_magic/watcher.rb,
lib/page_magic/elements.rb,
lib/page_magic/watchers.rb,
lib/page_magic/utils/url.rb,
lib/page_magic/comparator.rb,
lib/page_magic/exceptions.rb,
lib/page_magic/transitions.rb,
lib/page_magic/utils/string.rb,
lib/page_magic/wait_methods.rb,
lib/page_magic/class_methods.rb,
lib/page_magic/element/query.rb,
lib/page_magic/elements/types.rb,
lib/page_magic/comparator/null.rb,
lib/page_magic/element_context.rb,
lib/page_magic/elements/config.rb,
lib/page_magic/session_methods.rb,
lib/page_magic/comparator/fuzzy.rb,
lib/page_magic/element/locators.rb,
lib/page_magic/element/selector.rb,
lib/page_magic/instance_methods.rb,
lib/page_magic/element/not_found.rb,
lib/page_magic/comparator/literal.rb,
lib/page_magic/element/selector/model.rb,
lib/page_magic/comparator/parameter_map.rb,
lib/page_magic/element/selector/methods.rb,
lib/page_magic/element_definition_builder.rb,
lib/page_magic/elements/inheritance_hooks.rb,
lib/page_magic/element/query/single_result.rb,
lib/page_magic/element/query/multiple_results.rb,
lib/page_magic/element/query/prefetched_result.rb

Overview

module PageMagic - PageMagic is an api for modelling pages in a website.

Defined Under Namespace

Modules: ClassMethods, Elements, InstanceMethods, SessionMethods, Utils, WaitMethods, Watchers Classes: AmbiguousQueryException, Comparator, Driver, Drivers, Element, ElementContext, ElementDefinitionBuilder, ElementMissingException, InvalidConfigurationException, InvalidElementNameException, InvalidMethodNameException, InvalidURLException, Mapping, MatcherInvalidException, NotSupportedException, Session, TimeoutException, Transitions, UndefinedSelectorException, UnsupportedBrowserException, UnsupportedCriteriaException, UnsupportedSelectorException, Watcher

Constant Summary collapse

VERSION =
'2.0.12'

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.driversDrivers

Returns registered drivers.

Returns:



28
29
30
# File 'lib/page_magic.rb', line 28

def drivers
  @drivers ||= Drivers.new.tap(&:load)
end

.mapping(path = nil, parameters: nil, fragment: nil) ⇒ Object

Create a more complex mapping to identify when a page should be loaded

Examples:

PageMagic.mapping '/', parameters: {project: 'page_magic'}, fragment: 'display'

See Also:

  • Matchers#initialize


44
45
46
# File 'lib/page_magic.rb', line 44

def mapping(path = nil, parameters: nil, fragment: nil)
  Mapping.new(path, parameters: parameters, fragment: fragment)
end

.session(session: nil, url: nil, application: nil, browser: :rack_test, options: {}) ⇒ Session

Visit this page based on the class level registered url

Parameters:

  • application (Object) (defaults to: nil)

    rack application (optional)

  • browser (Symbol) (defaults to: :rack_test)

    name of browser

  • url (String) (defaults to: nil)

    url to start the session on

  • options (Hash) (defaults to: {})

    browser driver specific options

  • session (Capybara::Session) (defaults to: nil)
    • use you own already configure capybara session e.g. Capybara.current_session

Returns:



55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/page_magic.rb', line 55

def session(session: nil, url: nil, application: nil, browser: :rack_test, options: {})
  session ||= begin
    driver = drivers.find(browser)
    raise UnsupportedBrowserException unless driver

    Capybara.register_driver browser do |app|
      driver.build(app, browser: browser, options: options)
    end

    Capybara::Session.new(browser, application)
  end

  Session.new(session, url)
end

Instance Method Details

#matcherMapping

define match critera for loading a page object class

Returns:

See Also:



24
# File 'lib/page_magic.rb', line 24

def_delegator Mapping, :new, :matcher