2010-07-10 00:20:32 +00:00
|
|
|
require 'capybara/node/finders'
|
|
|
|
require 'capybara/node/actions'
|
|
|
|
require 'capybara/node/matchers'
|
|
|
|
|
2010-07-09 23:19:09 +00:00
|
|
|
module Capybara
|
2010-07-09 23:38:57 +00:00
|
|
|
class Node
|
2010-07-09 23:58:34 +00:00
|
|
|
attr_reader :session, :base
|
|
|
|
|
2010-07-10 00:20:32 +00:00
|
|
|
include Capybara::Node::Finders
|
|
|
|
include Capybara::Node::Actions
|
|
|
|
include Capybara::Node::Matchers
|
|
|
|
|
2010-07-09 23:58:34 +00:00
|
|
|
def initialize(session, base)
|
|
|
|
@session = session
|
|
|
|
@base = base
|
|
|
|
end
|
2010-07-09 23:19:09 +00:00
|
|
|
|
2010-07-09 23:38:57 +00:00
|
|
|
protected
|
|
|
|
|
|
|
|
def driver
|
2010-07-09 23:49:32 +00:00
|
|
|
session.driver
|
2010-07-09 23:38:57 +00:00
|
|
|
end
|
2010-07-09 23:19:09 +00:00
|
|
|
end
|
2010-07-10 01:07:31 +00:00
|
|
|
|
|
|
|
class Element < Node
|
2010-07-11 12:00:00 +00:00
|
|
|
def text
|
|
|
|
base.text
|
|
|
|
end
|
|
|
|
|
|
|
|
def [](attribute)
|
|
|
|
base[attribute]
|
|
|
|
end
|
|
|
|
|
|
|
|
def value
|
|
|
|
base.value
|
|
|
|
end
|
|
|
|
|
|
|
|
def set(value)
|
|
|
|
base.set(value)
|
|
|
|
end
|
|
|
|
|
|
|
|
def select_option(option)
|
|
|
|
base.select_option(option)
|
|
|
|
end
|
|
|
|
|
|
|
|
def unselect_option(option)
|
|
|
|
base.unselect_option(option)
|
|
|
|
end
|
|
|
|
|
|
|
|
def click
|
|
|
|
base.click
|
|
|
|
end
|
|
|
|
|
|
|
|
def tag_name
|
|
|
|
base.tag_name
|
|
|
|
end
|
|
|
|
|
|
|
|
def visible
|
|
|
|
base.visible?
|
|
|
|
end
|
|
|
|
|
|
|
|
def path
|
|
|
|
base.path
|
|
|
|
end
|
|
|
|
|
|
|
|
def trigger(event)
|
|
|
|
base.trigger(event)
|
|
|
|
end
|
2010-07-10 14:34:33 +00:00
|
|
|
|
|
|
|
def drag_to(node)
|
|
|
|
base.drag_to(node.base)
|
2010-07-10 01:07:31 +00:00
|
|
|
end
|
|
|
|
|
2010-07-10 14:34:33 +00:00
|
|
|
def inspect
|
|
|
|
%(#<Capybara::Element tag="#{tag_name}" path="#{path}">)
|
|
|
|
rescue NotSupportedByDriverError
|
|
|
|
%(#<Capybara::Element tag="#{tag_name}">)
|
2010-07-10 01:07:31 +00:00
|
|
|
end
|
2010-07-10 14:34:33 +00:00
|
|
|
|
2010-07-10 01:07:31 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
class Document < Node
|
2010-07-10 14:34:33 +00:00
|
|
|
def inspect
|
|
|
|
%(#<Capybara::Document>)
|
|
|
|
end
|
2010-07-10 01:07:31 +00:00
|
|
|
end
|
2010-07-09 23:19:09 +00:00
|
|
|
end
|