Class: Watir::ElementCollection

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

Overview

Base class for element collections.

Direct Known Subclasses

AnchorCollection, AppletCollection, AreaCollection, AudioCollection, BRCollection, BaseCollection, BaseFontCollection, BodyCollection, ButtonCollection, CanvasCollection, CommandCollection, DListCollection, DataCollection, DataListCollection, DetailsCollection, DialogCollection, DirectoryCollection, DivCollection, EmbedCollection, FieldSetCollection, FontCollection, FormCollection, FrameCollection, FrameSetCollection, HRCollection, HTMLElementCollection, HeadCollection, HeadingCollection, HtmlCollection, IFrameCollection, ImageCollection, InputCollection, KeygenCollection, LICollection, LabelCollection, LegendCollection, MapCollection, MarqueeCollection, MediaCollection, MenuCollection, MetaCollection, MeterCollection, ModCollection, OListCollection, ObjectCollection, OptGroupCollection, OptionCollection, OutputCollection, ParagraphCollection, ParamCollection, PreCollection, ProgressCollection, QuoteCollection, ScriptCollection, SelectCollection, SourceCollection, SpanCollection, StyleCollection, TableCaptionCollection, TableCellCollection, TableColCollection, TableCollection, TableDataCellCollection, TableHeaderCellCollection, TableRowCollection, TableSectionCollection, TextAreaCollection, TimeCollection, TitleCollection, TrackCollection, UListCollection, UnknownCollection, VideoCollection

Instance Method Summary (collapse)

Constructor Details

- (ElementCollection) initialize(parent, selector)

A new instance of ElementCollection



11
12
13
14
# File 'lib/watir-webdriver/element_collection.rb', line 11

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

Instance Method Details

- (Watir::Element) [](idx)

Get the element at the given index. Note that this is 0-indexed and not compatible with older Watir implementations.

Also note that because of Watir's lazy loading, this will return an Element instance even if the index is out of bounds.

Parameters:

  • n (Fixnum)

    Index of wanted element, 0-indexed

Returns:

  • (Watir::Element)

    Returns an instance of a Watir::Element subclass



44
45
46
# File 'lib/watir-webdriver/element_collection.rb', line 44

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

- (Object) each {|element| ... }

Yield Parameters:

  • element (Watir::Element)

    Iterate through the elements in this collection.



20
21
22
# File 'lib/watir-webdriver/element_collection.rb', line 20

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

- (Watir::Element) first

First element of this collection

Returns:

  • (Watir::Element)

    Returns an instance of a Watir::Element subclass



54
55
56
# File 'lib/watir-webdriver/element_collection.rb', line 54

def first
  self[0]
end

- (Watir::Element) last

Last element of the collection

Returns:

  • (Watir::Element)

    Returns an instance of a Watir::Element subclass



64
65
66
# File 'lib/watir-webdriver/element_collection.rb', line 64

def last
  self[-1]
end

- (Fixnum) length Also known as: size

The number of elements in this collection.

Returns:

  • (Fixnum)

    The number of elements in this collection.



28
29
30
# File 'lib/watir-webdriver/element_collection.rb', line 28

def length
  elements.length
end

- (Array<Watir::Element>) to_a

This collection as an Array

Returns:



74
75
76
77
# File 'lib/watir-webdriver/element_collection.rb', line 74

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