8

I already have started a server with webdriver-manager start, but I get this error when I try to run protractor:

Using the selenium server at http://127.0.0.1:4444/wd/hub
[launcher] Running 1 instances of WebDriver
ERROR - Unable to start a WebDriver session.

C:\...\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\atoms\error.js:113
  var template = new Error(this.message);
                 ^
UnknownError: unknown error: cannot find Chrome binary

My config file looks like this:

exports.config = {
    specs: [
        'test/*.js'
    ],

    capabilities: {
        'browserName': 'chrome'
    },
    seleniumAddress: 'http://127.0.0.1:4444/wd/hub'

};

I have also tried pointing to the binary in the capabilities object as well as adding chromeDriver and seleniumServerJar keys to no avail. Any ideas?

alecxe
  • 462,703
  • 120
  • 1,088
  • 1,195
cgsd
  • 1,242
  • 2
  • 13
  • 25

2 Answers2

12

According to the relevant github issue, the problem is that chromedriver cannot find chrome browser executeable - on different operating systems it searches for it in different places.

You need to either have chrome installed where chromedriver expects it to be, or specify the path to the chrome executeable in the binary setting:

capabilities: {
    "browserName": "chrome",
    "chromeOptions": {
        binary: "D:/Program Files/Chrome/chrome.exe",
        args: [],
        extensions: [],
    }
},
alecxe
  • 462,703
  • 120
  • 1,088
  • 1,195
  • Thanks! I was trying to put "binary" a level down inside "capabilities" ... didn't know it should have been in "chromeOptions" – cgsd Dec 16 '14 at 14:19
0

I generated code using JHipster and had similar error where e2e was not working. I provided binary path. But upon npm run e2e the browser opened and displayed data; in the address bar.

I shuffled and provided the binary at the end of chromeOptions after the args and it worked.

capabilities: {
        browserName: 'chrome',
        chromeOptions: {
            args: process.env.JHI_E2E_HEADLESS
                ? [ "--headless", "--disable-gpu", "--window-size=800,600" ]
                : [ "--disable-gpu", "--window-size=800,600" ],
            binary: "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
        }
    }

Note: I also had to update the chrome version when an unsupported webdriver version error occurred.

Shekhar Sahu
  • 504
  • 1
  • 6
  • 19