mrkeyoor.com_
Fri 16 Oct 18:53 UTC
Automationevaluationupdated 12 Oct 2026

selenium review

Selenium lets programs open real web browsers, click through pages, and check the results in languages including Java and Python. It gives teams a common browser-control interface for local scripts and remote browser fleets, so they can automate the same user flows across their existing tools.

+29stars / 7d
Verdict

Our Selenium source-checkout install failed in 11 seconds because pnpm reported an ignored esbuild build script, leaving that setup unresolved. Use Selenium when its language bindings or an existing Grid match your browser coverage needs, and validate the published package separately. For a new JavaScript suite, I would start with Playwright unless WebDriver compatibility decides the choice.

We ran it

Lab card: what happened when we ran seleniumScreenshot of selenium (selenium.dev)
Install✗ · 11s
Build—
Repo5307 files~666,794 lines of source · 75.9 MB · 38 CI workflows

Answers from our run

Does selenium build from source?

The dependency install failed, and the project has no separate build step. We cloned commit 6d04770 into a clean Debian container with 3 CPUs and no project-specific setup.

Who should not use selenium?

Developers expecting a fresh Node clone to be ready after pnpm install: our source-checkout attempt failed in 11 seconds, and the README directs contributors to a Bazel-based environment.

What are the alternatives to selenium?

Playwright, WebdriverIO. Our Selenium source-checkout install failed in 11 seconds because pnpm reported an ignored esbuild build script, leaving that setup unresolved.

Setup2/5Source install failed; browser hosts need separate preparation
Docs4/5Distinct user manual and detailed contributor toolchain guidance
Community5/5October 12 push and recent issue and PR activity
Maturity4/5Standard browser protocol and Grid; our checkout remains unverified

Discussed on

  1. hnDeleteFB: Selenium script to delete all of your Facebook wall posts1,067 points
  2. hnShow HN: Vibium – Browser automation for AI and humans, by Selenium's creator443 points
  3. hnWeb automation: Don't use Selenium, use Playwright408 points
  4. hnLaVague: Open-source Large Action Model to automate Selenium browsing378 points
  5. hnShow HN: Autotab – An AI-powered Chrome extension to create Selenium scripts376 points

Who it’s for

Teams maintaining WebDriver scripts in Java, Python, C#, Ruby, or JavaScript.
Organizations with an existing Selenium Grid and a need to keep remote browser coverage.
Developers automating real browser interactions who can maintain driver configuration and conditional waits.
Contributors prepared to use the documented Bazel toolchain rather than treat the checkout as a standalone Node app.

Who it’s NOT for

Developers expecting a fresh Node clone to be ready after pnpm install: our source-checkout attempt failed in 11 seconds, and the README directs contributors to a Bazel-based environment.
Windows contributors whose workstation policy cannot accommodate MSYS2, Visual C++ tools, and path changes: the README lists those requirements for source development.
Teams choosing a new JavaScript suite chiefly for an included runner and tracing workflow: Selenium presents language libraries and browser infrastructure, while Playwright supplies that workflow together.
Applications that cannot provision a real browser host: the README describes native WebDriver automation, and the manual documents browser and driver requirements.

Setup reality

Our pnpm install of commit 6d04770 failed with exit code 1 in 11 seconds on October 3, 2026. The fresh Debian sandbox had 3 CPUs, 8 GB RAM, image lab-node:22, no secrets, and no elevated privileges. The checkout held 5,307 files, roughly 666,794 source lines, and occupied 75.9 MB. The log reports ERR_PNPM_IGNORED_BUILDS for esbuild@0.27.0 and suggests pnpm approve-builds.

Using a published binding needs the appropriate language environment and a usable browser/driver combination. Local automation needs no hosted Selenium credential. Selenium Manager can fetch drivers, so prepare downloads, proxy settings, and cache access. Grid adds a server endpoint and browser hosts; commercial browser providers need their own credentials.

The contributor README expects Bazelisk and a Java JDK, with additional Windows tooling and path configuration. The log also warns that workspace definitions differ and says pnpm uses pnpm-workspace.yaml. It does not show that warning caused the failure or identify a missing system package. Our scan found 38 CI workflows and workspaces, while reporting no Dockerfile or tests directory.

Use the language binding before cloning the contributor repository

Selenium lets a Java or Python program open a browser, fill a form, and check what appears after a click. Its W3C WebDriver foundation matters when browser automation needs to fit an existing language and tooling stack. I'd choose it for that compatibility, especially where a working WebDriver fleet already exists. Selenium's manual describes local and remote browser control.

Cloning Selenium puts you in a different job. Our checkout contained 5,307 files, roughly 666,794 lines of source, and occupied 75.9 MB before installation. The README explicitly addresses contributors and sends ordinary users to the manual. Those source measurements describe the repository we handled. They say nothing about the size of a published language package or the memory a browser session needs.

What happened when we ran it

Our pnpm install of commit 6d04770 failed with exit code 1 after 11 seconds on October 3, 2026. We used a fresh Debian sandbox with 3 CPUs, 8 GB of RAM, and image lab-node:22. The container had no secrets or elevated privileges. This was a source-checkout installation attempt. The supplied measurements contain no build result or browser-execution result, so we cannot claim either succeeded or failed.

