Free tools Windows power users keep installed
One-click scans. No signup required.
To run Selenium on an AMD64 or ARM64 machine, choose a Selenium image whose exact tag supports both your host architecture and the browser you need, then connect your tests to the container’s WebDriver endpoint at http://localhost:4444. Docker can select the right architecture variant automatically when an image publishes a multi-platform manifest, but browser availability still varies by architecture and release.
How multi-architecture Selenium images work
A multi-platform Docker image reference can point to multiple platform-specific image manifests. When you pull it, Docker selects a variant for the host architecture. This lets the same image name work on different supported hosts without manually choosing an architecture-specific reference. Docker’s multi-platform documentation explains the manifest-list selection behavior.
Selenium’s Docker project announced AMD64 and ARM64 image support starting with tag 4.21.0 in 2024. That historical threshold does not mean every browser is available on both architectures or that every later tag has identical support. Check the current Selenium Docker README and browser matrix for the exact tag you plan to use.
Choose an image for your host and browser
| Host and browser need | Guidance |
|---|---|
| AMD64: Chrome, Firefox, Edge, Chromium, or Chrome for Testing | The current Selenium README lists these browser families for AMD64. Select the matching image and pin a full version tag. |
| ARM64: Firefox or Chromium | The current README lists both for ARM64. Check the exact tag and use its matching image. |
| ARM64: Google Chrome | The current README says Chrome is available via stable APT from v150 onward; older Chrome versions may be AMD64-only. Verify the browser matrix and CHROME_PLATFORMS for your tag. The ARM64 driver arrangement differs from AMD64. |
| ARM64: Edge or Chrome for Testing | The current README lists these as unavailable on ARM64. Use a supported browser or run the required browser on AMD64. |
| ARM64 host, AMD64-only browser image | Selenium discourages emulation for browser workloads because of performance and stability problems, including browser launch failures. Prefer a native platform/browser combination where possible. |
These availability statements follow the current README, not the launch announcement’s 2024 browser matrix, which described the initial rollout state. Browser and tag support can change; verify the precise release before relying on it.
#1 Best Overall
Start a standalone Selenium browser container
Standalone is the simplest option for local tests: one container runs the browser and Grid endpoint. Selenium’s README example uses Firefox with this full tag, checked against the README on October 3, 2026. Confirm the tag is still available before using it.
docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.48.0-20260905
- Run the command on a host with Docker installed. Docker pulls the matching platform variant if the tag publishes one for the host.
- Use
http://localhost:4444as the RemoteWebDriver endpoint in your test code. - Open
http://localhost:7900if you want to observe browser activity. Port 7900 is optional; omit its mapping if you do not need visualization.
The --shm-size="2g" setting allocates shared memory for the browser container, following Selenium’s quick-start recommendation.
Rank #2
Chromium example
Selenium also documents this multi-architecture invocation pattern for Chromium:
docker run --rm -it -p 4444:4444 -p 5900:5900 -p 7900:7900 --shm-size 2g selenium/standalone-chromium:latest
For reproducible tests, replace latest with a full Selenium version tag and verify that the tag supports your host architecture. The example maps WebDriver on 4444, VNC on 5900, and browser visualization on 7900.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Rank #3
Connect a test to RemoteWebDriver
Configure the Selenium client library in your test to use the remote endpoint http://localhost:4444 and select the browser matching the container. The exact client code depends on your language and Selenium binding; the essential setup is to create a RemoteWebDriver session at that URL rather than starting a local browser driver. If the test runs in another container on the same Docker network, use the Selenium service or container name as the hostname instead of localhost.
Pin versions and keep architectures aligned
Use a full image tag when you need repeatable local runs or CI. A tag such as 4.48.0-20260905 identifies a specific Selenium and browser image build; the tag is an example from the README accessed October 3, 2026, not a permanent recommendation. Floating tags such as latest can move, changing the browser or platform behavior beneath a test run.
- Check the project browser matrix for the exact image tag, not only for the browser family generally.
- In mixed-architecture teams, use a tag that publishes the required browser on both AMD64 and ARM64, or select host-specific jobs where it does not.
- Avoid assuming that emulation makes an AMD64-only browser a dependable choice on ARM64.
Run a distributed Selenium Grid
Use a Hub and browser Nodes when tests need a distributed Grid rather than one standalone browser container. Selenium’s Docker README demonstrates connecting the containers through a shared Docker network and pointing each Node’s event bus at the Hub.
- Create a Docker network for the Grid containers.
- Start the
selenium/hubcontainer on that network and publish port 4444 if clients outside the network need to reach it. - Start the appropriate browser Node containers on the same network, setting
SE_EVENT_BUS_HOSTto the Hub container name. - Use the same explicit Selenium version tag for Hub and Nodes, and check that each Node image supports the architecture of the machine running it.
- Allocate browser shared memory with
--shm-size="2g", as in Selenium’s documented browser-node examples.
Separate Nodes make it possible to distribute browser sessions across machines, but add network and version-alignment considerations. A standalone container is simpler when one local browser is enough.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Best Value
- Docker, Docker Swarm, Docker Compose, Programmer, Developer, Coding, Programming, Software Engineer, Code, DevOps, Deploy, Deployment, Kubernetes, Salt, Puppet, Chef, Terraform, Container, AWS, Azure, Cloud, Geek, Funny, Computer, Software, Tech, IT
- Integration, Scrum, Compile, Compilation, Science, Bug, Debug, Python, Linux, Java, Javascript, Scala, Dotnet, Kotlin
- Lightweight, Classic fit, Double-needle sleeve and bottom hem
Troubleshoot common startup and connection problems
Docker reports no matching manifest or platform
The selected tag may not publish an image for your host architecture. Check the exact tag and browser in Selenium’s current matrix. On ARM64, choose a browser listed for ARM64 or run the workload on AMD64 if the required browser is unavailable natively.
The browser fails to launch or behaves unreliably on ARM64
Confirm that Docker pulled a native ARM64 image and that the browser is supported for that architecture and tag. Selenium warns against AMD64 emulation on ARM64 for browser workloads because of performance and stability risks; use a native combination where available.
The test cannot connect to WebDriver
- For a test running on the host, verify that port 4444 is published and use
http://localhost:4444. - For a test in another container, make sure both containers share a Docker network and use the Selenium container or service name rather than
localhost. - For a distributed Grid, check that Nodes can resolve the Hub name and that
SE_EVENT_BUS_HOSTpoints to it.
The browser starts but crashes or runs out of shared memory
Use Selenium’s recommended --shm-size="2g" allocation for browser containers. If you changed container resource limits, check that the runtime still provides the configured shared memory.
Results change between runs
Replace a floating tag such as latest with a full version tag, then use the same tag across Grid Hub and Nodes. Recheck the browser/platform matrix when upgrading.
Recommended Free Tools
Or skip the browser setup
If your goal is a website image or PDF rather than an interactive Selenium session, ScreenshotNeo provides a one-request screenshot API and an MCP server for AI agents. It accepts a URL and returns PNG, JPEG, WebP, or PDF. Its capture can accept cookie banners and remove known consent banners, newsletter popups, and chat widgets before taking the shot; each step can be turned off. Bot checks and CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed as clean shots, and the response identifies the page verdict and billing status. AI agents can use its MCP tools, including take_screenshot, get_page_info, and capture_pdf.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for parameters and setup. The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots. Sign up for free and get 1,000 screenshots a month with no card.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




