我的html代码看起来像这样......
<tr>
<th width="40">Header</th>
</tr>
如何获取此特定单元格的索引号和文本
我尝试过以下代码。
BROWSER.table(:class,"head").row(:index,2).cells.each_with_index do |cell,index|
puts cell.text
end
非常感谢您快速回复......
但是当我使用cell.index时它会显示
未定义的方法`index'
当我想打印带有“”标签的东西时,我无法打印文本,但是当我打印带有“”标签的单元格的文本时,此代码是可以的
答案 0 :(得分:0)
看起来你应该只添加这个:
puts cell.index
答案 1 :(得分:0)
使用您提供的代码,您需要使用
puts index
您得到的错误是因为没有为单元格对象定义名为.index的方法。
.each_with_index的工作方式是它允许你将两个东西传递给块,从集合中提取的对象(在本例中为'cell')和第二个变量,它是集合中对象的索引。在您的情况下,您将此变量称为“索引”,尽管通常使用“i”作为迭代器或索引值非常常见。
因此,您不必尝试在单元格对象上调用.index(不存在的方法),而只需使用传递给do循环的第二个变量的名称
BROWSER.table(:class,"head").row(:index,2).cells.each_with_index do |cell, i|
puts i
puts cell.text
end
BTW:我想可能有可能创建这样一个方法,但问题是对象很难知道它自己的索引,因为索引是相对于某个外部容器的。例如,一个单元格可能是表格中的第15个单元格,一行的第7个单元格,以及一个div中的第24个单元格,但是另一个div中的第42个单元格。所以如果你要在这样一个单元格上调用.index,它怎么知道它应该返回哪些索引(或许多其他索引)?