3

フェッチされたページのすべてのリンクをクリックするために次の行を記述しましたが、1つのリンクのみをクリックし、クリックしたままになりました。SeleniumWebDriverAPIを使用しました。

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 に答える