ScreenshotNeo

BlogGuides

Selenium News and Updates: A Smattering of Selenium 104

Selenium 104 likely means Selenium 4.0. Learn what changed, how to plan an upgrade, and which Grid setup fits your testing needs.

By the ScreenshotNeo team4 October 20268 min read

“Selenium 104” appears to be a typo or shorthand for Selenium 4.0. Selenium 4.0.0 was announced on October 13, 2021. The release moved Selenium to the W3C WebDriver standard, added capabilities through familiar APIs, and rebuilt Selenium Grid. Selenium 4.0 is not the latest release: current package versions differ by language binding, so check the official Selenium downloads page and your binding’s package listing before installing.

This guide explains what Selenium 4.0 introduced, what to check when upgrading from Selenium 3, and how to choose among the Grid deployment shapes described in the release announcement. The details below distinguish the 4.0 launch announcement from the project’s ongoing documentation.

1. What does “Selenium 104” mean?

The available official release material covers Selenium 4.0.0, not a release named Selenium 104. This article treats “104” as a likely typo or shorthand for “4.0.” Selenium 4.0.0 was announced on October 13, 2021, for Java, .NET, Python, Ruby, and JavaScript.

That date matters: the changes described as new here are the Selenium 4.0 launch changes. They should not be read as a complete description of every feature or behavior in later Selenium 4.x releases. Package versions and release dates vary by language binding; use the official downloads page to find the current instructions for your language.

2. What changed in Selenium 4.0?

The project’s announcement centered on three areas: W3C WebDriver, features added through familiar APIs, and a rebuilt Selenium Grid. The announcement also described Grid interface and infrastructure features. These are descriptions of the 4.0 launch, not a guarantee that every setup has identical behavior in later versions.

Area What the 4.0 announcement said Why a developer should care
WebDriver protocol Selenium 4 moved to the W3C WebDriver standard. Review custom capabilities and any code that depends on the older protocol or Selenium internals.
APIs New features were added through familiar APIs. Existing test code may need fewer conceptual changes, but deprecated or internal API usage still needs review.
Grid Grid was rebuilt and supports single-process, hub-and-node, and fully distributed deployment shapes. Choose a setup based on how much infrastructure you need to operate and distribute.
Grid operations The launch announcement described local Docker container management, a revamped UI backed by GraphQL, live VNC previews, and OpenTelemetry support. These capabilities may matter when operating a Grid, but check current Grid documentation for details that apply to your version and deployment.

The announcement’s author, Selenium contributor Simon Stewart, summarized the upgrade expectation this way: “If you’re already a Selenium user, this update should be as easy as just changing your dependency from 3.x to 4.0.0.” The same announcement qualified that expectation: code that relies on internal or deprecated APIs may encounter problems. Treat the quote as a broad expectation, not a migration guarantee.

Primary source: Announcing Selenium 4.

3. How to upgrade to Selenium 4

The official migration guide says Selenium 4 removes support for the legacy protocol and uses W3C WebDriver by default. Selenium 3 already supported W3C WebDriver, so code that was W3C-compliant on the latest Selenium 3 should work as expected in Selenium 4. The guide calls out capabilities, the Actions class, errors, and deprecation messages as areas to pay attention to.

  1. Identify your binding and dependency source. Record whether your project uses Java, .NET, Python, Ruby, or JavaScript, and whether dependencies come from a package manager, build file, or another managed source.
  2. Check the current install instructions. Use the official downloads page and the relevant language package listing. Avoid copying old version numbers from migration examples.
  3. Inspect custom capabilities. Confirm that capabilities use a W3C-compatible structure. A non-W3C capability structure can prevent a session from starting.
  4. Review Actions usage and deprecated APIs. The migration guide specifically highlights the Actions class and possible deprecation messages. Also search for code that depends on Selenium internals or undocumented behavior.
  5. Update the dependency and run your suite. Address session startup errors, failures, and deprecation messages surfaced by your project. This is a practical summary of the official migration guide, not a claim that a test suite was run for this article.

See the full official Upgrade to Selenium 4 guide for language-specific and error-specific guidance.

4. Choosing a Selenium Grid deployment shape

The Selenium 4.0 announcement describes three deployment shapes. There is no universal best choice; match the deployment to your test distribution needs and the infrastructure your team can operate.

Shape What it means Consider it when
Single process A standalone setup runs Grid in one process. You want a simpler starting shape and do not need to distribute Grid components across infrastructure.
Hub-and-node A traditional hub coordinates nodes. You already operate or need a hub-and-node arrangement for test execution.
Fully distributed Grid components can be distributed across infrastructure; the announcement cites Kubernetes as an example of modern infrastructure. You need a distributed deployment and can take on its additional operational coordination.

When deciding, compare operational complexity, how widely tests must be distributed, how much control you need over test infrastructure, and whether local Docker container management or a Kubernetes-oriented deployment is relevant. The launch announcement describes the modes; it does not declare one universally preferable. Confirm current setup details in the Selenium documentation for the version you plan to run.

