|
| 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 |
0 commit comments