Class: Watir::ElementCollection

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/watir-webdriver/collections/element_collection.rb

Instance Method Summary collapse

Constructor Details

#initialize(parent, element_class) ⇒ ElementCollection

Returns a new instance of ElementCollection.



6
7
8
# File 'lib/watir-webdriver/collections/element_collection.rb', line 6

def initialize(parent, element_class)
  @parent, @element_class = parent, element_class
end

Instance Method Details

#[](idx) ⇒ Object



39
40
41
# File 'lib/watir-webdriver/collections/element_collection.rb', line 39

def [](idx)
  to_a[idx] || @element_class.new(@parent, :index, idx)
end

#each {|element| ... } ⇒ Object

Yield Parameters:



14
15
16
# File 'lib/watir-webdriver/collections/element_collection.rb', line 14

def each(&blk)
  to_a.each(&blk)
end

#firstWatir::BaseElement

First element of this collection

Returns:



49
50
51
# File 'lib/watir-webdriver/collections/element_collection.rb', line 49

def first
  to_a[0] || @element_class.new(@parent, :index, 0)
end

#lastWatir::BaseElement

Last element of the collection

Returns:



59
60
61
# File 'lib/watir-webdriver/collections/element_collection.rb', line 59

def last
  to_a[-1] || @element_class.new(@parent, :index, -1)
end

#lengthFixnum Also known as: size

Returns The number of elements in this collection.

Returns:

  • (Fixnum)

    The number of elements in this collection.



22
23
24
# File 'lib/watir-webdriver/collections/element_collection.rb', line 22

def length
  elements.length
end

#to_aArray<Watir::BaseElement>

This collection as an Array

Returns:



69
70
71
72
# File 'lib/watir-webdriver/collections/element_collection.rb', line 69

def to_a
  # TODO: optimize - lazily @element_class instance
  @to_a ||= elements.map { |e| @element_class.new(@parent, :element, e) }
end