1

使用 Watir 对一些变化进行回归测试:我想在典型的旧式网页菜单中“单击”一行,其中菜单是一个表格。在此特定示例中,表格单元格包含菜单项,而仅由一个单元格组成的行具有 onclick 处理程序。我以为我可以

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': undefined method `[]' for nil:NilClass (NoMethodError)

这对我来说毫无意义。

4

2 回答 2

1

在给出答案之前,我们确实需要更多细节

一般来说,有几种处理表格的方法。如果行号和列号始终相同,则可以对行号和列号使用绝对索引,但很多时候情况并非如此。

如果某处的行上有已知(唯一)文本,并且单元格的列是已知的,那么您通常可以通过使用正则表达式来识别具有已知(和唯一)文本的行,然后识别所需的单元格通过它在行内的“列”。

browser.row(:text, /my search text/).cell(:index, 2) # 包含正则表达式匹配文本的行中的第二个单元格

于 2010-08-06T15:49:37.967 回答
1

尝试这个

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

而且,也许你失去了关闭 ']' ?

cell = browser.element_by_xpath("//div[@id='Menu']/descendant::td[text()='New!']")
于 2010-11-30T09:27:38.703 回答