使用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:'Predicate':undefined 方法`[]'为nil:NilClass(NoMethodError)
对我来说毫无意义。
答案 0 :(得分:1)
在得到答案之前,我们确实需要更多细节
一般来说,有几种方法可以处理表格。如果行数和列数始终相同,则可以对行号和列号使用绝对索引,但很多时候情况并非如此。
如果某个行上已知(唯一)文本,并且单元格的列已知,那么您通常可以通过使用正则表达式来识别具有已知(和唯一)文本的行,然后识别所需的单元格通过它在行内的“列”。
browser.row(:text,/ my search text /)。cell(:index,2)包含正则表达式匹配文本的行中的第二个单元格
答案 1 :(得分:1)
试试这个
cell = browser.div(:id,'Menu').cell(:text,'New!')
cell.click
并且,也许你失去了关闭']'?
cell = browser.element_by_xpath("//div[@id='Menu']/descendant::td[text()='New!']")