|  | 
|  | 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