Как получить конкретный текст ячейки таблицы со значениями столбца строки в Capybara без цикла?

Как получить текст в ячейке в позиции (row_no , col_no) таблицы в Capybara? В Watir было легко получить элемент таблицы и выполнить table_element[2][3].

Как это можно сделать в Capybara?


person Aks..    schedule 21.08.2014    source источник
comment
посмотрите здесь - stackoverflow.com/questions/20526036/   -  person Arup Rakshit    schedule 21.08.2014
comment
Да, я посмотрел, он идеально подходит для просмотра всей таблицы. Но то, что я хочу, это точные данные ячейки, когда строки и столбцы не указаны. Я бы постарался избежать обхода всех строк и столбцов, если это возможно! Ответ @wicz ниже может сработать.   -  person Aks..    schedule 21.08.2014


Ответы (1)


Capybara также поддерживает XPath для запросов:

page.has_selector?(:xpath, '//table/tr[2]/td[3]')

Вот такой хороший шпаргалка, если вы хотите углубить свои знания о том, как перемещаться по документам с помощью XPath.

ХТН.

person wicz    schedule 21.08.2014
comment
отлично, это определенно будет работать в Capybara. Я просто пробую это немного по-другому. И шпаргалка замечательная!! - person Aks..; 21.08.2014
comment
если у меня есть строка и столбец no, я, вероятно, могу создать строку xpath и сделать ее общей: def get_cell_text(row,col) xpath_string = "//table/tr[#{row}]/td[#{col}]" page.has_selector?(:xpath, xpath_string) end Но да, будет ли это работать только при условии, что построенная таблица следует обычной идеологии столбца строки таблицы (без tbody, tfooter и т. д.)? - person Aks..; 22.08.2014
comment
В этих случаях вы можете использовать //table//tr/td. Смотрите, оператор / означает прямой дочерний элемент. Двойная косая черта // означает потомков, таким образом игнорируя промежуточную иерархию. Посмотрите этот пример. - person wicz; 22.08.2014
comment
Здорово!! Спасибо еще раз :) - person Aks..; 22.08.2014