module Capybara::PomPom::Finder

Capybara::PomPom::Finder

Adds helper methods to Page for accessing Capybara elements in an instance.

class CustomPage
  include Capybara::PomPom::Finder

  link :documentation_link, "View Documentation"

  def view_docs
    documentation_link.click
  end
end

Public Instance Methods

button(name, locator) click to toggle source

Finds a button through find_button

button :login_button, "Log In"

Returns a Capybara::Node::Element

# File lib/capybara/pompom/finder.rb, line 65
def button(name, locator)
  self.finders[name] = ElementFinder.new(:find_button, locator)
end
component(name, locator) click to toggle source

Finds a component through find

component :overview_component, "#overview"

Returns a Component

# File lib/capybara/pompom/finder.rb, line 83
def component(name, locator)
  self.finders[name] = ElementFinder.new(:find, locator, wrapper: Component)
end
components(name, locator, wrapper: nil) click to toggle source

Finds components through all

components :statuses, ".status"

Returns a Component

# File lib/capybara/pompom/finder.rb, line 92
def components(name, locator, wrapper: nil)
  self.finders[name] = ElementFinder.new(:all, locator, wrapper: wrapper)
end
css(name, locator) click to toggle source

Finds a node with find

css :title, ".title"

Returns a Capybara::Node::Element

# File lib/capybara/pompom/finder.rb, line 38
def css(name, locator)
  self.finders[name] = ElementFinder.new(:find, locator)
end
field(name, locator) click to toggle source

Finds a field through find_field

field :username, "user[username]"

Returns a Capybara::Node::Element

# File lib/capybara/pompom/finder.rb, line 56
def field(name, locator)
  self.finders[name] = ElementFinder.new(:find_field, locator)
end
method_missing(name, *args) click to toggle source

Provides access to finders defined at the class level.

Calls superclass method
# File lib/capybara/pompom/finder.rb, line 22
def method_missing(name, *args)
  if self.finders.has_key?(name)
    return self.finders[name].get
  end

  super
end
table(name, locator, row_wrapper: nil) click to toggle source

Finds a table through find

table :products_table, "#products", row_wrapper: TableRowWrapper

Returns a Table

# File lib/capybara/pompom/finder.rb, line 74
def table(name, locator, row_wrapper: nil)
  self.finders[name] = TableFinder.new(:find, locator, wrapper: row_wrapper)
end