After docker image update about 7 hours ago(maybe 2018-01-18 10:00:00+0900), the error occurs in RSpec system test.
Selenium::WebDriver::Error::SessionNotCreatedError:
session not created exception: Chrome version must be >= 62.0.3202.0
(Driver info: chromedriver=2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881),platform=Linux 4.4.0-108-generic x86_64)
Do you have any reports similar this or any suggestions?
My environment is:
circleci/ruby:2.4.1-node-browsers
Rails 5.1.4
rspec-rails 3.7.2
capybara 2.16.1
selenium-webdriver 3.8.0
This might not be suitable bug report in this forum, though.
Update: for us we were using chromedriver-helper in test mode which was overriding the chromedriver already configured by CircleCI. We removed the gem. Builds are working now for us.
We were also using chromedriver-helper. I think Circle updating their images was a coincidence.
In my circle config, I added chromedriver-update 2.34 before the test run. This version is compatible with the older version of Chrome that’s installed. Installing a newer version of Chrome should also fix it.
This is an issue for me running Protractor end-to-end tests for an Angular CLI application.
I attempted the following steps with unsatisfactory results:
Update Chrome: sudo apt-get update && sudo apt-get -y install google-chrome-stable
This did not work because the latest stable version of Chrome is 64, but ChromeDriver 2.38 wants Chrome >= 65.0.3325.0.
Add a build step that runs the shell command chromedriver-update 2.34.
This did not work because the command chromedriver-update does not exist.
Add a build step that runs the shell command webdriver-manager update --versions.chrome 2.35 (from here).
This did not work because webdriver-manager is not available on the system.
As the previous few posts mention, I could go back to manually patching the local apt lists and installing the latest version of Chrome that way. I am hesitant to do so, however, because simply using the image circleci/node:9-stretch-browsers is much simpler than copying and pasting four lines of code (and having to run apt-get update) to every project’s CircleCI config.yml.
Today we’re getting: SessionNotCreatedError: session not created exception: Chrome version must be >= 65.0.3325.0 (Driver info: chromedriver=2.38.551591 (bcc4a2cdef0f6b942b2bb8049068f65340fa2a69),platform=Linux 4.4.0-119-generic x86_64).
This issue crops up nearly every time there is a new release of Google Chrome, and we have been unable to get any of the solutions listed here to work, so each time we’re at the mercy of waiting for the docker image to update its bundled version of Chrome.
I notice that on https://hub.docker.com/r/circleci/node/ it describes the -browsers images as “extends the defacto image and installs Firefox and Chrome/chromedriver and configure them to run in a chrontainzied [sic] environment” - but ChromeDriver does not appear to be installed on the image. Would it be possible to bundle that into the image? Then they can be updated in unison, instead of relying on the client to download a version of ChromeDriver that works for the bundled Chrome version (or trying to force Chrome to update at each run, defeating the purpose of using the -browsers image).
I don’t use these images, but I wonder if it comes about because the driver and the browser are out of sync? If so, can someone try pinning the driver to a fixed version?
If the driver is changing because the base images are changing, I wonder if a custom image would help here? One can create a Docker image containing the versions of things that are needed, and then stick with that until one decides that a new one is necessary.
A custom image would most certainly solve the issue, but if users need to build and manage their own image just because the tooling in the -browsers images isn’t updated frequently enough, then it defeats the purpose of Circle offering them
Personally speaking, I see it as the opposite problem: given the number of problems that are reported in this forum, I think they are updated too frequently. I take the view that browser tests should test the general principle of a UI - if folks want to test across a wide range of browsers (or a frequently changing set of browsers) then traditional CI isn’t appropriate. Either folks maintain the images themselves (duplicated work) or they are updated centrally (more breakages on edge cases).