Could it be that your Firefox is not installed in the default location? Mine is installed in C:\Users\(username)\AppData\Local\Mozilla Firefox\
, and I get the same error message as you.
Browsing the code (thanks @achie), I found the following in node_modules\selenium-webdriver\firefox\index.js
:
* On Windows and OSX, the FirefoxDriver will search for Firefox in its
* default installation location:
*
* * Windows: C:\Program Files and C:\Program Files (x86).
* * Mac OS X: /Applications/Firefox.app
*
* For Linux, Firefox will be located on the PATH: `$(where firefox)`.
In other words, it's not even any use to put the Firefox directory in the PATH variable on Windows.
But the source code continues:
* You can configure WebDriver to start use a custom Firefox installation with
* the {@link Binary} class:
*
* var firefox = require('selenium-webdriver/firefox');
* var binary = new firefox.Binary('/my/firefox/install/dir/firefox-bin');
* var options = new firefox.Options().setBinary(binary);
* var driver = new firefox.Driver(options);
In my case, that becomes:
var firefox = require('selenium-webdriver/firefox');
var binary = new firefox.Binary('C:\\Users\\(username)\\AppData\\Local\\Mozilla Firefox\\firefox.exe');
var options = new firefox.Options().setBinary(binary);
var driver = new firefox.Driver(options);
Now Selenium finds my Firefox, but I get a next error message:
Error: Timed out waiting for the WebDriver server at http://127.0.0.1:53785/hub
I also tried var driver = new webdriver.Builder().forBrowser('firefox').setFirefoxOptions(options).build();
, but that didn't make any difference.
Hope this helps you a bit further!