클릭 한 모든 링크를 driver.get "http://www.example.com"
을 사용하여로드 한 페이지의 새 브라우저 탭에서 열려고합니다. 나는 전에 질문 한 다른 질문에 답을 얻었지만 기대했던대로 작동하지 않습니다. 코드는 다음입니다 :Selenium Ruby를 사용하여 모든 링크를 클릭하고 새 탭에서 모든 링크를 엽니 다.
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 }
이 코드 셀레늄 웹 드라이버를 실행 한 후 파이어 폭스,이 세운 최초의 앵커 태그에 부하 요청 된 페이지 수와 클릭 수를 열고 그 후이 오류로 충돌합니다.
나는 또한 이것을 시도했다. driver.find_element(:tag_name, "a").send_keys [:control,'t']
이것은 새로운 탭을 열지 만 페이지를로드하지 않고 빈 탭을 엽니 다.
어떻게하면 오류가 발생하지 않고 첫 번째로로드 된 페이지의 모든 클릭 링크가 별도의 브라우저 탭에서 열리므로이 코드를 루프로 정렬 할 수 있습니까?
이 작업을 수행하려면 wait
을 사용해야합니까?
[remote server] resource://fxdriver/modules/web_element_cache.js:9500:in `unknown': Element not found in the cache - perhaps the page has changed since it was looked up (Selenium::WebDriver::Error::StaleElementReferenceError)
from [remote server] file:///C:/Users/AKASH/AppData/Local/Temp/webdriver-profile20120427-1496-sev0j4/extensions/[email protected]/components/command_processor.js:9069:in `unknown'
from [remote server] file:///C:/Users/AKASH/AppData/Local/Temp/webdriver-profile20120427-1496-sev0j4/extensions/[email protected]/components/command_processor.js:9504:in `unknown'
from [remote server] file:///C:/Users/AKASH/AppData/Local/Temp/webdriver-profile20120427-1496-sev0j4/extensions/[email protected]/components/command_processor.js:10510:in `unknown'
from [remote server] file:///C:/Users/AKASH/AppData/Local/Temp/webdriver-profile20120427-1496-sev0j4/extensions/[email protected]/components/command_processor.js:10529:in `unknown'
from [remote server] file:///C:/Users/AKASH/AppData/Local/Temp/webdriver-profile20120427-1496-sev0j4/extensions/[email protected]/components/command_processor.js:10534:in `unknown'
from [remote server] file:///C:/Users/AKASH/AppData/Local/Temp/webdriver-profile20120427-1496-sev0j4/extensions/[email protected]/components/command_processor.js:10482:in `unknown'
from D:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.20.0/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
from D:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.20.0/lib/selenium/webdriver/remote/response.rb:15:in `initialize'
from D:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.20.0/lib/selenium/webdriver/remote/http/common.rb:59:in `new'
from D:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.20.0/lib/selenium/webdriver/remote/http/common.rb:59:in `create_response'
from D:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.20.0/lib/selenium/webdriver/remote/http/default.rb:64:in `request'
from D:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.20.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call'
from D:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.20.0/lib/selenium/webdriver/remote/bridge.rb:594:in `raw_execute'
from D:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.20.0/lib/selenium/webdriver/remote/bridge.rb:572:in `execute'
from D:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.20.0/lib/selenium/webdriver/remote/bridge.rb:354:in `clickElement'
from D:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.20.0/lib/selenium/webdriver/common/element.rb:34:in `click'
from selclick.rb:6:in `block in <main>'
from selclick.rb:5:in `each'
from selclick.rb:5:in `<main>'
"로드 요청 된 페이지 먼저 앵커 태그의 클릭은 그것을 발견한다, 그 후에는 오류로 충돌합니다." 당신이 얻고있는 오류는 무엇입니까? – sunnyrjuneja
업데이트 된 질문과 대답 코드 –