Sha256: 6cf0ac02c3e988e13e82ef0ef7bc8c7229b353d1b1c44f9dc53e342868b0467c
Contents?: true
Size: 1.9 KB
Versions: 2
Compression:
Stored size: 1.9 KB
Contents
module Symbiont module WebObjects class Table < WebObject include Enumerable def initialize(web_object) @web_object = web_object end # This method is used to return a TableRow object based on the index provided. When # the index provided is a string, the text will be matched with the text from the first # column. # @return [Symbiont::WebObjects::TableRow] def [](index) index = find_by_title(index) if index.kind_of?(String) return nil unless index ::Symbiont::WebObjects::TableRow.new(web_object[index]) end # This method is an iterator that returns a TableRow object each time through # the loop. # @return [Symbiont::WebObjects::TableRow] def each for index in 1..self.rows do yield self[index - 1] end end # This method will return the number of rows in a table. def rows web_object.wd.find_elements(:xpath, row_xpath).size end # Returns a reference to the first row web object of a table. # @return [Symbiont::WebObjects::TableRow] def first_row self[0] end # Returns a reference to the last row web object of a table. # @return [Symbiont::WebObjects::TableRow] def last_row self[-1] end protected def row_xpath ".//child::tr" end def initialize_row(element) ::Symbiont::WebObjects::TableRow.new(element) end private def find_by_title(row_text) #web_object.rows.find_index {|row| row[0].text == row_text} web_object.rows.find_index do |row| row.cells.any? { |col| col.text.include? row_text } end end end # class: Table ::Symbiont::WebObjects.class_for_tag[:table] = ::Symbiont::WebObjects::Table end # module: WebObjects end # module: Symbiont
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
symbiont-0.2.1 | lib/symbiont/web_objects/table.rb |
symbiont-0.2.0 | lib/symbiont/web_objects/table.rb |