explaingit

seleniumhq/docker-selenium

8,633ShellAudience · ops devopsComplexity · 3/5LicenseSetup · moderate

TLDR

Pre-packaged Docker images for running Selenium Grid, the browser automation tool, in containers. Run automated web tests in parallel across Chrome, Firefox, and Edge without installing browsers manually on each machine.

Mindmap

mindmap
  root((repo))
    What it does
      Runs Selenium in Docker
      Parallel browser testing
    Configurations
      Standalone all-in-one
      Hub and nodes
      Fully distributed
    Browsers
      Chrome
      Firefox
      Edge
    Kubernetes
      Helm chart
      KEDA auto-scaling
    Extra features
      Video recording
      Headless mode
      Secure connections
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Run automated browser tests in parallel across Chrome, Firefox, and Edge in Docker containers without manual browser installation

USE CASE 2

Deploy Selenium Grid on Kubernetes with the included Helm chart and auto-scale test nodes based on queue size using KEDA

USE CASE 3

Record video of browser test sessions inside Docker for debugging failures without a separate screen recorder

Tech stack

DockerShellSeleniumKubernetesHelmKEDA

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Docker installed locally, Kubernetes deployment additionally needs Helm and a running cluster.

Licensed under Apache 2.0, free to use, modify, and distribute for any purpose including commercial, as long as you include the license notice.

In plain English

Selenium is a well-known tool for automating web browsers, meaning it can make Chrome, Firefox, or Edge open pages, click buttons, and fill out forms without a human sitting at the keyboard. This is used primarily for automated testing: you write tests that describe what a real user would do in your web app, and Selenium runs those actions in an actual browser to check that everything works correctly. This project provides pre-packaged Docker images that make it straightforward to run Selenium Grid in a containerized environment. Docker is a system that lets you package software along with all its dependencies into a self-contained unit that runs consistently on any machine. Selenium Grid is the part of Selenium that lets you run many browser sessions in parallel across multiple machines, rather than testing one browser at a time on a single computer. The images come in several configurations. A standalone image includes everything in one container and is suitable for small-scale use or local development. A hub-and-node setup splits coordination from execution, where the hub receives test requests and routes them to node containers, each of which runs a specific browser. There is also a fully distributed mode for larger deployments where even the hub's internal components run as separate containers. For teams already using Kubernetes (a system for managing large numbers of containers across a cluster of machines), the project provides a Helm chart, which is a packaged configuration that automates the deployment of the entire Selenium Grid setup into Kubernetes. There is also support for auto-scaling based on test demand using a tool called KEDA. Additional features include optional video recording of test sessions, the ability to set screen resolution and browser language, headless mode (running the browser without a visible window), and configuration for secure connections. The images are published to Docker Hub and maintained by the Selenium community under the Apache 2.0 license. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
Give me a Docker Compose file that starts a Selenium Grid hub plus one Chrome node and one Firefox node so I can run tests against both browsers in parallel
Prompt 2
Show me how to deploy docker-selenium on Kubernetes using Helm with auto-scaling enabled so Chrome nodes spin up when more than 5 tests are queued
Prompt 3
Write a Python Selenium script that connects to a remote Selenium Grid running in Docker and runs a simple login test on Chrome in headless mode
Prompt 4
How do I enable video recording for my Selenium sessions in docker-selenium and save the recordings to a folder on my host machine?
Open on GitHub → Explain another repo

← seleniumhq on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.