Sha256: d799ee725b251bef14d0d5293f6e9f78791a58519cce174f32d771c90a676ec1
Contents?: true
Size: 1.43 KB
Versions: 2
Compression:
Stored size: 1.43 KB
Contents
require "capybara" require "mache/node" module Mache # The Page class wraps an HTML page with an application-specific API. You can # extend it to define your own API for manipulating the pages of your web # application. # # @example # # class WelcomePage < Mache::page # element :main, "#main" # component :nav, Nav, "#nav" # end # # page = WelcomePage.new(path: "/welcome") # page.visit # page.current # true # page.main.text # lorem ipsum # class Page < Node # The path where the page is located, without any domain information. # # @return [String] the path string # @example # "/welcome" # "/users/sign_in" attr_reader :path # Returns a new page object. # # @param node [Capybara::Node] the Capybara node to attach to # @param path [String] the path where the page is located def initialize(node: Capybara.current_session, path: nil) @node ||= node @path ||= path end # Visits the page at its {#path}. # # @return [Page] the page object def visit @node.visit(path) self end # Tests whether the page is current. # # @return [Boolean] `true` if the page is current, `false` otherwise def current? @node.current_path == path end # Creates a new page object and calls {#visit} on it. # # @return [Page] the page object def self.visit new.visit end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mache-2.0.0 | lib/mache/page.rb |
mache-1.0.1 | lib/mache/page.rb |