class PageObject::Elements::Table

Public Instance Methods

[](what) click to toggle source

Return the PageObject::Elements::TableRow for the index provided. Index is zero based. If the index provided is a String then it will be matched with the text from any column. The text can be a substring of the full column text.

@return [PageObject::Elements::TableRow]

# File lib/page-object/elements/table.rb, line 33
def [](what)
  idx = find_index(what)
  idx && row_items[idx]
end
column_values(what) click to toggle source

Returns the Array of values(String) in a column for the index provided. Index is zero based. If the index provided is a String then it will be matched with the text from the header. The text can be a substring of the full header text.

# File lib/page-object/elements/table.rb, line 50
def column_values(what)
  idx = find_index_of_header(what)
  idx && row_items.drop(1).collect { |row| row.cell(index: idx).text }
end
each(&block) click to toggle source

iterator that yields with a PageObject::Elements::TableRow

@return [PageObject::Elements::TableRow]

# File lib/page-object/elements/table.rb, line 11
def each(&block)
  row_items.each(&block)
end
last_row() click to toggle source

return the last row

@return PageObject::Elements::TableRow

# File lib/page-object/elements/table.rb, line 22
def last_row
  self[-1]
end
rows() click to toggle source

Returns the number of rows in the table.

# File lib/page-object/elements/table.rb, line 41
def rows
  row_items.size
end

Protected Instance Methods

find_index(what) click to toggle source
# File lib/page-object/elements/table.rb, line 75
def find_index(what)
  return what if what.is_a? Integer
  row_items.find_index do |row|
    row.cell(text: /#{Regexp.escape(what)}/).exist?
  end
end
find_index_of_header(what) click to toggle source
# File lib/page-object/elements/table.rb, line 68
def find_index_of_header(what)
  return what if what.is_a? Integer
  row_items[0].cells.find_index do |cell|
    cell.text.include? Regexp.escape(what)
  end
end
row_items() click to toggle source
# File lib/page-object/elements/table.rb, line 57
def row_items
  meth = strategy == :descendants ? :trs : :rows
  @row_items ||= element.send(meth).map do |obj|
    ::PageObject::Elements::TableRow.new(obj)
  end
end
strategy() click to toggle source
# File lib/page-object/elements/table.rb, line 64
def strategy
  :children
end