2

我有一个带有网格的网页,并且某些列在列标题中有一个链接,该链接将按该列对值进行排序[通过往返服务器]。

我想编写一个单独的 Watir 测试来识别这些排序链接并依次单击每个链接。这是一个冒烟测试,可确保排序表达式不会导致运行时异常。

我的问题是,(1) 识别这些链接和 (2) 依次单击每个链接的最佳方法是什么?这是我到目前为止所拥有的:

$ie.table(:id, "myGrid").body(:index, 1).each do | row |
  row.each do | cell |
    ## todo: figure out if this contains a sort link
    ## todo: click the link now, or save a reference for later?
  end
end
4

1 回答 1

1

认为不可能单击循环内的每个链接,因为单击链接将触发页面加载,我相信这会使其他 Watir 链接元素无效。

因此,我建议您获取链接的 ID,然后相互循环点击。


例如,我会为这些排序链接添加一个特定的类和一个有意义的 id。类似于以下内容:

<a id='sortby-name' class='sorting' href='...'>Name</a>

然后你可以用这个来选择它们:

$ie.table(:id, "myGrid").body(:index, 1).each do | row |
  # pick sorting links' ids
  sorting_link_ids = row.links.select{|x| x.class_name == "sorting"}.map{|x| x.id}
end

然后,你像这样点击:

sorting_link_ids.each do |link_id|
  $ie.table(:id, "myGrid").body(:index, 1).link(:id, link_id).click
end

希望有帮助!

于 2009-11-09T04:08:32.023 回答