3

我写了以下几行来点击获取页面中的所有链接,但它只点击一个链接并卡在那里点击,我使用了 Selenium Web Driver API:

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")

4

2 回答 2

4

看起来有一个 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 }
于 2012-04-15T18:42:19.827 回答
1

我们可以使用下面的代码来查找页面中的所有链接并使用新标签打开。

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
于 2012-08-29T11:07:10.977 回答