Class: Napybara::Element

Inherits:
Object
  • Object
show all
Defined in:
lib/napybara/element.rb

Defined Under Namespace

Classes: Selector

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(capybara_element, &block) ⇒ Element

Returns a new instance of Element.



8
9
10
11
# File 'lib/napybara/element.rb', line 8

def initialize(capybara_element, &block)
  @capybara_element = capybara_element
  block.call(self) if block_given?
end

Instance Attribute Details

#capybara_elementObject (readonly) Also known as: get

Returns the value of attribute capybara_element.



5
6
7
# File 'lib/napybara/element.rb', line 5

def capybara_element
  @capybara_element
end

Instance Method Details

#finder(child_element_name, child_element_selector, record_selector = nil, &block) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/napybara/element.rb', line 13

def finder(child_element_name, child_element_selector, record_selector = nil, &block)
  self.define_singleton_method(child_element_name) do |record = nil|
    selector = Selector.new(child_element_selector, record_selector, record)
    self.class.new(self.get.find(selector.to_s), &block)
  end

  self.define_singleton_method("has_#{child_element_name}?") do |record = nil|
    selector = Selector.new(child_element_selector, record_selector, record)
    self.get.has_css?(selector.to_s)
  end

  self.define_singleton_method("has_no_#{child_element_name}?") do |record = nil|
    selector = Selector.new(child_element_selector, record_selector, record)
    self.get.has_no_css?(selector.to_s)
  end

  self.define_singleton_method(child_element_name.to_s.pluralize) do
    self.get.all(child_element_selector).map do |child_element|
      self.class.new(child_element, &block)
    end
  end
end