Skip to content

Instantly share code, notes, and snippets.

@mcornell
Created November 2, 2011 12:21
Show Gist options
  • Save mcornell/1333492 to your computer and use it in GitHub Desktop.
Save mcornell/1333492 to your computer and use it in GitHub Desktop.
New stack trace for Race Condition in selenium-webdriver-2.10.0
#We shouldn't need this anymore due to selenium-webdriver-2.10.0
if WEBDRIVER && BROWSER_TYPE == :firefox
module Selenium
module WebDriver
module SearchContext
def find_element(*args)
how, what = extract_args(args)
unless by = FINDERS[how.to_sym]
raise ArgumentError, "cannot find element by #{how.inspect}"
end
bridge.find_element_by by, what.to_s, ref
rescue Selenium::WebDriver::Error::WebDriverError => e
puts "Error is: #{e.class}"
puts "Backtrace is:\n #{e.backtrace.join("\n")}"
e.message =~ /nsIDOMXPathEvaluator.createNSResolver/ ? retry : raise
end
def find_elements(*args)
how, what = extract_args(args)
unless by = FINDERS[how.to_sym]
raise ArgumentError, "cannot find elements by #{how.inspect}"
end
bridge.find_elements_by by, what.to_s, ref
rescue Selenium::WebDriver::Error::WebDriverError => e
puts "Error is: #{e.class}"
puts "Backtrace is:\n #{e.backtrace.join("\n")}"
e.message =~ /nsIDOMXPathEvaluator.createNSResolver/ ? retry : raise
end
end
end
end
end
Error is: Selenium::WebDriver::Error::NoSuchElementError
Backtrace is:
[remote server] file:///C:/DOCUME~1/ACPCIID/Local%20Settings/Temp/webdriver-profile20111101-5196-3uhp10/extensions/fxdriver@googlecode.com/components/driver-component.js -> file:///C:/DOCUME~1/ACPCIID/Local%20Settings/Temp/webdriver-profile20111101-5196-3uhp10/extensions/fxdriver@googlecode.com/components/firefoxDriver.js:401:in `unknown'
[remote server] file:///C:/DOCUME~1/ACPCIID/Local%20Settings/Temp/webdriver-profile20111101-5196-3uhp10/extensions/fxdriver@googlecode.com/components/driver-component.js -> file:///C:/DOCUME~1/ACPCIID/Local%20Settings/Temp/webdriver-profile20111101-5196-3uhp10/extensions/fxdriver@googlecode.com/components/firefoxDriver.js:424:in `unknown'
[remote server] file:///C:/DOCUME~1/ACPCIID/Local%20Settings/Temp/webdriver-profile20111101-5196-3uhp10/extensions/fxdriver@googlecode.com/components/nsCommandProcessor.js:306:in `unknown'
[remote server] file:///C:/DOCUME~1/ACPCIID/Local%20Settings/Temp/webdriver-profile20111101-5196-3uhp10/extensions/fxdriver@googlecode.com/components/nsCommandProcessor.js:320:in `unknown'
[remote server] file:///C:/DOCUME~1/ACPCIID/Local%20Settings/Temp/webdriver-profile20111101-5196-3uhp10/extensions/fxdriver@googlecode.com/components/nsCommandProcessor.js:197:in `unknown'
E:/CI/tools/jruby-1.6.5/lib/ruby/gems/1.8/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/response.rb:50:in `assert_ok'
E:/CI/tools/jruby-1.6.5/lib/ruby/gems/1.8/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/response.rb:15:in `initialize'
E:/CI/tools/jruby-1.6.5/lib/ruby/gems/1.8/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/http/common.rb:54:in `create_response'
E:/CI/tools/jruby-1.6.5/lib/ruby/gems/1.8/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/http/default.rb:64:in `request'
E:/CI/tools/jruby-1.6.5/lib/ruby/gems/1.8/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/http/common.rb:35:in `call'
E:/CI/tools/jruby-1.6.5/lib/ruby/gems/1.8/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/bridge.rb:426:in `raw_execute'
E:/CI/tools/jruby-1.6.5/lib/ruby/gems/1.8/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/bridge.rb:404:in `execute'
E:/CI/tools/jruby-1.6.5/lib/ruby/gems/1.8/gems/selenium-webdriver-2.10.0/lib/selenium/webdriver/remote/bridge.rb:372:in `find_element_by'
E:/CI/.hudson/jobs/Cucumber Firefox/workspace/features/support/patch_firefox_timeouts.rb:15:in `find_element'
E:/CI/tools/jruby-1.6.5/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/locators/element_locator.rb:241:in `by_id'
E:/CI/tools/jruby-1.6.5/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/locators/element_locator.rb:27:in `locate'
E:/CI/tools/jruby-1.6.5/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/elements/element.rb:263:in `locate'
E:/CI/tools/jruby-1.6.5/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/elements/element.rb:245:in `assert_exists'
E:/CI/tools/jruby-1.6.5/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/elements/element.rb:168:in `wd'
E:/CI/tools/jruby-1.6.5/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/element_collection.rb:82:in `elements'
E:/CI/tools/jruby-1.6.5/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/element_collection.rb:76:in `to_a'
E:/CI/tools/jruby-1.6.5/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/element_collection.rb:21:in `each'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment