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/matcher.rb,
lib/page_magic/session.rb,
lib/page_magic/watcher.rb,
lib/page_magic/elements.rb,
lib/page_magic/watchers.rb,
lib/page_magic/exceptions.rb,
lib/page_magic/exceptions.rb,
lib/page_magic/wait_methods.rb,
lib/page_magic/class_methods.rb,
lib/page_magic/element/query.rb,
lib/page_magic/element_context.rb,
lib/page_magic/session_methods.rb,
lib/page_magic/element/locators.rb,
lib/page_magic/element/selector.rb,
lib/page_magic/instance_methods.rb,
lib/page_magic/element/selector_methods.rb,
lib/page_magic/element_definition_builder.rb

Overview

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

Defined Under Namespace

Modules: ClassMethods, Elements, InstanceMethods, SessionMethods, WaitMethods, Watchers Classes: Driver, Drivers, Element, ElementContext, ElementDefinitionBuilder, ElementMissingException, InvalidElementNameException, InvalidMethodNameException, InvalidURLException, Matcher, MatcherInvalidException, NotSupportedException, Session, TimeoutException, UndefinedSelectorException, UnspportedBrowserException, UnsupportedCriteriaException, UnsupportedSelectorException, Watcher

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.driversDrivers

Returns registered drivers.

Returns:



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

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


42
43
44
# File 'lib/page_magic.rb', line 42

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

.session(application: nil, browser: :rack_test, url:, 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)

    url to start the session on

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

    browser driver specific options

Returns:

Raises:



52
53
54
55
56
57
58
59
60
61
# File 'lib/page_magic.rb', line 52

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

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

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

Instance Method Details

#matcherMatcher

define match critera for loading a page object class

Returns:

See Also:



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

def_delegator Matcher, :new, :matcher