Class: Capybara::Node::Element

### Home Classes Methods

### In Files

- lib/capybara/node/element.rb

### Parent

Capybara::Node::Base

### Methods

- ::new
- #[]
- #allow_reload!
- #checked?
- #click
- #disabled?
- #double_click
- #drag_to
- #hover
- #inspect
- #native
- #path
- #reload
- #right_click
- #select_option
- #selected?
- #set
- #tag_name
- #text
- #trigger
- #unselect_option
- #value
- #visible?

### Files

- another_test_file.txt
- test_file.txt

### Class/Module Index

Quicksearch

- Capybara
- Capybara::Ambiguous
- Capybara::CapybaraError
- Capybara::DSL
- Capybara::Driver
- Capybara::Driver::Base
- Capybara::Driver::Node
- Capybara::DriverNotFoundError
- Capybara::ElementNotFound
- Capybara::ExpectationNotMet
- Capybara::Features
- Capybara::FileNotFound
- Capybara::FrozenInTime
- Capybara::Helpers
- Capybara::InfiniteRedirectError
- Capybara::ModalNotFound
- Capybara::Node
- Capybara::Node::Actions
- Capybara::Node::Base
- Capybara::Node::Document
- Capybara::Node::DocumentMatchers
- Capybara::Node::Element
- Capybara::Node::Finders
- Capybara::Node::Matchers
- Capybara::Node::Simple
- Capybara::NotSupportedByDriverError
- Capybara::Queries
- Capybara::Queries::BaseQuery
- Capybara::Queries::TextQuery
- Capybara::Queries::TitleQuery
- Capybara::Query
- Capybara::RSpecMatchers
- Capybara::RSpecMatchers::BecomeClosed
- Capybara::RSpecMatchers::HaveSelector
- Capybara::RSpecMatchers::HaveText
- Capybara::RSpecMatchers::HaveTitle
- Capybara::RSpecMatchers::Matcher
- Capybara::RackTest
- Capybara::RackTest::Browser
- Capybara::RackTest::CSSHandlers
- Capybara::RackTest::Driver
- Capybara::RackTest::Form
- Capybara::RackTest::Form::NilUploadedFile
- Capybara::RackTest::Node
- Capybara::ReadOnlyElementError
- Capybara::Result
- Capybara::ScopeError
- Capybara::Selector
- Capybara::Selector::Filter
- Capybara::Selenium
- Capybara::Selenium::Driver
- Capybara::Selenium::Node
- Capybara::Server
- Capybara::Server::Middleware
- Capybara::Session
- Capybara::SpecHelper
- Capybara::UnselectNotAllowed
- Capybara::Window
- Capybara::WindowError
- TestApp
- TestApp::TestAppError
- Object

No matching classes.

# Capybara::Node::Element

A {Capybara::Element} represents a single element on the page. It is possible to interact with the contents of this element the same as with a document:

    session = Capybara::Session.new(:rack_test, my_app)

    bar = session.find('#bar')              # from Capybara::Node::Finders
    bar.select('Baz', :from => 'Quox')      # from Capybara::Node::Actions

{Capybara::Element} also has access to HTML attributes and other properties of the element:

    bar.value
    bar.text
    bar[:title]

@see Capybara::Node

### Public Class Methods

new(session, base, parent, query) click to toggle source

    # File lib/capybara/node/element.rb, line 25
    def initialize(session, base, parent, query)
      super(session, base)
      @parent = parent
      @query = query
    end

### Public Instance Methods

[](attribute) click to toggle source

Retrieve the given attribute

    element[:title] # => HTML title attribute

@param [Symbol] attribute The attribute to retrieve @return [String] The value of the attribute

    # File lib/capybara/node/element.rb, line 75
    def [](attribute)
      synchronize { base[attribute] }
    end

allow_reload!() click to toggle source

    # File lib/capybara/node/element.rb, line 31
    def allow_reload!
      @allow_reload = true
    end

checked?() click to toggle source

Whether or not the element is checked.

@return [Boolean] Whether the element is checked

    # File lib/capybara/node/element.rb, line 185
    def checked?
      synchronize { base.checked? }
    end

click() click to toggle source

Click the Element

    # File lib/capybara/node/element.rb, line 132
    def click
      synchronize { base.click }
    end

disabled?() click to toggle source

Whether or not the element is disabled.

@return [Boolean] Whether the element is disabled

    # File lib/capybara/node/element.rb, line 205
    def disabled?
      synchronize { base.disabled? }
    end

