Skip to content

Selenium

Selenium CI on GitHub Actions

Grid startup and browser driver downloads add minutes before any test runs.

90s → 15s
Grid startup
24m → 7m
Suite

Grid startup and browser driver downloads add minutes before any test runs.

Why it happens

Driver binaries are fetched per run and the grid containers start cold.

What to change

  1. Cache the driver binaries keyed on the browser version
  2. Run the grid as a service container rather than starting it in a step
  3. Parallelise across grid nodes with a test matrix

Selenium on runnerhut

yaml
jobs:
e2e:
runs-on: runnerhut-8vcpu-ubuntu-2404
services:
selenium:
image: selenium/standalone-chrome:latest
options: --shm-size=2g
steps:
- uses: actions/checkout@v4
- run: pytest tests/e2e -n 4
A working starting point

The only runnerhut-specific line is `runs-on: runnerhut-8vcpu-ubuntu-2404`. Everything else is standard GitHub Actions — the same actions, the same secrets and the same permissions model you use today.

Your next build could be twice as fast, at half the price

Start free. Migrating away is the same one line, and we publish that diff too.