0
votes

I'm having trouble setting up support for multiple browsers using cucumber, capybara, and selenium webkit. Regardless of what browser I specify on the command line, the tests are always run in Firefox. Here's the code I'm using currently in my env.rb file:

Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end

Capybara.register_driver :internet_explorer do |app|
  Capybara::Selenium::Driver.new(app, :browser => :internet_explorer)
end

Capybara.register_driver :selenium_firefox do |app|
  Capybara::Selenium::Driver.new(app, :browser => :firefox)
end

Capybara.register_driver :safari do |app|
  Capybara::Selenium::Driver.new(app, :browser => :safari)
end

driver = case ENV['BROWSER']
when 'chrome'
  :chrome
when 'firefox'
  :selenium_firefox
when 'webkit'
  :webkit
when 'ie'
  :internet_explorer
when 'safari'
  :safari
else
  :chrome
  #:selenium_firefox
end
1

1 Answers

0
votes

The line driver = case ENV['BROWSER'] is creating a local variable, which is not used by Capybara.

You are probably looking to set Capybara's default driver - ie Capybara.default_driver:

Capybara.default_driver = case ENV['BROWSER']
when 'chrome'
  :chrome
when 'firefox'
  :selenium_firefox
when 'webkit'
  :webkit
when 'ie'
  :internet_explorer
when 'safari'
  :safari
else
  :chrome
  #:selenium_firefox
end

For more details on selecting the driver, see the Capybara page.