2012-08-29 72 views
3

我需要Watir返回一個hrefs數組。這些hrefs都在同一個div中,它們都具有相同的類。我的代碼獲取頁面上的第一個HREF看起來是這樣的:返回hrefs數組

b.div(:class => 'products').link(:class => 'product_detail_url').href 

不過,在那之後我不能找出通過該專區所有可用的HREF如何循環。

我誠實地看了看整個地方,但沒有找到解決方案似乎解決了我的具體需求。感謝閱讀,希望有人有解決方案。

回答

2

嘗試:

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 } 
+0

就是這樣,謝謝!我有一個粗略的解決方案運行,但這要好得多。謝謝。 –

1

或者,您可以使用#map作爲#collect的別名和短塊語法來縮短寫入時間:

hrefs = b.div(:class => 'products').links(:class => 'product_detail_url').map(&:href)