Как найти конкретную ячейку таблицы в Watir - PullRequest
1 голос
/ 09 июня 2010

Использование Watir для регрессионного тестирования некоторых изменений: я хочу «щелкнуть» строку в типичном меню веб-страницы старого стиля, где меню представляет собой таблицу таблиц. В этом конкретном примере ячейка таблицы содержит элемент меню, а строка, состоящая только из одной ячейки, имеет обработчик нажатия. Я думал, что смогу

cell = browser.element_by_xpath("//div[@id='Menu']/descendant::td[text()='New!'")

и использовать ячейку, чтобы получить родительскую строку, но я получаю сообщение

c: /ruby/lib/ruby/1.8/rexml/parsers/xpathparser.rb: 330: в «Предикате»: не определено метод `[] 'для nil: NilClass (NoMethodError)

что не имеет смысла для меня.

Ответы [ 2 ]

1 голос
/ 30 ноября 2010

попробуйте это

cell = browser.div(:id,'Menu').cell(:text,'New!')
cell.click

и, возможно, вы потеряли закрытие ']'?

cell = browser.element_by_xpath("//div[@id='Menu']/descendant::td[text()='New!']")
1 голос
/ 06 августа 2010

Нам действительно нужно больше подробностей, прежде чем можно будет дать ответ

Вообще говоря, есть несколько способов работы с таблицами. Вы можете использовать абсолютные индексы для номеров строк и столбцов, если они всегда будут одинаковыми, но часто это не так.

Если в строке где-то есть известный (уникальный) текст, а столбец ячейки известен, то вы часто можете работать с помощью регулярного выражения, чтобы идентифицировать строку с известным (и уникальным) текстом, а затем идентифицировать нужная ячейка через ее «столбец» в строке.

browser.row (: text, / my search text /). Cell (: index, 2) # 2-я ячейка в строке, содержащая текст, сопоставленный с регулярным выражением

...