Skip to content

Commit e61746b

Browse files
authored
Add Selenium 4.47 release notes (#2768)
[deploy site]
1 parent 1f6e07a commit e61746b

4 files changed

Lines changed: 202 additions & 9 deletions

File tree

Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
---
2+
title: "Selenium 4.47 Released!"
3+
linkTitle: "Selenium 4.47 Released!"
4+
date: 2026-08-10
5+
tags: [ "selenium" ]
6+
categories: [ "releases" ]
7+
author: Diego Molina [@diemol](https://www.diemol.com)
8+
images:
9+
- "/images/blog/2026/selenium_4.47.jpg"
10+
description: >
11+
Today we're happy to announce that Selenium 4.47 has been released!
12+
---
13+
14+
We’re excited to announce the release of **Selenium 4.47** for JavaScript, Ruby, Python, .NET, Java
15+
and the Grid! 🎉
16+
17+
Links to all assets can be found on our [downloads page][downloads].
18+
19+
20+
---
21+
22+
# Selenium 4.47 Released
23+
24+
## ✨ Highlights
25+
26+
- **BiDi** Continued unifying the BiDi protocol layer across bindings around the shared,
27+
binding-neutral CDDL-derived schema — Ruby now generates its BiDi domain type accessors, union
28+
variant factories, and typed errors from it, matching JavaScript's earlier adoption.
29+
- **[Java]** Removed the redundant BiDi subscription scope tracking and fixed BiDi not
30+
initializing for `RemoteWebDriver` built via the builder.
31+
- **[.NET]** BiDi transport factories are now composable, the optional command timeout was
32+
removed from command options, and spurious warnings when there are no BiDi subscribers are
33+
gone.
34+
- **[.NET][Python][Ruby]** Firefox now blocks CDP access, reinforcing BiDi as the standard
35+
cross-browser protocol.
36+
- **[Grid]** Dynamic Grid videos are now consistently stored in a per-session subfolder via
37+
`SE_VIDEO_SESSION_SUBFOLDER`, including on Kubernetes, removing the previous pod-wait and
38+
relocation logic.
39+
- **[Java]** Fixed `By.className()`/`By.id()` misescaping non-ASCII leading digits, and a
40+
`By.name()` double `String.format` bug on names containing `%`.
41+
- **[Rust]** Selenium Manager fixes: honors `--browser-version` for Electron driver resolution,
42+
locates Chrome and Edge in known install directories, and no longer caches an empty driver
43+
version.
44+
45+
---
46+
47+
## 📦 Notable Changes
48+
49+
### Java
50+
- Removed the redundant BiDi subscription scope tracking, and fixed BiDi not initializing for
51+
`RemoteWebDriver` built via the builder.
52+
- Fixed `By.className()`/`By.id()` misescaping non-ASCII leading digits, and a `By.name()` double
53+
`String.format` bug on names containing `%`.
54+
- Added regression coverage for relative locators on collapsed table borders.
55+
- Removed deprecated FTP proxy support and deprecated invalid Firefox profile code (shared with
56+
JavaScript, Ruby, and .NET).
57+
58+
### Python
59+
- Blocked CDP access with Firefox (shared with .NET and Ruby).
60+
- Fixed `no_proxy` matching so empty entries and substrings no longer bypass the proxy.
61+
- `find_element`/`find_elements` type hints now accept `By`.
62+
- Ensured driver service subprocess resources are cleaned up.
63+
- Fixed the default `command_executor` URL in the `RemoteWebDriver` docstring.
64+
65+
### Ruby
66+
- Generated the BiDi domain type accessors, union variant factories, and typed WebDriver errors
67+
from the shared binding-neutral schema.
68+
- Constructed the BiDi transport inside the domain from a connection, and routed BiDiBridge
69+
navigation through the generated `Protocol::BrowsingContext`.
70+
- Added inbound/outbound validation for BiDi fields, including nullable-constant params, ref
71+
fields, and float/enum type fidelity.
72+
- Added support for WebDriver BiDi on Safari Preview, moving `#bidi` onto `Driver`.
73+
- Added a `browser_family` test guard, and support for custom vendor-specific capabilities in
74+
options classes.
75+
76+
### .NET
77+
- Made BiDi transport factories composable.
78+
- Removed the optional command timeout from command options, and stopped warning when there are
79+
no BiDi subscribers.
80+
- Added support for `SE_*DRIVER` environment variables to set driver locations.
81+
- Blocked CDP access with Firefox (shared with Python and Ruby).
82+
83+
### Grid
84+
- Store Dynamic Grid videos in a per-session subfolder via `SE_VIDEO_SESSION_SUBFOLDER`,
85+
including on Kubernetes, removing the previous pod-wait and relocation logic.
86+
- Inherited the Node Pod container's `securityContext` for Dynamic Grid on Kubernetes.
87+
- Honored client-advertised `se:remoteUrl` for reachable BiDi/CDP/VNC URLs.
88+
89+
### Build & Infra
90+
- Continued the BiDi schema unification: merged vendor CDDL files into the shared schema, derived
91+
per-type inbound/outbound directionality, and cleaned up schema generation.
92+
- Published a Selenium 5 release charter and an ADR documenting BiDi implementation boundaries.
93+
- Generated a cross-platform Selenium Manager SBOM and NOTICE, bundled into each package.
94+
- Bumped Rust build tooling (`@llvm`, `rules_rs`, `rules_ruby`) and updated Node.js versioning for
95+
testing and publishing.
96+
97+
---
98+
99+
### 🐳 Docker Selenium
100+
101+
- Docker: Support Google Chrome images for linux/arm64 (#3187)
102+
- [build] Keep Chrome dev/beta images on linux/amd64 only, resolve the latest rclone tag (#3188)
103+
- [video] Fall back to SE_NODE_CONTAINER_NAME for the per-session subfolder (#3194)
104+
- K8s: Implement KEDA external scaler and use it as default (#3169)
105+
- K8s: Gate distributed component replicas on external datastore (#3175)
106+
- [See all changes](https://github.com/SeleniumHQ/docker-selenium/releases)
107+
108+
<br>
109+
110+
We thank all our contributors for their incredible efforts in making Selenium better with every
111+
release. ❤️
112+
113+
For a detailed look at all changes, check out
114+
the [release notes](https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.47.0).
115+
116+
<br>
117+
118+
## Contributors
119+
120+
**Special shout-out to everyone who helped the Selenium Team get this release out!**
121+
122+
### [Selenium](https://github.com/SeleniumHQ/selenium)
123+
124+
<div class="d-flex justify-content-center">
125+
<div class="col-11 p-4 bg-transparent">
126+
<div class="row justify-content-center">
127+
{{< gh-user "https://api.github.com/users/MathiasPaulenko" >}}
128+
{{< gh-user "https://api.github.com/users/MohabMohie" >}}
129+
{{< gh-user "https://api.github.com/users/dennisameling" >}}
130+
{{< gh-user "https://api.github.com/users/gaurav0107" >}}
131+
{{< gh-user "https://api.github.com/users/vtvipul" >}}
132+
</div>
133+
</div>
134+
</div>
135+
136+
### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
137+
138+
<div class="row justify-content-center">
139+
<div class="col-11 p-4 bg-transparent">
140+
<div class="row justify-content-center">
141+
{{< gh-user "https://api.github.com/users/SuperDXCEL" >}}
142+
{{< gh-user "https://api.github.com/users/ajithrao2509" >}}
143+
{{< gh-user "https://api.github.com/users/bahka" >}}
144+
{{< gh-user "https://api.github.com/users/beinghumantester" >}}
145+
{{< gh-user "https://api.github.com/users/dcki" >}}
146+
{{< gh-user "https://api.github.com/users/halex2005" >}}
147+
{{< gh-user "https://api.github.com/users/noritaka1166" >}}
148+
{{< gh-user "https://api.github.com/users/pmartinez1" >}}
149+
{{< gh-user "https://api.github.com/users/sadik312" >}}
150+
</div>
151+
</div>
152+
</div>
153+
154+
### [Selenium Team Members][team]
155+
156+
**Thanks as well to all the team members who contributed to this release:**
157+
158+
<div class="row justify-content-center">
159+
<div class="col-11 p-4 bg-transparent">
160+
<div class="row justify-content-center">
161+
{{< gh-user "https://api.github.com/users/alaahong" >}}
162+
{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
163+
{{< gh-user "https://api.github.com/users/bonigarcia" >}}
164+
{{< gh-user "https://api.github.com/users/cgoldberg" >}}
165+
{{< gh-user "https://api.github.com/users/diemol" >}}
166+
{{< gh-user "https://api.github.com/users/navin772" >}}
167+
{{< gh-user "https://api.github.com/users/nvborisenko" >}}
168+
{{< gh-user "https://api.github.com/users/pujagani" >}}
169+
{{< gh-user "https://api.github.com/users/titusfortner" >}}
170+
{{< gh-user "https://api.github.com/users/VietND96" >}}
171+
</div>
172+
</div>
173+
</div>
174+
175+
176+
177+
Stay tuned for updates by following SeleniumHQ on:
178+
179+
- [Mastodon](https://mastodon.social/@seleniumHQ@fosstodon.org)
180+
- [BlueSky](https://bsky.app/profile/seleniumconf.bsky.social)
181+
- [LinkedIn](https://www.linkedin.com/company/selenium/)
182+
- [Selenium Community YouTube Channel](https://www.youtube.com/@SeleniumHQProject/streams)
183+
- [X (Formerly Twitter)](https://twitter.com/seleniumhq)
184+
185+
Happy automating!
186+
187+
[downloads]: /downloads
188+
189+
[bindings]: /downloads#bindings
190+
191+
[team]: /project/structure
192+
193+
[BiDi]: https://github.com/w3c/webdriver-bidi

website_and_docs/layouts/downloads/list.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<div class="card-body">
2626
<p class="card-text">
2727
Latest stable version
28-
<a href="https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.46.0/selenium-server-4.46.0.jar">4.46.0</a>
28+
<a href="https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.47.0/selenium-server-4.47.0.jar">4.47.0</a>
2929
</p>
3030
<p class="card-text">
3131
To use the Selenium Server in a Grid configuration, see the
@@ -115,7 +115,7 @@ <h2 class="card-title">
115115
<div class="card-body">
116116
<h2 class="card-title">C# NuGet</h2>
117117
<p class="card-text w-lg-75">
118-
Nuget latest release is 4.46.0 Released on July 11, 2026.
118+
Nuget latest release is 4.47.0 Released on August 10, 2026.
119119
</p>
120120
<ul>
121121
<li>

website_and_docs/layouts/partials/selenium-clients-and-webdriver-bindings.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ <h2 id="bindings" class="card-title">Selenium Clients and WebDriver Language Bin
2727
<p class="card-text m-0 pb-1">
2828
Stable:
2929
<a href="https://www.nuget.org/packages/Selenium.WebDriver" class="card-link">
30-
4.46.0 (July 11, 2026)
30+
4.47.0 (August 10, 2026)
3131
</a>
3232
</p>
3333
<p class="card-text m-0 pb-1">
@@ -54,8 +54,8 @@ <h2 id="bindings" class="card-title">Selenium Clients and WebDriver Language Bin
5454
</p>
5555
<p class="card-text m-0 pb-1">
5656
Stable:
57-
<a href="https://rubygems.org/gems/selenium-webdriver/versions/4.46.0" class="card-link">
58-
4.46.0 (July 11, 2026)
57+
<a href="https://rubygems.org/gems/selenium-webdriver/versions/4.47.0" class="card-link">
58+
4.47.0 (August 10, 2026)
5959
</a>
6060
</p>
6161
<p class="card-text m-0 pb-1">
@@ -82,8 +82,8 @@ <h2 id="bindings" class="card-title">Selenium Clients and WebDriver Language Bin
8282
</p>
8383
<p class="card-text m-0 pb-1">
8484
Stable:
85-
<a href="https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.46.0/selenium-java-4.46.0.zip" class="card-link">
86-
4.46.0 (July 11, 2026)
85+
<a href="https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.47.0/selenium-java-4.47.0.zip" class="card-link">
86+
4.47.0 (August 10, 2026)
8787
</a>
8888
</p>
8989
<p class="card-text m-0 pb-1">
@@ -111,7 +111,7 @@ <h2 id="bindings" class="card-title">Selenium Clients and WebDriver Language Bin
111111
<p class="card-text m-0 pb-1">
112112
Stable:
113113
<a href="https://pypi.python.org/pypi/selenium" class="card-link">
114-
4.46.0 (July 11, 2026)
114+
4.47.0 (August 10, 2026)
115115
</a>
116116
</p>
117117
<p class="card-text m-0 pb-1">
@@ -139,7 +139,7 @@ <h2 id="bindings" class="card-title">Selenium Clients and WebDriver Language Bin
139139
<p class="card-text m-0 pb-1">
140140
Stable:
141141
<a href="https://npmjs.org/package/selenium-webdriver" class="card-link">
142-
4.46.0 (July 11, 2026)
142+
4.47.0 (August 10, 2026)
143143
</a>
144144
</p>
145145
<p class="card-text m-0 pb-1">
82 KB
Loading

0 commit comments

Comments
 (0)