Dockerfile for running Python Selenium in headless Chrome (Python 2.7 / Python 3.6 / Alpine based Python / Chromedriver / Selenium / Xvfb included in different versions)
Switch branches/tags
Nothing to show
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
py2 Add alpine and selenium versions Jan 25, 2018
py3 Use alpine v3.8 apk repo for alpine3.8 images Oct 3, 2018
LICENSE Add Dockerfile to build the images Sep 22, 2016
README.md Minor fix on README.md Oct 3, 2018
test_script.py Add example test script for quick try Jul 18, 2018

README.md

docker-python-chromedriver

Python with Chromedriver, for running automated tests

Includes:

  • Python
  • Google Chrome
  • Chromedriver
  • Selenium (in some versions)
  • Xvfb (in some versions)

Versions:

Python 3:

  • 3.7-alpine3.8, latest (based on python:3.7-alpine3.8, Dockerfile)
  • 3.7-alpine3.8-selenium (based on python:3.7-alpine3.8 with selenium installed, Dockerfile)
  • 3.7 (based on python:3.7, Dockerfile)
  • 3.7-selenium (based on python:3.7 with selenium installed, Dockerfile)
  • 3.6-alpine3.7 (based on python:3.6-alpine3.7, Dockerfile)
  • 3.6-alpine3.7-selenium (based on python:3.6-alpine3.7 with selenium installed, Dockerfile)
  • 3.6 (based on python:3.6, Dockerfile)
  • 3.6-selenium (based on python:3.6 with selenium installed, Dockerfile)
  • 3.6-xvfb (based on python:3.6 with xvfb installed, Dockerfile)
  • 3.6-xvfb-selenium (based on python:3.6 with xvfb and selenium installed, Dockerfile)

Python 2:

  • 2.7-alpine3.7 (based on python:2.7-alpine3.7, Dockerfile)
  • 2.7-alpine3.7-selenium (based on python:2.7-alpine3.7 with selenium installed, Dockerfile)
  • 2.7 (based on python:2.7, Dockerfile)
  • 2.7-selenium (based on python:2.7 with selenium installed, Dockerfile)
  • 2.7-xvfb (based on python:2.7 with xvfb installed, Dockerfile)
  • 2.7-xvfb-selenium (based on python:2.7 with xvfb and selenium installed, Dockerfile)

Usage:

For the following alpine based images:

  • latest
  • 3.7-alpine3.8
  • 3.7-alpine3.8-selenium
  • 3.6-alpine3.7
  • 3.6-alpine3.7-selenium
  • 2.7-alpine3.7
  • 2.7-alpine3.7-selenium

Run the followings in your terminal:

$ cd [your working directory]
$ docker run -it -v $(pwd):/usr/workspace joyzoursky/python-chromedriver:[version] sh
/ # cd /usr/workspace

For the following ubuntu based images:

  • 3.7
  • 3.7-selenium
  • 3.6
  • 3.6-selenium
  • 3.6-xvfb
  • 3.6-xvfb-selenium
  • 2.7
  • 2.7-selenium
  • 2.7-xvfb
  • 2.7-xvfb-selenium

Run the followings in your terminal:

$ cd [your working directory]
$ docker run -it -v $(pwd):/usr/workspace joyzoursky/python-chromedriver:[version] bash
root@[container ID]:/# cd /usr/workspace

This will create a container from the image. Then you could starting running the commands in the container as in your working directory. The followings are some examples to run a selenium test.

Examples to run selenium test in the container:

You can download a selenium test example from here to quick start.

For the following images with selenium pre-installed:

  • 3.7-alpine3.8-selenium
  • 3.7-selenium
  • 3.6-alpine3.7-selenium
  • 3.6-selenium
  • 2.7-alpine3.7-selenium
  • 2.7-selenium

You may run:

# python test_script.py

For the following images that do not have selenium pre-installed:

  • latest
  • 3.7-alpine3.8
  • 3.7
  • 3.6-alpine3.7
  • 3.6
  • 2.7-alpine3.7
  • 2.7

You may run:

# pip install selenium==3.13.0
# python test_script.py

If you see the runtime error ConnectionResetError: [Errno 104] Connection reset by peer, revert your selenium version to 3.8.0.

For 3.6-xvfb or 2.7-xvfb, you may run:

# pip install selenium==3.8.0
# xvfb-run --server-args="-screen 0 1024x768x24" python test_script.py

For 3.6-xvfb-selenium or 2.7-xvfb-selenium, you may run:

# xvfb-run --server-args="-screen 0 1024x768x24" python test_script.py

Then you should see the test result like this:

test_case_1 (__main__.TestTemplate)
Find and click top-right button ... ok
test_case_2 (__main__.TestTemplate)
Find and click Learn more button ... ok

----------------------------------------------------------------------
Ran 2 tests in 8.684s

OK