如何点击使用Selenium Ruby获取的所有链接

时间:2012-04-15 17:54:25

标签: ruby selenium click selenium-webdriver

我已经编写了以下行来点击已获取页面中的所有链接,但它只点击了一个链接并且卡在那里点击,我使用了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")

2 个答案:

答案 0 :(得分: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 }

答案 1 :(得分: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