class Capybara::Wheel::Element

Attributes

scope[R]

Public Class Methods

element(name, selector, block = nil) click to toggle source
# File lib/capybara/wheel/element.rb, line 53
def self.element(name, selector, block = nil)
  subelement_factory = lambda do |parent_element|
    Capybara::Wheel::ElementFactory.create_element(selector, parent_element, block)
  end

  define_method(underscore(name).to_sym) { subelement_factory.call(self) }
  self
end
new(selector = nil, scope = nil) click to toggle source
# File lib/capybara/wheel/element.rb, line 14
def initialize(selector = nil, scope = nil)
  @selector = selector if selector
  @scope    = scope
end
subelement(name, selector, &block) click to toggle source
# File lib/capybara/wheel/element.rb, line 73
def self.subelement(name, selector, &block)
  puts "subelement will be deprecated in future versions."
  puts "Calling element inside an element block will scope it to the parent element"
  element(name, selector, &block)
end

Public Instance Methods

element(name, selector, &block) click to toggle source
# File lib/capybara/wheel/element.rb, line 62
def element(name, selector, &block)
  self.class.element(name, selector, block)
end
present?() click to toggle source
# File lib/capybara/wheel/element.rb, line 39
def present?
  capybara_element.visible?
rescue Capybara::ElementNotFound => e
  puts "#{e} on #{Time.now.strftime("%H:%I:%S:%L")}"
  false
end
selector() click to toggle source
# File lib/capybara/wheel/element.rb, line 79
def selector
  @selector
end
subelement(name, selector, &block) click to toggle source

TODO: deprecated in 0.0.5

# File lib/capybara/wheel/element.rb, line 67
def subelement(name, selector, &block)
  puts "subelement will be deprecated in future versions."
  puts "Calling element inside an element block will scope it to the parent element"
  element(name, selector, block)
end
visible?() click to toggle source
# File lib/capybara/wheel/element.rb, line 46
def visible?
  capybara_element.visible?
rescue Capybara::ElementNotFound => e
  puts "#{e} on #{Time.now.strftime("%H:%I:%S:%L")}"
  false
end

Private Instance Methods

capybara_element() click to toggle source

Finds a capybara element representing this thing

# File lib/capybara/wheel/element.rb, line 86
def capybara_element
  scope_capybara.find(selector, options)
end
scope_capybara() click to toggle source
# File lib/capybara/wheel/element.rb, line 90
def scope_capybara
  scope.nil? ? capybara : scope.send(:capybara_element)
end