The log names esbuild@0.27.0 as having an ignored build script and ends with ERR_PNPM_IGNORED_BUILDS. It suggests pnpm approve-builds to choose which scripts may run. A separate warning says package.json and pnpm-workspace.yaml disagree about workspaces, and pnpm uses the latter. The scope covers all 4 workspace projects. That warning is visible, but the log does not establish it as the cause of the failure. Nor does it identify a missing Debian package.

Source contribution requires the Bazel toolchain

The README calls for Bazelisk and a Java JDK, with JAVA_HOME pointing to the JDK. Its commands target individual language directories or Grid through Bazel and the project's ./go wrapper. Windows contribution adds MSYS2, Visual C++ tools, and path configuration. A developer hoping to patch the source during an afternoon should first check whether that toolchain fits their workstation policy.

Our scan found 38 CI workflow files and monorepo workspaces, while reporting no Dockerfile and no tests directory. Treat the latter as scan findings for commit 6d04770, rather than a claim that Selenium lacks those assets everywhere. The current README links a nested developer-image Dockerfile. Most importantly, the failed pnpm step gives us no basis for judging the upstream suite. Source contribution still needs a deliberate environment choice beyond a Node container.

Automatic driver management still needs a prepared browser host

Selenium Manager can discover, download, and cache browser drivers when a caller hasn't supplied one. That removes a recurring manual task, but it also introduces network access and cache configuration into session startup. Proxy and offline environments need explicit preparation. The documentation warns that vendor browser downloads on Linux can require system libraries, with concrete Firefox and Chrome examples. Downloaded browser binaries still need a usable host.

The 8 GB available in our sandbox is an environment detail, not a recommended capacity for Selenium. We have no browser-memory measurement to turn into a sizing rule. A local script needs a language binding and a usable browser/driver combination, with no hosted Selenium account required. Grid adds a server endpoint and browser hosts. If you choose a commercial browser service, its account credentials belong to that service, and its operating assumptions need separate review.

Grid earns its cost when remote browser coverage matters

Selenium Grid routes WebDriver commands to remote browser instances and supports work across machines, browser versions, and platforms. This is a reason to retain Selenium when your organization already runs that infrastructure. It also means someone owns the browser hosts and their availability. Start with the browser combinations your users actually need. Adding remote machines simply because Grid supports them creates operations work without proving better coverage.

Our 3-CPU container did not provide a measured Grid workload. Nothing in the 11-second installation failure tells us how many concurrent sessions a server can sustain or how quickly a checkout flow runs. I'd separate a local adoption trial from a Grid capacity exercise. The first asks whether your chosen binding can drive the required browser. The second asks what happens when your actual scripts compete for the same browser hosts.

JavaScript teams have alternatives with more workflow included

Playwright includes a test runner with automatic waiting, browser isolation, and tracing. For a new JavaScript application, those features are a practical reason to start there. WebdriverIO fits teams that want a Node framework around WebDriver and Appium, including framework integrations and reporters. It can preserve the protocol choice while changing the authoring experience. Neither recommendation claims a speed advantage we measured.

The 666,794 source lines in our checkout don't decide that comparison. The useful distinction is who supplies the surrounding workflow. Selenium's waiting guide explains conditional waits and warns against mixing implicit and explicit waits. Your team must apply that guidance consistently. If a save button becomes usable only after a response arrives, waiting for that condition is a maintenance decision your scripts need to express.

October maintenance is active; the checkout result remains unresolved

The repository's last push was October 12, 2026. GitHub listed 184 open issues and PRs, and release selenium-4.51.0 was published October 9. Recent activity includes a closed Java HttpClient compatibility issue and open Ruby and Bazel work. Together, the push date and discussion activity show ongoing maintenance. The release notes include concrete fixes across language components. The queue includes PRs, not just bugs.

Our failed 11-second install belongs to commit 6d04770, not a verified run of that later release. Choose Selenium when existing bindings or Grid coverage justify owning browser configuration and synchronization. Before depending on a source checkout, review the esbuild script that pnpm flagged and make an explicit approval decision. A successful package-based browser trial would answer a separate adoption question; this checkout still needs its installation blocker resolved.

Alternatives

ProjectWhat it isPick it when
Playwright gh↗Browser automation with an included JavaScript runner, automatic waiting, and tracing.pick this instead when you are starting a JavaScript suite and want the runner and debugging workflow together.
WebdriverIOA Node automation framework around WebDriver, WebDriver BiDi, and Appium.pick this instead when you want WebDriver compatibility with Node framework integrations and reporters.

Sources

  1. Selenium contributor README
  2. Selenium WebDriver manual
  3. Selenium Manager requirements and configuration
  4. Selenium Grid
  5. Selenium waiting strategies
  6. Selenium release selenium-4.51.0
  7. Playwright README
  8. WebdriverIO README

More automation reviews

supersidian · genspark-claw · orc-claude-plugin · tiktok-views-bot · Ydisks-Xianyu-Helper · jev-gui-delegate · the whole board →