Giter Club home page Giter Club logo

oli5679 / docker-python-chromedriver Goto Github PK

View Code? Open in Web Editor NEW

This project forked from joyzoursky/docker-python-chromedriver

0.0 0.0 0.0 37 KB

Dockerfile for running Python Selenium in headless Chrome (Python 2.7 / 3.6 / 3.7 / 3.8 / Alpine based Python / Chromedriver / Selenium / Xvfb included in different versions)

Home Page: https://hub.docker.com/r/joyzoursky/python-chromedriver/

License: MIT License

Python 8.01% Dockerfile 86.36% Shell 5.63%

docker-python-chromedriver's Introduction

docker-python-chromedriver (Deprecated)

Python with Chromedriver, for running automated tests

Quick Try

$ git clone https://github.com/joyzoursky/docker-python-chromedriver.git
$ cd docker-python-chromedriver
$ docker run -it -w /usr/workspace -v $(pwd):/usr/workspace joyzoursky/python-chromedriver:latest bash
/usr/workspace# pip install selenium
/usr/workspace# python test_script.py

Warning: Current versions only support for building and running on amd64 (aka x86-64) machines, for arm64 (e.g. Apple M1 chip) machines, sevaral issues are found to be blocking (ref joyzoursky#31 joyzoursky#30).

Image includes

  • Python (Debian or Alpine based)
  • Google Chrome
  • Chromedriver
  • Selenium (in some versions)
  • Xvfb (in some versions)

Versions

Python 3 (Debian-based)

  • 3.9, latest (based on python:3.9, Dockerfile)
  • 3.9-selenium (based on python:3.9 with selenium installed, Dockerfile)
  • 3.8 (based on python:3.8, Dockerfile)
  • 3.8-selenium (based on python:3.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 (based on python:3.6, Dockerfile)
  • 3.6-selenium (based on python:3.6 with selenium installed, Dockerfile)

Python 3 (Alpine-based)

  • 3.9-alpine (based on python:3.9-alpine, Dockerfile)
  • 3.9-alpine-selenium (based on python:3.9-alpine with selenium installed, Dockerfile)
  • 3.8-alpine (based on python:3.8-alpine, Dockerfile)
  • 3.8-alpine-selenium (based on python:3.8-alpine with selenium installed, Dockerfile)
  • 3.7-alpine (based on python:3.7-alpine, Dockerfile)
  • 3.7-alpine-selenium (based on python:3.7-alpine3.8 with selenium installed, Dockerfile)
  • 3.6-alpine (based on python:3.6-alpine, Dockerfile)
  • 3.6-alpine-selenium (based on python:3.6-alpine with selenium installed, Dockerfile)

Python 2 (Deprecated)

  • 2.7 (based on python:2.7, Dockerfile)
  • 2.7-selenium (based on python:2.7 with selenium installed, Dockerfile)
  • 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)

Versions with Xvfb (Deprecated)

  • 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)
  • 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 Debian-based images:

  • latest
  • 3.9
  • 3.9-selenium
  • 3.8
  • 3.8-selenium
  • 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 -w /usr/workspace -v $(pwd):/usr/workspace joyzoursky/python-chromedriver:[version] bash

For the following Alpine-based images:

  • 3.9-alpine
  • 3.9-alpine-selenium
  • 3.8-alpine
  • 3.8-alpine-selenium
  • 3.7-alpine
  • 3.7-alpine-selenium
  • 3.6-alpine
  • 3.6-alpine-selenium
  • 2.7-alpine
  • 2.7-alpine-selenium

Run the followings in your terminal:

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

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.9-alpine-selenium
  • 3.9-selenium
  • 3.8-alpine-selenium
  • 3.8-selenium
  • 3.7-alpine-selenium
  • 3.7-selenium
  • 3.6-alpine-selenium
  • 3.6-selenium
  • 2.7-alpine-selenium
  • 2.7-selenium

You may run:

# python test_script.py

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

  • latest
  • 3.9-alpine
  • 3.9
  • 3.8-alpine
  • 3.8
  • 3.7-alpine
  • 3.7
  • 3.6-alpine
  • 3.6
  • 2.7-alpine
  • 2.7

You may run:

# pip install selenium
# python test_script.py

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

# pip install selenium
# 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-left logo button ... ok
test_case_2 (__main__.TestTemplate)
Find and click top-right Start your project button ... ok

----------------------------------------------------------------------
Ran 2 tests in 11.852s

OK

Contributing

To make changes upon the existing Dockerfiles, you are suggested to edit upon the Dockerfile.template files, and generate the new Dockerfiles for different versions by running render.sh.

How to edit and generate new versions of Dockerfiles

  1. cd to the folder that you want to edit, e.g. py-debian
  2. Make changes upon Dockerfile.template or Dockerfile-selenium.template
  3. Run bash render.sh from command-line

Note: The render.sh is written for Mac OS; If you are using Windows or other OS, some commands may need to be optimised before running.

Thanks a lot for helping on improving this project!

docker-python-chromedriver's People

Contributors

aallbrig avatar alexanderroidl avatar joaoemanuell avatar joyzoursky avatar minoic avatar oscarada87 avatar secord0 avatar sootysec avatar ukwksk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.