Ectac
Ectac

Reputation: 95

Selenium::WebDriver::Error::WebDriverError:

I am trying to run some acceptance tests for javascript code. However, when I tried using Capybara with Selenium, I kept getting the following:

>> Thin web server (v1.3.1 codename Triple Espresso)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:1234, CTRL+C to stop
FF>> Thin web server (v1.3.1 codename Triple Espresso)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:1234, CTRL+C to stop
F

Failures:

  1) end to end acceptance test shows that x wins when it does
     Failure/Error: @application.start
     Selenium::WebDriver::Error::WebDriverError:
       Unable to find the chromedriver executable. Please download the server from http://code.google.com/p/chromedriver/downloads/list and place it somewhere on your PATH. More info at http://code.google.com/p/selenium/wiki/ChromeDriver.>> Thin web server (v1.3.1 codename Triple Espresso)
     # ./spec/acceptance/application_driver.rb:24:in `start'
     # ./spec/acceptance/end_to_end.rb:6:in `block (2 levels) in <top (required)>'

The code below is what is supposed to start the driver. I downloaded the appropriate file from http://code.google.com/p/chromedriver/downloads/list and I placed it in my Path by running PATH=$PATH:/directory/where/chromedriver/exists and export PATH, and made it executable but still got the error. Is there something I am missing?

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

Capybara.default_driver = :chrome

class TicTacToeApplicationDriver
  include Capybara::DSL
  include Capybara::RSpecMatchers

  APPLICATION_PORT = 1234

  def initialize
    @application_server = ApplicationServer.new
  end

  def start
    @application_server.start
    visit "http://localhost:#{APPLICATION_PORT}/index.html"
  end

Upvotes: 3

Views: 12059

Answers (2)

Fer
Fer

Reputation: 3347

Installing the chromedriver-helper gem worked for me.

Add

gem 'chromedriver-helper'

to your test group in the Gemfile.

Upvotes: 10

A.J
A.J

Reputation: 4949

I don't know capybera, but for this error you can check 2 things

  1. Make sure you have given the full path including the filename to chromedriver.exe (or chromedriver if you are in linux). If in windows you need to specify the .exe also.

  2. If you are using remotewebdriver, rather than updating the path variable, you can try giving this path while you start the selenium server. Like

java -jar selenium.jar -Dwebdriver.chrome.driver=fullpathtoexefileincludingfilename

Upvotes: 3

Related Questions