2012-04-15 27 views
2

我已經寫了以下行點擊獲取頁面所有鏈接,但點擊只有一個鏈接,並卡在那裏一下,我已經使用硒的Web驅動程序API:如何從獲取的所有鏈接點擊使用Selenium紅寶石

require 'rubygems' 
require 'selenium-webdriver' 

driver = Selenium::WebDriver.for :firefox 
driver.get " http://www.testfire.net " 
for i in 1..100 
    link = driver.find_element(:tag_name, "a") 
    link.click 
end 

告訴我如何跳過點擊鏈接並轉到下一個鏈接,或者可以將範圍設置爲1,直到它到達html頁面的末尾</html>標記。 我認爲它會像eofpage = drive.find_element(:tag_name, "/html")

回答

3

它看起來像有一個driver.find_elements方法:

require 'rubygems' 
require 'selenium-webdriver' 

driver = Selenium::WebDriver.for :firefox 
driver.get " http://www.testfire.net " 

driver.find_elements(:tag_name, "a").each {|link| link.click } 
+0

這幫助仍然需要做更多的工作在我身邊謝謝 – 2012-04-18 03:31:17

0

我們可以用波紋管代碼來找到一個頁面,並用新的標籤頁中打開的所有鏈接。

require 'rubygems' 
require 'selenium-webdriver' 

driver = Selenium::WebDriver.for :chrome 
@driver.get "http://thiyagarajan.wordpress.com/" 
    link = @driver.find_elements(:tag_name, "a") 
    link.each do |a| 
    a = @driver.execute_script("var d=document,a=d.createElement('a');a.target='_blank';a.href=arguments[0];a.innerHTML='.';d.body.appendChild(a);return a", a) 
    a.click 
    end