double_click() click to toggle source

Double Click the Element

    # File lib/capybara/node/element.rb, line 148
    def double_click
      synchronize { base.double_click }
    end

drag_to(node) click to toggle source

Drag the element to the given other element.

    source = page.find('#foo')
    target = page.find('#bar')
    source.drag_to(target)

@param [Capybara::Element] node The element to drag to

    # File lib/capybara/node/element.rb, line 240
    def drag_to(node)
      synchronize { base.drag_to(node.base) }
    end

hover() click to toggle source

Hover on the Element

    # File lib/capybara/node/element.rb, line 156
    def hover
      synchronize { base.hover }
    end

inspect() click to toggle source

    # File lib/capybara/node/element.rb, line 256
    def inspect
      %(#<Capybara::Element tag="#{tag_name}" path="#{path}">)
    rescue NotSupportedByDriverError
      %(#<Capybara::Element tag="#{tag_name}">)
    end

native() click to toggle source

@return [Object] The native element from the driver, this allows access to driver specific methods

    # File lib/capybara/node/element.rb, line 39
    def native
      synchronize { base.native }
    end

path() click to toggle source

An XPath expression describing where on the page the element can be found

@return [String] An XPath expression

    # File lib/capybara/node/element.rb, line 215
    def path
      synchronize { base.path }
    end

reload() click to toggle source

    # File lib/capybara/node/element.rb, line 244
    def reload
      if @allow_reload
        begin
          reloaded = parent.reload.first(@query.name, @query.locator, @query.options)
          @base = reloaded.base if reloaded
        rescue => e
          raise e unless catch_error?(e)
        end
      end
      self
    end

right_click() click to toggle source

Right Click the Element

    # File lib/capybara/node/element.rb, line 140
    def right_click
      synchronize { base.right_click }
    end

select_option() click to toggle source

Select this node if is an option element inside a select tag

    # File lib/capybara/node/element.rb, line 116
    def select_option
      synchronize { base.select_option }
    end

selected?() click to toggle source

Whether or not the element is selected.

@return [Boolean] Whether the element is selected

    # File lib/capybara/node/element.rb, line 195
    def selected?
      synchronize { base.selected? }
    end

set(value, options={}) click to toggle source

Set the value of the form element to the given value.

@param [String] value The new value @param [Hash{}] options Driver specific options for how to set the value

    # File lib/capybara/node/element.rb, line 94
    def set(value, options={})
      options ||= {}

      driver_supports_options = (base.method(:set).arity != 1)

      unless options.empty? || driver_supports_options
        warn "Options passed to Capybara::Node#set but the driver doesn't support them"
      end

      synchronize do
        if driver_supports_options
          base.set(value, options)
        else
          base.set(value)
        end
      end
    end

tag_name() click to toggle source

@return [String] The tag name of the element

    # File lib/capybara/node/element.rb, line 164
    def tag_name
      synchronize { base.tag_name }
    end

text(type=nil) click to toggle source

Retrieve the text of the element. If `Capybara.ignore_hidden_elements` is `true`, which it is by default, then this will return only text which is visible. The exact semantics of this may differ between drivers, but generally any text within elements with `display:none` is ignored. This behaviour can be overridden by passing `:all` to this method.

@param [:all, :visible] type Whether to return only visible or all text @return [String] The text of the element

    # File lib/capybara/node/element.rb, line 55
    def text(type=nil)
      type ||= :all unless Capybara.ignore_hidden_elements or Capybara.visible_text_only
      synchronize do
        if type == :all
          base.all_text
        else
          base.visible_text
        end
      end
    end

trigger(event) click to toggle source

Trigger any event on the current element, for example mouseover or focus events. Does not work in Selenium.

@param [String] event The name of the event to trigger

    # File lib/capybara/node/element.rb, line 226
    def trigger(event)
      synchronize { base.trigger(event) }
    end

unselect_option() click to toggle source

Unselect this node if is an option element inside a multiple select tag

    # File lib/capybara/node/element.rb, line 124
    def unselect_option
      synchronize { base.unselect_option }
    end

value() click to toggle source

@return [String] The value of the form element

    # File lib/capybara/node/element.rb, line 83
    def value
      synchronize { base.value }
    end

visible?() click to toggle source

Whether or not the element is visible. Not all drivers support CSS, so the result may be inaccurate.

@return [Boolean] Whether the element is visible

    # File lib/capybara/node/element.rb, line 175
    def visible?
      synchronize { base.visible? }
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.