我需要Watir返回一個hrefs數組。這些hrefs都在同一個div中,它們都具有相同的類。我的代碼獲取頁面上的第一個HREF看起來是這樣的:返回hrefs數組
b.div(:class => 'products').link(:class => 'product_detail_url').href
不過,在那之後我不能找出通過該專區所有可用的HREF如何循環。
我誠實地看了看整個地方,但沒有找到解決方案似乎解決了我的具體需求。感謝閱讀,希望有人有解決方案。
我需要Watir返回一個hrefs數組。這些hrefs都在同一個div中,它們都具有相同的類。我的代碼獲取頁面上的第一個HREF看起來是這樣的:返回hrefs數組
b.div(:class => 'products').link(:class => 'product_detail_url').href
不過,在那之後我不能找出通過該專區所有可用的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)
就是這樣,謝謝!我有一個粗略的解決方案運行,但這要好得多。謝謝。 –