Как найти определенную ячейку таблицы в Watir

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

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

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

c:/ruby/lib/ruby/1.8/rexml/parsers/xpathparser.rb:330:in 'Predicate': неопределенный метод `[]' для nil:NilClass (NoMethodError)

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


person Martin Ybarra    schedule 08.06.2010    source источник
comment
Пожалуйста, разместите соответствующий HTML. В сообщении об ошибке говорится, что вы делаете nil[]. Кроме того, похоже, вы забыли закрыть открытый [.   -  person Željko Filipin    schedule 10.06.2010


Ответы (2)


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

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

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

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

person Chuck van der Linden    schedule 06.08.2010

попробуй это

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

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

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