我需要 Watir 返回一组 href。这些 href 都在同一个 div 中,并且它们都具有相同的类。我获取页面上第一个 href 的代码如下所示:
b.div(:class => 'products').link(:class => 'product_detail_url').href
但是,在那之后,我无法找到如何循环遍历该 div 中所有可用的 href。
老实说,我到处寻找,但我发现的解决方案似乎都没有满足我的特定需求。感谢阅读,希望有人有解决方案。
我需要 Watir 返回一组 href。这些 href 都在同一个 div 中,并且它们都具有相同的类。我获取页面上第一个 href 的代码如下所示:
b.div(:class => 'products').link(:class => 'product_detail_url').href
但是,在那之后,我无法找到如何循环遍历该 div 中所有可用的 href。
老实说,我到处寻找,但我发现的解决方案似乎都没有满足我的特定需求。感谢阅读,希望有人有解决方案。
尝试:
b.div(:class => 'products').links(:class => 'product_detail_url').each do |link|
puts link.href
end
基本上,这会遍历具有特定类的链接集合。
更新:
要将所有 href 收集到一个数组中,请使用 collect 方法:
link_arr = b.div(:class => 'products').links(:class => 'product_detail_url').collect{ |link| link.href }
或将其分成两行以便于阅读:
link_collection = b.div(:class => 'products').links(:class => 'product_detail_url')
link_arr = link_collection.collect{ |link| link.href }
或者您可以通过使用#map 作为#collect 的别名和短块语法来编写更短的代码:
hrefs = b.div(:class => 'products').links(:class => 'product_detail_url').map(&:href)