特定行/列
听起来您已经计算出您想要的行/列。您只需执行以下操作即可获取特定行/列索引处的单元格:
browser.table[row_index][column_index]
其中row_index
和column_index
是您想要的行和列的整数(请注意,它是从零开始的索引)。
特定行
您还可以执行以下操作以根据索引选择行:
browser.table.tr(:index, 1).flash
browser.table.row(:index, 2).flash
请注意,.tr
包括嵌套表,而.row
忽略嵌套表。
更新 - 在特定行之后查找行
要在包含特定文本的特定行之后查找行,请先确定特定行的索引。然后,您可以找到与其相关的其他行。这里有些例子:
#Get the 3rd row down from the row containing the text 'Equipment'
starting_row_index = browser.table.rows.to_a.index{ |row| row.text =~ /Equipment/ }
offset = 3
row = browser.table.row(:index, starting_row_index + offset)
puts row.text
# => CAT03 ...
#Get the 3rd row down from the row containing a cell with yellow background colour
starting_row_index = browser.table.rows.to_a.index{ |row| row.td(:css => "td[bgcolor=yellow]").present? }
offset = 3
row = browser.table.row(:index, starting_row_index + offset)
puts row.text
# => ETS36401 ...
#Output the first column text of each row after the row containing a cell with yellow background colour
starting_row_index = browser.table.rows.to_a.index{ |row| row.td(:css => "td[bgcolor=yellow]").present? }
(starting_row_index + 1).upto(browser.table.rows.length - 1){ |x| puts browser.table[x][0].text }
# => CAT03, CAT08, ..., INTEGRA10, INTEGRA11
让我知道这是否有帮助,或者您是否有想要的特定示例。