Capybara::Selenium::Node

Public Instance Methods

==(other) click to toggle source
# File lib/capybara/selenium/node.rb, line 79
def ==(other)
  native == other.native
end
[](name) click to toggle source
# File lib/capybara/selenium/node.rb, line 7
def [](name)
  native.attribute(name.to_s)
rescue Selenium::WebDriver::Error::WebDriverError
  nil
end
checked?() click to toggle source
Alias for: selected?
click() click to toggle source
# File lib/capybara/selenium/node.rb, line 51
def click
  native.click
end
drag_to(element) click to toggle source
# File lib/capybara/selenium/node.rb, line 55
def drag_to(element)
  driver.browser.action.drag_and_drop(native, element.native).perform
end
find(locator) click to toggle source
# File lib/capybara/selenium/node.rb, line 75
def find(locator)
  native.find_elements(:xpath, locator).map { |n| self.class.new(driver, n) }
end
select_option() click to toggle source
# File lib/capybara/selenium/node.rb, line 40
def select_option
  native.click unless selected?
end
selected?() click to toggle source
# File lib/capybara/selenium/node.rb, line 68
def selected?
  selected = native.selected?
  selected and selected != "false"
end
Also aliased as: checked?
set(value) click to toggle source
# File lib/capybara/selenium/node.rb, line 21
def set(value)
  tag_name = self.tag_name
  type = self[:type]
  if (Array === value) && !self[:multiple]
    raise ArgumentError.new "Value cannot be an Array when 'multiple' attribute is not present. Not a #{value.class}"
  end
  if tag_name == 'input' and type == 'radio'
    click
  elsif tag_name == 'input' and type == 'checkbox'
    click if value ^ native.attribute('checked').to_s.eql?("true")
  elsif tag_name == 'input' and type == 'file'
    path_names = value.to_s.empty? ? [] : value
    native.send_keys(*path_names)
  elsif tag_name == 'textarea' or tag_name == 'input'
    driver.browser.execute_script "arguments[0].value = ''", native
    native.send_keys(value.to_s)
  end
end
tag_name() click to toggle source
# File lib/capybara/selenium/node.rb, line 59
def tag_name
  native.tag_name.downcase
end
text() click to toggle source
# File lib/capybara/selenium/node.rb, line 2
def text
  # Selenium doesn't normalize Unicode whitespace.
  Capybara::Helpers.normalize_whitespace(native.text)
end
unselect_option() click to toggle source
# File lib/capybara/selenium/node.rb, line 44
def unselect_option
  if select_node['multiple'] != 'multiple' and select_node['multiple'] != 'true'
    raise Capybara::UnselectNotAllowed, "Cannot unselect option from single select box."
  end
  native.click if selected?
end
value() click to toggle source
# File lib/capybara/selenium/node.rb, line 13
def value
  if tag_name == "select" and self[:multiple] and not self[:multiple] == "false"
    native.find_elements(:xpath, ".//option").select { |n| n.selected? }.map { |n| n[:value] || n.text }
  else
    native[:value]
  end
end
visible?() click to toggle source
# File lib/capybara/selenium/node.rb, line 63
def visible?
  displayed = native.displayed?
  displayed and displayed != "false"
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.