14

I'm trying to setup Nightwatch, and am using the latest chromedriver which says it supports chrome v52-54. BUT, when I try to run the tests, it says 'Error: Chrome version must be >=52.0.2743.' Here's everything that I'm using:

Project Structure

|-- nightwatch.json
|-- bin/
|   |-- chromedriver
|   |-- selenium-server-standalone-2.53.1.jar
|-- tests/
|   |-- sample.js
|-- results/
|-- screens/
|-- node_modules/
|   |-- (lots of modules here)

And here is my configuration file for nightwatch:

./nightwatch.json

{
  "src_folders" : ["tests"],
  "output_folder" : "results",
  "custom_commands_path" : "",
  "custom_assertions_path" : "",
  "page_objects_path" : "",
  "globals_path" : "",

  "selenium" : {
    "start_process" : true,
    "server_path" : "bin/selenium-server-standalone-2.53.1.jar",
    "log_path" : "results",
    "host" : "127.0.0.1",
    "port" : 4444,
    "cli_args" : {
      "webdriver.chrome.driver" : "bin/chromedriver"
    }
  },

  "test_settings" : {
    "default" : {
      "launch_url" : "http://localhost",
      "selenium_port"  : 4444,
      "selenium_host"  : "localhost",
      "silent": true,
      "screenshots" : {
        "enabled" : true,
        "path" : "screens/"
      },
      "desiredCapabilities": {
        "browserName": "chrome",
        "javascriptEnabled": true,
        "acceptSslCerts": true
      }
    },

    "chrome" : {
      "desiredCapabilities": {
        "browserName": "chrome",
        "javascriptEnabled": true,
        "acceptSslCerts": true
      }
    }
  }
} 

Running Tests

I run the tests like this:

nightwatch tests/

Error

And I get the following output:

Starting selenium server... started - PID:  3500

[Sample] Test Suite
=======================

Running:  Demo test Google

Error retrieving a new session from the selenium server

Connection refused! Is selenium server started?
{ sessionId: null,
  status: 13,
  state: 'unhandled error',
  value: 
   { message: 'unknown error: Chrome version must be >= 52.0.2743.0\n  (Driver info: chromedriver=2.24.417424 (c5c5ea873213ee72e3d0929b47482681555340c3),platform=Linux 3.2.0-56-generic x86_64) (WARNING: The server did not provide any stacktrace information)\nCommand duration or timeout: 1.42 seconds\nBuild info: version: \'2.53.1\', revision: \'a36b8b1\', time: \'2016-06-30 17:37:03\'\nSystem info: host: \'N/A\', ip: \'N/A\', os.name: \'Linux\', os.arch: \'amd64\', os.version: \'3.2.0-56-generic\', java.version: \'1.7.0_111\'\nDriver info: org.openqa.selenium.chrome.ChromeDriver',
     suppressed: [],
     localizedMessage: 'unknown error: Chrome version must be >= 52.0.2743.0\n  (Driver info: chromedriver=2.24.417424 (c5c5ea873213ee72e3d0929b47482681555340c3),platform=Linux 3.2.0-56-generic x86_64) (WARNING: The server did not provide any stacktrace information)\nCommand duration or timeout: 1.42 seconds\nBuild info: version: \'2.53.1\', revision: \'a36b8b1\', time: \'2016-06-30 17:37:03\'\nSystem info: host: \'N/A\', ip: \'N/A\', os.name: \'Linux\', os.arch: \'amd64\', os.version: \'3.2.0-56-generic\', java.version: \'1.7.0_111\'\nDriver info: org.openqa.selenium.chrome.ChromeDriver',
     buildInformation: 
      { releaseLabel: '2.53.1',
        buildTime: '2016-06-30 17:37:03',
        class: 'org.openqa.selenium.internal.BuildInfo',
        buildRevision: 'a36b8b1',
        hCode: 1900167016 },
     cause: null,
     systemInformation: 'System info: host: \'N/A\', ip: \'N/A\', os.name: \'Linux\', os.arch: \'amd64\', os.version: \'3.2.0-56-generic\', java.version: \'1.7.0_111\'',
     supportUrl: null,
     class: 'org.openqa.selenium.WebDriverException',
     additionalInformation: '\nDriver info: org.openqa.selenium.chrome.ChromeDriver',
     hCode: 1299270263,
     screen: null },
  class: 'org.openqa.selenium.remote.Response',
  hCode: 1144687147 }

Anyone know how to resolve this error?

Chrome version must be >= 52.0.2743.0

Does chromedriver use my local copy of chrome? Do I need to update my actual chrome?

Katie
  • 37,767
  • 18
  • 80
  • 110

3 Answers3

15

Does chromedriver use my local copy of chrome? Do I need to update my actual chrome?

Yes, ChromeDriver is a executable that selenium webdriver uses to control chrome.

So selenium webdriver launch your installed chrome from your default location or custom location which you tell to selenium webdriver during initialising ChromeDriver.

So basically ChromeDriver executable just use to talking between chrome browser and selenium webdriver to control it that doesn't mean it launches their own chrome browser. It uses your installed chrome browser.

So yes, you need to update your actual installed chrome.

Saurabh Gaur
  • 21,274
  • 8
  • 42
  • 69
  • I do have updated my Chrome to the latest version and it still doesn't work. – Chester Rivas Dec 22 '16 at 01:06
  • @ChesterRivas what version of chromedriver are you using?? And what error are you getting?? – Saurabh Gaur Dec 22 '16 at 02:53
  • @ChesterRivas By "ChromeDriver" he's not referring to your Chrome *browser*. The ChromeDriver is code that Protractor uses to control Chrome for running your tests (it actually creates a small dev server to load your site on to test it). See https://sites.google.com/a/chromium.org/chromedriver/downloads – RoboBear Apr 18 '18 at 16:39
11

Yes, ChromeDriver uses your local Chrome installation. In case you prefer not to upgrade your Chrome installation, you can specify a version of ChromeDriver that would work with the installed Chrome version.

You can find the compatible Chrome versions for different ChromeDriver releases at https://chromedriver.storage.googleapis.com/2.25/notes.txt (change "2.25" to a newer version if your Chrome version is newer than what is listed there).

If your test framework uses the Node.js webdriver-manager, you can simply install the required ChromeDriver version (keeping any already installed versions) using (e.g. for version 2.20):

webdriver-manager update --chrome --versions.chrome=2.20

and specify the appropriate ChromeDriver version when starting Selenium via webdriver-manager:

webdriver-manager start --versions.chrome=2.20

If webdriver-manager is unavailable, you can simply download the required ChromeDriver version and use some technique to pass the following parameter to the Selenium server startup command:

-Dwebdriver.chrome.driver=/path/to/the/desired/chromedriver_version
Janaka Bandara
  • 825
  • 1
  • 10
  • 23
  • `In case you prefer not to upgrade your Chrome installation` -- or in case you lack administrative rights to upgrade Chrome! This answer saved me hours of pain. Thanks! – user2954463 Jul 27 '17 at 13:48
7

If you're using Ubuntu 16.04 this code works:

wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -

x64

sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'

x32

sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'

Install/Update

sudo apt-get update
sudo apt-get install google-chrome-stable

Source

tiagomenegaz
  • 113
  • 2
  • 10