Как нажимать на все ссылки, полученные с помощью Selenium Ruby

Я написал следующие строки, чтобы щелкнуть все ссылки на выбранной странице, но он нажимает только на одну ссылку и застревает там, щелкая, я использовал API-интерфейс Selenium Web Driver:

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


person Akash Panchal    schedule 15.04.2012    source источник


Ответы (2)


Похоже, есть метод 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 }
person Brian Underwood    schedule 15.04.2012

мы можем использовать приведенный ниже код, чтобы найти все ссылки на странице и открыть их с новой вкладкой.

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
person Thiyagarajan Veluchamy    schedule 29.08.2012