Issues running Selenium in circleci/node:8-browsers


#1

As of last week Friday, our e2e tests that run using selenium has started failing with the following:

/home/circleci/coralproject/talk/node_modules/selenium-standalone/.selenium/chromedriver/2.33-x64-chromedriver: error while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory

See our build: https://circleci.com/gh/coralproject/talk/8509

And our repo: https://github.com/coralproject/talk

Might be related to the new docker images that were posted recently.


#2

I’ve seen quite a few folks posting here about how an internal version bump in a pre-built image has broken their build. I don’t think that’s Circle’s fault - multiple upstream software changes are always at risk of breaking something, even if they’re only minor version increments.

Personally, I recommend using your own custom build image, with some time set aside in your schedule to manually upgrade internal versions of things, and to handle any breakages that occur as a result. This will allow you to keep your builds succeeding, and to ensure that version changes do not take out your CI when it is least convenient for it to do so.


#3

I suspected as much that the circleci/node:8-browsers image was modified.

What I don’t understand is the point of the -browsers variant then. If you aren’t using selenium/chromedriver to perform tests, what are you using it for? The point of using Circle for us was to push off the management complexity of these systems and images.

I completely believe that this was a small oversight on the Circle team to have modified this image without verifying that it still works with the most common tools in the space of browser integration testing.

I’m really hopeful that someone from the Circle team seems this and is able to comment on/correct the issue introduced, or at least, provide a docker tag that lets us use the previously published version that seemed to work.


#4

I’d guess it is automatically re-built from new upstream releases, so yep.

I hear you, but I take the opposite view - spending a bit of time getting a base image one is happy with is sometimes worth it for the resultant stability. The extra work is (1) creating a Dockerfile to start with, and then (2) reviewing it every three months or so. That means builds may break when you have time available to deal with the breakage.


#5

I’d be happy to write a Dockerfile and publish it to handle this lapse, but knowing that with the circleci images are cached (https://circleci.com/docs/2.0/caching/#introduction) would be the preferred reason that I’d want that.

If the image is advertising support for browsers, I’d hope that they’d at least try to support that. We aren’t doing anything that outrageous.


#6

For our services, it seems that a dockerfile of:

FROM circleci/node:8-browsers
RUN sudo apt-get install libgconf-2-4

Works.


#7

I seem to have spoken early, now it seems that the webdriver isn’t sending keypresses down. Looking into why that’s the case…


#8

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.