1
0
Fork 0
mirror of https://github.com/teamcapybara/capybara.git synced 2022-11-09 12:08:07 -05:00

Make selenium-webdriver an optional dependency, closes #887

This commit is contained in:
CJ Kihlbom and Jonas Nicklas 2013-02-24 18:54:39 +01:00
parent 83742b008f
commit cd1b966a97
2 changed files with 13 additions and 6 deletions

View file

@ -23,11 +23,11 @@ Gem::Specification.new do |s|
s.add_runtime_dependency("nokogiri", [">= 1.3.3"])
s.add_runtime_dependency("mime-types", [">= 1.16"])
s.add_runtime_dependency("selenium-webdriver", ["~> 2.0"])
s.add_runtime_dependency("rack", [">= 1.0.0"])
s.add_runtime_dependency("rack-test", [">= 0.5.4"])
s.add_runtime_dependency("xpath", ["~> 1.0.0"])
s.add_development_dependency("selenium-webdriver", ["~> 2.0"])
s.add_development_dependency("sinatra", [">= 0.9.4"])
s.add_development_dependency("rspec", [">= 2.2.0"])
s.add_development_dependency("launchy", [">= 2.0.4"])

View file

@ -1,4 +1,11 @@
require 'selenium-webdriver'
begin
require 'selenium-webdriver'
rescue LoadError => e
if e.message =~ /selenium-webdriver/
raise LoadError, "Capybara's selenium driver is unable to load `selenium-webdriver`, please install the gem and add `gem 'selenium-webdriver'` to your Gemfile if you are using bundler."
end
end
class Capybara::Selenium::Driver < Capybara::Driver::Base
DEFAULT_OPTIONS = {
@ -42,7 +49,7 @@ class Capybara::Selenium::Driver < Capybara::Driver::Base
def title
browser.title
end
def current_url
browser.current_url
end
@ -50,11 +57,11 @@ class Capybara::Selenium::Driver < Capybara::Driver::Base
def find_xpath(selector)
browser.find_elements(:xpath, selector).map { |node| Capybara::Selenium::Node.new(self, node) }
end
def find_css(selector)
browser.find_elements(:css, selector).map { |node| Capybara::Selenium::Node.new(self, node) }
end
def wait?; true; end
def needs_server?; true; end
@ -137,5 +144,5 @@ class Capybara::Selenium::Driver < Capybara::Driver::Base
def invalid_element_errors
[Selenium::WebDriver::Error::StaleElementReferenceError, Selenium::WebDriver::Error::UnhandledError, Selenium::WebDriver::Error::ElementNotVisibleError]
end
end