Ruby 如何循环链接并使用Watir单击每个链接

Ruby 如何循环链接并使用Watir单击每个链接,ruby,watir,Ruby,Watir,我有一个带有网格的网页,有些列在列标题中有一个链接,该链接将[通过往返到服务器]按该列对值进行排序 我想写一个Watir测试,它将识别那些排序链接,并依次单击每个链接。这是一个冒烟测试,可确保排序表达式不会导致运行时异常 我的问题是,(1)识别这些链接,(2)连续单击每个链接的最佳方式是什么?这就是我到目前为止所做的: $ie.table(:id, "myGrid").body(:index, 1).each do | row | row.each do | cell | ## to

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

我想写一个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
我认为不可能单击循环中的每个链接,因为单击链接会触发页面加载,我相信这会使其他Watir link元素无效

因此,我建议您获取链接的ID,然后在彼此之间循环进行单击


例如,我会在这些排序链接中添加一个特定的类和一个有意义的id。 大致如下:

<a id='sortby-name' class='sorting' href='...'>Name</a>
然后,按如下方式单击:

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

希望有帮助

你能发布一些相关的HTML吗?这正是我最后要做的,我只是忘了回来回答我自己的问题:)你是对的,我们需要在一个循环中识别链接,然后在另一个循环中单击它们。
sorting_link_ids.each do |link_id|
  $ie.table(:id, "myGrid").body(:index, 1).link(:id, link_id).click
end