Class: Capybara::Wheel::Element

Inherits:
Object
  • Object
show all
Extended by:
Includes::ClassIncludes, Forwardable
Includes:
Includes
Defined in:
lib/capybara/wheel/element.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Includes::ClassIncludes

make_const, underscore

Methods included from Includes

#capybara

Constructor Details

#initialize(selector = nil, scope = nil) ⇒ Element

Returns a new instance of Element.



14
15
16
17
# File 'lib/capybara/wheel/element.rb', line 14

def initialize(selector = nil, scope = nil)
  @selector = selector if selector
  @scope    = scope
end

Instance Attribute Details

#scopeObject (readonly)

Returns the value of attribute scope.



12
13
14
# File 'lib/capybara/wheel/element.rb', line 12

def scope
  @scope
end

Class Method Details

.element(name, selector, block = nil) ⇒ Object



53
54
55
56
57
58
59
60
# 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

.subelement(name, selector, &block) ⇒ Object



73
74
75
76
77
# 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

Instance Method Details

#element(name, selector, &block) ⇒ Object



62
63
64
# File 'lib/capybara/wheel/element.rb', line 62

def element(name, selector, &block)
  self.class.element(name, selector, block)
end

#present?Boolean

Returns:

  • (Boolean)


39
40
41
42
43
44
# 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

#selectorObject



79
80
81
# File 'lib/capybara/wheel/element.rb', line 79

def selector
  @selector
end

#subelement(name, selector, &block) ⇒ Object

TODO: deprecated in 0.0.5



67
68
69
70
71
# 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?Boolean

Returns:

  • (Boolean)


46
47
48
49
50
51
# 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