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