Sha256: 296d26802c7e6f3a3d1b817eca6f720f6fb4b5648c9893e6d582e801ba02df9f
Contents?: true
Size: 1.34 KB
Versions: 14
Compression:
Stored size: 1.34 KB
Contents
require 'page-object' module MediawikiSelenium # Handles on-demand browser instantiation and assignment of the `@browser` # instance variable before delegating to `PageObject::PageFactory` methods. # module PageFactory include ::PageObject::PageFactory # Instantiates a new browser before delegating to # `PageObject::PageFactory#on_page`. All page URLs are also qualified # using {Environment#wiki_url}. # # Additionally, an instance of the current {Environment} is made available # as `env` for interpolation of page URLs. # # @example Referencing the `env` in page URLs # class ArticlePage # page_url 'User:<%= env.user %>' # end # # @see http://www.rubydoc.info/github/cheezy/page-object # def on_page(page_class, params = { using_params: {} }, visit = false) @browser = browser if visit || !defined?(@browser) env = self super(page_class, params, false) do |page| page.define_singleton_method(:env) do env end if page.respond_to?(:goto) wiki_url = method(:wiki_url) page.define_singleton_method(:page_url_value) do wiki_url.call(super()) end page.goto if visit end yield page if block_given? end end # @see #on_page alias on on_page end end
Version data entries
14 entries across 14 versions & 1 rubygems