Как я могу получить текст ячейки / информацию о данных заголовка таблицы, помеченного как "th", используя watir - PullRequest
0 голосов
/ 21 сентября 2011

у меня 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 '

и я также не смог напечатать текст, когда хочу напечатать что-нибудь с тегом "", но этот код подходит, когда я печатаю текст ячейки с тегом ""

Ответы [ 2 ]

0 голосов
/ 07 октября 2011

С кодом, который вы предоставили, вам нужно использовать

puts index

Ошибка, которую вы получаете, заключается в том, что для объекта ячейки не определен метод .index.

Способ работы .each_with_index заключается в том, что он позволяет передавать в блок две вещи: объект, извлеченный из коллекции (в данном случае «ячейка»), и вторую переменную, которая является индексом объекта в коллекции. В вашем случае вы назвали эту переменную «index», хотя часто очень просто использовать «i» для итератора или значения индекса.

Таким образом, вместо того, чтобы пытаться вызвать .index (метод, который не существует) для объекта ячейки, вам нужно просто использовать имя второй переменной, передаваемой в цикл do

BROWSER.table(:class,"head").row(:index,2).cells.each_with_index do |cell, i|
  puts i
  puts cell.text
end 

Кстати: я полагаю, что возможно создать такой метод, но дело в том, что объекту очень трудно узнать свой собственный индекс, так как индекс относительно некоторого внешнего контейнера. Например, ячейка может быть 15-й ячейкой таблицы, 7-й ячейкой строки и 24-й ячейкой в ​​одном div, но 42-й ячейкой в ​​другом div. Так что, если бы вы вызвали .index в такой ячейке, как бы она узнала, КАКОЙ из этих индексов (или многих других) она должна возвращаться?

0 голосов
/ 21 сентября 2011

Похоже, вы должны только добавить это:

puts cell.index
...