Skip to content

Commit 546cddf

Browse files
authored
Merge branch 'trunk' into renovate/pytest-8.x
2 parents 7bf1a77 + 01f43d1 commit 546cddf

File tree

13 files changed

+325
-69
lines changed

13 files changed

+325
-69
lines changed

Diff for: .github/workflows/deploy.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ on:
44
push:
55
branches:
66
- trunk
7+
workflow_dispatch:
78

89
jobs:
910
deploy:
10-
if: contains(toJson(github.event.commits), '[deploy site]') == true
11+
if: contains(toJson(github.event.commits), '[deploy site]') == true || github.event_name == 'workflow_dispatch'
1112
runs-on: ubuntu-24.04
1213
steps:
1314
- name: Checkout repo

Diff for: examples/kotlin/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<properties>
1212
<kotlin.version>2.1.0</kotlin.version>
1313

14-
<slf4j.version>2.0.16</slf4j.version>
14+
<slf4j.version>2.0.17</slf4j.version>
1515
<logback.version>1.5.17</logback.version>
1616

1717
<junit5.version>5.12.0</junit5.version>

Diff for: website_and_docs/content/blog/2023/selenium-4-9-0-released.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@ Links to everything can be found on our [downloads page][downloads].
3333
<div class="col-11 p-4 bg-transparent">
3434
<div class="row justify-content-center">
3535
{{< gh-user "https://api.github.com/users/atrnh" >}}
36-
{{< gh-user "https://api.github.com/users/nvborisenko" >}}
37-
{{< gh-user "https://api.github.com/users/dev-ardi" >}}
36+
{{< gh-user "https://api.github.com/users/nvborisenko" >}}
3837
{{< gh-user "https://api.github.com/users/arnonax-tr" >}}
3938
{{< gh-user "https://api.github.com/users/robotdana" >}}
4039
{{< gh-user "https://api.github.com/users/iampopovich" >}}
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
title: "Removing ChromeDevTools Support For Firefox"
3+
linkTitle: "Removing ChromeDevTools Support For Firefox"
4+
date: 2025-02-03
5+
tags: ["selenium"]
6+
categories: ["releases"]
7+
author: Puja Jagani [@pujagani](https://www.linkedin.com/in/pujajagani/)
8+
description: >
9+
Today we're happy to announce ChromeDevTools support for Firefox is removed and WebDriver BiDi is paving the path forward
10+
---
11+
12+
Selenium has deprecated support for Chrome DevTools Protocol (CDP) for Firefox in the last two versions (4.27 and 4.28). Our typical removal policy is to deprecate support for two versions, allowing users sufficient time to update their codebase, and then remove it from the third version onwards.
13+
14+
Starting with Selenium 4.29.0, CDP support for Firefox has been fully removed—and for good reason. Selenium’s CDP implementation for Firefox was always partial, meaning it never had complete feature parity with Chrome. Meanwhile, Firefox is shifting towards WebDriver BiDi, the future of cross-browser automation. Aligning with this, Firefox has announced that starting with Firefox 129, CDP will no longer be enabled by default. Read more here: [https://fxdx.dev/deprecating-cdp-support-in-firefox-embracing-the-future-with-webdriver-bidi/].
15+
16+
To support this transition, Selenium is removing CDP support for Firefox, as a major portion of WebDriver BiDi functionality is now available across all Selenium language bindings. Selenium is committed to staying in sync with browser vendors and the latest developments in the WebDriver BiDi protocol. This step brings us closer to standardized, browser-agnostic automation.
17+
18+
If you were using CDP in Selenium for Firefox, now is the time to switch to WebDriver BiDi. Start your journey with Selenium’s WebDriver BiDi examples [here](https://www.selenium.dev/documentation/webdriver/bidi/w3c/).
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
---
2+
title: "Selenium 4.29 Released!"
3+
linkTitle: "Selenium 4.29 Released!"
4+
date: 2025-02-20
5+
tags: ["selenium"]
6+
categories: ["releases"]
7+
author: Diego Molina [@diemol](https://www.diemol.com)
8+
images:
9+
- "/images/blog/2025/selenium_4.29.jpg"
10+
description: >
11+
Today we're happy to announce that Selenium 4.29 has been released!
12+
---
13+
We're very happy to announce the release of Selenium 4.29 for
14+
Javascript, Ruby, Python, .NET, Java and the Grid!
15+
Links to everything can be found on our [downloads page][downloads].
16+
17+
18+
---
19+
20+
## 🚀 Major Highlights
21+
22+
- **Final removal of [Firefox CDP support](/blog/2025/remove-cdp-firefox/)** across all language bindings.
23+
- **New WebDriver BiDi capabilities**: Implementation of `setCacheBehavior` and `getClientWindows` commands.
24+
- **Grid UI Fixes**: Live session view now works as expected.
25+
- **PrintOptions enhancements**: Support for predefined and custom paper sizes.
26+
- **Nullability annotations** continue to improve type safety in .NET.
27+
- **BiDi improvements**: Network response handlers and optimizations.
28+
- **Enhancements to logging options** in Java.
29+
30+
---
31+
32+
## 🔹 Language-Specific Changes
33+
34+
### **Java**
35+
- Implemented `setCacheBehavior` for WebDriver BiDi. ([#15130](https://github.com/SeleniumHQ/selenium/pull/15130))
36+
- Enhanced `PageSize` class to support predefined and custom paper sizes. ([#15052](https://github.com/SeleniumHQ/selenium/pull/15052))
37+
- Ensured purging dead nodes service interval is configurable. ([#15175](https://github.com/SeleniumHQ/selenium/pull/15175))
38+
- Improved handling of Selenium logging options. ([#15197](https://github.com/SeleniumHQ/selenium/pull/15197))
39+
- Added support for `getClientWindows` in WebDriver BiDi. ([#14869](https://github.com/SeleniumHQ/selenium/pull/14869))
40+
41+
### **Python**
42+
- Fixed installation issues for source distributions. ([#15128](https://github.com/SeleniumHQ/selenium/pull/15128))
43+
- Updated `PrintOptions` to support different page sizes. ([#15064](https://github.com/SeleniumHQ/selenium/pull/15064))
44+
- Documented `cygwin` path usage in `send_keys()`. ([#15275](https://github.com/SeleniumHQ/selenium/pull/15275))
45+
- Fixed return type and docstrings for `get_downloadable_files()`. ([#15292](https://github.com/SeleniumHQ/selenium/pull/15292))
46+
47+
### **JavaScript**
48+
- Implemented `setCacheBehavior` for WebDriver BiDi. ([#15136](https://github.com/SeleniumHQ/selenium/pull/15136))
49+
- Fixed dependencies for `novnc` v1.5.0. ([#15005](https://github.com/SeleniumHQ/selenium/pull/15005))
50+
- Added support for `getClientWindows` in WebDriver BiDi. ([#15248](https://github.com/SeleniumHQ/selenium/pull/15248))
51+
52+
### **Ruby**
53+
- Removed Java date dependency. ([#15122](https://github.com/SeleniumHQ/selenium/pull/15122))
54+
- Added WebDriver BiDi network response handler. ([#14900](https://github.com/SeleniumHQ/selenium/pull/14900))
55+
- Implemented WebDriver BiDi `setCacheBehavior` command. ([#15114](https://github.com/SeleniumHQ/selenium/pull/15114))
56+
57+
### **.NET**
58+
- Improved BiDi exception handling when it is not enabled. ([#15163](https://github.com/SeleniumHQ/selenium/pull/15163))
59+
- Added nullability annotations across multiple modules, including `Command`, `DriverService`, `FirefoxProfile`, `Manage()`, `SafariOptions`, and `Navigate()`.
60+
- Updated WebAuth credential handling. ([#15201](https://github.com/SeleniumHQ/selenium/pull/15201))
61+
- Simplified creation of network types. ([#15267](https://github.com/SeleniumHQ/selenium/pull/15267))
62+
- Improved logging stability. ([#15257](https://github.com/SeleniumHQ/selenium/pull/15257))
63+
64+
### **Docker Selenium**
65+
- Publish Node/Standalone images with the latest Grid core version and browser backward versions
66+
- Update container environment to JDK21 ([#2642](https://github.com/SeleniumHQ/docker-selenium/pull/2642))
67+
- Node base with share system certificate support ([#2653](https://github.com/SeleniumHQ/docker-selenium/pull/2653))
68+
- Node container is able to restart and retry to register when `register-period` exceeded ([#2662](https://github.com/SeleniumHQ/docker-selenium/pull/2662))
69+
- Selenium Grid scaler in KEDA feature preview
70+
- Add trigger param to set custom capabilities for matching specific Nodes ([KEDA#6536](https://github.com/kedacore/keda/pull/6536))
71+
- Add trigger param for Node enables managed downloads capability ([KEDA#6570](https://github.com/kedacore/keda/pull/6570))
72+
- Helm config: Set K8s node IP to all components via env var KUBERNETES_NODE_HOST_IP in template ([#2668](https://github.com/SeleniumHQ/docker-selenium/pull/2668))
73+
- [See all changes](https://github.com/SeleniumHQ/docker-selenium/releases)
74+
75+
76+
<br>
77+
78+
We thank all our contributors for their incredible efforts in making Selenium better with every release. ❤️
79+
80+
For a detailed look at all changes, check out the [release notes](https://github.com/SeleniumHQ/selenium/releases/tag/4.29).
81+
82+
<br>
83+
84+
85+
## Contributors
86+
87+
**Special shout-out to everyone who helped the Selenium Team get this release out!**
88+
89+
### [Selenium](https://github.com/SeleniumHQ/selenium)
90+
91+
<div class="d-flex justify-content-center">
92+
<div class="col-11 p-4 bg-transparent">
93+
<div class="row justify-content-center">
94+
{{< gh-user "https://api.github.com/users/Delta456" >}}
95+
{{< gh-user "https://api.github.com/users/iampopovich" >}}
96+
{{< gh-user "https://api.github.com/users/navin772" >}}
97+
{{< gh-user "https://api.github.com/users/smortex" >}}
98+
{{< gh-user "https://api.github.com/users/yvsvarma" >}}
99+
</div>
100+
</div>
101+
</div>
102+
103+
104+
### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
105+
106+
<div class="row justify-content-center">
107+
<div class="col-11 p-4 bg-transparent">
108+
<div class="row justify-content-center">
109+
{{< gh-user "https://api.github.com/users/AndreyJVM" >}}
110+
{{< gh-user "https://api.github.com/users/Delta456" >}}
111+
{{< gh-user "https://api.github.com/users/alaahong" >}}
112+
{{< gh-user "https://api.github.com/users/automatealchemist" >}}
113+
{{< gh-user "https://api.github.com/users/b2m" >}}
114+
{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
115+
</div>
116+
</div>
117+
</div>
118+
119+
### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
120+
121+
<div class="row justify-content-center">
122+
<div class="col-11 p-4 bg-transparent">
123+
<div class="row justify-content-center">
124+
{{< gh-user "https://api.github.com/users/PeterUpfold" >}}
125+
{{< gh-user "https://api.github.com/users/StenAL" >}}
126+
{{< gh-user "https://api.github.com/users/amardeep2006" >}}
127+
{{< gh-user "https://api.github.com/users/calendir" >}}
128+
{{< gh-user "https://api.github.com/users/joshfng" >}}
129+
{{< gh-user "https://api.github.com/users/ritzk" >}}
130+
</div>
131+
</div>
132+
</div>
133+
134+
### [Selenium Team Members][team]
135+
136+
**Thanks as well to all the team members who contributed to this release:**
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/aguspe" >}}
142+
{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
143+
{{< gh-user "https://api.github.com/users/bonigarcia" >}}
144+
{{< gh-user "https://api.github.com/users/cgoldberg" >}}
145+
{{< gh-user "https://api.github.com/users/diemol" >}}
146+
{{< gh-user "https://api.github.com/users/harsha509" >}}
147+
{{< gh-user "https://api.github.com/users/joerg1985" >}}
148+
{{< gh-user "https://api.github.com/users/nvborisenko" >}}
149+
{{< gh-user "https://api.github.com/users/p0deje" >}}
150+
{{< gh-user "https://api.github.com/users/pujagani" >}}
151+
{{< gh-user "https://api.github.com/users/RenderMichael" >}}
152+
{{< gh-user "https://api.github.com/users/shbenzer" >}}
153+
{{< gh-user "https://api.github.com/users/shs96c" >}}
154+
{{< gh-user "https://api.github.com/users/titusfortner" >}}
155+
{{< gh-user "https://api.github.com/users/VietND96" >}}
156+
</div>
157+
</div>
158+
</div>
159+
160+
161+
162+
Stay tuned for updates by following SeleniumHQ on:
163+
- [Mastodon](https://mastodon.social/@[email protected])
164+
- [BlueSky](https://bsky.app/profile/seleniumconf.bsky.social)
165+
- [LinkedIn](https://www.linkedin.com/company/selenium/)
166+
- [Selenium Community YouTube Channel](https://www.youtube.com/@SeleniumHQProject/streams)
167+
- [X (Formerly Twitter)](https://twitter.com/seleniumhq)
168+
169+
Happy automating!
170+
171+
[downloads]: /downloads
172+
[bindings]: /downloads#bindings
173+
[team]: /project/structure
174+
[BiDi]: https://github.com/w3c/webdriver-bidi

Diff for: website_and_docs/content/documentation/webdriver/troubleshooting/logging.en.md

+14
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,20 @@ take a look at the [Selenium Logger project](https://github.com/titusfortner/sel
2727
Python logs are typically created per module. You can match all submodules by referencing the top
2828
level module. So to work with all loggers in selenium module, you can do this:
2929
{{< gh-codeblock path="/examples/python/tests/troubleshooting/test_logging.py#L5" >}}
30+
You must also create and add a log handler (`StreamHandler`, `FileHandler`, etc).
31+
32+
To save logs to a file, you can do this:
33+
```py
34+
log_path = '/path/to/log'
35+
handler = logging.FileHandler(log_path)
36+
logger.addHandler(handler)
37+
```
38+
39+
To display logs in the console, you can do this:
40+
```py
41+
handler = logging.StreamHandler()
42+
logger.addHandler(handler)
43+
```
3044
{{% /tab %}}
3145
{{% tab header="CSharp" %}}
3246
.NET logger is managed with a static class, so all access to logging is managed simply by referencing `Log` from the `OpenQA.Selenium.Internal.Logging` namespace.

Diff for: website_and_docs/content/documentation/webdriver/troubleshooting/logging.ja.md

+14
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,20 @@ take a look at the [Selenium Logger project](https://github.com/titusfortner/sel
2727
Python logs are typically created per module. You can match all submodules by referencing the top
2828
level module. So to work with all loggers in selenium module, you can do this:
2929
{{< gh-codeblock path="/examples/python/tests/troubleshooting/test_logging.py#L5" >}}
30+
You must also create and add a log handler (`StreamHandler`, `FileHandler`, etc).
31+
32+
To save logs to a file, you can do this:
33+
```py
34+
log_path = '/path/to/log'
35+
handler = logging.FileHandler(log_path)
36+
logger.addHandler(handler)
37+
```
38+
39+
To display logs in the console, you can do this:
40+
```py
41+
handler = logging.StreamHandler()
42+
logger.addHandler(handler)
43+
```
3044
{{% /tab %}}
3145
{{% tab header="CSharp" %}}
3246
.NET logger is managed with a static class, so all access to logging is managed simply by referencing `Log` from the `OpenQA.Selenium.Internal.Logging` namespace.

Diff for: website_and_docs/content/documentation/webdriver/troubleshooting/logging.pt-br.md

+14
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,20 @@ take a look at the [Selenium Logger project](https://github.com/titusfortner/sel
2727
Python logs are typically created per module. You can match all submodules by referencing the top
2828
level module. So to work with all loggers in selenium module, you can do this:
2929
{{< gh-codeblock path="/examples/python/tests/troubleshooting/test_logging.py#L5" >}}
30+
You must also create and add a log handler (`StreamHandler`, `FileHandler`, etc).
31+
32+
To save logs to a file, you can do this:
33+
```py
34+
log_path = '/path/to/log'
35+
handler = logging.FileHandler(log_path)
36+
logger.addHandler(handler)
37+
```
38+
39+
To display logs in the console, you can do this:
40+
```py
41+
handler = logging.StreamHandler()
42+
logger.addHandler(handler)
43+
```
3044
{{% /tab %}}
3145
{{% tab header="CSharp" %}}
3246
.NET logger is managed with a static class, so all access to logging is managed simply by referencing `Log` from the `OpenQA.Selenium.Internal.Logging` namespace.

Diff for: website_and_docs/content/documentation/webdriver/troubleshooting/logging.zh-cn.md

+14
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,20 @@ Java日志并不简单直接,
3030
Python logs are typically created per module. You can match all submodules by referencing the top
3131
level module. So to work with all loggers in selenium module, you can do this:
3232
{{< gh-codeblock path="/examples/python/tests/troubleshooting/test_logging.py#L5" >}}
33+
You must also create and add a log handler (`StreamHandler`, `FileHandler`, etc).
34+
35+
To save logs to a file, you can do this:
36+
```py
37+
log_path = '/path/to/log'
38+
handler = logging.FileHandler(log_path)
39+
logger.addHandler(handler)
40+
```
41+
42+
To display logs in the console, you can do this:
43+
```py
44+
handler = logging.StreamHandler()
45+
logger.addHandler(handler)
46+
```
3347
{{% /tab %}}
3448
{{% tab header="CSharp" %}}
3549
.NET logger is managed with a static class, so all access to logging is managed simply by referencing `Log` from the `OpenQA.Selenium.Internal.Logging` namespace.

Diff for: website_and_docs/content/project/structure/_index.html

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ <h3 class="pb-3">Project Leadership Committee</h3>
2929
{{< gh-user "https://api.github.com/users/maaretp" >}}
3030
<!-- pujagani is the TLC rep, starting on 27.01.2025 -->
3131
{{< gh-user "https://api.github.com/users/pujagani" >}}
32+
{{< gh-user "https://api.github.com/users/janetmoreno" >}}
3233
</div>
3334
</div>
3435
<div id="tlc" class="pb-4">

0 commit comments

Comments
 (0)