2016-01-22 48 views
0

我是Ruby新手,現在我正在嘗試使用watir。所以我需要在我的命令行中顯示所有創建的網址。這裏是我的代碼的開頭:在watir命令行中顯示搜索到的鏈接url

browser = Watir::Browser.new 

puts "1. Entering Google" 
browser.goto "http://www.google.com" 
search_text = "text" 
puts " 2. enter "+ search_text +" in the search text field." 
browser.text_field(:name, "q").set search_text 
puts "3. click the 'Google Search' button." 
browser.button(:name, "btnG").click 
puts " First 10 links: " 

有人可以幫助我嗎?非常感謝 ! ;)

回答

1

的鏈接存儲H3標籤中帶「R」的類名,這樣你就可以得到鏈接元素的集合:

links = browser.h3s(class: 'r').map(&:link) 

URL被存儲在href標記,所以你可以得到由HREF值的數組:

hrefs = links.map(&:href) 

所以把它打印出來:

hrefs.each { |href| puts href } 

但其中一些的HREF的經歷一個重定向,所以你可能想這樣做:

links.each { |link| puts "#{link.data_href || link.href}" } 
0

這裏是一個通用的方法來從特定的頁面元素拉鍊接。它指定了容器元件(即div標籤),收集在該容器中的links,並打印text爲每條鏈路(或每個href - 取決於什麼在塊指定):

require 'watir-webdriver' 
b = Watir::Browser.new 
b.goto('http://www.iana.org/domains/reserved') 

b.div(class: "navigation").links.each { |link| puts link.text} 
b.div(class: "navigation").links.each { |link| puts link.href}