CircleCi Webdriver Chrome version must be between 70 and 73

Viewed 4359

I've an error on circleci that i'm not able to understand. It says that Chrome version must be between 70 and 73 when using selenium chrome webdriver.

[21:58:05] I/downloader - curl -o/home/circleci/project/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.45.zip https://chromedriver.storage.googleapis.com/2.45/chromedriver_linux64.zip
[21:58:05] I/update - chromedriver: unzipping chromedriver_2.45.zip
[21:58:05] I/update - chromedriver: setting permissions to 0755 for /home/circleci/project/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.45
[21:58:05] I/launcher - Running 1 instances of WebDriver
[21:58:05] I/direct - Using ChromeDriver directly...
[21:58:06] E/launcher - session not created: Chrome version must be between 70 and 73
  (Driver info: chromedriver=2.45.615279 (12b89733300bd268cff3b78fc76cb8f3a7cc44e5),platform=Linux 4.4.0-141-generic x86_64)
[21:58:06] E/launcher - SessionNotCreatedError: session not created: Chrome version must be between 70 and 73
  (Driver info: chromedriver=2.45.615279 (12b89733300bd268cff3b78fc76cb8f3a7cc44e5),platform=Linux 4.4.0-141-generic x86_64)
    at Object.checkLegacyResponse (/home/circleci/project/node_modules/selenium-webdriver/lib/error.js:546:15)
    at parseHttpResponse (/home/circleci/project/node_modules/selenium-webdriver/lib/http.js:509:13)
    at doSend.then.response (/home/circleci/project/node_modules/selenium-webdriver/lib/http.js:441:30)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
From: Task: WebDriver.createSession()
    at Function.createSession (/home/circleci/project/node_modules/selenium-webdriver/lib/webdriver.js:769:24)
    at Function.createSession (/home/circleci/project/node_modules/selenium-webdriver/chrome.js:761:15)
    at Direct.getNewDriver (/home/circleci/project/node_modules/protractor/built/driverProviders/direct.js:77:33)
    at Runner.createBrowser (/home/circleci/project/node_modules/protractor/built/runner.js:195:43)
    at q.then.then (/home/circleci/project/node_modules/protractor/built/runner.js:339:29)
    at _fulfilled (/home/circleci/project/node_modules/q/q.js:834:54)
    at self.promiseDispatch.done (/home/circleci/project/node_modules/q/q.js:863:30)
    at Promise.promise.promiseDispatch (/home/circleci/project/node_modules/q/q.js:796:13)
    at /home/circleci/project/node_modules/q/q.js:556:49
    at runSingle (/home/circleci/project/node_modules/q/q.js:137:13)
[21:58:06] E/launcher - Process exited with error code 199

An unexpected error occurred: undefined

my circleci config file

version: 2
jobs:
  build:
    docker:
      - image: circleci/node:8.11-browsers
    working_directory: ~/project

    steps:
      - checkout
      - restore_cache:
          keys:
            - v1-dependencies-{{ checksum "package.json" }}
            - v1-dependencies-
      - run: npm install
      - save_cache:
          paths:
            - node_modules
          key: v1-dependencies-{{ checksum "package.json" }}
      - run: npm run lint
      - run: npm run e2e

Any idea of what is happening ?

4 Answers

This isn't a problem specific to Circle CI. I was receiving it on my regular IDE setup. The issue is that your chromedriver no longer matches the browser version.

Steps to fix (I'm using Mac OSX): - Upgrade your chrome browser to latest: currently 74 - Upgrade your chromedriver to latest: you can manually download it from their site, or if installed via brew cask just run brew cask upgrade

This worked for me. In circle.yml

- run:
  name: Install Chrome
  command: |
    wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
    sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
    sudo apt-get update
    sudo apt-get install google-chrome-stable

Other solutions like using -browsers docker images does not work now

One idea would be to download and install the latest Chrome in the .circleci/config.yml file (similar to @andriy-baran's comment). However, that might use up your build time unless there's a way to cache the Chrome engine directory together with its dependencies.

Related