5. Capturing browser output from a Selenium workflow

Selenium automates a browser, which can be useful when a screenshot must follow a specific test flow. Your test can navigate, interact with the page, wait for application-specific conditions, and then use your chosen browser capture method. The right capture strategy depends on whether the screenshot is evidence for a test, a visual artifact for review, or a reusable image of a public page.

If the task is specifically to test an interaction, keep the browser automation in the test so the screenshot reflects the state you intend to verify. If the task is to capture a page without maintaining browser setup, a screenshot API can be a simpler fit. ScreenshotNeo is a website screenshot API and MCP server for developers, made by Yorker Media. It accepts one GET request with a URL and can return PNG, JPEG, WebP, or PDF. See ScreenshotNeo and its API documentation.

6. Or skip the browser setup

For a URL-based capture, call ScreenshotNeo’s API directly. This runnable Python example saves the returned response body to a file:

import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
    timeout=90,
)
r.raise_for_status()
open("shot.webp", "wb").write(r.content)

Use your API key in place of YOUR_API_KEY. The endpoint can return PNG, JPEG, WebP, or PDF according to the request configuration. The full options and parameter names are in the ScreenshotNeo API docs.

ScreenshotNeo accepts cookie or consent banners like a visitor before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each of those steps can be turned off. Bot checks, CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and response headers report the page verdict and billing status. An MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots.

Create a free ScreenshotNeo account to get 1,000 screenshots a month with no card.

7. Troubleshooting Selenium 4 upgrades

Symptom Likely cause What to check
A WebDriver session will not start after upgrading. A capability may use a non-W3C structure. Review custom capabilities against the W3C-compatible format and the official upgrade guide.
Code that used to work fails around browser actions. Actions usage may be affected by migration changes or deprecated APIs. Inspect the Actions calls and resolve deprecation messages using the current language binding documentation.
Failures appear in code that uses Selenium internals. The code depends on internal or deprecated APIs that may not be stable across versions. Replace internal dependencies with documented APIs where possible, then rerun the affected tests.
An old install command installs an unexpected version. The copied command or version pin may be stale, or language bindings may have different release versions. Check the official downloads page and your binding’s package listing before changing the dependency.
A Grid setup behaves differently from an older deployment. Grid was rebuilt for Selenium 4, and setup details can depend on deployment shape and version. Identify whether you are using standalone, hub-and-node, or distributed mode; consult current Grid documentation for the exact version.

For protocol and migration issues, use the official upgrade guide. For current downloads and binding package instructions, start at Selenium Downloads.

8. Performance, reliability, and cost considerations

Test execution and Grid operations

The supplied release sources do not establish a performance percentage or a universal throughput improvement for Selenium 4.0. Choose a Grid mode based on distribution and operations requirements, then assess it using your own test workload and infrastructure. A distributed setup adds deployment components to manage; a single-process setup keeps the shape simpler but is not the same deployment model.

Upgrade reliability

Migration reliability depends on the compatibility of the project’s code and capabilities. W3C-compliant Selenium 3 code is expected to work as described by the upgrade guide, while non-W3C capabilities, deprecated APIs, Actions usage, and dependencies on internals deserve focused review. Keep dependency changes controlled and use failures and deprecation messages to guide remediation.

Screenshot capture costs

Running your own Selenium browser infrastructure means accounting for the infrastructure and maintenance your chosen setup requires; the cited Selenium release sources do not provide a cost comparison. If a direct screenshot API better matches a URL capture task, ScreenshotNeo lists Free at 1,000 shots per month with no card, Starter at $5 for 3,000, Growth at $15 for 15,000, Pro at $39 for 60,000, Scale at $99 for 250,000, and Business at $249 for 1,000,000. Yearly billing gives two months free, and every feature is on every plan. Check the product site for current plan details.

9. Frequently asked questions

Is Selenium 104 a real version?

The official sources supplied for this article cover Selenium 4.0.0. “104” is treated here as a likely typo or shorthand for 4.0.

Is Selenium 4.0 the newest Selenium release?

No. Selenium 4.0.0 was announced in 2021. Check the current package listing for your language binding before installing.

Does Selenium 4 require rewriting every Selenium 3 test?

No. The upgrade guide says W3C-compliant code in the latest Selenium 3 should work as expected in Selenium 4. Custom capabilities, deprecated APIs, Actions usage, and internal dependencies can still require changes.

Does Selenium Grid require Kubernetes?

No. The 4.0 announcement describes single-process, hub-and-node, and fully distributed options; Kubernetes is an example of infrastructure for a distributed deployment.

Can I use Selenium and a screenshot API in the same workflow?

Yes. Selenium can handle browser interactions in a test, while a screenshot API can capture a URL directly when browser automation is unnecessary for that task.

Sources