【问题标题】:How to find a particular table cell in Watir如何在 Watir 中找到特定的表格单元格
【发布时间】:2010-06-08 20:51:48
【问题描述】:

使用 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 方法 `[]' for nil:NilClass (NoMethodError)

这对我来说毫无意义。

【问题讨论】:

  • 请发布相关的HTML。错误消息说你正在做nil[]。另外,您好像忘记关闭打开的[

标签: xpath watir


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    试试这个

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-21
      • 1970-01-01
      • 1970-01-01
      • 2014-11-14
      • 1970-01-01
      相关资源
      最近更新 更多