Get involved
@@ -101,9 +104,9 @@ Get involved
diff --git a/website_and_docs/content/blog/2010/going-atomic-how.md b/website_and_docs/content/blog/2010/going-atomic-how.md
index 82783052cc48..e6b978eb28ed 100644
--- a/website_and_docs/content/blog/2010/going-atomic-how.md
+++ b/website_and_docs/content/blog/2010/going-atomic-how.md
@@ -13,13 +13,13 @@ This is the second of my technical posts. Again, if you’re interested in the i
We left our intrepid heroes in a tight spot: they’d decided to write a shared library of code, to be used by the various webdriver implementations and selenium core, but the requirements for doing this seemed to be at odds with it actually happening.
-Fortunately, at about the same time we started down this path, Google Open Sourced the [Closure compiler](closure-compiler.googlecode.com). This is a Javascript compiler that takes as input a set of Javascript files, and which outputs Javascript. It can be configured to either pass the code through untouched into a single file, or it can compile a script aggressively, removing unused code-paths and minifying the output as much as possible. The Closure compiler is used on a lot of Google products, so we know that it’s reliable and consistent.
+Fortunately, at about the same time we started down this path, Google Open Sourced the [Closure compiler](https://developers.google.com/closure/compiler). This is a Javascript compiler that takes as input a set of Javascript files, and which outputs Javascript. It can be configured to either pass the code through untouched into a single file, or it can compile a script aggressively, removing unused code-paths and minifying the output as much as possible. The Closure compiler is used on a lot of Google products, so we know that it’s reliable and consistent.
-In order to get the best out of the Closure compiler, we’re writing the atoms using the [Closure library](closure-library.googlecode.com). This isn’t as well known as some of the other JS libraries out there, but it’s solid, well tested and is being actively developed. It also features an easy-to-use extension of JsUnit, which makes writing tests a far simpler task than might otherwise be the case, and it has an easy to use mechanism for modularizing code.
+In order to get the best out of the Closure compiler, we’re writing the atoms using the [Closure library](https://github.com/google/closure-library). This isn’t as well known as some of the other JS libraries out there, but it’s solid, well tested and is being actively developed. It also features an easy-to-use extension of JsUnit, which makes writing tests a far simpler task than might otherwise be the case, and it has an easy to use mechanism for modularizing code.
So, given that we could compile a single Javascript function (and it’s dependencies) into a minified fragment of JS, we were all set, right? Not quite.
-The problem is that the atoms are being extracted from two frameworks that have a different way of viewing the world. As an example, Selenium 1’s “[getAttribute](http://selenium.googlecode.com/svn/trunk/docs/api/java/com/thoughtworks/selenium/Selenium.html#getAttribute(java.lang.String))” method only returns the value of a particular attribute, whereas WebDriver’s “[getAttribute](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#getAttribute(java.lang.String))” method will return the value of either a property or an attribute (because sometimes it’s hard to remember whether something is an attribute or a property of an element)
+The problem is that the atoms are being extracted from two frameworks that have a different way of viewing the world. As an example, Selenium 1’s getAttribute (`http://selenium.googlecode.com/svn/trunk/docs/api/java/com/thoughtworks/selenium/Selenium.html#getAttribute(java.lang.String)`) method only returns the value of a particular attribute, whereas WebDriver’s getAttribute (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#getAttribute(java.lang.String`)) method will return the value of either a property or an attribute (because sometimes it’s hard to remember whether something is an attribute or a property of an element)
As with all problems in computer science, an extra level of indirection is used to solve this issue.
diff --git a/website_and_docs/content/blog/2010/going-atomic-why.md b/website_and_docs/content/blog/2010/going-atomic-why.md
index 605040a969e8..258650cb4f0d 100644
--- a/website_and_docs/content/blog/2010/going-atomic-why.md
+++ b/website_and_docs/content/blog/2010/going-atomic-why.md
@@ -25,7 +25,7 @@ So, we decided to use Javascript.
Because this shared code was to be composed of the smallest useful fragments of functionality required for browser automation we decided to refer to them as “Browser Automation Atoms”, or “atoms” for short. Rather than write them from scratch, the easiest thing to do was to extract them from the existing code — this is stuff that’s been battle-tested, so we know it’s robust.
-There was one very obvious fly in the ointment: not every driver is written in Javascript. Although we have a [mechanism available](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/JavascriptExecutor.html) in every browser for executing JS, it’s wildly inefficient to dump an enormous lump of code on to the JS engine of the browser whenever you want to query the DOM. After all, most of the code would not be needed, and not all JS engines have been created equal. Some are blazingly fast. Others, not so much.
+There was one very obvious fly in the ointment: not every driver is written in Javascript. Although we have a mechanism available (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/JavascriptExecutor.html`) in every browser for executing JS, it’s wildly inefficient to dump an enormous lump of code on to the JS engine of the browser whenever you want to query the DOM. After all, most of the code would not be needed, and not all JS engines have been created equal. Some are blazingly fast. Others, not so much.
It would also be nice to break the code up into manageably-sized modules, rather than being in a single, monolithic file, which implies some clever “module loading” capability. Except this code isn’t always going to be executing inside an environment where writing “script” tags to load additional scripts is possible. You can’t do that in the guts of a firefox extension, though you can load files other ways. However we tie modules together will need to cope with that.
diff --git a/website_and_docs/content/blog/2010/selenium-1-0-2-release-firefox-3-6-and-snow-leopard-support.md b/website_and_docs/content/blog/2010/selenium-1-0-2-release-firefox-3-6-and-snow-leopard-support.md
index 7b696ceaee3f..09b5845bade6 100644
--- a/website_and_docs/content/blog/2010/selenium-1-0-2-release-firefox-3-6-and-snow-leopard-support.md
+++ b/website_and_docs/content/blog/2010/selenium-1-0-2-release-firefox-3-6-and-snow-leopard-support.md
@@ -14,6 +14,6 @@ of our efforts are on Selenium 2.0, we understand that there are millions of Sel
still need the 1.x line supported. That’s why we’ve said from the start that our goal is make 2.x
100% backwards compatible with 1.x. And that’s why we’re releasing a new version of Selenium RC today.
-[Download it here](http://selenium.googlecode.com/files/selenium-remote-control-1.0.2.zip).
+Download it here (`http://selenium.googlecode.com/files/selenium-remote-control-1.0.2.zip`).
In addition to many bug fixes, the biggest improvements in this version are support for both **Firefox 3.6 and OS X Snow Leopard**.
\ No newline at end of file
diff --git a/website_and_docs/content/blog/2010/selenium-1-0-3-released.md b/website_and_docs/content/blog/2010/selenium-1-0-3-released.md
index 7b56fbadf772..a44907df41f4 100644
--- a/website_and_docs/content/blog/2010/selenium-1-0-3-released.md
+++ b/website_and_docs/content/blog/2010/selenium-1-0-3-released.md
@@ -10,8 +10,8 @@ description: >
---
-Hot off the heals of [1.0.2](/blog/2010/selenium-1.0.2-released-firefox-3.6-and-snow-leopard-support/),
-we’re releasing Selenium Remote Control 1.0.3. You can [download it now](http://selenium.googlecode.com/files/selenium-remote-control-1.0.3.zip).
+Hot off the heals of [1.0.2](../selenium-1-0-2-release-firefox-3-6-and-snow-leopard-support/),
+we’re releasing Selenium Remote Control 1.0.3. You can download it now (`http://selenium.googlecode.com/files/selenium-remote-control-1.0.3.zip`).
There is no functional difference between this version and 1.0.2, other than it is packaged up a little nicer and we’ve clarified the relationship between selenium-server and the client drivers. That is: we are **not** releasing new client drivers with future 1.x releases. The reason is that we locked down the API in version 1.0.1 and so there is no need to push out the same code each time. As such, when you download 1.0.3, you’ll see all the client drivers are labeled version 1.0.1, which is expected.
diff --git a/website_and_docs/content/blog/2010/selenium-2-0-beta-1-release.md b/website_and_docs/content/blog/2010/selenium-2-0-beta-1-release.md
index a60d08892385..9d04de34a195 100644
--- a/website_and_docs/content/blog/2010/selenium-2-0-beta-1-release.md
+++ b/website_and_docs/content/blog/2010/selenium-2-0-beta-1-release.md
@@ -12,12 +12,12 @@ description: >
We recently released the first of the betas for Selenium 2. It’s available for Java, C# and Ruby. If you’ve been holding off trying Selenium 2 because of the alpha label, then the biggest improvement you’ll see is with the new WebDriver APIs, but there’s a lot more!
* A promise of relatively stable APIs
-* For Firefox only right now, an API for dealing with [alerts, prompts and confirms](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebDriver.TargetLocator.html#alert()).
+* For Firefox only right now, an API for dealing with alerts, prompts and confirms (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebDriver.TargetLocator.html#alert()`).
* A brand new IE driver.
-* Better [selenium emulation](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebDriverBackedSelenium.html) when using webdriver
-* And a better implementation of webdriver’s API backed by the [traditional Selenium technology](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/SeleneseCommandExecutor.html).
+* Better selenium emulation (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebDriverBackedSelenium.html`) when using webdriver
+* And a better implementation of webdriver’s API backed by the traditional Selenium technology (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/SeleneseCommandExecutor.html`).
* Ubiquitous use of [Sizzle](http://sizzlejs.com/) for emulating CSS selectors where native CSS selectors aren’t supported
-* The [advanced user interactions](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/interactions/package-frame.html) API
+* The advanced user interactions (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/interactions/package-frame.html`) API
* An update to the AndroidDriver’s Android app.
Of course, we’d love this release to be completely bug free, but this is, after all, a beta, so there are some known issues:
@@ -30,7 +30,7 @@ You can download it from here:
[http://code.google.com/p/selenium/downloads/list](http://code.google.com/p/selenium/downloads/list)
-You can read the [javadocs](http://selenium.googlecode.com/svn/trunk/docs/api/java/index.html) and the [ruby docs](http://selenium.googlecode.com/svn/trunk/docs/api/rb/index.html).
+You can read the javadocs (`http://selenium.googlecode.com/svn/trunk/docs/api/java/index.html`) and the ruby docs (`http://selenium.googlecode.com/svn/trunk/docs/api/rb/index.html`).
An obvious question is “When will the beta end?” The short answer is when we’ve implemented the alerts and prompts and advanced user interactions APIs in all supported browsers. We expect there to be some flex in some APIs (removing deprecated methods, and within the advanced user interactions API) but what you have here is basically what you’re going to get when we hit 2.0 final. I have no idea how long this will take, but if you’re interested in helping out, [let us know!](http://groups.google.com/group/selenium-developers)
diff --git a/website_and_docs/content/blog/2010/selenium-2-0a5-released.md b/website_and_docs/content/blog/2010/selenium-2-0a5-released.md
index 40c12ec47370..5f14b00e3ae2 100644
--- a/website_and_docs/content/blog/2010/selenium-2-0a5-released.md
+++ b/website_and_docs/content/blog/2010/selenium-2-0a5-released.md
@@ -11,8 +11,8 @@ description: >
I’m pleased to announce the release of Selenium 2.0a5, available for [immediate download](http://code.google.com/p/selenium/downloads/list). This release brings a host of changes under the hood, and represents the efforts of many contributors. Highlights include:
-* New [interfaces](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/html5/package-frame.html) for dealing with HTML 5 elements.
-* An API for “[implicit waits](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebDriver.Timeouts.html)“: quietly waiting until an element is present before continuing with a test. You can use them like this: `driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS)`
+* New interfaces (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/html5/package-frame.html`) for dealing with HTML 5 elements.
+* An API for implicit waits (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebDriver.Timeouts.html`): quietly waiting until an element is present before continuing with a test. You can use them like this: `driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS)`
* A revamped Firefox driver.
* More shared code between Selenium and WebDriver.
* You can now pass firefox profiles to the remote webdriver (this includes extensions and proxy settings!)
diff --git a/website_and_docs/content/blog/2010/selenium-2-0a6-released.md b/website_and_docs/content/blog/2010/selenium-2-0a6-released.md
index 882cf6bcd4aa..680b9e675ea0 100644
--- a/website_and_docs/content/blog/2010/selenium-2-0a6-released.md
+++ b/website_and_docs/content/blog/2010/selenium-2-0a6-released.md
@@ -16,12 +16,12 @@ You’ll be pleased to hear that the Selenium 1.0 APIs have remained constant, s
* Android support: you can now [download the APK](http://code.google.com/p/selenium/downloads/detail?name=android-server-2.0a6.apk) and run webdriver tests using Android 1.6 to 2.2.
* Firefox 4 support.
* Experimental IE9 support
-* New APIs for dealing with [HTML5 elements](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/html5/package-summary.html) (best implemented, for now, by the mobile webdrivers)
+* New APIs for dealing with HTML5 elements (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/html5/package-summary.html`) (best implemented, for now, by the mobile webdrivers)
* A richer .Net API
* A move to [Sizzle](http://sizzlejs.com/) for locating elements using CSS in browsers that don’t have a native API for that.
* Far better support for running your existing Selenium RC tests using WebDriver, helping you make a managed migration to the newer APIs.
-There are also lots of nice touches for the more technically inclined, including the ability to re-use instances of [FirefoxProfiles](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/firefox/FirefoxProfile.html), better configurability when requesting a remote webdriver instance, better resource management and more shared code between the Selenium and WebDriver implementations.
+There are also lots of nice touches for the more technically inclined, including the ability to re-use instances of FirefoxProfiles (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/firefox/FirefoxProfile.html`), better configurability when requesting a remote webdriver instance, better resource management and more shared code between the Selenium and WebDriver implementations.
Thank you to everyone who has taken the time to report a bug on our [issue tracker](http://code.google.com/p/selenium/issues/list), or raised problems on one of our [mailing](https://groups.google.com/group/webdriver) [lists](http://www.google.com/url?q=http://groups.google.com/group/selenium-users), or shown up for some of the banter on the IRC channel: without your involvement, the project wouldn’t be half as much fun, and wouldn’t be as capable as it is. Thanks are also due to the development team, who have poured an enormous amount of work into this release (538 revisions in under 90 days, or about 6 check-ins each and every day)
diff --git a/website_and_docs/content/blog/2011/bug-bash.md b/website_and_docs/content/blog/2011/bug-bash.md
index 5324401313d1..916d8df7103b 100644
--- a/website_and_docs/content/blog/2011/bug-bash.md
+++ b/website_and_docs/content/blog/2011/bug-bash.md
@@ -9,7 +9,7 @@ description: >
When the Selenium and WebDriver projects merged, all those moons ago, we moved the infrastructure from something we hosted to Google Code.
---
-When the [Selenium](http://selenium.googlecode.com/) and WebDriver projects merged, all those moons ago, we moved the infrastructure from something we hosted to Google Code. One reason for doing this was to make it easier for people to file bugs and feature requests. And it looks like people have been filing a _lot_ of bugs and feature requests.
+When the Selenium (`http://selenium.googlecode.com/`) and WebDriver projects merged, all those moons ago, we moved the infrastructure from something we hosted to Google Code. One reason for doing this was to make it easier for people to file bugs and feature requests. And it looks like people have been filing a _lot_ of bugs and feature requests.
In the run up for the 2.0b2 release, we’ll be running a Bug Bash. This will run from the 24th January all the way to the end of the 30th January. The aim will be to focus on clearing our bug list as much as possible, so that beta2 will be the best release of Selenium yet. We will, of course, be recognizing people who squash the most bugs here on the blog, and we’re hunting out goodies to mail to the top bug bashers once the week is over.
diff --git a/website_and_docs/content/blog/2011/selenium-2-0b2-released.md b/website_and_docs/content/blog/2011/selenium-2-0b2-released.md
index 61c20e93710d..1c49e497a1ab 100644
--- a/website_and_docs/content/blog/2011/selenium-2-0b2-released.md
+++ b/website_and_docs/content/blog/2011/selenium-2-0b2-released.md
@@ -16,10 +16,10 @@ Between beta 1 and beta 2, we held a week-long Bug Bash, during which we closed
* A more stable, capable iPhone driver.
* Updated [Android driver](http://code.google.com/p/selenium/downloads/detail?name=selenium-server-2.0b2.zip&can=2&q=).
* Improved python bindings for Selenium WebDriver. The namespace is now “selenium.webdriver”
-* Added “[Selenium.getCssCount](http://selenium.googlecode.com/svn/trunk/docs/api/java/com/thoughtworks/selenium/Selenium.html#getCssCount(java.lang.String))” to mirror “Selenium.getXpathCount”
-* “[WebElement.getText()](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#getText())” performs more consistently across different browsers.
+* Added Selenium.getCssCount (`http://selenium.googlecode.com/svn/trunk/docs/api/java/com/thoughtworks/selenium/Selenium.html#getCssCount(java.lang.String)`) to mirror “Selenium.getXpathCount”
+* WebElement.getText() (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#getText()`) performs more consistently across different browsers.
* Mono users can use the .Net bindings
-* Continued to improve the [WebDriverBackedSelenium](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebDriverBackedSelenium.html). If you’re looking to migrate from Selenium 1 to Selenium 2, and want to take your time, this is a useful stepping stone.
+* Continued to improve the WebDriverBackedSelenium (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebDriverBackedSelenium.html`). If you’re looking to migrate from Selenium 1 to Selenium 2, and want to take your time, this is a useful stepping stone.
* Reworked the Advanced User Interactions APIs. The big change is that the WebDriver APIs no longer rely on classes from the AWT.
* .Net users now have more support classes, to make writing tests less tiresome.
* The remote webdriver makes better use of sockets, which improves stability and scalability on Windows.
diff --git a/website_and_docs/content/blog/2011/selenium-2-0b3-the-next-gen-browser-release.md b/website_and_docs/content/blog/2011/selenium-2-0b3-the-next-gen-browser-release.md
index a6d9093d17f5..461f1a4c147f 100644
--- a/website_and_docs/content/blog/2011/selenium-2-0b3-the-next-gen-browser-release.md
+++ b/website_and_docs/content/blog/2011/selenium-2-0b3-the-next-gen-browser-release.md
@@ -20,7 +20,7 @@ It’s been about 5 weeks since the release of beta 2, so we’re very pleased t
* IOptions.Speed
* Even more improvements to the Java webdriver-backed selenium
* We’ll document the migration path before 2.0b4 is out!
-* A significantly faster [Android Driver](http://selenium.googlecode.com/files/android-server-2.0b3.apk)
+* A significantly faster Android Driver (`http://selenium.googlecode.com/files/android-server-2.0b3.apk`)
As well as these changes, there’s also the regular clutch of bug fixes and tweaks. For the number crunchers, there were a total of [331 changes](http://code.google.com/p/selenium/source/list?num=331&start=11749) that landed in the 5 weeks since the last release, with the 5 most active contributors working on each of the different languages supported by Selenium.
diff --git a/website_and_docs/content/blog/2011/selenium-2-0rc1-the-grid-release.md b/website_and_docs/content/blog/2011/selenium-2-0rc1-the-grid-release.md
index 224c6d078dd2..648f4f87383b 100644
--- a/website_and_docs/content/blog/2011/selenium-2-0rc1-the-grid-release.md
+++ b/website_and_docs/content/blog/2011/selenium-2-0rc1-the-grid-release.md
@@ -18,9 +18,9 @@ Highlights:
* New [ChromeDriver](http://code.google.com/p/selenium/wiki/ChromeDriver): Following a complete rewrite of the ChromeDriver, Selenium 2 is now supported natively by the Chrome browser itself. In order to use this, you must download the [chromedriver executable](http://code.google.com/p/selenium/downloads/list) from the Selenium project site.
* [OperaDriver](http://www.opera.com/developer/tools/operadriver/) support: We’ve bundled the most excellent OperaDriver into the release to make it easy to get started testing with [Opera](http://www.opera.com/browser/).
* Support for native events in Firefox 4.
-* [Advanced User Interactions](http://code.google.com/p/selenium/wiki/AdvancedUserInteractions): An API that allows you to model complex user interactions, such as clicking on an element, holding the shift key, clicking on three more, and then dragging the four elements to a final destination. The entry point to this API is the [Actions](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/interactions/Actions.html) class.
+* [Advanced User Interactions](http://code.google.com/p/selenium/wiki/AdvancedUserInteractions): An API that allows you to model complex user interactions, such as clicking on an element, holding the shift key, clicking on three more, and then dragging the four elements to a final destination. The entry point to this API is the Actions (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/interactions/Actions.html`) class.
-We’ve also deleted all methods that were deprecated in 2.0b3 and have marked a number of methods and classes (notably [RenderedWebElement](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/RenderedWebElement.html) and [WebElement.getValue](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#getValue())) deprecated. These will be deleted in the next release.
+We’ve also deleted all methods that were deprecated in 2.0b3 and have marked a number of methods and classes (notably RenderedWebElement (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/RenderedWebElement.html`) and WebElement.getValue (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#getValue()`)) deprecated. These will be deleted in the next release.
Known issues:
diff --git a/website_and_docs/content/blog/2011/selenium-2-0rc3-the-next-ones-the-big-one-release.md b/website_and_docs/content/blog/2011/selenium-2-0rc3-the-next-ones-the-big-one-release.md
index fb5e19ea84a5..d6fee45b6d48 100644
--- a/website_and_docs/content/blog/2011/selenium-2-0rc3-the-next-ones-the-big-one-release.md
+++ b/website_and_docs/content/blog/2011/selenium-2-0rc3-the-next-ones-the-big-one-release.md
@@ -13,9 +13,9 @@ When we pushed the 2.0rc1 live, we really hoped that the next release would be 2
We think we’ve addressed many of the common issues, added some polish and added a host of bug fixes and minor changes, and we hope to hear your feedback! The following headline changes have been made in Selenium 2rc3:
-* The deprecated RenderedWebElement interface has now been removed. Most of the functionality has been moved to either [WebElement](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html) or to the [Actions](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/interactions/Actions.html) class.
-* The deprecated WebElement.getValue() method has been removed. Use [WebElement.getAttribute(“value”)](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#getAttribute(java.lang.String)) instead.
-* After some debate in the team, “[WebElement.setSelected](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#setSelected())” and “[WebElement.toggle](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#toggle())” have been deprecated. They will be removed in the final release.
+* The deprecated RenderedWebElement interface has now been removed. Most of the functionality has been moved to either WebElement (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html`) or to the Actions (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/interactions/Actions.html`) class.
+* The deprecated WebElement.getValue() method has been removed. Use WebElement.getAttribute(“value”) (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#getAttribute(java.lang.String)`) instead.
+* After some debate in the team, WebElement.setSelected (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#setSelected()`) and “[WebElement.toggle](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#toggle())” have been deprecated. They will be removed in the final release.
* Thanks to the hard work of Mozilla engineers, we now offer Firefox 5 support.
* The [Opera driver](http://www.opera.com/developer/tools/operadriver/), developed by the lovely chaps at Opera Software, is bundled with this release.
* Improvements in the way that mouse interactions are simulated, particularly when elements are outside the visible area of the page.
diff --git a/website_and_docs/content/blog/2011/selenium-2-1-released.md b/website_and_docs/content/blog/2011/selenium-2-1-released.md
index 8ecb219dbe2a..bfc5d81aa922 100644
--- a/website_and_docs/content/blog/2011/selenium-2-1-released.md
+++ b/website_and_docs/content/blog/2011/selenium-2-1-released.md
@@ -13,4 +13,4 @@ Now that Selenium 2 has [been released](http://seleniumhq.wordpress.com/2011/07/
[Selenium 2.1](http://seleniumhq.org/download/) is largely focused on improving Grid with a host of minor improvements including better tracking of “orphaned” browser instances. There are also some bug fixes in the Firefox and IE WebDrivers, particularly when dealing with elements that are _just_ off screen, and in making the Selenium RC emulation in the Java bindings more robust when confronted with pages that haven’t started loading.
-As you can see, this is a “bite size” release, but we’d love to know: would you prefer these small, swift releases or larger ones? Please answer in the comments, or on the [mailing list](groups.google.com/group/selenium-users)!
\ No newline at end of file
+As you can see, this is a “bite size” release, but we’d love to know: would you prefer these small, swift releases or larger ones? Please answer in the comments, or on the [mailing list](https://groups.google.com/group/selenium-users)!
\ No newline at end of file
diff --git a/website_and_docs/content/blog/2011/selenium-2-2-released.md b/website_and_docs/content/blog/2011/selenium-2-2-released.md
index ecc6f93716d5..47a682570442 100644
--- a/website_and_docs/content/blog/2011/selenium-2-2-released.md
+++ b/website_and_docs/content/blog/2011/selenium-2-2-released.md
@@ -12,6 +12,6 @@ description: >
The feedback from the last release was heard loud and clear: little and often it is!
-We’re proud to announce the release of [Selenium 2.2](http://seleniumhq.org/download/). What’s new this time? For many users, this is simply a bug fix release as there are no new major features. One thing you might appreciate is [better exceptions](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/IllegalLocatorException.html) being thrown when xpath searches return something other than a web element when using the WebDriver APIs, and we’re continuing to tweak the emulation of user events.
+We’re proud to announce the release of [Selenium 2.2](http://seleniumhq.org/download/). What’s new this time? For many users, this is simply a bug fix release as there are no new major features. One thing you might appreciate is better exceptions (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/IllegalLocatorException.html`) being thrown when xpath searches return something other than a web element when using the WebDriver APIs, and we’re continuing to tweak the emulation of user events.
If you’re a .Net user, there is now an official [NuGet package](http://nuget.org/List/Packages/Selenium.WebDriver), and if you’re a maven user then rest assured the release is heading to the central repo as quickly as we can manage.
diff --git a/website_and_docs/content/blog/2011/selenium-2-3-released.md b/website_and_docs/content/blog/2011/selenium-2-3-released.md
index cd72378f3010..ce303846e9ed 100644
--- a/website_and_docs/content/blog/2011/selenium-2-3-released.md
+++ b/website_and_docs/content/blog/2011/selenium-2-3-released.md
@@ -14,6 +14,6 @@ Continuing our new tradition of weekly releases, we’re very pleased to announc
* Better detection of clickable areas in Firefox.
* Merge of Google-contributed code into the underlying javascript libraries used by the drivers.
-We’ve also fixed bugs, one of which was being a nuisance for users of IBM’s JRE. The complete changelog can be found in the zipped downloads or in [our source tree](http://selenium.googlecode.com/svn/trunk/java/CHANGELOG).
+We’ve also fixed bugs, one of which was being a nuisance for users of IBM’s JRE. The complete changelog can be found in the zipped downloads or in our source tree (`http://selenium.googlecode.com/svn/trunk/java/CHANGELOG`).
If you’re a Chrome user, then it’s a great idea to head over to the [Chromium project’s download page](http://code.google.com/p/chromium/downloads/list) to pick up the executable used by the ChromeDriver. It’s recently been updated, and now includes support for handling alerts and prompts! Thanks, Google!
\ No newline at end of file
diff --git a/website_and_docs/content/blog/2011/selenium-2-6-released.md b/website_and_docs/content/blog/2011/selenium-2-6-released.md
index a53d87df55d2..042efb92ffcb 100644
--- a/website_and_docs/content/blog/2011/selenium-2-6-released.md
+++ b/website_and_docs/content/blog/2011/selenium-2-6-released.md
@@ -13,8 +13,8 @@ If you’ve been watching this blog carefully you’ll have noticed that the las
Selenium 2.6 introduces a raft of improvements and stability fixes. Kristian Rosenvold has been working wonders on [Grid 2.0](http://code.google.com/p/selenium/wiki/Grid2), addressing many reported issues and cleaning up the implementation. In the [finest tradition of the project](http://code.google.com/p/selenium/issues/detail?id=14), I now [owe him a dinner](http://code.google.com/p/selenium/issues/detail?id=2475) for his hard work. Thank you, Kristian!
-For those of you not using Grid, as well as the normal suite of bug fixes, Selenium 2.6 now supports all versions of Firefox from 3.0 up to 7. For those of you using Java, there is an [ExpectedConditions](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html) class that supplies many useful criteria when using the [Wait](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/Wait.html) and [WebDriverWait](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/WebDriverWait.html) classes. The packaged version of the [OperaDriver](http://www.opera.com/developer/tools/operadriver/) has also been bumped to 0.7.2, which works hand-in-hand with Opera 11.5 and above.
+For those of you not using Grid, as well as the normal suite of bug fixes, Selenium 2.6 now supports all versions of Firefox from 3.0 up to 7. For those of you using Java, there is an ExpectedConditions (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html) class that supplies many useful criteria when using the [Wait](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/Wait.html`) and WebDriverWait (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/support/ui/WebDriverWait.html`) classes. The packaged version of the [OperaDriver](http://www.opera.com/developer/tools/operadriver/) has also been bumped to 0.7.2, which works hand-in-hand with Opera 11.5 and above.
-We’ve also spent a considerable amount of time and effort working out the kinks in the [Advanced User Interactions API](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/interactions/package-frame.html). We’d love to hear how you’re using it, and what the gaps are that you can see. For more details about what’s changed, have a look at the [release notes](http://code.google.com/p/selenium/source/browse/trunk/java/CHANGELOG).
+We’ve also spent a considerable amount of time and effort working out the kinks in the Advanced User Interactions API (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/interactions/package-frame.html`). We’d love to hear how you’re using it, and what the gaps are that you can see. For more details about what’s changed, have a look at the [release notes](http://code.google.com/p/selenium/source/browse/trunk/java/CHANGELOG).
The release frequency has dropped recently, but we’re planning to head back to weekly releases from here on in. 2.7 is just around the corner!
\ No newline at end of file
diff --git a/website_and_docs/content/blog/2011/selenium-2-8-released.md b/website_and_docs/content/blog/2011/selenium-2-8-released.md
index b88ad39df2c1..e4f6142da655 100644
--- a/website_and_docs/content/blog/2011/selenium-2-8-released.md
+++ b/website_and_docs/content/blog/2011/selenium-2-8-released.md
@@ -10,7 +10,7 @@ description: >
---
-In keeping with our (roughly) weekly releases, Selenium 2.8 was [released today](http://seleniumhq.org/download/) (and on Maven too), [with a \*huge\* list of bug-fixes](https://code.google.com/p/selenium/source/browse/trunk/java/CHANGELOG)! As well as improved stability, if you’re using the Java API, this release adds the ability to upload files to a RemoteWebDriver server (see [RemoteWebDriver.setFileDetector](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/remote/RemoteWebDriver.html#setFileDetector(org.openqa.selenium.remote.FileDetector))).
+In keeping with our (roughly) weekly releases, Selenium 2.8 was [released today](http://seleniumhq.org/download/) (and on Maven too), [with a \*huge\* list of bug-fixes](https://code.google.com/p/selenium/source/browse/trunk/java/CHANGELOG)! As well as improved stability, if you’re using the Java API, this release adds the ability to upload files to a RemoteWebDriver server (see RemoteWebDriver.setFileDetector (`http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/remote/RemoteWebDriver.html#setFileDetector(org.openqa.selenium.remote.FileDetector)`)).
Particular thanks have to go out to our two newest committers, Alexei Barancev and Ajay Kemparaj, for the copious bug-fixes they’ve contributed!
diff --git a/website_and_docs/content/blog/2011/selenium-joins-the-software-freedom-conservancy.md b/website_and_docs/content/blog/2011/selenium-joins-the-software-freedom-conservancy.md
index a4089bed6fbc..d8b59654ba50 100644
--- a/website_and_docs/content/blog/2011/selenium-joins-the-software-freedom-conservancy.md
+++ b/website_and_docs/content/blog/2011/selenium-joins-the-software-freedom-conservancy.md
@@ -11,6 +11,6 @@ description: >
It doesn’t seem that long ago that we announced on the mailing list that the Selenium project planned to join the [Software Freedom Conservancy](http://sfconservancy.org/). I’m very pleased to announce that as of Friday, 21st January, our application was approved. We’re now under the aegis of the SFC.
-From most people’s perspective, this won’t make much difference: you’ll still be able to view the documentation and download the latest versions of Selenium from [Selenium HQ](http://seleniumhq.org). Development will continue to use [Google Code’s](http://selenium.googlecode.com/) code hosting and issue tracking. We are now, however, part of a formal non-profit organization, which means that a number of issues, such as how to handle revenues from adverts on our sites, become clearer and more transparent.
+From most people’s perspective, this won’t make much difference: you’ll still be able to view the documentation and download the latest versions of Selenium from [Selenium HQ](http://seleniumhq.org). Development will continue to use Google Code’s (`http://selenium.googlecode.com/`) code hosting and issue tracking. We are now, however, part of a formal non-profit organization, which means that a number of issues, such as how to handle revenues from adverts on our sites, become clearer and more transparent.
There are more details about what this means in the [SFC’s announcement](http://sfconservancy.org/news/2011/feb/02/selenium-joins/ "Selenium Joins the Software Freedom Conservancy") and their list of [membership benefits](http://sfconservancy.org/members/services/ "SFC Member Project Services"). The bottom line is that this is a major milestone in Selenium’s growth and ensures that as we continue to grow our user base and introduce new features and projects, we’ll have strong support and backing from a well-respected Open Source organization.
\ No newline at end of file
diff --git a/website_and_docs/content/blog/2012/a-smattering-of-selenium-84.md b/website_and_docs/content/blog/2012/a-smattering-of-selenium-84.md
index aea087732469..b3bf19f73273 100644
--- a/website_and_docs/content/blog/2012/a-smattering-of-selenium-84.md
+++ b/website_and_docs/content/blog/2012/a-smattering-of-selenium-84.md
@@ -23,4 +23,4 @@ What? Its only been 3 months since the last one. Sheesh.
* And lastly,
> When test automation is made a goal rather than a tool, quality suffers.
- > {{< tweet user="QualityFrog" id="195952852244512768" >}}
\ No newline at end of file
+ — Ben Simo @qualityfrog@mastodon.social (@QualityFrog)
\ No newline at end of file
diff --git a/website_and_docs/content/blog/2012/a-smattering-of-selenium-90.md b/website_and_docs/content/blog/2012/a-smattering-of-selenium-90.md
index 552e4ac626da..d39040547465 100644
--- a/website_and_docs/content/blog/2012/a-smattering-of-selenium-90.md
+++ b/website_and_docs/content/blog/2012/a-smattering-of-selenium-90.md
@@ -12,7 +12,7 @@ description: >
Eventually I’ll get back on the once-a-week schedule. But not today!
* [Falsehoods Programmers believe about Time](http://news.ycombinator.com/item?id=4128208). Time is hard; let’s go shopping!
-* Speaking of hard. [Concurrency is not Parallelism (it’s better)](http://concur.rspace.googlecode.com/hg/talk/concur.html) — also has gophers
+* Speaking of hard. Concurrency is not Parallelism (it’s better) (`http://concur.rspace.googlecode.com/hg/talk/concur.html`) — also has gophers
* Did Netflix actually [Open Source Army of Cloud Monkeys](http://www.wired.com/wiredenterprise/2012/04/netflix_monkeys/all/1)? I don’t see anything on their [github](https://github.com/netflix) account (and that is the trendy place to release stuff these days)
* Need I say more?
* I’ve used this trick a couple times [Python introspection – how to check current module / line of call from within function](http://stackoverflow.com/questions/5326539/python-introspection-how-to-check-current-module-line-of-call-from-within-fu)
diff --git a/website_and_docs/content/blog/2012/selenium-2-16-released-welcome-to-2012.md b/website_and_docs/content/blog/2012/selenium-2-16-released-welcome-to-2012.md
index df3beb6fe06d..3c8750a0f001 100644
--- a/website_and_docs/content/blog/2012/selenium-2-16-released-welcome-to-2012.md
+++ b/website_and_docs/content/blog/2012/selenium-2-16-released-welcome-to-2012.md
@@ -12,6 +12,6 @@ description: >
It’s been a while since we last blogged about a Selenium release. Since the release of 2.0, we’ve been attempting to give you a fresh and shiny Selenium release every week (though, in reality, we’re managing to get you one every 10 days on average). This allows you to pick the version that’s most suitable for you and your teams, but provides a route for quick feedback on how we’re doing. I think we’ve now ironed out a lot of the initial problems and bumps we ran into, so we are extremely proud to announce the [release of Selenium 2.16](http://seleniumhq.org/download/).
-If you’re unsure about what’s been happening since the last time we announced a release here, the best place to look is our [changelog](http://selenium.googlecode.com/svn/trunk/java/CHANGELOG). The most notable feature in 2.16 is better support for Firefox 9, but if it’s been a while since you’ve last updated, we’ve been beavering away on bug fixes and making existing features work as flawlessly as possible. Now’s a great time to update!
+If you’re unsure about what’s been happening since the last time we announced a release here, the best place to look is our changelog (`http://selenium.googlecode.com/svn/trunk/java/CHANGELOG`). The most notable feature in 2.16 is better support for Firefox 9, but if it’s been a while since you’ve last updated, we’ve been beavering away on bug fixes and making existing features work as flawlessly as possible. Now’s a great time to update!
One of the key tools we use for assessing whether it’s okay to push a release is our continuous build. This watches for each and every change made to the project’s source code, and runs an increasingly vast suite of tests to verify that nothing has broken. Our friends at [Sauce Labs](http://saucelabs.com/) have been extremely generous in providing support for this, and have worked closely with us to make the build as stable and quick as possible. Special kudos and thanks to them!
diff --git a/website_and_docs/content/blog/2013/selenium-hangout-2-recap.md b/website_and_docs/content/blog/2013/selenium-hangout-2-recap.md
index 0aa507accd18..912a809b8964 100644
--- a/website_and_docs/content/blog/2013/selenium-hangout-2-recap.md
+++ b/website_and_docs/content/blog/2013/selenium-hangout-2-recap.md
@@ -10,7 +10,7 @@ description: >
---
-This is a recap from the most recent Selenium Hangout (a.k.a. [The World’s Best Selenium Meetup](seleniumhq.wordpress.com/2013/08/09/the-worlds-best-selenium-meetup/)). For info on future meetups, [follow them on Twitter](https://twitter.com/SeleniumHangout).
+This is a recap from the most recent Selenium Hangout (a.k.a. [The World’s Best Selenium Meetup](../the-worlds-best-selenium-meetup/)). For info on future meetups, [follow them on Twitter](https://twitter.com/SeleniumHangout).
Thanks to all who attended and tuned into the last Selenium Hangout where we talked about Selenium 3! Below is a write-up of the meetup, the video, and relevant links we mentioned. And to access all meetup videos you can go [here](http://bit.ly/sehovideos).
diff --git a/website_and_docs/content/blog/2013/source-control.md b/website_and_docs/content/blog/2013/source-control.md
index aafda2e8376b..8544eef09c37 100644
--- a/website_and_docs/content/blog/2013/source-control.md
+++ b/website_and_docs/content/blog/2013/source-control.md
@@ -14,5 +14,5 @@ This short technical note is to announce that the Selenium project is now using
The move has been a long time in the making, and it’s largely thanks to the efforts of [Kristian Rosenvold](https://twitter.com/krosenvold) that we’ve been able to do the migration and retain the project history. The project owes him a huge thank you! We’re in the process of migrating the last bits and pieces (none of which are user facing), so there may be some last minute turbulence as we settle everything down.
-Although the canonical source will be on [Google Code](http://selenium.googlecode.com/), we’re working on setting up a github mirror. We’ll announce the location of that once it’s set up.
+Although the canonical source will be on Google Code (`http://selenium.googlecode.com/`), we’re working on setting up a github mirror. We’ll announce the location of that once it’s set up.
diff --git a/website_and_docs/content/blog/2020/moving-to-trunk-development.md b/website_and_docs/content/blog/2020/moving-to-trunk-development.md
index 403059e4e273..27c65789a9b5 100644
--- a/website_and_docs/content/blog/2020/moving-to-trunk-development.md
+++ b/website_and_docs/content/blog/2020/moving-to-trunk-development.md
@@ -2,7 +2,7 @@
title: "Moving to Trunk"
linkTitle: "Moving to Trunk"
date: 2020-07-01
-tags: ["decision"]
+tags: ["decisions"]
categories: ["technical"]
author: David Burns ([@AutomatedTester](https://twitter.com/AutomatedTester))
description: >
diff --git a/website_and_docs/content/blog/2021/a-tour-of-4-new-commands.md b/website_and_docs/content/blog/2021/a-tour-of-4-new-commands.md
index a6c929e3dce9..3f5419a3c5fb 100644
--- a/website_and_docs/content/blog/2021/a-tour-of-4-new-commands.md
+++ b/website_and_docs/content/blog/2021/a-tour-of-4-new-commands.md
@@ -79,4 +79,4 @@ properties for configuration.
[docs]: /documentation/webdriver/
-[hub and node]: /documentation/grid/setting_up_your_own_grid/#hub-and-nodes
+[hub and node]: /documentation/grid/setting_up_your_own_grid/#hub-and-node
diff --git a/website_and_docs/content/blog/2021/announcing-selenium-4.md b/website_and_docs/content/blog/2021/announcing-selenium-4.md
index 1c09b06e127e..9747b6f3f9ef 100644
--- a/website_and_docs/content/blog/2021/announcing-selenium-4.md
+++ b/website_and_docs/content/blog/2021/announcing-selenium-4.md
@@ -98,7 +98,7 @@ our users.
**We hope you enjoy Selenium 4, and we can’t wait to see what you do
with it!**
-[auth]: /documentation/webdriver/bidi_apis/#register-basic-auth
+[auth]: /documentation/webdriver/bidi/cdp/network/#basic-authentication
[browserstack]: https://www.browserstack.com/
[chromium]: https://www.chromium.org/Home
[docker]: https://hub.docker.com/u/selenium
@@ -106,8 +106,8 @@ with it!**
[firefox]: https://www.mozilla.org/en-GB/firefox/new/
[github]: https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.0.0
[grid]: /documentation/grid/
-[js errors]: /documentation/webdriver/bidi_apis/#listen-to-js-exceptions
-[mutation]: /documentation/webdriver/bidi_apis/#mutation-observation
+[js errors]: /documentation/webdriver/bidi/cdp/bidi_api/#javascript-exceptions
+[mutation]: /documentation/webdriver/bidi/cdp/bidi_api/#mutation-observation
[otel]: https://opentelemetry.io
[pr]: https://github.com/SeleniumHQ/selenium/pulls
[relative locators]: /documentation/webdriver/locating_elements/#relative-locators
diff --git a/website_and_docs/content/blog/2021/selenium-4-beta-1.md b/website_and_docs/content/blog/2021/selenium-4-beta-1.md
index 70352bf67f0e..32f5bba08b16 100644
--- a/website_and_docs/content/blog/2021/selenium-4-beta-1.md
+++ b/website_and_docs/content/blog/2021/selenium-4-beta-1.md
@@ -72,4 +72,4 @@ directly from the [Selenium site][download].
[graphql]: https://github.com/SeleniumHQ/selenium/blob/selenium-4.0.0-beta-1/java/server/src/org/openqa/selenium/grid/graphql/selenium-grid-schema.graphqls
[OpenTelemetry]: https://opentelemetry.io
[se4]: /blog/2020/what-is-coming-in-selenium-4-new-tricks/
-[tlc]: /structure/#tlc
+[tlc]: /project/structure/#tlc
diff --git a/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/bellatrix-projects-structure.png b/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/bellatrix-projects-structure.png
index beecbe014f05..7807f691441d 100644
Binary files a/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/bellatrix-projects-structure.png and b/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/bellatrix-projects-structure.png differ
diff --git a/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/grid-html-example.png b/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/grid-html-example.png
index 66ea78744bae..64deb7c66a10 100644
Binary files a/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/grid-html-example.png and b/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/grid-html-example.png differ
diff --git a/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/login-form.png b/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/login-form.png
index 2d984a82de7c..163a028d71e9 100644
Binary files a/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/login-form.png and b/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/login-form.png differ
diff --git a/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/open_the_sln.png b/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/open_the_sln.png
index 7dcd0b53f557..4789342a3d84 100644
Binary files a/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/open_the_sln.png and b/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/open_the_sln.png differ
diff --git a/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/qtest-dynamic-test-case.png b/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/qtest-dynamic-test-case.png
index 009467758ec9..de49c46132a0 100644
Binary files a/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/qtest-dynamic-test-case.png and b/website_and_docs/content/blog/2022/bellatrix-test-automation-framework/qtest-dynamic-test-case.png differ
diff --git a/website_and_docs/content/blog/2022/end-of-year-review.md b/website_and_docs/content/blog/2022/end-of-year-review.md
new file mode 100644
index 000000000000..1a84dace216b
--- /dev/null
+++ b/website_and_docs/content/blog/2022/end-of-year-review.md
@@ -0,0 +1,61 @@
+---
+title: "Year End Review 2022"
+linkTitle: "Year End Review 2022"
+date: 2022-12-23
+tags: ["selenium"]
+categories: ["general"]
+author: Corina Pip ([@imalittletester](https://twitter.com/imalittletester))
+description: >
+ Looking back at our achievements from 2022
+---
+
+It was an amazing year here at the Selenium project, and we wanted to remind you of some of the great things we accomplished.
+
+In terms of releases, we continued to build on top of Selenium 4 which was launched in October 2021.
+This year we published
+[v4.2](https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.2.0),
+[v4.3](https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.3.0),
+[v4.4](https://www.selenium.dev/blog/2022/selenium-4-4-0-released/),
+[v4.5](https://www.selenium.dev/blog/2022/selenium-4-5-0-released/),
+[v4.6](https://www.selenium.dev/blog/2022/selenium-4-6-0-released/), and
+[v4.7](https://www.selenium.dev/blog/2022/selenium-4-7-0-released/).
+These releases included improvements, bug fixes, removal of deprecated functionality, improved error handling,
+updates of the underlying libraries, support for the latest Chrome DevTools
+versions to keep you in sync with new browser releases, but also new features.
+
+We introduced the first (beta) version of the embedded
+[Selenium Manager](https://www.selenium.dev/blog/2022/introducing-selenium-manager/).
+The purpose of this feature is to
+help you manage your driver binaries without having to manually update them yourself each time a new version is released.
+We also introduced observability in the Docker-Selenium images.
+Another major new feature is native support for
+[scrolling](https://www.selenium.dev/documentation/webdriver/actions_api/wheel/) in the Actions API.
+But these are only some of the highlights of what we released. To get the details for each
+language we support, you can check out their corresponding Changelog pages: [Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG),
+[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES), [Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES),
+[Javascript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md),
+[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG).
+
+In terms of events and gatherings, in July our Selenium India Conference took place, this time online. It kicked off with
+an 8 talk pre-conference event, namely Selenium Lite. We then had a full day of workshops, followed by 2 days of conference.
+We had over 50 speakers and over 800 participants from around the world. The talks focused on Selenium, the Selenium ecosystem,
+automation, methodologies and best practices. In case you missed some of these talks, you can still watch them
+[here](https://www.youtube.com/playlist?list=PL9Z-JgiTsOYRfoG_mcRBlTUIFPIknhQ6S).
+
+We also held 2 test automation summits: one in
+[San Francisco](https://www.eventbrite.com/e/test-automation-summit-san-francisco-tickets-484039263467) and one in
+[Berlin]( https://www.selenium.dev/blog/2022/test-automation-summit/). During these workshops the participants,
+together with some of the maintainers of frameworks from the Selenium ecosystem, built their Selenium based projects,
+added tests, new features and fixed bugs. During the first summit the participants focused on the
+[BiDi protocol](https://w3c.github.io/webdriver-bidi/), while during the second one the focus was on
+[Appium](https://appium.io/) and mobile automation.
+
+We are kicking off next year with a few surprises.
+The [Selenium Conference in Chicago](https://www.selenium.dev/blog/2022/seleniumconf-chicago-2023-update/)
+just announced the [Speaker Lineup](https://seleniumconf.com/). Stay tuned for further details!
+
+**Many thanks to [everyone who has contributed to the Selenium project](https://www.selenium.dev/project/structure) for all their hard work this year!**
+
+And special thanks to all of you who are using, following and supporting the Selenium project.
+
+From everyone here at SeleniumHQ, may you have the best holidays and an amazing new year. See you in 2023!
diff --git a/website_and_docs/content/blog/2022/introducing-selenium-manager.md b/website_and_docs/content/blog/2022/introducing-selenium-manager.md
index 258e947b9b61..615f0504b2a4 100644
--- a/website_and_docs/content/blog/2022/introducing-selenium-manager.md
+++ b/website_and_docs/content/blog/2022/introducing-selenium-manager.md
@@ -49,12 +49,12 @@ ecosystem emerged. Such as: [WebDriverManager](https://bonigarcia.dev/webdriverm
[WebDriverManager.Net](https://github.com/rosolko/WebDriverManager.Net) for C#.
All these projects served as an
-[inspiration]({{< ref "../../documentation/webdriver/getting_started/install_drivers.md#1-driver-management-software" >}})
+[inspiration]({{< ref "../../documentation/webdriver/troubleshooting/errors/driver_location.md#driver-management-libraries" >}})
and as a clear sign that the community needed this feature to be
built-in Selenium. In addition, a [survey](https://www.selenium.dev/blog/2021/selenium-survey-results/)
done on January 2021 showed that most Selenium users want to get rid of the driver management
problem. Plus, the fact that the
-[driver installation](https://www.selenium.dev/documentation/webdriver/getting_started/install_drivers/) page is
+[driver installation](https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location/) page is
by far the most visited one in the Selenium documentation.
### Selenium Manager in detail
diff --git a/website_and_docs/content/blog/2022/legacy-protocol-support.md b/website_and_docs/content/blog/2022/legacy-protocol-support.md
index debc2fed2af8..83f8fcbc4b0b 100644
--- a/website_and_docs/content/blog/2022/legacy-protocol-support.md
+++ b/website_and_docs/content/blog/2022/legacy-protocol-support.md
@@ -6,7 +6,7 @@ tags: ["webdriver", "java", "grid"]
categories: ["general"]
author: Titus Fortner ([@titusfortner](https://twitter.com/titusfortner))
description: >
- Selenium 4.3 will only support W3C compliant WebDriver syntax
+ Selenium 4.9 will only support W3C compliant WebDriver syntax
---
The Selenium team prides itself on how seriously it takes backwards compatibility.
@@ -17,13 +17,13 @@ and we need to be able to properly meet the needs of the vast majority of our us
TL/DR:
* Support for the legacy [JSON Wire Protocol](https://www.selenium.dev/documentation/legacy/json_wire_protocol/)
-will be removed from Java Selenium 4.3 (other languages have already removed this support)
-* Protocol conversions will stop in Selenium 4.3 Grid
+will be removed from Java Selenium 4.9 (other languages have already removed this support)
+* Protocol conversions will stop in Selenium 4.9 Grid
* You can ensure your sessions are W3C compliant by using
[Browser Options classes](https://www.selenium.dev/documentation/webdriver/getting_started/upgrade_to_selenium_4/#after)
instead of the deprecated Desired Capabilities classes (and avoid using "set capability" methods directly)
* If you rely on the current protocol conversion functionality, and it works for you,
-you can continue to use it with Selenium Grid 4.2
+you can continue to use it with Selenium Grid 4.8
By far the biggest challenge in the past seven years of Selenium development has been
transitioning the underlying implementation from the legacy [JSON Wire Protocol](https://www.selenium.dev/documentation/legacy/json_wire_protocol/)
@@ -46,7 +46,7 @@ Because the code must make some assumptions and guesses for this to work, there
For Selenium 4.0, the Ruby, JavaScript, and .NET bindings, each removed the handshake code,
so no legacy commands are used. Due to some issues that couldn't be resolved before freezing the 3.x code,
-Python is waiting until Selenium 4.3 to remove its handshake code.
+Python is waiting until Selenium 4.9 to remove its handshake code.
The Selenium team intended to continue to support both protocols in the
Grid and Java bindings throughout the 4.x releases, but running test suites written for Selenium 2
on the Selenium 4 Grid resulted in a larger than expected number of failures.
diff --git a/website_and_docs/content/blog/2022/scaling-grid-with-keda.md b/website_and_docs/content/blog/2022/scaling-grid-with-keda.md
index 5a825b14e82f..ee3b20eef140 100644
--- a/website_and_docs/content/blog/2022/scaling-grid-with-keda.md
+++ b/website_and_docs/content/blog/2022/scaling-grid-with-keda.md
@@ -49,6 +49,7 @@ triggers:
metadata:
url: 'http://selenium-grid-url-or-ip:4444/graphql'
browserName: 'chrome'
+ platformName: 'Linux'
```
All of this gets saved as a Scaled-Object like so:
@@ -69,8 +70,17 @@ spec:
triggers:
- type: selenium-grid
metadata:
- url: 'https://selenium-grid-url-or-ip:4444/graphql'
+ url: 'http://selenium-grid-url-or-ip:4444/graphql'
browserName: 'chrome'
+ platformName: 'Linux'
+```
+
+Send the request to Grid, for example in Python client:
+
+```python
+options = ChromeOptions()
+options.set_capability('platformName', 'Linux')
+driver = webdriver.Remote(options=options, command_executor='http://selenium-grid-url-or-ip:4444/wd/hub')
```
As an added bonus KEDA allows us to scale our deployments down to
diff --git a/website_and_docs/content/blog/2022/selenium-4-7-0-released.md b/website_and_docs/content/blog/2022/selenium-4-7-0-released.md
new file mode 100644
index 000000000000..188f1065ee03
--- /dev/null
+++ b/website_and_docs/content/blog/2022/selenium-4-7-0-released.md
@@ -0,0 +1,68 @@
+---
+title: "Selenium 4.7.0 Released!"
+linkTitle: "Selenium 4.7.0 Released!"
+date: 2022-12-02
+tags: ["selenium"]
+categories: ["releases"]
+author: Titus Fortner ([@titusfortner](https://twitter.com/titusfortner))
+description: >
+ Today we're happy to announce that Selenium 4.7.0 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.7.0 for Java,
+.NET, and Javascript as well as the Grid and Internet Explorer Driver;
+for Ruby use 4.7.1, and Python 4.7.2. Links to everything can be found on our
+[downloads page][downloads].
+
+### Highlights
+
+ * Chrome DevTools support is now: v106, v107, and v108 (Firefox still uses v85 for all versions)
+ * [Selenium Manager](/blog/2022/introducing-selenium-manager/) now supports IE Driver & has improved error logging.
+ * Using Edge in IE Mode no longer requires ignoring zoom levels.
+ * We're continuing to remove [Legacy Protocol](https://www.selenium.dev/blog/2022/legacy-protocol-support/) classes in Java and Grid.
+ * Java adds WebDriver-BiDi support for Logging.
+ * .NET includes an explicit target for net6.0 framework.
+ * Ruby is now publishing [nightly gems](https://github.com/SeleniumHQ/selenium/packages/)
+ * Plus various language specific bug fixes; see the full list of changes in the [Changelogs][bindings]
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+
+
+
+{{< gh-user "https://api.github.com/users/cclauss" >}}
+{{< gh-user "https://api.github.com/users/Dor-bl" >}}
+{{< gh-user "https://api.github.com/users/fenilgmehta" >}}
+{{< gh-user "https://api.github.com/users/jaredwebber" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/mdmintz" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/TamsilAmani" >}}
+
+
+
+
+**Thanks as well to all the [Selenium Team Members][team] who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/jimevans" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/symonk" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+
+
+
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
diff --git a/website_and_docs/content/blog/2022/seleniumconf-chicago-2023-update.md b/website_and_docs/content/blog/2022/seleniumconf-chicago-2023-update.md
new file mode 100644
index 000000000000..eec1fe6a1db2
--- /dev/null
+++ b/website_and_docs/content/blog/2022/seleniumconf-chicago-2023-update.md
@@ -0,0 +1,63 @@
+---
+title: "SeleniumConf Chicago 2023 Speakers Announced"
+linkTitle: "SeleniumConf Chicago 2023 Speakers Announced"
+date: 2022-12-22
+tags: ["conference", "meetup", "workshop"]
+categories: ["conference"]
+author: Bill McGee
+description: >
+ The SeleniumConf Chicago 2023 Program Review Committee and conference organizers are finalizing the agenda, but in advance of this here is what you can look forward to.
+---
+
+As many of you know, the [Selenium Conference](https://seleniumconf.com) returns to an in-person event next March 28-30, 2023 in Chicago, IL. The Program Chairs & Committee, as well as the Extended Program Review Committee, have been hard at work putting together an outstanding lineup of speakers and workshops, and we're close to releasing the full agenda and a completely re-branded conference website - stay tuned! In the meantime, we wanted you to be among the first to know who will be presenting, announce a new, additional pre-conference workshop, and provide you with some important updates. Here we go!
+
+### Keynote Sessions
+
+There will be four plenary keynote presentations across the 2-day conference. Selenium Core Committer **Diego Molina** will open the conference on Wednesday with the "Selenium: State of the Union" presentation, followed by Quality & Leadership Coach **Erika Chestnut** presenting ["Bigger Than The Box"](https://seleniumconf.com/agenda/#bigger-than-the-box), where she shares how she has crossed the aisles to elevate and expand the role quality in the organizations that she has worked for. Day 2 kicks off with **Mark Winteringham**, Ministry of Testing OpsBoss, presenting ["What Exactly Do You Do In Test Automation"](https://seleniumconf.com/agenda/#what-exactly-do-you-do-in-test-automation). The final keynote session will be a **Q&A with the Selenium Committers** panel.
+
+### Confirmed Track Session Presenters
+
+Following the opening keynote presentations, there will be two separate track sessions running in parallel. Here are the confirmed speakers to date and the presentations they will be giving:
+
+* **Anand Bagmar**, Software Quality Evangelist, Essence of Testing - [Metrics to Make Your Quality Practices Effective](https://seleniumconf.com/agenda/#metrics-to-make-your-quality-practices-effective)
+* **Andrew Knight**, Developer Advocate, Applitools - [Managing the Test Data Nightmare](https://seleniumconf.com/agenda/#managing-the-test-data-nightmare)
+* **Benjamin Bischoff**, Test Automation Engineer, Trivago N.V. - [Identifying Code Smells](https://seleniumconf.com/agenda/#identifying-code-smells)
+* **Bijoya Chatterjee**, Director, Software QE, Sony Playstation - [Using A Proxy To Create A Full Stack Automation Suite](https://seleniumconf.com/agenda/#using-a-proxy-to-create-a-full-stack-automation-suite)
+* **Boni García**, Staff Software Engineer, Sauce Labs - [Selenium Manager: Automated Driver & Browser Management for Selenium WebDriver](https://seleniumconf.com/agenda/#selenium-manager-automated-driver-amp-browser-management-for-selenium-webdriver)
+* **Christian Bromann**, WebdriverIO Project Lead | Software Engineer, Stateful - [Component Testing with WebdriverIO](https://seleniumconf.com/agenda/#component-testing-with-webdriverio)
+* **Corina-Adina Pip**, QA Lead , Deloitte Digital - [What’s New and Good in Selenium](https://seleniumconf.com/agenda/#whats-new-and-good-in-selenium)
+* **David Burns**, Selenium Core Committer | Head of Open Source Program Office, BrowserStack - [Why Browser Engines ≠ Real Desktop Browsers ≠ Mobile Browsers](https://seleniumconf.com/agenda/#why-browser-engines-real-desktop-browsers-mobile-browsers)
+* **Dmitriy Gumeniuk**, Head of Testing Products, EPAM Systems - [Building Quality Gates and Automated Decisions in CI/CD Pipelines. Lessons Learned with 200,000 Regressions.](https://seleniumconf.com/agenda/#building-quality-gates-and-automated-decisions-in-cicd-pipelines-lessons-learned-with-200000-regressions)
+* **Eric Frankenberger**, DevOps Engineer, Genesys Telecommunications - [Deploying a Large Selenium Grid with Video Recording and Autoscaling When Docker Swarm & Kubernetes Are Not an Option](https://seleniumconf.com/agenda/#deploying-a-large-selenium-grid-with-video-recording-and-autoscaling-when-docker-swarm-amp-kubernetes-are-not-an-option)
+* **Ibironke Yekinni**, Sr. Quality Assurance Engineer, Testify Limited - [Solving Unemployment in Africa with Testing and Selenium](https://seleniumconf.com/agenda/#solving-unemployment-in-africa-with-testing-and-selenium)
+* **Jan Molak**, SerenityJS Project Lead, SmartCode Ltd - [Creating Faster and More Reliable Web Tests with Blended Testing](https://seleniumconf.com/agenda/#creating-faster-and-more-reliable-web-tests-with-blended-testing)
+* **Jason Huggins**, Jason Huggins, Creator of Selenium | Founder, Tapster - [Testing With Real Robots Over the Internet: What Could Go Wrong?](https://seleniumconf.com/agenda/#testing-with-real-robots-over-the-internet-what-could-go-wrong)
+* **Josh Grant**, Developer Advocate, Code Intelligence - [Selenium in the Clouds: Using Cloud Service Providers with Selenium WebDriver](https://seleniumconf.com/agenda/#selenium-in-the-clouds-using-cloud-service-providers-with-selenium-webdriver)
+* **Liza Ivanova**, Principal Software Engineer, Salesforce - [Declarative UTAM Page Objects](https://seleniumconf.com/agenda/#declarative-utam-page-objects)
+* **Maksim Sadym**, Software Engineer, Google - [WebDriver BiDi + Selenium. Why and How?](https://seleniumconf.com/agenda/#webdriver-bidi-selenium-why-and-how)
+* **Michael Mintz**, Creator of SeleniumBase | Director of Automation, iboss - [Python Selenium: Fundamentals to Frameworks (with SeleniumBase)](https://seleniumconf.com/agenda/#python-selenium-fundamentals-to-frameworks-with-seleniumbase)
+* **Robin Gupta**, Associate Vice President, Provar - [Do You Use Selenium Only for Test Automation?](https://seleniumconf.com/agenda/#do-you-use-selenium-only-for-test-automation)
+* **Roger Abelenda**, CTO, Abstracta - [Evolve Your Selenium Scripts Into Performance Scripts](https://seleniumconf.com/agenda/#evolve-your-selenium-scripts-into-performance-scripts)
+* **Shi Ling Tai**, CEO, UI-licious - [UNTestable: It's Just Pressing a Button, How Hard Could it Be?](https://seleniumconf.com/agenda/#untestable-its-just-pressing-a-button-how-hard-could-it-be)
+
+### New Workshop Added - State Model-Based Testing Using Selenium
+
+We're pleased to announce a new addition to the optional pre-conference workshop day, [State Model-Based Testing Using Selenium](https://seleniumconf.com/agenda/#state-model-based-testing-using-selenium), led by **Ru Cindrea**, Managing Partner and Senior Test Consultant, Altom Consulting & **Alex Rotaru**, Co-owner, Altom Consulting. If you haven't yet heard of State Model-Based Testing (SMBT) is a testing technique that allows testers to visualize their applications and to generate and automate test flows by using different models of the application under test, thus obtaining a large number of test scenarios. When certain paths of the application are changed, the benefit of using SMBT is that you will only have to modify the states and transitions that apply to that change.
+
+This workshop rounds out the core pre-conference workshop offerings, which include a [Selenium Deep Dive](https://seleniumconf.com/agenda/#selenium-deep-dive) session led by Selenium Project Core Committer, **Titus Fortner**; [Driving Observability with Selenium Grid 4](https://seleniumconf.com/agenda/#driving-observability-with-selenium-grid-4), led by **Manoj Kumar**, VP, Developer Relations at LambdaTest and Selenium Project Leadership Committee member, and [Advanced Appium 2.0](https://seleniumconf.com/agenda/#advanced-appium-20), with **Srini Sekar** & **Sai Krishna**, Lead Consultants at Thoughtworks and long-time Appium workshop instructors.
+
+Workshops are one of the most popular offerings at any SeleniumConf and because class sizes are limited they invariably sell-out. Early Bird ticket sales have closed, but you can still find openings for any of these awesome day-long sessions. [Register today](https://seleniumconf.com/register/) and make sure you get a seat at the Conference + Workshop session of your choice.
+
+### Wait, Wait - Where is the Fix a Bug, Become a Committer Workshop?
+
+If you're a long-time follower of past Selenium Conferences, or just happened to attend the July, 2022 virtual SeleniumConf, you may be familiar with the long-standing workshop offering ["Fix a Bug, Become a Committer"](https://seleniumconf.com/workshops/#fix-a-bug-become-a-committer). This workshop is a bit different in that the goal is to both enhance your own Selenium experience while offering the ability to contribute back to the project. With this, it's not a learning session, per se, but more of a doing session, and we thought we'd take a different approach this time and make it available at no-charge (other than buying a conference ticket) to a limited number of applicants. If you are familiar with Selenium and want to extend your conference experience an extra day we encourage you to [apply](https://forms.gle/3iJf81w1x66a2veg8). Scholarship applicants (more below) are also welcome to apply.
+
+### Announcing the SeleniumConf Chicago 2023 Scholarship Program
+
+The mission of the Selenium project is to educate the QA and developer communities about Selenium, the importance of quality assurance, and automated testing in general. Both the Selenium project and the SeleniumConf organizers very much want everyone to be able to attend the conference, but we know that not everyone’s personal or financial circumstances make this possible - so, we're setting aside a number of free tickets, and covering travel expenses, as part of our SeleniumConf Chicago 2023 scholarship program.
+
+The program aims to support individuals from underrepresented groups in tech and those facing economic or social hardship so they have access to SeConf content and networking opportunities. If you’re an aspiring software professional looking to use Selenium, or a current one without access to the funds to buy your ticket, you should apply. We will award tickets to people who can show that the knowledge gained will be useful for their ongoing career. The application form will be posted in January, 2023.
+
+### Ready to Go, But Your Manager Needs More Convincing?
+
+You've now seen the keynotes, the current roster of speakers, and the awesome hands-on workshop descriptions, but you still need more to convince your manager? Download this ["Convince Your Boss"](https://seleniumconf.com/wp-content/uploads/2022/12/selenium-conf-chicago-2023-convince-your-boss-template.docx) email template and tailor it to your specific rationale using the details you've gleaned from this post. We'd really like to see you next March in Chicago - so [register here](https://seleniumconf.com/register/)!
diff --git a/website_and_docs/content/blog/2022/using-java11-httpclient.md b/website_and_docs/content/blog/2022/using-java11-httpclient.md
index bd34e14be4fc..4e43a9f46a56 100644
--- a/website_and_docs/content/blog/2022/using-java11-httpclient.md
+++ b/website_and_docs/content/blog/2022/using-java11-httpclient.md
@@ -6,7 +6,7 @@ tags: ["selenium"]
categories: ["releases"]
author: Puja Jagani ([@pujagani](https://twitter.com/pujagani))
description: >
- We’re happy to share that Selenium 4.5.0 supports Java 11+ HttpClient
+ We’re happy to share that starting from Selenium 4.5.0, a Java 11+ HttpClient is supported
---
### Current HTTP client used in Selenium
@@ -34,13 +34,20 @@ The Selenium server runs great on Java 11+ already, so while we plan to make tha
version in a future release, for now we plan to introduce optional components that can take advantage
of modern Java releases.
-So as a first step towards this move, Selenium 4.5.0 client supports the Java 11+ HTTP client.
+So as a first step towards this move, the Java 11+ HTTP client from Selenium 4.5.0 and above.
-### Using Java 11+ HTTP Client in Selenium 4.5.0
+{{% alert title="Attention!" color="warning" %}}
+If you are using Selenium 4.14 or higher, the
+Java 11 HTTP client is used by default. You do not
+need to make any changes to your setup. Feel free
+to skip the following section.
+{{% /alert %}}
+
+### Using Java 11+ HTTP Client in Selenium
#### Prerequisites:
* Project configured to use Java 11+
-* Using Selenium 4.5.0
+* Using Selenium 4.5.0 as a minumum version, find the latest in the [downloads](/downloads) page.
#### Integrating the Java 11+ client
Java 11+ HTTP client sits in its own artifact. It can be imported into projects that use Java 11+.
@@ -62,6 +69,10 @@ Add the follow dependencies to your pom.xml
```
+**NOTE**: In the dependencies above version `4.5.0` is shown, however we recommend you to check the
+[downloads](/downloads) page to use the latest version released. Make sure the versions used are
+matching.
+
##### Set the system property
Set the system property to indicate that Java 11+ Http client needs to be used.
@@ -94,6 +105,11 @@ java -Dwebdriver.http.factory=jdk-http-client -jar selenium-server-4.5.0.jar —
If you are using the Hub/Node(s) mode or the Distributed mode, setting the `-Dwebdriver.http.factory=jdk-http-client` and `—-ext` flags
needs to be done for each one of the components.
+**NOTE**: In the dependencies above version `4.5.0` is shown, however we recommend you to check the
+[downloads](/downloads) page to use the latest version released. Make sure the versions used are
+matching.
+
+
Huge thanks to Simon Stewart ([@shs96c](https://twitter.com/shs96c)) for making this possible with his contribution!
diff --git a/website_and_docs/content/blog/2023/_index.md b/website_and_docs/content/blog/2023/_index.md
new file mode 100644
index 000000000000..e99c2698943f
--- /dev/null
+++ b/website_and_docs/content/blog/2023/_index.md
@@ -0,0 +1,8 @@
+
+---
+title: "Blog Posts - 2023"
+linkTitle: "2023"
+weight: 87
+---
+
+
diff --git a/website_and_docs/content/blog/2023/building-selenium.md b/website_and_docs/content/blog/2023/building-selenium.md
new file mode 100644
index 000000000000..5d89fc345f78
--- /dev/null
+++ b/website_and_docs/content/blog/2023/building-selenium.md
@@ -0,0 +1,109 @@
+---
+title: "Building Selenium"
+linkTitle: "How We Build Selenium"
+date: 2023-06-12
+tags: ["selenium"]
+categories: ["releases"]
+author: Simon Mavi Stewart ([@shs96c@hachyderm.io](https://hachyderm.io/@shs96c))
+description: >
+ How does the Selenium team build Selenium itself, and why did we chose the tools we chose?
+---
+
+One of the things that we knew from the very beginning of the Selenium
+project was that people like to code in more than one language. Some
+people love a bit of JS, others Ruby, and still others prefer C# or
+Java.
+
+To complicate matters, there’s plenty of pieces we want to share
+between the language bindings you’ll be using. Examples include the
+“atoms” (re-usable pieces of javascript that perform common functions
+– such as “isDisplayed” or “getAttribute” – that we want to work the same
+way no matter which language you prefer to write tests in), things
+like our CDP support, which uses shared files that describe all the
+available functions we can call, and the new Selenium Manager, which
+is written in Rust, but we bundle with each of the language bindings.
+
+The process of converting the source code and other artefacts (such as
+the atoms) together into the artefacts we distribute (such as the
+Selenium Server, or the language bindings) is called the
+“build”. There are plenty of build tools out there. If you’re a java
+developer, you’ve probably come across Maven or Gradle. If you’re a JS
+hacker, then perhaps something like npm or yarn is something you’ve
+used. If you’re a C developer (there are still plenty out there!) then
+you’re likely using make or CMake.
+
+The problem with many build tools is that they’re focused on one
+language. Npm is great, but it’s a terrible choice for a Java
+project. Gradle is fine, but not if you’re working in Ruby.
+
+Why is this a problem? Because in the Selenium codebase we want to
+support multiple different languages, and we want to be able to
+“stitch” them together into a single cohesive whole. For example, the
+Selenium jars contain a fairly large amount of JS. The Ruby gems do
+too.
+
+What we want is a single build tool that can cope with lots of
+different languages, so we can weave our build into something where we
+only need that one tool.
+
+Enter [Bazel](https://bazel.build). This was a build tool originally
+developed by Google, but which is now Open Source and increasingly
+widely used. Bazel itself is relatively limited in what it can do, but
+it can be extended easily using “rulesets” that allow it to support
+everything we need, and more!
+
+Bazel is one of a new generation of build tools, and focuses on
+exposing how each part of the build process relates to the other
+parts. You could imagine drawing a chart, with each thing we need to
+compile (eg. Selenium Manager, or the atoms, or one of the jars we
+ship) connected by lines to other parts that they depend upon. In
+Computer Science, that chart is called a “graph”, and because each
+line has a direction (“this thing depends upon that thing”) we call it
+a directed graph. Because we can’t depend on something that depends on
+itself, we can introduce a “cycle”. Bazel is a build tool designed to
+work with these “directed acyclic graphs”.
+
+One nice thing about these graphs is that there are well-known ways to
+figure out which parts of the build can be performed in parallel. A
+modern computer has a CPU with many (4, 8, 16!) cores, plenty of
+memory, and fast SSDs: it can comfortably perform many tasks at the
+same time. So Bazel takes advantage of this, running as many parts of
+the build at the same time as it can. This makes our builds
+significantly faster than they used to be!
+
+Better yet, Bazel makes us list all the things that each part of the
+build depends on. Not just the source code, but which versions of
+which tools we’re using. That makes it a lot easier for a developer
+new to the project to get started: they just need to clone [our
+repo](https://github.com/seleniumhq/selenium), make sure they have
+Bazel installed, and the build process will take care of making sure
+that they have everything they need (although that first build may be
+very slow as everything that’s needed will be downloaded from the
+Net). That’s not just nice for people new to the project, it’s nice
+for the existing developers. They no longer need to know how to
+install and set up toolchains that they may not be familiar with –
+they just run the build.
+
+Using the “build graph”, Bazel is able to tell which pieces of code in
+the Selenium source code depend on which other parts. This means that
+although we can tell Bazel to “run all our tests” when we make a
+change, it’s smart enough to know that it only needs to run those
+tests which are actually affected by a change. You can [see this in
+action in this video](https://www.youtube.com/watch?v=lqqXHEBvU0Y),
+but needless to say, this can save us a huge amount of time! We can
+also ask Bazel to re-run flaky tests
+
+But there’s another advantage of describing all the things we need for
+a build. Since we’ve described everything we need to Bazel, and how
+all the pieces fit together, there’s no need to just run the build on
+our own machines. We’re working with
+[EngFlow](https://www.engflow.com) to make use of their build
+grid. Rather than just running a small number of things at the same
+time on our machines, we can run many times that on their build
+grid. Our builds there are incredibly fast!
+
+So, that’s why we use Bazel on our project: it supports all the
+languages we want to use in a single tool, allows us to not think
+about how to set up our development machines, runs builds incredibly
+quickly, and we can make use of build grids to build things even
+faster.
diff --git a/website_and_docs/content/blog/2023/headless-is-going-away.md b/website_and_docs/content/blog/2023/headless-is-going-away.md
new file mode 100644
index 000000000000..1888a5701a1a
--- /dev/null
+++ b/website_and_docs/content/blog/2023/headless-is-going-away.md
@@ -0,0 +1,125 @@
+---
+title: "Headless is Going Away!"
+linkTitle: "Headless is Going Away!"
+date: 2023-01-29
+tags: ["selenium"]
+categories: ["releases"]
+author: Diego Molina ([@diegofmolina](https://twitter.com/diegofmolina))
+description: >
+ Now that we got your attention, headless is not actually going away, just the convenience method to set it in Selenium
+---
+
+Headless is an execution mode for Firefox and Chromium based browsers. It allows users to run automated scripts in
+headless mode, meaning that the browser window wouldn’t be visible. In most of Selenium's bindings there is a
+convenience method to set this execution mode while setting the browser options. However,
+[Selenium 4.8.0](https://www.selenium.dev/blog/2023/selenium-4-8-0-released/) will be deprecated this method
+and now users need to set it through arguments when setting the browser options.
+
+### Why is Selenium doing this?
+
+Chromium based browsers have now two different headless modes (the original one, and one with more
+capabilities added in 2022). When a user sets headless to `true` via the convenience method in Selenium,
+it is using the initial method provided by Chromium based browsers.
+
+By deprecating the convenience method (and removing it in Selenium 4.10.0), users will be in full control to
+choose which headless mode they want to use.
+
+### What are the two headless modes?
+
+The traditional `--headless`, and since version 96, Chrome has a new headless mode that allows users to
+get the full browser functionality (even run extensions). Between versions 96 to 108 it was
+`--headless=chrome`, after version 109 `--headless=new`.
+
+Using `--headless=new` should bring a better experience when using headless with Selenium.
+
+Thanks to [Michael Mintz](https://github.com/mdmintz) for the detailed
+[explanation](https://stackoverflow.com/questions/45631715/downloading-with-chrome-headless-and-selenium/73840130#73840130)!
+
+Check more details about the [new headleass mode at the official Chrome blog](https://developer.chrome.com/articles/new-headless/).
+
+### How can I set headless mode from now on?
+
+In short, users can add the headless mode they want to use through arguments in browser options.
+
+#### Before
+{{< tabpane langEqualsHeader=true >}}
+{{< tab header="Java" >}}
+ChromeOptions options = new ChromeOptions();
+options.setHeadless(true);
+WebDriver driver = new ChromeDriver(options);
+driver.get("https://selenium.dev");
+driver.quit();
+{{< /tab >}}
+{{< tab header="JavaScript" >}}
+let driver = await env
+ .builder()
+ .setChromeOptions(new chrome.Options().headless())
+ .build();
+await driver.get('https://selenium.dev');
+await driver.quit();
+{{< /tab >}}
+{{< tab header="CSharp" >}}
+// C# did not have a convenience method
+{{< /tab >}}
+{{< tab header="Ruby" >}}
+options = Selenium::WebDriver::Chrome::Options.new
+options.headless!
+driver = Selenium::WebDriver.for :chrome, options: options
+driver.get('https://selenium.dev')
+driver.quit
+{{< /tab >}}
+{{< tab header="Python" >}}
+options = ChromeOptions()
+options.headless = True
+driver = webdriver.Chrome(options=options)
+driver.get('http://selenium.dev')
+driver.quit()
+{{< /tab >}}
+{{< /tabpane >}}
+
+#### After
+{{< tabpane langEqualsHeader=true >}}
+{{< tab header="Java" >}}
+ChromeOptions options = new ChromeOptions();
+options.addArguments("--headless=new");
+WebDriver driver = new ChromeDriver(options);
+driver.get("https://selenium.dev");
+driver.quit();
+{{< /tab >}}
+{{< tab header="JavaScript" >}}
+let driver = await env
+ .builder()
+ .setChromeOptions(options.addArguments('--headless=new'))
+ .build();
+await driver.get('https://selenium.dev');
+await driver.quit();
+{{< /tab >}}
+{{< tab header="CSharp" >}}
+var options = new ChromeOptions();
+options.AddArgument("--headless=new");
+var driver = new ChromeDriver(options);
+driver.Navigate().GoToUrl("https://selenium.dev");
+driver.Quit();
+{{< /tab >}}
+{{< tab header="Ruby" >}}
+options = Selenium::WebDriver::Options.chrome(args: ['--headless=new'])
+driver = Selenium::WebDriver.for :chrome, options: options
+driver.get('https://selenium.dev')
+driver.quit
+{{< /tab >}}
+{{< tab header="Python" >}}
+options = ChromeOptions()
+options.add_argument("--headless=new")
+driver = webdriver.Chrome(options=options)
+driver.get('http://selenium.dev')
+driver.quit()
+{{< /tab >}}
+{{< /tabpane >}}
+
+
+If you have any questions or comments, please reach out through any of all the available options
+shown at our [support page](https://www.selenium.dev/support/).
+
+Stay tuned for updates by following [SeleniumHQ](https://twitter.com/seleniumhq)!
+
+Happy testing!
\ No newline at end of file
diff --git a/website_and_docs/content/blog/2023/invalid-selector-exception-has-changed.md b/website_and_docs/content/blog/2023/invalid-selector-exception-has-changed.md
new file mode 100644
index 000000000000..7e44cfb35833
--- /dev/null
+++ b/website_and_docs/content/blog/2023/invalid-selector-exception-has-changed.md
@@ -0,0 +1,49 @@
+---
+title: "InvalidSelectorException has changed"
+linkTitle: "InvalidSelectorException has changed"
+date: 2023-04-21
+tags: ["webdriver", "java", "dotnet", "exceptions"]
+categories: ["general"]
+author: Mohab Mohie ([MohabMohie](https://github.com/MohabMohie/MohabMohie))
+description: >
+ ⚠️ `InvalidSelectorException` now extends from `WebDriverException`
+---
+
+Before Selenium 4.8.2 in Java and C#, when an invalid locator was used to identify an element, the resulting behavior would be
+inconsistent in our bindings.
+
+For example, let's check the following code:
+
+```java
+ArrayList
> expectedExceptions = new ArrayList<>();
+ expectedExceptions.add(org.openqa.selenium.NoSuchElementException.class);
+ expectedExceptions.add(org.openqa.selenium.StaleElementReferenceException.class);
+ expectedExceptions.add(org.openqa.selenium.ElementNotInteractableException.class);
+ expectedExceptions.add(org.openqa.selenium.InvalidElementStateException.class);
+
+return new FluentWait<>(driver)
+ .withTimeout(Duration.ofMillis(ELEMENT_IDENTIFICATION_TIMEOUT))
+ .pollingEvery(Duration.ofMillis(ELEMENT_IDENTIFICATION_POLLING_DELAY))
+ .ignoreAll(expectedExceptions)
+ .until(nestedDriver -> {
+ nestedDriver.findElement(By.xpath("invalid-xpath")).click;
+ });
+```
+
+The expected result *before this change* would be that the driver waits until the timeout expires and then throw an `InvalidSelectorException`.
+
+This doesn't make much sense because a broken/invalid selector would never fix itself, and hence should throw immediately.
+
+This was discussed and agreed during the [TLC meeting on August 17, 2022](https://www.selenium.dev/meetings/2022/tlc-08-17/#proposals),
+and implemented through the pull request [11727](https://github.com/SeleniumHQ/selenium/pull/11727) and the following
+[commit](https://github.com/SeleniumHQ/selenium/commit/f28144eb72ae1df18f267a5250db6b9b41dc1fdc).
+
+With the changes mentioned above, an invalid selector will throw an `InvalidSelectorException` immediately.
+
+Please note that this may have an impact on backwards compatibility if you are not expecting this exception to be thrown while
+handling invalid locators.
+
+Stay tuned for updates by following [SeleniumHQ](https://twitter.com/seleniumhq)!
+
+Happy testing!
+
diff --git a/website_and_docs/content/blog/2023/java-8-support.md b/website_and_docs/content/blog/2023/java-8-support.md
new file mode 100644
index 000000000000..a1db172589f3
--- /dev/null
+++ b/website_and_docs/content/blog/2023/java-8-support.md
@@ -0,0 +1,42 @@
+---
+title: "Java 8 support in Selenium"
+linkTitle: "Java 8 support in Selenium"
+date: 2023-06-09
+tags: ["selenium", "java"]
+categories: ["releases"]
+author: Diego Molina ([@diegofmolina](https://twitter.com/diegofmolina))
+description: >
+ On September 30, 2023, Java 11 will be the minimum version supported by Selenium.
+---
+
+
+“If it ain’t broke, don’t fix it” is a saying you may have heard, but sometimes
+it’s necessary to move on from our old favorites. That’s why we’re announcing that
+**Selenium will stop supporting Java 8 on September 30, 2023**. This applies for
+both the Java bindings and the Selenium Grid.
+
+Selenium has long supported Java 8, but as technology evolves, so must we. One of
+the primary reasons for this change is that Java 8 reached the end of active support
+[over a year ago](https://endoflife.date/java). In addition, our default HTTP
+Client has not had a major release in several years, and a
+[bug](https://github.com/SeleniumHQ/selenium/issues/9528) has been found that we can not fix.
+We have decided to [move to the native Java HTTP Client](/blog/2022/using-java11-httpclient/),
+but it requires using Java 11 or greater. The sooner we make this change, the sooner
+we can avoid dealing with this issue.
+
+Our new minimum version will be Java 11. September 30, 2023 is also the end of
+active support for Java 11. However, we want to take a cautious and conservative path
+forward, and not force our users to make the big jump from Java 8 to Java 17, as we
+understand the community might need longer to move to that version. We will revisit
+this topic in the future to announce the plan to support Java 17 as a minimum version.
+
+We understand that this change may require some of our users to make adjustments, but
+we believe that it’s a necessary step for the continued growth of Selenium. Please
+take some time to check your infrastructure and ensure you’re running on Java 11 or
+higher. We understand that some may be hesitant or may find it difficult to make
+the switch, but we believe it will pay off in the long run.
+
+Please let us know your questions, concerns, and feedback through our
+[community chat](https://www.selenium.dev/support/#ChatRoom).
+
+Happy testing!
diff --git a/website_and_docs/content/blog/2023/java-removal-of-deprecated-events-classes.md b/website_and_docs/content/blog/2023/java-removal-of-deprecated-events-classes.md
new file mode 100644
index 000000000000..ce2805d6f7fc
--- /dev/null
+++ b/website_and_docs/content/blog/2023/java-removal-of-deprecated-events-classes.md
@@ -0,0 +1,164 @@
+---
+title: Removal of AbstractEventListener + EventFiringWebDriver + WebDriverEventListener
+date: 2023-12-08
+tags: [java, events, webdriver]
+categories: [general]
+author: Oscar Devora ([@oscardevora](https://twitter.com/Yo_Oscarr))
+description: >
+ This blog will go over some examples on how to transition code that uses the aforementioned classes.
+---
+
+### Upgrading to WebDriverListener and EventFiringDecorator
+Decorating the webdriver
+
+```java
+new EventFiringWebDriver(driver); // Old approach
+new EventFiringDecorator().decorate(driver); // New approach
+```
+### Implementing method wrappers
+One may find the need to have their own custom implementations be used for underlying decorated method calls. An example may be wanting to use your own findElement implementation to store metadata from web elements. One can go down a deep rabbit hole of decorators ( extending WebDriverDecorator and such ), so to keep things simple we will extend EventFiringDecorator since we want a single decorator to handle all our listener events.
+
+```java
+public class WebDriverWrapper implements WebDriver {
+ private final WebDriver driver;
+ WebDriverWrapper(WebDriver driver) {
+ this.driver = driver;
+ }
+ // custom implementation goes here
+ @Override
+ public WebElement findElement(final By by) {
+ // custom implementation goes here
+ return driver.findElement(by);
+ }
+}
+
+public class testDecorator extends EventFiringDecorator {
+
+ @Override
+ public Object call(Decorated> target, Method method, Object[] args) throws Throwable {
+ String methodName = method.getName();
+ if ("findElement".equals(methodName)) {
+ WebDriverWrapper newDriver = new WebDriverWrapper((WebDriver) target.getOriginal());
+ return newDriver.findElement((By) args[0]);
+ }
+ return super.call(target, method, args);
+ }
+}
+```
+Some notes about the above example, we are only overriding the ‘general’ call method and checking the method name against every call made.
+Without going too deep decorators one can also override calls made by class instances to offer a more targeted approach.
+Just to expose some more functionality, let's modify our example.
+We can modify WebElement context since we might care about child elements and elements found by WebDriver ( WebDriver and WebElement both extend the SearchContext ).
+
+```java
+public class WebElementWrapper implements WebElement {
+ private final WebElement element;
+ WebElementWrapper(WebElement element) {
+ this.element = element;
+ }
+ @Override
+ public WebElement findElement(final By by) {
+ // custom implementation goes here
+ return element.findElement(by);
+ }
+}
+
+public class WebElementDecorator extends EventFiringDecorator {
+ @Override
+ public Decorated createDecorated(WebElement original) {
+ return new DefaultDecorated<>(original, this) {
+ @Override
+ public Object call(Method method, Object[] args) throws Throwable {
+ String methodName = method.getName();
+ if ("findElement".equals(methodName)) {
+ // custom implementation goes here
+ WebElementWrapper element = new WebElementWrapper(getOriginal());
+ return element.findElement((By) args[0]);
+ }
+ return super.call(method, args);
+ }
+ };
+ }
+}
+```
+In the sample above, we are still doing a very similar approach of overriding the call method but now we are also targeting WebElement instances.
+### Registering Listeners
+
+```java
+new EventFiringWebDriver(driver).register(listener1).register(listener2); // Old approach
+new EventFiringDecorator(listener1, listener2); // New approach
+```
+### Listening to Events
+A quality of life change that is featured in WebDriverListener class is the use of ‘default’.
+In Java, the `default` keyword, when used in the context of an interface method, indicates that the method has a default implementation.
+If a class implementing the interface chooses not to override the method, it will inherit the default implementation.
+This change allows for splitting up listeners without needing to implement the unnecessary methods you don't need or care about.
+
+#### Listening to specific events using before/after methods call
+```java
+// Old approach
+public class AlertListener implements WebDriverEventListener {
+ @Override
+ public void beforeAlertAccept(final WebDriver driver) {
+ // custom implementation goes here
+ }
+// implement every method in interface
+}
+
+// New approach
+public class AlertListener implements WebDriverListener {
+ @Override
+ public void beforeAccept(Alert alert) {
+ // custom implementation goes here
+ }
+// does not need to implement every method in interface
+}
+```
+#### Listening to Generic Events
+A change that was brought on is the ability to listen to generic events.
+One use case is logging information in a parallelized test suite.
+Rather than create a listener and override every method to add a simple log statement, there is now a simpler alternative of overriding one method call.
+Below I override beforeAnyCall, but afterAnyCall exists as well which also has the results of the call to the decorated method.
+
+```java
+public class Listener implements WebDriverEventListener {
+ private static final Logger LOGGER = Logger.getLogger(Listener.class.getName());
+
+ @Override
+ public void beforeAnyCall(Object target, Method method, Object[] args) {
+ logger.debug("Thread: " + Thread.currentThread().getName() +
+ " | Method Name: " + method.getName() +
+ " | Method Args: " + Arrays.toString(args));
+ }
+}
+```
+
+There also was an addition listening to more specific generic events.
+Going back to the logging example, beforeAnyCall is a good method for debugging information or tracking the actions of a thread but might generate too much noise.
+In the same use case we might only care about WebDriver or WebElement calls.
+One can override instances of WebDriver and derived objects( WebElement, Alert, etc.) for before/after events.
+
+```java
+public class Listener implements WebDriverEventListener {
+ private static final Logger LOGGER = Logger.getLogger(Listener.class.getName());
+
+ @Override
+ public void beforeAnyWebDriverCall(WebDriver driver, Method method, Object[] args) {
+ logger.debug("Thread: " + Thread.currentThread().getName() +
+ " | Method Name: " + method.getName() +
+ " | Method Args: " + Arrays.toString(args));
+ }
+
+ @Override
+ public void beforeAnyWebElementCall(WebElement element, Method method, Object[] args) {
+ logger.debug("Thread: " + Thread.currentThread().getName() +
+ " | Method Name: " + method.getName() +
+ " | Method Args: " + Arrays.toString(args));
+ }
+}
+```
+
+So that's some general examples on how to transition your code!
+Happy testing!
+
+
diff --git a/website_and_docs/content/blog/2023/lets-meet-in-person-at-seleniumconf-2023.md b/website_and_docs/content/blog/2023/lets-meet-in-person-at-seleniumconf-2023.md
new file mode 100644
index 000000000000..28aa41ae209c
--- /dev/null
+++ b/website_and_docs/content/blog/2023/lets-meet-in-person-at-seleniumconf-2023.md
@@ -0,0 +1,70 @@
+---
+title: "Let's meet at SeleniumConf, Once Again!"
+linkTitle: "Let's meet at SeleniumConf, Once Again!"
+date: 2023-02-14
+tags: ["conference", "meetup", "workshops"]
+categories: ["conference"]
+author: Manoj Kumar ([@manoj9788](https://twitter.com/manoj9788))
+description: >
+ SeleniumConf is back in person! Yes! It does feel good to say this.
+---
+
+This year is special, thanks to the decision to host an in-person conference after a long hiatus and several years of
+virtual-only events. We've gone out of our way to reflect this feeling at the conference. We have engrossing keynotes,
+well-researched talks, hands-on pre-conference workshops, hallway tracks, and whatnot!
+
+### Here's a quick list of what to expect!
+
+### What's cooking in Keynotes?
+
+We have Diego Molina kicking things off with
+'[Selenium: State of the Union](https://seleniumconf.com/agenda/#selenium-state-of-the-union)' where he will talk about
+all things Selenium, including the project, the code, and the community. Think of it as a journey through the times with
+Selenium. A must-attend without any shred of doubt!
+
+Next up is Erika Chestnut's '[Bigger Than The Box](https://seleniumconf.com/agenda/#bigger-than-the-box)' where she
+will focus on the idea of quality and whether it has been restricted to only a single step in the delivery process.
+It is indeed a dialogue that needs to happen given that our lives revolve around quality.
+
+On day 2, we have first-time SeleniumConf keynote speaker Mark Winteringham from the Ministry of Testing talking about
+'[What Exactly Do You Do in Test Automation?](https://seleniumconf.com/agenda/#what-exactly-do-you-do-in-test-automation)'
+Is it just about coding and frameworks or is there more to it? How should a test automation practitioner think about
+their role? Think of this as learning from the ground up or in some cases, back to the basics!
+
+### Talks, talks, and more talks
+
+We've cast our net far and wide this time around.
+
+Just as a highlight, across the two days, we will cover a diverse range of topics from crawlers, identifying code
+smells, blended testing, component testing, quality gates, quality metrics to track, testing with real robots, and
+managing the test data nightmare, among others. Quite a list, huh? Trust me, this is just a sneak peek. You can check
+out the entire list [here](https://seleniumconf.com/agenda/).
+
+Also, we've got a session on how testing with
+[Selenium is solving unemployment in Africa](https://seleniumconf.com/agenda/#solving-unemployment-in-africa-with-testing-and-selenium).
+
+The cherry on the cake is the Q&A with the Selenium Committer's [Panel](https://seleniumconf.com/agenda/#q-amp-a-with-the-selenium-committers-panel)
+where you'll get to pick the brains of the very people who've built Selenium.
+
+In a way, we've truly tried our best to touch upon the technology, people, and process aspects of testing. We'd love to
+have you over to catch these experts in action!
+
+### Getting your hands dirty with tailored workshops
+
+Testing is all about exploring. How about exploring and diving into something new?
+
+We've got community leaders doing deep dives into Selenium, Appium 2.0, how to become a committer, state model-based
+testing, and driving observability with Selenium Grid.
+
+We truly believe that nothing beats hearing it from the horse's mouth.
+
+### What's more?
+
+While there are some amazing keynotes, well-researched talks, and structured workshops, we really think the biggest
+takeaway for any attendee is the people they'll get to meet. Selenium has been a great example of how the community can
+come together to build something that is greater than the sum of its parts. A conference like this brings together folks
+from across the world, with different levels of experience, and puts them under a single roof.
+
+What can be more beautiful than getting to interact with the very community that has built and grown Selenium?
+
+What are you waiting for? [Register now](https://seleniumconf.com/register/)! We can't wait to welcome you to Chicago!
diff --git a/website_and_docs/content/blog/2023/novelties_in_selenium_manager_0.4.15.md b/website_and_docs/content/blog/2023/novelties_in_selenium_manager_0.4.15.md
new file mode 100644
index 000000000000..8e084d4cf617
--- /dev/null
+++ b/website_and_docs/content/blog/2023/novelties_in_selenium_manager_0.4.15.md
@@ -0,0 +1,53 @@
+---
+title: "Novelties in Selenium Manager 0.4.15"
+linkTitle: "Novelties in Selenium Manager 0.4.15"
+date: 2023-11-13
+tags: ["selenium", "manager", "firefox", "edge", "mirror", "debug"]
+categories: ["releases"]
+author: Boni García ([@boni_gg](https://twitter.com/boni_gg))
+description: >
+ Selenium Manager 0.4.15 is shipped with Selenium 4.15.0. This blog post summarizes the novelties introduced in this new release.
+---
+
+### Support for Firefox ESR
+Selenium Manager 0.4.15 includes support for Firefox Extended Support Release (ESR). This way, Firefox ESR can be automatically managed with Selenium using the label `esr` in the browser version. Bindings languages set this browser version (like other accepted labels for browser versions, such as `stable,` `beta,` `dev,` `canary,` and `nightly`) using a browser option called [browserVersion](https://www.selenium.dev/documentation/webdriver/drivers/options/#browserversion).
+
+### Support for Edge WebView2
+Selenium Manager 0.4.15 allows automated driver management for [Microsoft Edge WebView2](https://developer.microsoft.com/microsoft-edge/webview2). WebView2 is a component that enables embedding web technologies (HTML, CSS, and JavaScript) in native apps, using Microsoft Edge as the rendering engine to display web content. At the time of this writing, WebView2 is available in Windows.
+
+This way, Selenium Manager allows detecting WebView2 in Windows machines and resolving the proper msedgedriver binary for it. Internally, Selenium Manager uses the browser name `webview2` to handle WebView2, detecting its version based on [registry queries](https://learn.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#detect-if-a-suitable-webview2-runtime-is-already-installed). In the bindings, WebView2 is enabled through a browser option called `useWebView`.
+
+### Support for mirror repositories
+Selenium Manager 0.4.15 includes a couple of new arguments in Selenium Manager for specifying custom URLs for drivers and browsers (instead of the default ones, such as [chromedriver](https://chromedriver.storage.googleapis.com/), [Chrome for Testing](https://googlechromelabs.github.io/chrome-for-testing/), etc.). These arguments are:
+
+- `--driver-mirror-url`: Mirror URL for driver repositories.
+- `--browser-mirror-url`: Mirror URL for browser repositories.
+
+As usual, these values can be configured using the config file or environment variable (e.g., `SE_DRIVER_MIRROR_URL` or `SE_BROWSER_MIRROR_URL`). Moreover, there are browser and driver-specific configuration keys, i.e. `chrome-mirror-url`, `firefox-mirror-url`, `edge-mirror-url`, etc. (in the configuration file), and `SE_CHROME_MIRROR_URL`, `SE_FIREFOX_MIRROR_URL`, `SE_EDGE_MIRROR_URL`, etc. (as environment variables).
+
+Here is an example of this feature calling Selenium Manager from the shell:
+
+```
+./selenium-manager --debug --browser chrome --browser-version 100 --avoid-browser-download --driver-mirror-url=https://registry.npmmirror.com/-/binary/chromedriver/
+DEBUG chromedriver not found in PATH
+DEBUG chrome detected at C:\Program Files\Google\Chrome\Application\chrome.exe
+DEBUG Running command: wmic datafile where name='C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe' get Version /value
+DEBUG Output: "\r\r\n\r\r\nVersion=117.0.5938.150\r\r\n\r\r\n\r\r\n\r"
+DEBUG Detected browser: chrome 117.0.5938.150
+DEBUG Discovered chrome version (117) different to specified browser version (100)
+DEBUG Required driver: chromedriver 100.0.4896.60
+DEBUG Downloading chromedriver 100.0.4896.60 from https://registry.npmmirror.com/-/binary/chromedriver/100.0.4896.60/chromedriver_win32.zip
+INFO Driver path: C:\Users\boni\.cache\selenium\chromedriver\win64\100.0.4896.60\chromedriver.exe
+INFO Browser path: C:\Program Files\Google\Chrome\Application\chrome.exe
+```
+
+### Debug release
+To troubleshoot Selenium Manager in complex error cases, it is interesting to capture the backtrace. But to do that, the Selenium Manager binaries must be created with the debug symbols. Since the resulting binaries with debug symbols are much larger than the default release artifacts, we generate them on demand using a custom [workflow in GitHub Actions](https://github.com/SeleniumHQ/selenium/actions/workflows/build-selenium-manager.yml). This way, we have included a checkbox in the workflow for triggering the Selenium Manager build. When this checkbox is enabled when building Selenium Manager, the debug symbols will be added to the resulting binaries (for Windows, Linux, and macOS). All in all, these binaries will be used on demand to troubleshoot complicated problems.
+
+
+
+### Selenium Manager in cache (only for Java bindings)
+As of version 4.15.0 of the Selenium Java bindings, the Selenium Manager binary is extracted and copied to the cache folder. For instance, the Selenium Manager binary shipped with Selenium 4.15.0 is stored in the folder `~/.cache/selenium/manager/0.4.15`). This feature will allow direct manipulation of Selenium Manager as a CLI tool, for instance, for troubleshooting. This feature is only available for Java bindings since Java is the only language that does not have direct access to the Selenium Manager binaries (since they are released compressed into the JAR files of the `selenium-java` artifacts).
+
+### Next steps
+Look at [Selenium Manager documentation](https://www.selenium.dev/documentation/selenium_manager/) for a detailed description of its features. Also, you can trace the status of the development activities in the [Selenium Manager project dashboard](https://github.com/orgs/SeleniumHQ/projects/5).
diff --git a/website_and_docs/content/blog/2023/novelties_in_selenium_manager_0.4.15/selenium-manager-workflow-debug.png b/website_and_docs/content/blog/2023/novelties_in_selenium_manager_0.4.15/selenium-manager-workflow-debug.png
new file mode 100644
index 000000000000..1278e4fa3ddf
Binary files /dev/null and b/website_and_docs/content/blog/2023/novelties_in_selenium_manager_0.4.15/selenium-manager-workflow-debug.png differ
diff --git a/website_and_docs/content/blog/2023/selenium-4-10-0-released.md b/website_and_docs/content/blog/2023/selenium-4-10-0-released.md
new file mode 100644
index 000000000000..9a0dff743ff7
--- /dev/null
+++ b/website_and_docs/content/blog/2023/selenium-4-10-0-released.md
@@ -0,0 +1,129 @@
+---
+title: "Selenium 4.10.0 Released!"
+linkTitle: "Selenium 4.10.0 Released!"
+date: 2023-06-07
+tags: ["selenium"]
+categories: ["releases"]
+author: Diego Molina ([@diegofmolina](https://twitter.com/diegofmolina))
+description: >
+ Today we're happy to announce that Selenium 4.10.0 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.10.0 for Java,
+.NET, Ruby, Python, and Javascript as well as the Grid and Internet Explorer Driver.
+Links to everything can be found on our [downloads page][downloads].
+
+### Highlights
+
+ * Chrome DevTools support is now: v112, v113, and v114 (Firefox still uses v85 for all versions)
+ * Selenium Manager supports proxy usage by using the proxy information set in the browser options.
+ * Adding support for [`webview2`](https://learn.microsoft.com/en-us/microsoft-edge/webview2/how-to/webdriver) in Edge for Java, JavaScript, and Ruby
+ * Error messages across bindings now include links to the Selenium documentation.
+ * Overhaul of the service classes and logging output options.
+ * Logger in Ruby updated default behavior to match other languages and added features to improve filtering types of logging.
+ * Python - removal of several sections of deprecated code.
+ * Most of them were arguments that can be set in the [`Options` classes](https://www.selenium.dev/documentation/webdriver/drivers/options/) (browser values) or [`Service` classes](https://www.selenium.dev/documentation/webdriver/drivers/service/) (browser driver values).
+ * They have been deprecated since the [first Selenium 4 release](https://www.selenium.dev/documentation/webdriver/getting_started/upgrade_to_selenium_4/#python-1)
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+#### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/boris-petrov" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/ParadiseWitch" >}}
+{{< gh-user "https://api.github.com/users/rishav887" >}}
+{{< gh-user "https://api.github.com/users/iampopovich" >}}
+{{< gh-user "https://api.github.com/users/mdmintz" >}}
+{{< gh-user "https://api.github.com/users/vlad8x8" >}}
+{{< gh-user "https://api.github.com/users/cocreature" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/valfirst" >}}
+{{< gh-user "https://api.github.com/users/bhecquet" >}}
+{{< gh-user "https://api.github.com/users/M1troll" >}}
+{{< gh-user "https://api.github.com/users/ShadowLNC" >}}
+{{< gh-user "https://api.github.com/users/sandeepsuryaprasad" >}}
+{{< gh-user "https://api.github.com/users/alpatron" >}}
+
+
+
+{{< gh-user "https://api.github.com/users/tarekoraby" >}}
+{{< gh-user "https://api.github.com/users/smilinrobin" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+{{< gh-user "https://api.github.com/users/kathyrollo" >}}
+{{< gh-user "https://api.github.com/users/gulifeng8" >}}
+{{< gh-user "https://api.github.com/users/bsquizz" >}}
+
+
+{{< gh-user "https://api.github.com/users/luisfcorreia" >}}
+{{< gh-user "https://api.github.com/users/serlank" >}}
+{{< gh-user "https://api.github.com/users/JordanZimmitti" >}}
+{{< gh-user "https://api.github.com/users/uluzox" >}}
+{{< gh-user "https://api.github.com/users/bschreder" >}}
+
+
+
+
+#### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/tarekoraby" >}}
+{{< gh-user "https://api.github.com/users/smilinrobin" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+{{< gh-user "https://api.github.com/users/kathyrollo" >}}
+{{< gh-user "https://api.github.com/users/gulifeng8" >}}
+{{< gh-user "https://api.github.com/users/bsquizz" >}}
+
+
+
+
+#### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/luisfcorreia" >}}
+{{< gh-user "https://api.github.com/users/serlank" >}}
+{{< gh-user "https://api.github.com/users/JordanZimmitti" >}}
+{{< gh-user "https://api.github.com/users/uluzox" >}}
+{{< gh-user "https://api.github.com/users/bschreder" >}}
+
+
+
+
+**Thanks as well to all the [Selenium Team Members][team] who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/TamsilAmani" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/krmahadevan" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/jamesmortensen" >}}
+
+
+
+
+Stay tuned for updates by following [SeleniumHQ](https://twitter.com/seleniumhq)!
+
+Happy testing!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
+
diff --git a/website_and_docs/content/blog/2023/selenium-4-11-0-released.md b/website_and_docs/content/blog/2023/selenium-4-11-0-released.md
new file mode 100644
index 000000000000..99843cb278f3
--- /dev/null
+++ b/website_and_docs/content/blog/2023/selenium-4-11-0-released.md
@@ -0,0 +1,151 @@
+---
+title: "Selenium 4.11.0 Released!"
+linkTitle: "Selenium 4.11.0 Released!"
+date: 2023-07-31
+tags: ["selenium"]
+categories: ["releases"]
+author: Diego Molina ([@diegofmolina](https://twitter.com/diegofmolina))
+description: >
+ Today we're happy to announce that Selenium 4.11.0 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.11.0 for Java,
+.NET, Ruby, Python, and Javascript as well as the Grid and Internet Explorer Driver.
+Links to everything can be found on our [downloads page][downloads].
+
+### Highlights
+
+ * Chrome DevTools support is now: v113, v114, and v115 (Firefox still uses v85 for all versions)
+ * Support for [Chrome for Testing (CfT)](https://googlechromelabs.github.io/chrome-for-testing/) through Selenium Manager. Read more at the new Selenium Manager features [blog post](/blog/2023/whats-new-in-selenium-manager-with-selenium-4.11.0/).
+ * Selenium Manager now locates the browser driver binary on PATH or the configured path, checks for potential incompatibilities, and gives better warning and error messages.
+ * [Nightly builds](/downloads/#nightly) are being pushed for Ruby and Java. Support for other languages is coming soon.
+ * Ignore process id match when finding the window handle - IE Mode on Edge. ([#12246](https://github.com/SeleniumHQ/selenium/pull/12246)) ([#12279](https://github.com/SeleniumHQ/selenium/pull/12279))
+
+
+#### Relevant improvements per language
+
+ * Java
+ * Make user defined SlotMatcher used everywhere in Grid code ([#12240](https://github.com/SeleniumHQ/selenium/pull/12240))
+ * Add support for [FedCM](https://fedidcg.github.io/FedCM/) commands ([#12096](https://github.com/SeleniumHQ/selenium/pull/12096))
+
+
+
+ * JavaScript
+ * [BiDi] Add Network module events ([#12197](https://github.com/SeleniumHQ/selenium/pull/12197))
+
+
+
+ * .NET
+ * Implementation of event wrapped shadow root element ([#12073](https://github.com/SeleniumHQ/selenium/pull/12073))
+ * Allow setting a different pointer, keyboard, or wheel on input device ([#11513](https://github.com/SeleniumHQ/selenium/pull/11513))
+ * Add move to location method to Actions ([#11509](https://github.com/SeleniumHQ/selenium/pull/11509))
+ * Add support for Safari Technology Preview ([#12342](https://github.com/SeleniumHQ/selenium/pull/12342))
+ * Fix error when we send non-base64 data for fetch command ([#12431](https://github.com/SeleniumHQ/selenium/pull/12431))
+ * Fix continueResponse method in CDP ([#12445](https://github.com/SeleniumHQ/selenium/pull/12445))
+
+
+
+ * Python
+ * removed redundant attributes `capabilities` and `set_capability` in wpewebkit/options.py ([#12169](https://github.com/SeleniumHQ/selenium/pull/12169))
+ * improve driver logging, implement log_output() for flexibility and consistency of driver logging ([#12103](https://github.com/SeleniumHQ/selenium/pull/12103))
+ * let users pass service args to IE driver ([#12272](https://github.com/SeleniumHQ/selenium/pull/12272))
+ * Expose `WPEWebKitService` and `WebKitGTKService` in the public API
+ * Remove deprecated `ActionChains.scroll(...)`
+ * Add creation flag for windows in selenium_manager ([#12435](https://github.com/SeleniumHQ/selenium/pull/12435))
+
+
+
+ * Ruby
+ * Made network interception threads fail silently ([#12226](https://github.com/SeleniumHQ/selenium/pull/12226))
+ * Remove deprecated code ([#12417](https://github.com/SeleniumHQ/selenium/pull/12417))
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+#### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/mdmintz" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/sandeepsuryaprasad" >}}
+{{< gh-user "https://api.github.com/users/bswhb" >}}
+{{< gh-user "https://api.github.com/users/bastimeyer" >}}
+{{< gh-user "https://api.github.com/users/djbrown" >}}
+{{< gh-user "https://api.github.com/users/vedanthvdev" >}}
+{{< gh-user "https://api.github.com/users/baflQA" >}}
+{{< gh-user "https://api.github.com/users/AdamPDotty" >}}
+{{< gh-user "https://api.github.com/users/jlucartc" >}}
+{{< gh-user "https://api.github.com/users/ggkiokas" >}}
+{{< gh-user "https://api.github.com/users/debanjanc01" >}}
+{{< gh-user "https://api.github.com/users/bhecquet" >}}
+{{< gh-user "https://api.github.com/users/cbiesinger" >}}
+{{< gh-user "https://api.github.com/users/SenZmaKi" >}}
+
+
+
+
+#### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+{{< gh-user "https://api.github.com/users/cristianrgreco" >}}
+{{< gh-user "https://api.github.com/users/GautamJ700" >}}
+{{< gh-user "https://api.github.com/users/by-gayathri" >}}
+{{< gh-user "https://api.github.com/users/danksearle" >}}
+{{< gh-user "https://api.github.com/users/konflic" >}}
+{{< gh-user "https://api.github.com/users/nevinaydin" >}}
+{{< gh-user "https://api.github.com/users/erick-ribeiro" >}}
+
+
+
+
+#### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/luisfcorreia" >}}
+{{< gh-user "https://api.github.com/users/alb3ric" >}}
+{{< gh-user "https://api.github.com/users/baflQA" >}}
+{{< gh-user "https://api.github.com/users/msvticket" >}}
+{{< gh-user "https://api.github.com/users/wintersolutions" >}}
+
+
+
+
+**Thanks as well to all the [Selenium Team Members][team] who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/TamsilAmani" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/symonk" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/krmahadevan" >}}
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/jamesmortensen" >}}
+
+
+
+
+Stay tuned for updates by following [SeleniumHQ](https://twitter.com/seleniumhq)!
+
+Happy testing!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
+
diff --git a/website_and_docs/content/blog/2023/selenium-4-12-0-released.md b/website_and_docs/content/blog/2023/selenium-4-12-0-released.md
new file mode 100644
index 000000000000..8e49c2ca9a03
--- /dev/null
+++ b/website_and_docs/content/blog/2023/selenium-4-12-0-released.md
@@ -0,0 +1,138 @@
+---
+title: "Selenium 4.12.0 Released!"
+linkTitle: "Selenium 4.12.0 Released!"
+date: 2023-08-31
+tags: ["selenium"]
+categories: ["releases"]
+author: Titus Fortner [@titusfortner](https://titusfortner.com)
+description: >
+ Today we're happy to announce that Selenium 4.12.0 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.12.0 for Java,
+.NET, Ruby, Python, and Javascript as well as the Grid.
+Links to everything can be found on our [downloads page][downloads].
+
+### Highlights
+
+ * Chrome DevTools support is now: v114, v115, and v116 (Firefox still uses v85 for all versions)
+ * Quite a few fixes for Selenium Manager, and now with Firefox browser management!
+Read about all the [new Selenium Manager features](/blog/2023/whats_new_in_selenium_manager_0.4.12_shipped_with_selenium_4.12.0/)
+ * .NET only explicitly targets `netstandard2.0`
+ * Python no longer supports Python 3.7
+ * Ruby no longer supports `:capabilities` arguments for local drivers (must use `:options` now)
+
+#### Relevant improvements per language
+
+ * Java
+ * Several improvements in working with Selenium Manager
+ * Allow deleting remote downloaded files from grid ([#12501](https://github.com/SeleniumHQ/selenium/pull/12501))
+ * Removed deprecated `UNEXPECTED_ALERT_BEHAVIOR`, `BROWSER_LOGFILE`, `createPointerDown`, `createPointerUp` and JWP `/file` endpoint
+ * Deprecated `disableNativeEvents` and Remote Response status field
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)
+
+
+
+ * JavaScript
+ * Fix how browsers and drivers are discovered ([#12456](https://github.com/SeleniumHQ/selenium/pull/12456))
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)
+
+
+
+ * .NET
+ * Several big fixes for improving DevTools execution ([#12486](https://github.com/SeleniumHQ/selenium/pull/12486),
+[#12614](https://github.com/SeleniumHQ/selenium/pull/12614), [#12592](https://github.com/SeleniumHQ/selenium/pull/12592),
+[#12591](https://github.com/SeleniumHQ/selenium/pull/12591))
+ * Bug fix for how driver location is specified in Service class ([#12473](https://github.com/SeleniumHQ/selenium/pull/12473))
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)
+
+
+
+ * Python
+ * Support Selenium Manager in conda installs ([#12536](https://github.com/SeleniumHQ/selenium/pull/12536))
+ * Several bug fixes in Typing suggestions ([#12477](https://github.com/SeleniumHQ/selenium/pull/12477),
+[#12464](https://github.com/SeleniumHQ/selenium/pull/12477))
+ * allow setting http client certifications with REQUESTS_CA_BUNDLE env ([#11957](https://github.com/SeleniumHQ/selenium/pull/11957))
+ * Fix bugs for [ElementScrollBehavior](#12462), [sending keys with long strings](https://github.com/SeleniumHQ/selenium/pull/12474)
+and [getting capabilities from options](https://github.com/SeleniumHQ/selenium/pull/12499)
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)
+
+
+
+ * Ruby
+ * Fix bug preventing good error messages in Selenium Manager when stdout empty
+ * Fix bug with Firefox not loading net/http library by default ([#12506](https://github.com/SeleniumHQ/selenium/pull/12506))
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+#### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/sandeepsuryaprasad" >}}
+{{< gh-user "https://api.github.com/users/sbabcoc" >}}
+
+
+
+
+#### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/ahndmal" >}}
+{{< gh-user "https://api.github.com/users/asolntsev" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+{{< gh-user "https://api.github.com/users/Tahanima" >}}
+{{< gh-user "https://api.github.com/users/veerendrajana" >}}
+
+
+
+
+#### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/SurelyMario" >}}
+
+
+
+
+**Thanks as well to all the [Selenium Team Members][team] who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/jimevans" >}}
+{{< gh-user "https://api.github.com/users/jlipps" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/luke-hill" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/symonk" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+
+
+
+
+Stay tuned for updates by following [SeleniumHQ](https://twitter.com/seleniumhq)!
+
+Happy testing!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
+
diff --git a/website_and_docs/content/blog/2023/selenium-4-13-0-released.md b/website_and_docs/content/blog/2023/selenium-4-13-0-released.md
new file mode 100644
index 000000000000..5b62b37f80f9
--- /dev/null
+++ b/website_and_docs/content/blog/2023/selenium-4-13-0-released.md
@@ -0,0 +1,139 @@
+---
+title: "Selenium 4.13 Released!"
+linkTitle: "Selenium 4.13 Released!"
+date: 2023-09-25
+tags: ["selenium"]
+categories: ["releases"]
+author: Titus Fortner [@titusfortner](https://titusfortner.com)
+description: >
+ Today we're happy to announce that Selenium 4.13 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.13.0 for Java,
+Python, Javascript and the Grid; and 4.13.1 for .NET and Ruby.
+Links to everything can be found on our [downloads page][downloads].
+
+### Highlights
+
+ * Chrome DevTools support is now: v115, v116, and v117 (Firefox still uses v85 for all versions)
+ * Reminder: this is the last version of Selenium with [Java 8 support](/blog/2023/java-8-support/).
+Please upgrade to at least Java 11.
+ * The location of Selenium Manager can be set manually in all bindings with `SE_MANAGER_PATH` environment variable.
+
+#### Relevant improvements per language
+
+ * Java
+ * Deprecated setScriptTimeout(), use scriptTimeout()
+ * Fixed several bugs related to logging driver output
+ * Removed a number of previously deprecated methods
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)
+
+
+
+ * JavaScript
+ * Minor bug fixes
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)
+
+
+
+ * .NET
+ * Users can now start a service before creating the driver object instance
+ * Removed Microsoft.IdentityModel.Tokens as dependency
+ * Fixed several bugs and made improvements to DevTools implementations
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)
+
+
+
+ * Python
+ * Removed deprecated headless methods
+ * Fixed bug preventing using performance logging in Chrome and Edge
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)
+
+
+
+ * Ruby
+ * Fixed bug preventing using performance logging in Chrome and Edge
+ * Users can now start a service before creating the driver object instance
+ * Removed deprecated driver extensions for location and network connection
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
+
+
+
+ * Rust
+ * Various bug fixes for improved Selenium Manager functionality
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rust/CHANGELOG.md)
+
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+#### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/KrishnaSuravarapu" >}}
+{{< gh-user "https://api.github.com/users/Sean-Gomez" >}}
+{{< gh-user "https://api.github.com/users/manuelsblanco" >}}
+{{< gh-user "https://api.github.com/users/mdmintz" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/sandeepsuryaprasad" >}}
+{{< gh-user "https://api.github.com/users/sbabcoc" >}}
+
+
+
+
+#### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/SparshKesari" >}}
+{{< gh-user "https://api.github.com/users/eaccmk" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/sachhu" >}}
+
+
+
+
+#### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Doofus100500" >}}
+{{< gh-user "https://api.github.com/users/amardeep2006" >}}
+{{< gh-user "https://api.github.com/users/luisfcorreia" >}}
+{{< gh-user "https://api.github.com/users/marcusalb" >}}
+{{< gh-user "https://api.github.com/users/williamlac" >}}
+
+
+
+
+**Thanks as well to all the [Selenium Team Members][team] who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+
+
+
+
+Stay tuned for updates by following [SeleniumHQ](https://twitter.com/seleniumhq)!
+
+Happy testing!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
+
diff --git a/website_and_docs/content/blog/2023/selenium-4-14-released.md b/website_and_docs/content/blog/2023/selenium-4-14-released.md
new file mode 100644
index 000000000000..003cbc74b59a
--- /dev/null
+++ b/website_and_docs/content/blog/2023/selenium-4-14-released.md
@@ -0,0 +1,128 @@
+---
+title: "Selenium 4.14 Released!"
+linkTitle: "Selenium 4.14 Released!"
+date: 2023-09-25
+tags: ["selenium"]
+categories: ["releases"]
+author: Titus Fortner [@titusfortner](https://titusfortner.com)
+description: >
+ Today we're happy to announce that Selenium 4.14 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.14.0 for Java,
+Python, Javascript, Ruby, .NET and the Grid.
+Links to everything can be found on our [downloads page][downloads].
+
+### Highlights
+
+ * Chrome DevTools support is now: v116, v117, and v118 (Firefox still uses v85 for all versions)
+ * If you are using Java, this release requires Java 11! (see post on [Java 8 support](/blog/2023/java-8-support/))
+ * Selenium supports automatic downloading and management of the Microsoft Edge browser
+
+#### Relevant improvements per language
+
+ * Java
+ * Removed support for Async HTTP Client, the default is now the default Java library
+ * Allow setting SSL context in client config for HttpClient
+ * Several logging message improvements
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)
+
+
+
+ * JavaScript
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)
+
+
+
+ * .NET
+ * Saving screenshots with different image formats is deprecated
+ * Removed IdentityModel dependency
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)
+
+
+
+ * Python
+ * Fix bug that didn't close log_output in Service classes
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)
+
+
+
+ * Ruby
+ * Provide public access to atom scripts
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
+
+
+
+ * Rust
+ * Automated Edge management
+ * Recognizes and handles webview2
+ * Locates existing Chromium browsers when specifying Chrome
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rust/CHANGELOG.md)
+
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+#### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/alexey-pelykh" >}}
+{{< gh-user "https://api.github.com/users/manuelsblanco" >}}
+{{< gh-user "https://api.github.com/users/sbabcoc" >}}
+
+
+
+
+#### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/alaahong" >}}
+
+
+
+
+#### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/amardeep2006" >}}
+{{< gh-user "https://api.github.com/users/imtheish97" >}}
+{{< gh-user "https://api.github.com/users/IronMage" >}}
+{{< gh-user "https://api.github.com/users/williamlac" >}}
+
+
+
+
+**Thanks as well to all the [Selenium Team Members][team] who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/jimevans" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/symonk" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+
+
+
+
+Stay tuned for updates by following [SeleniumHQ](https://twitter.com/seleniumhq)!
+
+Happy testing!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
+
diff --git a/website_and_docs/content/blog/2023/selenium-4-15-released.md b/website_and_docs/content/blog/2023/selenium-4-15-released.md
new file mode 100644
index 000000000000..3c7243722f58
--- /dev/null
+++ b/website_and_docs/content/blog/2023/selenium-4-15-released.md
@@ -0,0 +1,136 @@
+---
+title: "Selenium 4.15 Released!"
+linkTitle: "Selenium 4.15 Released!"
+date: 2023-11-01
+tags: ["selenium"]
+categories: ["releases"]
+author: Titus Fortner [@titusfortner](https://titusfortner.com)
+description: >
+ Today we're happy to announce that Selenium 4.15 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.15.0 for Java,
+Javascript, Ruby, .NET and the Grid; 4.15.2 for Python.
+Links to everything can be found on our [downloads page][downloads].
+
+### Highlights
+
+ * Chrome DevTools support is now: v117, v118, and v119 (Firefox still uses v85 for all versions)
+ * Implemented [Remote File Downloads]({{< ref "../../documentation/webdriver/drivers/remote_webdriver#downloads" >}})
+ * Selenium Manager supports webview2, Firefox ESR and Driver and Browser Mirrors
+
+#### Noteworthy changes per language
+
+ * Java
+ * Numerous BiDi implementations
+ * Remove CDP version dependencies in the server
+ * Selenium Manager now gets copied to cache directory instead of being used from temp directory
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)
+
+
+
+ * JavaScript
+ * Replaced calls to console.log with managed loggers
+ * Added several BiDi methods
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)
+
+
+
+ * .NET
+ * Improved nuget packages metadata
+ * Allows starting service object directly
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)
+
+
+
+ * Python
+ * Remove selenium manager accommodation for Conda
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)
+
+
+
+ * Ruby
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
+
+
+
+ * Rust
+ * Included debug and split-debuginfo in dev profile
+ * Changed windows target to stable-i686-pc-windows-gnu
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rust/CHANGELOG.md)
+
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+#### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/pinterior" >}}
+
+
+
+
+#### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Afranioalves" >}}
+{{< gh-user "https://api.github.com/users/AnselmoPfeifer" >}}
+{{< gh-user "https://api.github.com/users/BlazerYoo" >}}
+{{< gh-user "https://api.github.com/users/luisfcorreia" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+{{< gh-user "https://api.github.com/users/sangcnguyen" >}}
+{{< gh-user "https://api.github.com/users/sombo20" >}}
+{{< gh-user "https://api.github.com/users/SripriyaPKulkarni" >}}
+{{< gh-user "https://api.github.com/users/zacharyzollman" >}}
+{{< gh-user "https://api.github.com/users/zViniicius" >}}
+
+
+
+
+#### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/luisfcorreia" >}}
+{{< gh-user "https://api.github.com/users/msvticket " >}}
+{{< gh-user "https://api.github.com/users/mtcolman" >}}
+{{< gh-user "https://api.github.com/users/philippe-granet" >}}
+{{< gh-user "https://api.github.com/users/sehaas" >}}
+{{< gh-user "https://api.github.com/users/vietnd96" >}}
+
+
+
+
+**Thanks as well to all the [Selenium Team Members][team] who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+
+
+
+
+Stay tuned for updates by following [SeleniumHQ](https://twitter.com/seleniumhq)!
+
+Happy testing!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
+
diff --git a/website_and_docs/content/blog/2023/selenium-4-16-released.md b/website_and_docs/content/blog/2023/selenium-4-16-released.md
new file mode 100644
index 000000000000..362bdbe5b6e8
--- /dev/null
+++ b/website_and_docs/content/blog/2023/selenium-4-16-released.md
@@ -0,0 +1,146 @@
+---
+title: "Selenium 4.16 Released!"
+linkTitle: "Selenium 4.16 Released!"
+date: 2023-12-06
+tags: ["selenium"]
+categories: ["releases"]
+author: Titus Fortner [@titusfortner](https://titusfortner.com)
+description: >
+ Today we're happy to announce that Selenium 4.16 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.16.0 for
+Javascript, Ruby, Python, and Selenium 4.16.1 for .NET, Java and the Grid.
+Links to everything can be found on our [downloads page][downloads].
+
+### Highlights
+
+ * Chrome DevTools support is now: v118, v119, and v120 (Firefox still uses v85 for all versions)
+ * Users may now opt in to Selenium Manager by specifying a `browserVersion` that is different from what is found on the System
+ * All bindings now [log Selenium information](https://www.selenium.dev/documentation/webdriver/troubleshooting/logging/)
+
+#### Noteworthy changes per language
+
+ * Java
+ * Improve Grid usage of Selenium Manager by always allowing browser version of "stable"
+ * Implement CDP script pinning for Chrome-based browsers
+ * Allow reusing devtools instance with JDK 11 client
+ * Moved org.openqa.selenium.remote.http.jdk to selenium-http
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)
+
+
+
+ * JavaScript
+ * Fix logging levels in http.js and webdriver.js
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)
+
+
+
+ * .NET
+ * Allow overriding default Actions duration
+ * Remove System.Drawing.Common as package dependency
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)
+
+
+
+ * Python
+ * Remove deprecated Safari parameters for reuse_service and quiet
+ * Fix bug to allow Remote WebDriver to use custom Chrome-based commands
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)
+
+
+
+ * Ruby
+ * Added initial typing support with rbs files
+ * Fix bug preventing Selenium Manager from working with Unix and Cygwin
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
+
+
+
+ * Rust
+ * Use online mapping to discover proper geckodriver version
+ * Fix webview2 support when browser path is set
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rust/CHANGELOG.md)
+
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+#### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/EdwinVanVliet" >}}
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/asottile" >}}
+{{< gh-user "https://api.github.com/users/centic9" >}}
+{{< gh-user "https://api.github.com/users/jnhyperion" >}}
+{{< gh-user "https://api.github.com/users/manuelsblanco" >}}
+{{< gh-user "https://api.github.com/users/matt-kemp-m2x" >}}
+{{< gh-user "https://api.github.com/users/nikhlagrwl" >}}
+{{< gh-user "https://api.github.com/users/purkhusid" >}}
+{{< gh-user "https://api.github.com/users/vietnd96" >}}
+{{< gh-user "https://api.github.com/users/whimboo" >}}
+
+
+
+
+#### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/SparshKesari" >}}
+{{< gh-user "https://api.github.com/users/emanlove" >}}
+{{< gh-user "https://api.github.com/users/ronPy" >}}
+{{< gh-user "https://api.github.com/users/utamas" >}}
+
+
+
+
+#### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Thab310" >}}
+{{< gh-user "https://api.github.com/users/amardeep2006" >}}
+{{< gh-user "https://api.github.com/users/mtcolman" >}}
+{{< gh-user "https://api.github.com/users/vietnd96" >}}
+
+
+
+
+#### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/alaahong" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/luisfcorreia" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+
+
+
+
+Stay tuned for updates by following [SeleniumHQ](https://twitter.com/seleniumhq)!
+
+Happy testing!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
+
diff --git a/website_and_docs/content/blog/2023/selenium-4-8-0-released.md b/website_and_docs/content/blog/2023/selenium-4-8-0-released.md
new file mode 100644
index 000000000000..e0bd6a45f270
--- /dev/null
+++ b/website_and_docs/content/blog/2023/selenium-4-8-0-released.md
@@ -0,0 +1,71 @@
+---
+title: "Selenium 4.8.0 Released!"
+linkTitle: "Selenium 4.8.0 Released!"
+date: 2023-01-23
+tags: ["selenium"]
+categories: ["releases"]
+author: Diego Molina ([@diegofmolina](https://twitter.com/diegofmolina))
+description: >
+ Today we're happy to announce that Selenium 4.8.0 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.8.0 for Java,
+.NET, Ruby, Python, and Javascript as well as the Grid and Internet Explorer Driver.
+Links to everything can be found on our [downloads page][downloads].
+
+### Highlights
+
+ * Chrome DevTools support is now: v107, v108, and v109 (Firefox still uses v85 for all versions)
+ * Large JS executions have the name as a comment to help understand what payload being sent to/from server/driver.
+ * Deprecation of headless convenience method. Read more about in the [headless blog post](/blog/2023/headless-is-going-away/).
+ * Ruby overhauls Options classes (again)
+ * Initial [BiDi] support in JavaScript, Ruby, and improvements in Java.
+ * We're continuing to remove [Legacy Protocol](/blog/2022/legacy-protocol-support/) classes in Java and Grid.
+ * Accommodate ability to specify sub-paths in Grid.
+ * Plus various language specific bug fixes; see the full list of changes in the [Changelogs][bindings]
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+
+
+
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/kianelbo" >}}
+{{< gh-user "https://api.github.com/users/jameshilliard" >}}
+{{< gh-user "https://api.github.com/users/potapovDim" >}}
+{{< gh-user "https://api.github.com/users/j3soon" >}}
+{{< gh-user "https://api.github.com/users/gdams" >}}
+{{< gh-user "https://api.github.com/users/jdufresne" >}}
+{{< gh-user "https://api.github.com/users/valfirst" >}}
+
+
+
+
+**Thanks as well to all the [Selenium Team Members][team] who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/krmahadevan" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/symonk" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/TamsilAmani" >}}
+
+
+
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
+
diff --git a/website_and_docs/content/blog/2023/selenium-4-9-0-released.md b/website_and_docs/content/blog/2023/selenium-4-9-0-released.md
new file mode 100644
index 000000000000..279a3595e9f8
--- /dev/null
+++ b/website_and_docs/content/blog/2023/selenium-4-9-0-released.md
@@ -0,0 +1,90 @@
+---
+title: "Selenium 4.9.0 Released!"
+linkTitle: "Selenium 4.9.0 Released!"
+date: 2023-04-21
+tags: ["selenium"]
+categories: ["releases"]
+author: Diego Molina ([@diegofmolina](https://twitter.com/diegofmolina))
+description: >
+ Today we're happy to announce that Selenium 4.9.0 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.9.0 for Java,
+.NET, Ruby, Python, and Javascript as well as the Grid and Internet Explorer Driver.
+Links to everything can be found on our [downloads page][downloads].
+
+### Highlights
+
+ * Chrome DevTools support is now: v110, v111, and v112 (Firefox still uses v85 for all versions)
+ * Maven BOM for the Java bindings.
+ * Remote file downloads are [now possible through Selenium Grid](/documentation/grid/configuration/cli_options/#enabling-managed-downloads-by-the-node).
+ * First steps taken to phase out CDP in Firefox and replace it with the BiDi implementation.
+ * `InvalidSelectorException` [now extends `WebDriverException` instead of `NoSuchElementException`](/blog/2023/invalid-selector-exception-has-changed/).
+ * Selenium Manager uses information set in the browser options to get the correct browser driver.
+ * A [sub-path](/documentation/grid/configuration/cli_options/#router) can be set in Selenium Grid to have a custom Grid url.
+ * Complete removal of [Json Wire Protocol support in Java and Grid](https://www.selenium.dev/blog/2022/legacy-protocol-support/).
+
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+
+
+
+{{< gh-user "https://api.github.com/users/atrnh" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/arnonax-tr" >}}
+{{< gh-user "https://api.github.com/users/robotdana" >}}
+{{< gh-user "https://api.github.com/users/iampopovich" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/snackattas" >}}
+{{< gh-user "https://api.github.com/users/arielj" >}}
+{{< gh-user "https://api.github.com/users/whimboo" >}}
+{{< gh-user "https://api.github.com/users/code-with-abdullah" >}}
+{{< gh-user "https://api.github.com/users/71n9" >}}
+{{< gh-user "https://api.github.com/users/lifefloating" >}}
+{{< gh-user "https://api.github.com/users/jnhyperion" >}}
+{{< gh-user "https://api.github.com/users/MohabMohie" >}}
+{{< gh-user "https://api.github.com/users/MMK-IBSEN" >}}
+{{< gh-user "https://api.github.com/users/RussiaVk" >}}
+{{< gh-user "https://api.github.com/users/Kouzukii" >}}
+{{< gh-user "https://api.github.com/users/mdmintz" >}}
+{{< gh-user "https://api.github.com/users/RenderMichael" >}}
+{{< gh-user "https://api.github.com/users/tosmolka" >}}
+{{< gh-user "https://api.github.com/users/etiennebarrie" >}}
+{{< gh-user "https://api.github.com/users/jameshilliard" >}}
+{{< gh-user "https://api.github.com/users/marksmayo" >}}
+
+
+
+
+**Thanks as well to all the [Selenium Team Members][team] who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/TamsilAmani" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/krmahadevan" >}}
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/symonk" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+
+
+
+
+Stay tuned for updates by following [SeleniumHQ](https://twitter.com/seleniumhq)!
+
+Happy testing!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
+
diff --git a/website_and_docs/content/blog/2023/selenium-open-space-conference/index.md b/website_and_docs/content/blog/2023/selenium-open-space-conference/index.md
new file mode 100644
index 000000000000..7e973fd76be6
--- /dev/null
+++ b/website_and_docs/content/blog/2023/selenium-open-space-conference/index.md
@@ -0,0 +1,22 @@
+---
+title: "Selenium Open Space Conference Oct 28th"
+linkTitle: "Selenium Open Space Conference Oct 28th"
+date: 2023-10-17
+tags: ["event"]
+categories: ["conference"]
+author: Maaret Pyhäjärvi ([@maaretp](https://mas.to/maaretp))
+description: >
+ Free and online open space conference for Selenium community on Oct 28th, Selenium's 19th birthday
+---
+
+In less than two weeks, Selenium project is holding space for free and online community meetup, the inaugural Selenium Open Space Conference. Open space conferences are ones where everyone is a speaker, and we co-create our agenda for conversations, questions or answers, workshops, sharing and learning.
+
+We start our 24 hour event at time of 19 years from the tracked Selenium release announcement. We split the day into four segments to facilitate the global community. We set up an [event site](https://selenium.dev/sosc), and a mechanism to enroll: by pull request or issue to the [site in github](https://github.com/SeleniumHQ/sosc).
+
+With enrollment, you can already tell if you have a topic in mind you would like to host, and see some (not all!) of the sessions people have in mind for the day.
+
+To run the event, we set up Welo and Miro. Our space has 11 track rooms that each fit up to 150 people regardless of appearance, and we build our agenda on Miro during marketplace of ideas, one for each four time segments.
+
+
+
+Welcome from the organizers, would be lovely to see you join us all.
\ No newline at end of file
diff --git a/website_and_docs/content/blog/2023/selenium-open-space-conference/sosc-miro.png b/website_and_docs/content/blog/2023/selenium-open-space-conference/sosc-miro.png
new file mode 100644
index 000000000000..8c81746b7815
Binary files /dev/null and b/website_and_docs/content/blog/2023/selenium-open-space-conference/sosc-miro.png differ
diff --git a/website_and_docs/content/blog/2023/selenium-open-space-conference/sosc-welo.jpg b/website_and_docs/content/blog/2023/selenium-open-space-conference/sosc-welo.jpg
new file mode 100644
index 000000000000..393fc3d27617
Binary files /dev/null and b/website_and_docs/content/blog/2023/selenium-open-space-conference/sosc-welo.jpg differ
diff --git a/website_and_docs/content/blog/2023/status_of_selenium_manager_in_october_2023.md b/website_and_docs/content/blog/2023/status_of_selenium_manager_in_october_2023.md
new file mode 100644
index 000000000000..3f21b829f55b
--- /dev/null
+++ b/website_and_docs/content/blog/2023/status_of_selenium_manager_in_october_2023.md
@@ -0,0 +1,116 @@
+---
+title: "Status of Selenium Manager in October 2023"
+linkTitle: "Status of Selenium Manager in October 2023"
+date: 2023-10-17
+tags: ["selenium", "manager", "edge", "chromium"]
+categories: ["releases"]
+author: Boni García ([@boni_gg](https://twitter.com/boni_gg))
+description: >
+ This blog post summarizes the novelties introduced in the latest two versions of Selenium Manager (i.e., 0.4.13 and 0.4.14).
+---
+
+Selenium Manager continues its development plan. As usual, in the latest releases, i.e., 0.4.13 and 0.4.14 (shipped with Selenium 4.13 and 4.14, respectively), we have fixed the problems reported so far. In these releases, the issues were related to the extraction of the Firefox binary from the self-extracting archive (SFX) in Windows and the advanced configuration through the configuration file (`se-config.toml`) and environment variables (e.g., `SE_BROWSER`). Moreover, these recent releases include new features, as explained below.
+
+### Search for the best driver possible in the cache
+By default, Selenium Manager needs to request online endpoints (such as [Chrome for Testing JSON API](https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints) or [Firefox product-details JSON API](https://wiki.mozilla.org/Release_Management/Product_details)
+to discover, download, and maintain the proper drivers and browsers that Selenium requires. The downloaded artifacts are stored in the cache (by default, `~/.cache/selenium`) and reused from there.
+
+To make the driver resolution procedure more robust, as of version 0.4.13, Selenium Manager includes a new feature for locating the drivers in the cache when some error happens. This way, when a network request (or other function) fails in Selenium Manager, it tries to locate the driver in the cache. This characteristic aims to provide a best-effort solution for creating a Selenium session properly, which is the final objective of Selenium Manager. Also, this feature will help to provide a better experience for locating drivers for Selenium Grid.
+
+### Locating Selenium Manager binary with an environment variable
+The next feature related to Selenium Manager 0.4.13 has been implemented in the Selenium bindings (i.e., Java, JavaScript, Python, .Net, and Ruby). As of Selenium 4.13.0, the Selenium bindings allow locating the Selenium Manager binary using an environment variable called `SE_MANAGER_PATH`. This way, if this variable is set, the bindings will use its value as the Selenium Manager path in the local filesystem. This feature will allow users to provide a custom compilation of Selenium Manager, for instance, if the default binaries (compiled for Windows, Linux, and macOS) are incompatible with a given system (e.g., ARM64 in Linux).
+
+### Automated Edge management
+Selenium Manager 0.4.14 includes automated Edge management. This browser is the last we have in mind for this feature, after Chrome and Firefox.
+
+This feature has been implemented in the same way that Chrome and Firefox for macOS and Linux. In other words, Selenium Manager allows to automatically manage (i.e., discover, downloads, and cache) the latest Edge versions (i.e., stable, beta, dev, canary) and old versions (e.g., 115, 116, etc.). The downloaded binaries, as usual, are stored in the Selenium cache. The following output commands showcase this feature in macOS (first snipped) and Linux (second snippet):
+
+```
+./selenium-manager --browser edge --debug --force-browser-download
+
+DEBUG msedgedriver not found in PATH
+DEBUG Checking edge releases on https://edgeupdates.microsoft.com/api/products
+DEBUG Required browser: edge 117.0.2045.40
+DEBUG Downloading edge 117.0.2045.40 from https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/6e65d9ef-0bb9-4636-8d9e-2b1b9d16149d/MicrosoftEdge-117.0.2045.40.pkg
+DEBUG edge 117.0.2045.40 has been downloaded at /Users/boni/.cache/selenium/edge/mac64/117.0.2045.40/Microsoft Edge.app/Contents/MacOS/Microsoft Edge
+DEBUG Reading msedgedriver version from https://msedgedriver.azureedge.net/LATEST_RELEASE_117_MACOS
+DEBUG Required driver: msedgedriver 117.0.2045.40
+DEBUG Downloading msedgedriver 117.0.2045.40 from https://msedgedriver.azureedge.net/117.0.2045.40/edgedriver_mac64.zip
+INFO Driver path: /Users/boni/.cache/selenium/msedgedriver/mac64/117.0.2045.40/msedgedriver
+INFO Browser path: /Users/boni/.cache/selenium/edge/mac64/117.0.2045.40/Microsoft Edge.app/Contents/MacOS/Microsoft Edge
+```
+
+```
+./selenium-manager --browser edge --debug --browser-version beta
+
+DEBUG msedgedriver not found in PATH
+DEBUG edge not found in PATH
+DEBUG edge beta not found in the system
+DEBUG Checking edge releases on https://edgeupdates.microsoft.com/api/products
+DEBUG Required browser: edge 118.0.2088.11
+DEBUG Downloading edge 118.0.2088.11 from https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-beta/microsoft-edge-beta_118.0.2088.11-1_amd64.deb
+DEBUG edge 118.0.2088.11 has been downloaded at /home/user/.cache/selenium/edge/linux64/118.0.2088.11/msedge
+DEBUG Reading msedgedriver version from https://msedgedriver.azureedge.net/LATEST_RELEASE_118_LINUX
+DEBUG Required driver: msedgedriver 118.0.2088.11
+DEBUG Downloading msedgedriver 118.0.2088.11 from https://msedgedriver.azureedge.net/118.0.2088.11/edgedriver_linux64.zip
+INFO Driver path: /home/user/.cache/selenium/msedgedriver/linux64/118.0.2088.11/msedgedriver
+INFO Browser path: /home/user/.cache/selenium/edge/linux64/118.0.2088.11/msedge
+```
+
+Nevertheless, this feature cannot be implemented similarly for Windows. The reason is that the Edge installer for Windows is distributed as a Microsoft Installer (MSI) file, designed to be executed with administrator rights. We tried to extract the Edge binaries from that MSI file. Still, it seems not possible (see [Stack Overflow post that summarized the problem](https://stackoverflow.com/questions/77132922/extract-parse-resources-from-portable-executable-pe-file)). All in all, the only solution we found is to install Edge in Windows using the MSI installer, and so, administrator grants are required.
+
+This way, when Edge is attempted to be installed with Selenium Manager in Windows with a non-administrator session, a warning message will be displayed as follows:
+
+```
+./selenium-manager --debug --browser edge --browser-version beta
+
+DEBUG msedgedriver not found in PATH
+DEBUG edge not found in PATH
+DEBUG edge beta not found in the system
+WARN There was an error managing edge (edge can only be installed in Windows with administrator permissions); using driver found in the cache
+INFO Driver path: C:\Users\boni\.cache\selenium\msedgedriver\win64\118.0.2088.17\msedgedriver.exe
+```
+
+But when Selenium Manager is executed with administrator grants in Windows, it will be able to automatically discover, download, and install Edge (stable, beta, dev, canary, and older versions):
+
+```
+./selenium-manager --debug --browser edge --browser-version beta
+
+DEBUG msedgedriver not found in PATH
+DEBUG edge not found in PATH
+DEBUG edge beta not found in the system
+DEBUG Checking edge releases on https://edgeupdates.microsoft.com/api/products
+DEBUG Required browser: edge 118.0.2088.17
+DEBUG Downloading edge 118.0.2088.17 from https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/7adec542-f34c-4dea-8e2a-f8c6fab4d2f3/MicrosoftEdgeBetaEnterpriseX64.msi
+DEBUG Installing MicrosoftEdgeBetaEnterpriseX64.msi
+DEBUG edge 118.0.2088.17 is available at C:\Program Files (x86)\Microsoft\Edge Beta\Application\msedge.exe
+DEBUG Required driver: msedgedriver 118.0.2088.17
+DEBUG msedgedriver 118.0.2088.17 already in the cache
+INFO Driver path: C:\Users\boni\.cache\selenium\msedgedriver\win64\118.0.2088.17\msedgedriver.exe
+INFO Browser path: C:\Program Files (x86)\Microsoft\Edge Beta\Application\msedge.exe
+```
+
+### Chromium support
+Chromium is released as portable binaries, distributed as zip files for Windows, Linux, and macOS (see [Chromium download page](https://www.chromium.org/getting-involved/download-chromium/)). Nevertheless, there is a case in which Chromium is actually installed in the system. This happens in Linux systems when installing Chromium through package managers like `atp` or `snap`, for instance, as follows:
+
+```
+sudo snap install chromium
+```
+
+Therefore, as of 0.4.14, Selenium Manager looks for the Chromium binaries in the PATH when Chrome is not discovered. The following snippet showcases how this feature works in a Linux machine in which Chrome is not available, but Chromium has been installed through `snap`:
+
+```
+./selenium-manager --browser chrome --debug
+DEBUG chromedriver not found in PATH
+DEBUG Found chromium in PATH: /snap/bin/chromium
+DEBUG Running command: /snap/bin/chromium --version
+DEBUG Output: "Chromium 117.0.5938.149 snap"
+DEBUG Detected browser: chrome 117.0.5938.149
+DEBUG Required driver: chromedriver 117.0.5938.149
+DEBUG chromedriver 117.0.5938.149 already in the cache
+INFO Driver path: /home/user/.cache/selenium/chromedriver/linux64/117.0.5938.149/chromedriver
+INFO Browser path: /snap/bin/chromium
+```
+
+### Next steps
+We are close to implementing all the features initially planned for Selenium Manager. You can trace the status of the development activities in the [Selenium Manager project dashboard](https://github.com/orgs/SeleniumHQ/projects/5).
\ No newline at end of file
diff --git a/website_and_docs/content/blog/2023/whats-new-in-selenium-manager-with-selenium-4.11.0.md b/website_and_docs/content/blog/2023/whats-new-in-selenium-manager-with-selenium-4.11.0.md
new file mode 100644
index 000000000000..b784e76c13a2
--- /dev/null
+++ b/website_and_docs/content/blog/2023/whats-new-in-selenium-manager-with-selenium-4.11.0.md
@@ -0,0 +1,125 @@
+---
+title: "What's new in Selenium Manager with Selenium 4.11.0"
+linkTitle: "What's new in Selenium Manager with Selenium 4.11.0"
+date: 2023-07-31
+tags: ["selenium", "manager", "chrome", "chromedriver", "cft"]
+categories: ["releases"]
+author: Boni García ([@boni_gg](https://twitter.com/boni_gg))
+description: >
+ Selenium 4.11.0 ships very relevant new features of Selenium Manager: support of Chrome for Testing (CfT) endpoints for chromedriver management and automated Chrome management (based also on CfT).
+---
+
+As of version [4.6.0](https://www.selenium.dev/blog/2022/introducing-selenium-manager/), all releases of Selenium (Java, JavaScript, Python, Ruby, and .Net) are shipped with **Selenium Manager**. [Selenium Manager](https://www.selenium.dev/documentation/selenium_manager/) is a binary tool (implemented in Rust) that provides automated driver management for Selenium. [Selenium Manager](https://www.selenium.dev/documentation/selenium_manager/) is still in beta, although it is becoming a relevant component of Selenium.
+
+So far, the main feature of Selenium Manager is called *automated driver management*. I use the term *management* for this feature (and not just *download*) since this process is broader and implies different steps:
+
+1. Browser version discovery. Selenium Manager discovers the browser version (e.g., Chrome, Firefox, Edge) installed in the machine that executes Selenium. For this step, shell commands are used (e.g., `google-chrome --version`).
+2. Driver version discovery. With the discovered browser version, the proper driver version is resolved. For this step, the online metadata maintained by the browser vendors (e.g., [chromedriver](https://chromedriver.chromium.org/downloads), [geckodriver](https://github.com/mozilla/geckodriver/releases), or [msedgedriver](https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/)) are used.
+3. Driver download. With the resolved driver version, the driver URL is obtained; with that URL, the driver artifact is downloaded, uncompressed, and stored locally.
+4. Driver cache. Uncompressed driver binaries are stored in a local cache folder (`~/.cache/selenium`). The next time the same driver is required, if the driver is already in the cache, it will be used from there.
+
+### Drivers on the PATH
+
+Driver management through Selenium Manager is *opt-in* for the Selenium bindings. Thus, users can continue managing their drivers manually (putting the driver in the `PATH` or using system properties) or rely on a third-party *manager* to do it automatically. Selenium Manager only operates as a fallback: if no driver is provided, Selenium Manager will come to the rescue. Nevertheless, Selenium Manager also helps users to identify potential problems with the drivers on the `PATH`.
+
+Let's consider an example. Imagine you manually manage your chromedriver for your Selenium tests. When you carry out this management, the stable version of Chrome is 113, so you download chromedriver 113 and put it in your `PATH`. Your Selenium tests execute. Everything is fine. But the *problem* here is that Chrome is *evergreen*. This name refers to Chrome's ability to upgrade automatically and silently to the next stable version when available. This feature is excellent for end-users but potentially dangerous for automated testing. Let's go back to the example to discover it. Your local Chrome will eventually update to version 115. And that moment, your Selenium tests will be broken due to the incompatibility of the manually managed driver (113) and your Chrome (115). That day, your test dashboard will be red due to the following error message: *"session not created: This version of ChromeDriver only supports Chrome version 113"*.
+
+This problem is the primary reason for the existence of the so-called *driver managers*. And as of Selenium 4.11, Selenium Manager helps to understand potential issues related to the drivers in the `PATH`. When an incompatible driver release is found in the `PATH`, a warning message like the following is displayed to the user:
+
+```
+WARN The chromedriver version (113.0.5672.63) detected in PATH at C:\my-drivers\chromedriver.exe might not be compatible with the detected chrome version (115.0.5790.110); currently, chromedriver 115.0.5790.102 is recommended for chrome 115.*, so it is advised to delete the driver in PATH and retry
+```
+
+### Entering Chrome for Testing (CfT)
+
+The Chrome team started a very relevant initiative for the testing community in 2023: [Chrome for Testing (CfT)](https://googlechromelabs.github.io/chrome-for-testing/). CfT is a reduced release of Chrome primarily addressed to the testing use case.
+
+One of the key differences between a regular Chrome release and CfT is that Chrome is *evergreen*, but CfT is not. This way, CfT allows pined browsers for testing. CfT releases are portable binaries (for Windows, Linux, and macOS) for different versions, including the stable, beta, dev, and canary channels. These releases can be programmatically discovered using the [CfT JSON endpoints](https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints).
+
+As of version 114, the chromedriver team has stopped publishing the chromedriver releases and metadata using their traditional [chromedriver download repository](https://chromedriver.chromium.org/downloads). This way, and as of version 115, chromedriver releases can only be discovered programmatically using the abovementioned [CfT JSON endpoints](https://github.com/GoogleChromeLabs/chrome-for-testing#json-api-endpoints).
+
+This change has been very relevant for the so-called driver managers. Luckily, Selenium already supports this new way of chromedriver discovery. The last version of Selenium Manager uses the CfT endpoints for chromedriver management. Therefore, if you are using Selenium Manager and Chrome, you must be updated to Selenium 4.11.0 to continue managing chromedriver automatically.
+
+### Automated browser management
+
+Moreover, as of Selenium 4.11.0, Selenium Manager implements automated browser management based on CfT. In other words, Selenium Manager uses the CfT endpoints to discover, download, and cache the different CfT releases, making them seamlessly available for Selenium.
+
+Let's suppose we want to driver Chrome with Selenium (see the doc about how to [start a session with Selenium](https://www.selenium.dev/documentation/webdriver/getting_started/first_script/#1-start-the-session)). Before the session begins, and when the driver is unavailable, Selenium Manager manages chromedriver for us. This way, all the complexity related to CfT endpoints, driver versions, etc., is transparent, and we can rely on Selenium Manager to discover, download, and cache the proper driver for us.
+
+In addition, and as a significant novelty starting on Selenium 4.11.0, if Chrome is not installed on the local machine when executing the previous line, the current stable CfT release is discovered, downloaded, and cached (in `~/.cache/selenium/chrome`). But there is more. In addition to the stable CfT version, Selenium Manager also allows downloading of older versions of CfT (starting in version 113, which is the first version published as CfT).
+
+To set a browser version with Selenium, we use a browser option called [browserVersion](https://www.selenium.dev/documentation/webdriver/drivers/options/#browserversion).
+Until now, the value of this option had no effect when using the local browser since Selenium could not change what is installed in the system. But things are different with Selenium 4.11.0.
+
+Let's consider a simple example. Suppose we set `browserVersion` to `114` using [Chrome options](https://www.selenium.dev/documentation/webdriver/browsers/chrome/). In this case, Selenium Manager will check if Chrome 114 is already installed. If it is, it will be used. If not, Selenium Manager will manage (i.e., discover, download, and cache) CfT 114. And in either case, the chromedriver is also managed. Finally, Selenium will start Chrome to be driven programmatically, as usual.
+
+But there is even more. In addition to fixed browser versions (e.g., `113`, `114`, `115`, etc.), we can use the following labels for `browserVersion`:
+
+- `stable`: Current CfT version.
+- `beta`: Next version to stable.
+- `dev`: Version in development at this moment.
+- `canary`: Nightly build for developers.
+
+When these labels are specified, Selenium Manager first checks if a given Chrome is already installed (`beta`, `dev`, etc.), and when it is not detected, CfT is automatically managed.
+
+### Under the hood
+
+Selenium Manager is a CLI (command line interface) tool implemented in Rust and compiled for Windows, Linux, and macOS. The Selenium Manager binaries are shipped with each Selenium release. This way, each Selenium binding language invokes Selenium Manager to carry out the automated driver and browser management previously explained.
+
+For most users, Selenium Manager should work silently and transparently. But if you want to *play* with Selenium Manager or use it for your own use case (e.g., to download drivers or CfT releases), you can get the Selenium Manager binaries from the [Selenium main repository](https://github.com/SeleniumHQ/selenium/tree/trunk/common/manager).
+
+For instance, to manage Chrome/chromedriver, the Selenium Manager command we need to invoke from the shell is the following (notice that the flag `--debug` is optional, but it helps us to understand what Selenium Manager is doing):
+
+```
+> selenium-manager --browser chrome --debug
+DEBUG Checking chromedriver in PATH
+DEBUG Running command: chromedriver --version
+DEBUG Output: ""
+DEBUG chromedriver not found in PATH
+DEBUG chrome detected at C:\Program Files\Google\Chrome\Application\chrome.exe
+DEBUG Using shell command to find out chrome version
+DEBUG Running command: wmic datafile where name='C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe' get Version /value
+DEBUG Output: "\r\r\n\r\r\nVersion=115.0.5790.110\r\r\n\r\r\n\r\r\n\r"
+DEBUG Detected browser: chrome 115.0.5790.110
+DEBUG Reading metadata from https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json
+DEBUG Required driver: chromedriver 115.0.5790.102
+DEBUG Driver URL: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/115.0.5790.102/win64/chromedriver-win64.zip
+INFO Driver path: C:\Users\boni\.cache\selenium\chromedriver\win64\115.0.5790.102\chromedriver.exe
+INFO Browser path: C:\Program Files\Google\Chrome\Application\chrome.exe
+```
+
+In this case, the local Chrome (in Windows) is detected by Selenium Manager. Then, using its version and the CfT endpoints, the proper chromedriver version (115, in this example) is downloaded to the local cache. Finally, Selenium Manager provides two results: i) the driver path (downloaded) and ii) the browser path (local).
+
+Let's consider another example. Now we want to use Chrome beta. Therefore, we invoke Selenium Manager specifying that version label as follows (notice that the CfT beta is discovered, downloaded, and stored in the local cache):
+
+```
+> selenium-manager --browser chrome --debug --browser-version beta
+DEBUG Checking chromedriver in PATH
+DEBUG Running command: chromedriver --version
+DEBUG Output: ""
+DEBUG chromedriver not found in PATH
+DEBUG Checking chrome in PATH
+DEBUG Running command: where chrome
+DEBUG Output: ""
+DEBUG chrome not found in PATH
+DEBUG chrome has not been discovered in the system
+DEBUG Reading metadata from https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json
+DEBUG Required browser: chrome 116.0.5845.49
+DEBUG Downloading chrome 116.0.5845.49 from https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/116.0.5845.49/win64/chrome-win64.zip
+DEBUG chrome 116.0.5845.49 has been downloaded at C:\Users\boni\.cache\selenium\chrome\win64\116.0.5845.49\chrome.exe
+DEBUG Reading metadata from https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json
+DEBUG Required driver: chromedriver 116.0.5845.49
+DEBUG Driver URL: https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/116.0.5845.49/win64/chromedriver-win64.zip
+INFO Driver path: C:\Users\boni\.cache\selenium\chromedriver\win64\116.0.5845.49\chromedriver.exe
+INFO Browser path: C:\Users\boni\.cache\selenium\chrome\win64\116.0.5845.49\chrome.exe
+```
+
+### Troubleshooting in the bindings
+
+If you want to get the Selenium Manager debugging information (as shown in the section before) when using the Selenium bindings languages, you can enable the logging capabilities of Selenium.
+Please visit the [Selenium troubleshooting page](https://www.selenium.dev/documentation/webdriver/troubleshooting/logging/) for details.
+
+
+### Next steps
+
+You can trace the work in progress in the [Selenium Manager project dashboard](https://github.com/orgs/SeleniumHQ/projects/5). The following features to be implemented in Selenium Manager will continue the automated browser management mechanism, this time for **Firefox** and **Edge**. Stay tuned!
\ No newline at end of file
diff --git a/website_and_docs/content/blog/2023/whats_new_in_selenium_manager_0.4.12_shipped_with_selenium_4.12.0.md b/website_and_docs/content/blog/2023/whats_new_in_selenium_manager_0.4.12_shipped_with_selenium_4.12.0.md
new file mode 100644
index 000000000000..01e64bfe5f42
--- /dev/null
+++ b/website_and_docs/content/blog/2023/whats_new_in_selenium_manager_0.4.12_shipped_with_selenium_4.12.0.md
@@ -0,0 +1,34 @@
+---
+title: "What's new in Selenium Manager 0.4.12, shipped with Selenium 4.12.0"
+linkTitle: "What's new in Selenium Manager 0.4.12, shipped with Selenium 4.12.0"
+date: 2023-08-28
+tags: ["selenium", "manager", "firefox"]
+categories: ["releases"]
+author: Boni García ([@boni_gg](https://twitter.com/boni_gg))
+description: >
+ Selenium Manager 0.4.12 is shipped with Selenium 4.12.0. This release aims to stabilize the features provided so far, delivering a new relevant characteristic: automated browser management for Firefox.
+---
+
+A new release of Selenium Manager is out. For this release, we made a relevant decision concerning the Selenium Manager versioning format. From now on, Selenium Manager will follow the same version as Selenium. Nevertheless, since Selenium Manager is still in beta, its major version is *0*. Thus, Selenium **4.12.0** is shipped with Selenium Manager **0.4.12**.
+
+First, we made a substantial effort to stabilize the already available features on Selenium Manager. This way, the version includes several bug-fixing related to automated driver management or caching. You can find the details of the changes implemented in Selenium Manager 0.4.12 in the (newly created) [changelog file](https://github.com/SeleniumHQ/selenium/blob/trunk/rust/CHANGELOG.md).
+
+Besides, for this release, we made a significant update to the [documentation page of Selenium Manager](https://www.selenium.dev/documentation/selenium_manager/). This page contains all the fine-grained information related to automated driver and browser management, configuration, etc. Also, it has several **TL;DR** summarizing the main ideas for the eager reader.
+
+### Automated Firefox management
+After shipping automated browser management based on [Chrome for Testing](https://googlechromelabs.github.io/chrome-for-testing/) on the previous release, Selenium Manager 0.4.12 continues the job by providing automated **Firefox** management. This way, Selenium Manager 0.4.12 allows us to manage the different Firefox releases (for Windows, Linux, and macOS), making them seamlessly available for Selenium.
+
+The procedure is the same as with Chrome. When Firefox is unavailable in the machine running Selenium, it is automatically discovered, downloaded, and cached by Selenium. If no version is specified, the latest stable Firefox release is managed by Selenium Manager. Besides, the bindings can use a browser option called [browserVersion](https://www.selenium.dev/documentation/webdriver/drivers/options/#browserversion) to specify a particular Firefox release (e.g., 114, 115, etc.). Finally, the label `stable` allows us to manage the current stable Firefox release explicitly, and the labels `beta`, `dev`, and `nightly` as used for unstable Firefox releases.
+
+This feature is possible thanks to the remarkable work of the Firefox team by maintaining current and old releases in their [public repository](https://ftp.mozilla.org/pub/firefox/releases/). Moreover, the Firefox version discovery in Selenium Manager is made thanks to the availability of the [product-details JSON API](https://wiki.mozilla.org/Release_Management/Product_details), also maintained by the Firefox team.
+
+### Improved configuration
+Custom setup is sometimes necessary for browser automation. For that reason, Selenium Manager already provides different features for [rich configuration](https://www.selenium.dev/documentation/selenium_manager/#configuration). Selenium Manager 0.4.12 extends this feature by delivering a new configuration argument called `--cache-path`. This argument allows changing the path of the local folder used to store downloaded assets (drivers and browsers) by Selenium Manager (by default, `~/.cache/selenium`). As usual, this argument can also be changed by including an entry in the configuration file or using an environment variable (`SE_CACHE_PATH`). Regarding the former, the name of the configuration file has been renamed to `se-config.toml` in Selenium Manager 0.4.12. As usual, if you use this configuration file, it must be placed in the root of the cache folder.
+
+### Other changes
+A minor change in Selenium Manager 0.4.12 is related to the metadata file, now called `se-metadata.json`. As usual, this file is stored in the root of the cache folder. This file contains versions discovered by Selenium Manager making network requests and the *time-to-live* (TTL) in which they are valid. Since the TTL for browsers and drivers is now the same concept, Selenium Manager unifies these two configuration elements (previously, `browser_ttl` and `driver_ttl`) in a single one called `ttl` (with a default value of 3600 seconds, i.e., 1 hour). For further details, visit the Selenium Manager page about [caching](https://www.selenium.dev/documentation/selenium_manager/#caching).
+
+Last but not least, the Selenium Manager binary compiled for macOS is *universal*, in the sense that it can be executed both in *x64* and *arm64* architectures out of the box. Previously, the binary was compiled for *x64*, and so, [Rosetta](https://support.apple.com/en-us/HT211861) should be available in *arm64* macOS machines (i.e., M1 or M2). With the new Selenium Manager macOS binary, Rosetta is no longer mandatory.
+
+### Next steps
+The next release of Selenium Manager will continue delivering automated browser management, this time for **Edge**, and other features. As usual, you can trace the work in progress in the [Selenium Manager project dashboard](https://github.com/orgs/SeleniumHQ/projects/5).
\ No newline at end of file
diff --git a/website_and_docs/content/blog/2024/_index.md b/website_and_docs/content/blog/2024/_index.md
new file mode 100644
index 000000000000..9c2032b98304
--- /dev/null
+++ b/website_and_docs/content/blog/2024/_index.md
@@ -0,0 +1,5 @@
+---
+title: "Blog Posts - 2024"
+linkTitle: "2024"
+weight: 86
+---
diff --git a/website_and_docs/content/blog/2024/bidi-java-breaking-change.md b/website_and_docs/content/blog/2024/bidi-java-breaking-change.md
new file mode 100644
index 000000000000..aa6971edb673
--- /dev/null
+++ b/website_and_docs/content/blog/2024/bidi-java-breaking-change.md
@@ -0,0 +1,56 @@
+---
+title: "Update imports to use BiDi Java"
+linkTitle: "Update imports to use BiDi Java"
+date: 2024-03-14
+tags: ["selenium"]
+categories: ["general"]
+author: Puja Jagani [@pujagani](https://www.linkedin.com/in/pujajagani/)
+description: >
+ This blog post discusses the rationale behind the breaking change in Java BiDi implementation and the changes users will have to make.
+---
+
+## What part of the code base is impacted?
+Selenium WebDriver BiDi APIs in Java bindings are impacted.
+
+## What is impacted by the breaking change?
+The WebDriver BiDi APIs stay as they are, so you can continue to use them. However, the import statements need to be updated.
+
+## What is the breaking change?
+The import statements need to be updated when using the BiDi APIs.
+
+### Before Selenium 4.19:
+
+{{< tabpane langEqualsHeader=true >}}
+{{< tab header="Java" >}}
+import org.openqa.selenium.bidi.LogInspector;
+import org.openqa.selenium.bidi.BrowsingContextInspector;
+import org.openqa.selenium.bidi.Input;
+import org.openqa.selenium.bidi.Script;
+import org.openqa.selenium.bidi.Network;
+{{< /tab >}}
+{{< /tabpane >}}
+
+### After Selenium 4.19 and above:
+
+{{< tabpane langEqualsHeader=true >}}
+{{< tab header="Java" >}}
+import org.openqa.selenium.bidi.module.LogInspector;
+import org.openqa.selenium.bidi.module.BrowsingContextInspector;
+import org.openqa.selenium.bidi.module.Input;
+import org.openqa.selenium.bidi.module.Script;
+import org.openqa.selenium.bidi.module.Network;
+{{< /tab >}}
+{{< /tabpane >}}
+
+## Why the breaking change?
+Selenium is actively working to implement the [W3C BiDi](https://w3c.github.io/webdriver-bidi). The long-term goal of W3C BiDi is to port all W3C WebDriver Classic APIs to use the WebDriver BiDi APIs under the hood.
+When [browsingContext.locateNodes](https://w3c.github.io/webdriver-bidi/#command-browsingContext-locateNodes) command, which is the BiDi counterpart of [findElements](https://www.w3.org/TR/webdriver2/#find-elements) command, was introduced, the major goal was to ensure that the 'locateNodes' command returns a [WebElement](https://github.com/SeleniumHQ/selenium/blob/trunk/java/src/org/openqa/selenium/WebElement.java). This would be make the porting smoother in the future and allows users to continue calling APIs of the WebElement.
+
+During the implementation, a circular dependency was encountered in the underlying build tool [Bazel](https://bazel.build/about/intro).
+The solution to this was to follow the [best practices of Bazel](https://bazel.build/configure/best-practices#packages).
+
+So, the W3C BiDi related classes of a module were grouped into Bazel [package](https://bazel.build/concepts/build-ref#packages). The classes that themselves call commands or events were all grouped under a package named 'module'.
+Thus, following the recommended practice and avoiding Bazel's circular dependency proved to be a win-win solution.
+
+## Summary
+The W3C BiDi protocol is in under development, and parallelly browsers and clients are working to add the complementary APIs. While Selenium works on implementing it, the protocol is constantly changing, with new modules or APIs being added or existing ones being updated. While the team strives to avoid breaking changes and deprecate APIs for at least 2 versions before removal, it can be challenging to adhere to this for some changes, such as the one described in this blog post.
\ No newline at end of file
diff --git a/website_and_docs/content/blog/2024/browserstack-selenium-partnership.md b/website_and_docs/content/blog/2024/browserstack-selenium-partnership.md
new file mode 100644
index 000000000000..717ccd133137
--- /dev/null
+++ b/website_and_docs/content/blog/2024/browserstack-selenium-partnership.md
@@ -0,0 +1,22 @@
+---
+title: "Celebrating a Milestone: BrowserStack Becomes Selenium's Development Partner"
+linkTitle: "Celebrating a Milestone: BrowserStack Becomes Selenium's Development Partner"
+date: 2024-07-01
+tags: ["selenium"]
+categories: ["general"]
+author: David Burns [@automatedtester](https://www.linkedin.com/in/theautomatedtester/)
+description: >
+ Selenium is proud to annouce that we have created a new tier to show the appreciation of the companies that support us.
+---
+
+It has been a great year for the Selenium community as it continues to grow. The popularity of Selenium’s Python Bindings is evident from the discussions at the Selenium Conference and on LinkedIn, while the Java bindings have impressively surpassed 100 million downloads.
+
+This project, having reached 20 years old this year, would not be possible without the amazing contributions from our volunteer contributors and the Open Source Program Offices of companies like BrowserStack that allow us to work on this project as part of our day jobs.
+
+**About BrowserStack**
+They have over 50,000 organizations and 6M users using their end-to-end testing platform. BrowserStack has been one of the Selenium project's biggest supporters for years and currently employs several of Selenium's core maintainers, donating a significant portion of their time towards the development, maintenance, support, and leadership of open-source Selenium repos.
+
+This dedicated support has allowed us to continue work on the client bindings, especially the work going into WebDriver BiDi, support our community, continuously improve our documentation, and maintain all the extra projects we oversee, ensuring Selenium can continue to thrive for the next 20 years.
+We are also thrilled to highlight the collaborative efforts between the BrowserStack team, the Google Chrome team, Microsoft, Apple, SauceLabs, and the Firefox team, who have come together to build Selenium WebDriver BiDi, the next generation of Selenium. This collaborative spirit embodies our dedication to enhancing the testing experience for the Selenium user community.
+With this in mind, the Selenium Project now shows our appreciation to BrowserStack for their years of continued support by creating a new sponsorship tier called the Development Partner.
+We are deeply indebted to BrowserStack for all their support and are proud to recognize them as our first official Development Partner. This work has allowed us to continue progress on the client bindings, especially the work going into WebDriver BiDi, support our community, continuously improve our documentation, and maintain all the extra projects we oversee, so Selenium can continue to be around for the next 20 years!
diff --git a/website_and_docs/content/blog/2024/chrome-browser-woes.md b/website_and_docs/content/blog/2024/chrome-browser-woes.md
new file mode 100644
index 000000000000..96ee7aabebd5
--- /dev/null
+++ b/website_and_docs/content/blog/2024/chrome-browser-woes.md
@@ -0,0 +1,42 @@
+---
+title: "Two Chrome features you should disable"
+linkTitle: "Two Chrome features you should disable"
+date: 2024-08-18
+tags: ["chrome"]
+categories: ["general"]
+author: Marek Andreansky [@skyhirider](https://www.linkedin.com/in/marekandreansky/)
+images:
+ - "/images/blog/2024/chrome-woes.jpeg"
+description: This blog post lists two problematic Chrome features that can affect your automation as well as a quick way to disable them.
+---
+
+## Search engine selection screen
+
+Starting with version 127 of Chrome, the browser [now asks which search engine you would like to use](https://www.google.com/chrome/choicescreen/),
+which is great for regular users.
+
+But for automation, it does so every single time.
+
+To bypass this, use the argument below when specifying the browser options.
+
+```
+--disable-search-engine-choice-screen
+```
+
+## Chrome wastes over 60MB of your bandwidth downloading language plugins
+
+The second feature is something that has been with Chrome for quite a while now.
+
+Every time you launch Chrome,
+[it will query and download several .crx files](https://www.reddit.com/r/chrome/comments/u78vd0/chrome_has_constantly_been_downloading_something/).
+
+These files can even be left over on your disk's download folder if you create and close drivers faster than these can be processed.
+
+To disable this feature, use the browser option below.
+
+```
+--disable-features=OptimizationGuideModelDownloading,OptimizationHintsFetching,OptimizationTargetPrediction,OptimizationHints
+```
+
+
+_This is a guest blog post by [Marek Andreansky](https://www.linkedin.com/in/marekandreansky/)_
diff --git a/website_and_docs/content/blog/2024/htmlunit-remote-for-selenium-4-grid.md b/website_and_docs/content/blog/2024/htmlunit-remote-for-selenium-4-grid.md
new file mode 100644
index 000000000000..feed9fa4388f
--- /dev/null
+++ b/website_and_docs/content/blog/2024/htmlunit-remote-for-selenium-4-grid.md
@@ -0,0 +1,86 @@
+---
+title: "HtmlUnit Remote: Acquiring Remote HtmlUnitDriver Session in Selenium 4 Grid"
+linkTitle: "HtmlUnit Remote: Acquiring Remote HtmlUnitDriver Session in Selenium 4 Grid"
+date: 2024-08-19
+tags: ["Grid", "HtmlUnitDriver"]
+categories: ["Grid"]
+author: Scott Babcock [@sbabcoc](https://www.github.com/sbabcoc)
+images:
+ - "/images/blog/2024/html-unit-remote.jpg"
+description: >
+ This post describes 'HtmlUnit Remote', a wrapper for HtmlUnitDriver that enables Selenium 4 Grid to manage remote instances of this "headless" browser.
+---
+
+# HTMLUNIT REMOTE
+[](https://central.sonatype.com/search?q=com.nordstrom.ui-tools+htmlunit-remote&core=gav)
+
+The [HtmlUnit Remote](https://github.com/seleniumhq-community/htmlunit-remote) project implements a [W3C WebDriver protocol](https://www.w3.org/TR/webdriver2) wrapper for [HtmlUnitDriver](https://github.com/SeleniumHQ/htmlunit-driver), which enables **Selenium 4 Grid** to supply remote sessions of this headless browser.
+
+### Background
+
+To eliminate behavioral differences between local and remote configurations, the [Selenium Foundation](https://github.com/sbabcoc/Selenium-Foundation) framework always acquires browser sessions from a **Grid** instance, managing its own local grid instance when not configured to use an existing grid. **Selenium 3 Grid** could be configured to supply **HtmlUnitDriver** sessions, supported by special-case handling within the Node server itself. This handling was not carried over into **Selenium 4 Grid**, which was completely re-engineered with new architecture and vastly expanded capabilities.
+
+The lack of **HtmlUnitDriver** support in **Selenium 4 Grid** necessitated reconfiguring the **Selenium Foundation** project unit tests from using this Java-only managed artifact to using a standard browser like Chrome, an external dependency that requires additional resources and imposes additional risks of failure.
+
+The driver service implemented by **HtmlUnit Remote** enables **Selenium 4 Grid** to supply **HtmlUnitDriver** sessions.
+
+### Project Rationale
+
+My initial objective for creating **HtmlUnit Remote** was to retain feature parity in **Selenium Foundation** for the set of browsers supported with **Selenium 3** and **Selenium 4**. Although I could configure my unit tests to target a conventional browser, I also wanted to avoid additional external dependencies with associated risks.
+
+Once I began investigating the features and functionality I would need to enable **Selenium 4 Grid** to supply **HtmlUnitDriver** sessions, I recognized an additional benefit this project could provide - comprehensive standardized configurability.
+
+### HtmlUnitDriver Configuration
+
+All remote drivers are configured via a standard **Selenium** feature - the [Capabilities](https://github.com/SeleniumHQ/selenium/blob/trunk/java/src/org/openqa/selenium/Capabilities.java) object. Prior to the **HtmlUnit Remote** project, many of the options of [HtmlUnit](https://www.htmlunit.org/) could not be accessed or modified via the **Capabilities** API. These were only available via custom **HtmlUnitDriver** methods, and the way that non-standard capabilities had been added to the **Capabilities** object didn't conform to the **W3C** specification.
+
+This meant that the initial phase of the **HtmlUnit Remote** project was to implement a comprehensive W3C-compliant configuration object - the **HtmlUnitDriverOptions** class. This class extends [AbstractDriverOptions](https://github.com/SeleniumHQ/selenium/blob/trunk/java/src/org/openqa/selenium/remote/AbstractDriverOptions.java), adding driver-specific capabilities under an extension named `garg:htmlunitOptions`. Support for this class provides full configurability of all **HtmlUnitDriver** options through the standard **Capabilities** API.
+
+This standardized configuration API has been incorporated directly into **HtmlUnitDriver**, providing the core implementation for manipulating every driver setting. To maintain backward compatibility, all of the existing constructors and configuration methods have been retained, reimplemented to use this new core API.
+
+### W3C Remote Protocol Wrapper
+
+With full standardized configurability in place, the next step was to create a server that implements the [W3C WebDriver protocol](https://www.w3.org/TR/webdriver2). The **HtmlUnitDriverServer** functions as a remote protocol wrapper around one or more **HtmlUnitDriver** sessions, performing the following tasks:
+* Create and manage driver sessions
+* Route driver commands to specified driver sessions
+* Package driver method results into HTTP responses
+
+### HtmlUnit Remote Packaging
+
+Rather than bulk up the existing driver with remote-specific features, **HtmlUnitDriverServer** and associated facilities are packaged in a companion `htmlunit-remote` artifact. In addition to the server, this artifact defines a driver information provider (**HtmlUnitDriverInfo**), a driver service (**HtmlUnitDriverService**), and a custom slot matcher (**HtmlUnitSlotMatcher**).
+
+### Connecting to the Grid
+
+Next up is **HtmlUnitDriverInfo**, which specifies the basic characteristics of the driver and provides a method that creates a driver session with specified capabilities. This class implements the standard [WebDriverInfo](https://github.com/SeleniumHQ/selenium/blob/trunk/java/src/org/openqa/selenium/WebDriverInfo.java) interface.
+
+With availability of **HtmlUnitDriver** advertised by this information provider, **Selenium 4 Grid** nodes can be configured to provide driver sessions:
+
+##### htmlunit.toml
+```
+[node]
+detect-drivers = false
+[[node.driver-configuration]]
+display-name = "HtmlUnit"
+stereotype = "{\"browserName\": \"htmlunit\"}"
+
+[distributor]
+slot-matcher = "org.openqa.selenium.htmlunit.remote.HtmlUnitSlotMatcher"
+```
+The `selenium-server` JAR doesn't include the **HtmlUnitDriver** artifacts; these need to be specified as extensions to the grid class path via the `--ext` option:
+
+```
+java -jar selenium-server-.jar --ext htmlunit-remote--grid-extension.jar standalone --config htmlunit.toml
+```
+The `grid-extension` artifact provides all of the specifications and service providers required to enable **Selenium 4 Grid** to supply remote sessions of **HtmlUnitDriver**. This artifact combines `htmlunit-remote` with `htmlunit3-driver`, `htmlunit`, and all of their unique dependencies.
+
+### Implementation Details
+
+**HtmlUnit Remote** provides the following elements:
+* **HtmlUnitDriverInfo** - This class informs **Selenium 4 Grid** that **HtmlUnitDriver** is available and provides a method to create new driver instances.
+* **HtmlUnitSlotMatcher** - This custom slot matcher extends **DefaultSlotMatcher**, indicating a match if both the slot stereotype and requested browser capabilities specify `htmlunit` as the browser name.
+* **HtmlUnitDriverService** - This class manages a server that hosts instances of **HtmlUnitDriver**.
+* **HtmlUnitDriverServer** - This is the server class that hosts **HtmlUnitDriver** instances, enabling remote operation via the [W3C WebDriver protocol](https://www.w3.org/TR/webdriver2).
+
+In operation, **HtmlUnitDriverService** is instantiated by **Selenium 4 Grid** node servers that are configured to support **HtmlUnitDriver**. Unlike other driver services, which launch a new process for each created driver session, **HtmlUnitDriverService** starts a single in-process server that hosts all of the driver sessions it creates.
+
+_This is a guest blog post by [Scott Babcock](https://www.github.com/sbabcoc)_
diff --git a/website_and_docs/content/blog/2024/multi-arch-images-via-docker-selenium.md b/website_and_docs/content/blog/2024/multi-arch-images-via-docker-selenium.md
new file mode 100644
index 000000000000..56f7912362ae
--- /dev/null
+++ b/website_and_docs/content/blog/2024/multi-arch-images-via-docker-selenium.md
@@ -0,0 +1,97 @@
+---
+title: "Multi-Arch Images via Docker Selenium"
+linkTitle: "Multi-Arch Images via Docker Selenium"
+date: 2024-05-23
+tags: [ "Grid", "Docker", "Kubernetes" ]
+categories: [ "Docker" ]
+author: Viet Nguyen Duc [@VietND96](https://github.com/VietND96)
+images:
+ - "/images/blog/2024/multi-arch-docker-selenium.jpeg"
+description: >
+ This blog post announces the availability of Multi-Arch Images for Selenium Grid Server on the official Selenium Docker Hub registry.
+---
+
+We're very happy to announce the landing of Multi-Arch Images for Selenium Grid Server on
+the [Selenium](https://hub.docker.com/r/selenium/) Docker Hub registry!
+
+### Motivation
+
+For experimental Docker container images that are able to run on platforms such as the Apple M-series or Raspberry Pi,
+the community-driven repository initiative hosted
+at [SeleniumHQ-Community/docker-seleniarm](https://github.com/seleniumhq-community/docker-seleniarm). These images are
+built for separate architectures: linux/arm64 (aarch64), linux/arm/v7 (armhf), and linux/amd64 and published
+on [Seleniarm](https://hub.docker.com/u/seleniarm) Docker Hub registry.
+
+In order to bring more awareness to the existence of the Multi-Arch Docker container images, provide more insight and
+transparency on how the container images are built, as well as overcome challenges in building and maintaining them. We
+have decided to merge the fork into the main project [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+and
+published multi-arch images on [Selenium](https://hub.docker.com/r/selenium/) Docker Hub registry.
+
+### Overview
+
+From image tag [releases](https://github.com/SeleniumHQ/docker-selenium/releases) `4.21.0` onwards, the architectures
+supported by Docker Selenium as below
+
+| Architecture | Operating System | Available |
+|:-------------------------:|------------------|:---------:|
+| x86_64 (aka amd64) | Ubuntu LTS | ✅ |
+| aarch64 (aka arm64/armv8) | Ubuntu LTS | ✅ |
+| armhf (aka arm32/armv7l) | N/A | ❌ |
+
+Based on the architecture of the host machine, Docker will automatically pull the correct image for the platform.
+
+### Browser Binaries
+
+Let's take a moment to look at the browser binaries which are available for various architectures
+
+Google does not build Chrome (google-chrome) for Linux/ARM platforms. Hence, the Chrome (node and standalone) images are
+only available for AMD64. Similarly, Microsoft does not build Edge (microsoft-edge) for Linux/ARM platforms.
+
+Instead, the open source Chromium browser is used in place of Chrome and Edge. The `standalone-chromium`
+and `node-chromium`
+
+```bash
+$ docker run --rm -it -p 4444:4444 -p 5900:5900 -p 7900:7900 --shm-size 2g selenium/standalone-chromium:latest
+```
+
+Mozilla Firefox now is available for Linux/ARM64
+via [Nightly](https://blog.nightly.mozilla.org/2024/04/19/firefox-nightly-now-available-for-linux-on-arm64/) channel.
+The Firefox version in the ARM64 image will be different from the AMD64 version until the stable release is available.
+
+| Image Name | Operating System | amd64 | arm64 |
+|---------------------|------------------|-------|-------|
+| standalone-chromium | Ubuntu LTS | ✅ | ✅ |
+| node-chromium | Ubuntu LTS | ✅ | ✅ |
+| standalone-firefox | Ubuntu LTS | ✅ | ✅ |
+| node-firefox | Ubuntu LTS | ✅ | ✅ |
+| standalone-edge | Ubuntu LTS | ✅ | ❌ |
+| node-edge | Ubuntu LTS | ✅ | ❌ |
+| standalone-chrome | Ubuntu LTS | ✅ | ❌ |
+| node-chrome | Ubuntu LTS | ✅ | ❌ |
+
+### Build, test, and distribute multi-arch images
+
+We would also like to share what has been done to ensure that the multi-arch images can be built, tested, and
+distributed seamlessly.
+
+- Utilize Bash scripts and Makefile to wrap the tasks as much as possible. It provides the transparency on how the
+ container images are built and proceed by single command.
+
+- Utilize Arm VM's support on [CircleCI](https://app.circleci.com/pipelines/github/SeleniumHQ/docker-selenium) to build,
+ test, and deploy ARM64 images. Once GitHub Actions officially supports Arm-based hosted runners, those workflows can
+ easily be moved back to the same place. All the tests done for AMD64 images (including Docker, Docker Compose, and
+ deploy to Kubernetes) are used to verify ARM64 images.
+
+- Utilize experimental feature [containerd image store](https://docs.docker.com/storage/containerd/) in Docker Engine to
+ build and distribute multi-arch images in a simple way.
+
+Hopefully, this will make it easy for the community to find and use multi-arch images to simplify Selenium Grid Server
+deployment on various platforms.
+
+---
+
+Stay tuned for updates by following SeleniumHQ on [X (Formerly Twitter)](https://twitter.com/seleniumhq)
+or [LinkedIn](https://www.linkedin.com/company/selenium/)!
+
+Happy testing!
diff --git a/website_and_docs/content/blog/2024/protecting-unsecured-selenium-grid.md b/website_and_docs/content/blog/2024/protecting-unsecured-selenium-grid.md
new file mode 100644
index 000000000000..1e29ab5f6160
--- /dev/null
+++ b/website_and_docs/content/blog/2024/protecting-unsecured-selenium-grid.md
@@ -0,0 +1,28 @@
+---
+title: "Protecting unsecured Selenium Grids against SeleniumGreed"
+linkTitle: "Protecting unsecured Selenium Grids"
+date: 2024-07-31
+tags: ["selenium"]
+categories: ["general"]
+author: David Burns [@automatedtester](https://www.linkedin.com/in/theautomatedtester/)
+description: >
+ With an ongoing attack, called SeleniumGreed, on Selenium Grids, we recommend you keep your grid secure.
+---
+
+Over the last week there have been stories going around about crypto miners abusing unsecured Selenium Grids by
+injecting code in the session create to download and start up crypto miners. This came out thanks to the work from
+Wiz about an attack they have called [SeleniumGreed](https://www.wiz.io/blog/seleniumgreed-cryptomining-exploit-attack-flow-remediation-steps).
+This issue can be abused on most versions of Selenium but there appears to be a lot of effort going into abusing
+Selenium Grid 3.14. Please upgrade as some of the security items have been added since then.
+
+Selenium Grid by default doesn't have any authentication as the assumption has always been that we want you to put
+this behind a secure network to prevent people from abusing your resources. There are ways that you can secure the grid,
+and we have documentation available on how to do this in our [help section](https://www.selenium.dev/documentation/grid/configuration/help/#security). You can see more details if you run
+
+```
+java -jar selenium-server-.jar info security
+```
+
+Another way to combat this is to use a cloud provider to run your Selenium Grid. We have numerous vendors that sponsor us
+so have a look at our [sponsors](https://www.selenium.dev/sponsors/) page. If you need help, after reading the [help section](https://www.selenium.dev/documentation/grid/configuration/help/#security)
+please come into our [chat rooms](https://www.selenium.dev/support/#ChatRoom) and we will try guide you through making your grid more secure.
diff --git a/website_and_docs/content/blog/2024/saucelabs-selenium-partnership.md b/website_and_docs/content/blog/2024/saucelabs-selenium-partnership.md
new file mode 100644
index 000000000000..6058422c22f3
--- /dev/null
+++ b/website_and_docs/content/blog/2024/saucelabs-selenium-partnership.md
@@ -0,0 +1,70 @@
+---
+title: "Sauce Labs: A New Milestone with Selenium"
+linkTitle: "Sauce Labs & Selenium Partnership"
+date: 2024-07-02
+tags: ["selenium"]
+categories: ["general"]
+author: David Burns [@automatedtester](https://www.linkedin.com/in/theautomatedtester/)
+images:
+ - "/images/blog/2024/saucelabs-selenium-partnership.jpeg"
+description: >
+ Announcing a new Development partnership tier with Sauce Labs, celebrating our supporters!
+---
+
+Selenium has witnessed an exceptional year filled with expansion and progress. The rising
+popularity of Selenium's Python Bindings is prominently showcased through the engaging
+discussions at the Selenium Conference and on LinkedIn. Concurrently, the Java bindings have
+reached a significant landmark, surpassing 100 million downloads. In addition to this,
+the community has managed to garner over [2.5 million active](https://plausible.io/manager.selenium.dev)
+Selenium users monthly.
+
+We could not have achieved Selenium's 20th anniversary without the collective efforts of numerous
+volunteers and the invaluable assistance of a company like [Sauce Labs](https://saucelabs.com/resources/topic-hub/selenium?utm_source=selenium&utm_medium=website&utm_campaign=selenium-sponsorship-fy25).
+
+In 2008, Jason Huggins, Selenium's creator, established Sauce Labs, a company that has since
+played a crucial role in Selenium's expansion.
+
+Sauce Labs has provided a platform for the Selenium Project to display its accomplishments,
+including various keynotes at SauceCon. Here, figures like Simon Stewart and Jim Evans have been
+able to share their visions for the future of Selenium.
+
+Financially, Sauce Labs has substantially supported the Selenium Project, sponsoring both the
+project itself and the Selenium Conference over many years. This backing has been instrumental
+in allowing the project to flourish.
+
+Selenium thrives on collaboration, and Sauce Labs has been a vital facilitator. They have
+enabled the Selenium Project to host in-person events like the Test Automation Summit in Berlin
+in 2022. These gatherings have provided opportunities for members of the Selenium Project to
+engage with creators of different testing frameworks, fostering discussions on ecosystem
+improvements. Sauce Labs has also hosted Selenium Dev Summits, where the project's future has
+been a central topic.
+
+Sauce Labs contributions extend beyond financial support. They have significantly contributed
+to the technical and organizational well-being of the Selenium Project. Boni Garcia developed
+the first version of Selenium Manager while at Sauce Labs. Furthermore, several Sauce Labs
+employees, including Marcus Merrell, Diego Molina, and Titus Fortner, continue contributing
+to the Selenium project, driven by their passion. This passion is shared by Sauce Labs,
+enabling these contributions to be part of their daily work.
+
+This unwavering support has nurtured a project governed openly, not by a single entity, but
+by the community. This model has welcomed diverse contributors, including Google Chrome,
+Microsoft, Apple, LambdaTest, Applitools, BrowserStack, and Mozilla Firefox teams. Together, they
+have developed WebDriver BiDi, the next generation of WebDriver.
+
+The project's open governance and collaborative nature have allowed continuous work on client
+bindings, particularly WebDriver BiDi, community support, documentation improvements, and
+maintenance of additional projects.
+
+Sauce Labs has been an unnamed development partner for the Selenium Project for many years.
+With this in mind, the Selenium Project now shows its appreciation to Sauce Labs for their
+years of continued support by creating a new sponsorship tier called the Development Partner
+and naming Sauce Labs the first and official Development Partner.
+
+Sauce Labs has Selenium in its DNA, and Selenium has Sauce Labs in its DNA. This partnership
+celebrates their shared history and future. We are excited to see what the future holds for
+both Selenium and Sauce Labs, and we are excited to continue to work together for the next
+twenty years.
+
+If you want to learn more about this partnership and win a limited edition t-shirt, check
+[How Did Sauce Labs Get Its Name? A Selenium Story](https://saucelabs.com/resources/blog/selenium-and-sauce-labs).
+
diff --git a/website_and_docs/content/blog/2024/selenium-4-17-released.md b/website_and_docs/content/blog/2024/selenium-4-17-released.md
new file mode 100644
index 000000000000..88afc3d5120c
--- /dev/null
+++ b/website_and_docs/content/blog/2024/selenium-4-17-released.md
@@ -0,0 +1,144 @@
+---
+title: "Selenium 4.17 Released!"
+linkTitle: "Selenium 4.17 Released!"
+date: 2024-01-23
+tags: ["selenium"]
+categories: ["releases"]
+author: Titus Fortner [@titusfortner](https://titusfortner.com)
+description: >
+ Today we're happy to announce that Selenium 4.17 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.17.0 for
+Javascript, Ruby, Python, .NET, Java and the Grid!
+Links to everything can be found on our [downloads page][downloads].
+
+### Highlights
+
+ * Chrome DevTools support is now: v119, v120, and v121 (Firefox still uses v85 for all versions)
+ * Selenium Manager [records usage](https://plausible.io/manager.selenium.dev) set
+environment variable [`SE_AVOID_STATS` to `"true"`](/documentation/selenium_manager/#data-collection) to avoid sending information.
+ * Chrome headless changed the name of the browser to reflect that it is not actually chrome; Selenium now handles this seamlessly,
+but you should still switch to `--headless=new` (see: [Headless is going away](/blog/2023/headless-is-going-away/))
+
+#### Noteworthy changes per language
+
+ * Java
+ * Remove deprecated event listener classes; update to EventFiringDecorator and WebDriverListener classes
+ * Allow disabling Grid UI
+ * Deprecated FirefoxBinary class and legacy Error Codes
+ * Deprecated HTML5 features for offline storage, location, and network connection
+ * No longer accepting session requests with desiredCapabilities keyword
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)
+
+
+
+ * JavaScript
+ * Remove deprecated headless methods and associated references
+ * Implemented remote file downloading
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)
+
+
+
+ * .NET
+ * Improvements to the new logging implementation
+ * Removed previously deprecated code
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)
+
+
+
+ * Python
+ * Updated WPEWebKit support
+ * Removed previously deprecated code
+ * Deprecated FirefoxBinary and several outdated FirefoxProfile methods
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)
+
+
+
+ * Ruby
+ * Logger defaults output to stderr instead of stdout
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
+
+
+
+ * Rust
+ * Use latest browser from cache when browser path is not discovered
+ * Throw a descriptive message when error parsing JSON from response
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rust/CHANGELOG.md)
+
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+#### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Earlopain" >}}
+{{< gh-user "https://api.github.com/users/EdwinVanVliet" >}}
+{{< gh-user "https://api.github.com/users/asolntsev" >}}
+{{< gh-user "https://api.github.com/users/jamesbraza" >}}
+{{< gh-user "https://api.github.com/users/lauromoura" >}}
+{{< gh-user "https://api.github.com/users/middlingphys" >}}
+{{< gh-user "https://api.github.com/users/take0x" >}}
+{{< gh-user "https://api.github.com/users/valfirst" >}}
+{{< gh-user "https://api.github.com/users/vietnd96" >}}
+{{< gh-user "https://api.github.com/users/whimboo" >}}
+
+
+
+
+
+#### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/YevgeniyShunevych" >}}
+
+
+
+
+#### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Auto81" >}}
+{{< gh-user "https://api.github.com/users/Earlopain" >}}
+{{< gh-user "https://api.github.com/users/amardeep2006" >}}
+{{< gh-user "https://api.github.com/users/vietnd96" >}}
+
+
+
+
+#### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+
+
+
+
+Stay tuned for updates by following [SeleniumHQ](https://twitter.com/seleniumhq)!
+
+Happy testing!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2024/selenium-4-18-released.md b/website_and_docs/content/blog/2024/selenium-4-18-released.md
new file mode 100644
index 000000000000..808ab861c006
--- /dev/null
+++ b/website_and_docs/content/blog/2024/selenium-4-18-released.md
@@ -0,0 +1,147 @@
+---
+title: "Selenium 4.18 Released!"
+linkTitle: "Selenium 4.18 Released!"
+date: 2024-02-19
+tags: ["selenium"]
+categories: ["releases"]
+author: Diego Molina [@diemol](https://diemol.com)
+description: >
+ Today we're happy to announce that Selenium 4.18 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.18.0 and 4.18.1 for
+Javascript, Ruby, Python, .NET, Java and the Grid!
+Links to everything can be found on our [downloads page][downloads].
+
+### Highlights
+
+ * Chrome DevTools support is now: v120, v121, and v122 (Firefox still uses v85 for all versions)
+ * Selenium Manager [records usage](https://plausible.io/manager.selenium.dev) has been decreased to reduce impact on users.
+ * Chrome headless changed the name of the browser to reflect that it is not actually chrome; Selenium now handles this seamlessly,
+but you should still switch to `--headless=new` (see: [Headless is going away](/blog/2023/headless-is-going-away/))
+
+#### Noteworthy changes per language
+
+ * Java
+ * Enabling Grid to use self-signed certificate for debugging
+ * Added explicit target locator events to the listener support classes in `WebDriverListener`.
+ * Add missing event handlers for TargetLocator interface in `WebDriverListener`.
+ * Several [BiDi] additions: Browsing context destroyed event, Network intercept commands, command `continuewithAuth`, between others.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)
+
+
+
+
+ * JavaScript
+ * Several [BiDi] additions: Browsing context destroyed event, realm destroyed event, command `continuewithAuth`, between others.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)
+
+
+
+ * .NET
+ * Fix protocol cdp version for `RemoteWebDriver`.
+ * Fix network response data encoding.
+ * Explicitly support passing the full path to driver in Service constructor
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)
+
+
+
+ * Python
+ * Python for [nightly releases](https://test.pypi.org/project/selenium/)
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)
+
+
+
+ * Ruby
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
+
+
+
+
+ * Rust
+ * Add timestamps to Selenium Manager logs
+ * Selenium Manager decreases frequency of statistics reporting
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rust/CHANGELOG.md)
+
+
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+#### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Trigtrig" >}}
+{{< gh-user "https://api.github.com/users/manuelsblanco" >}}
+{{< gh-user "https://api.github.com/users/mtrea" >}}
+{{< gh-user "https://api.github.com/users/oleg-rd" >}}
+{{< gh-user "https://api.github.com/users/semaperepelitsa" >}}
+{{< gh-user "https://api.github.com/users/symonk" >}}
+{{< gh-user "https://api.github.com/users/valfirst" >}}
+
+
+
+
+
+#### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/BlazerYoo" >}}
+{{< gh-user "https://api.github.com/users/bhecquet" >}}
+{{< gh-user "https://api.github.com/users/geekmister" >}}
+{{< gh-user "https://api.github.com/users/justnpT" >}}
+{{< gh-user "https://api.github.com/users/mmonfared" >}}
+{{< gh-user "https://api.github.com/users/netassa" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+
+
+
+
+#### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/0xC4N1" >}}
+{{< gh-user "https://api.github.com/users/Doofus100500" >}}
+{{< gh-user "https://api.github.com/users/Opvolger" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+#### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+
+
+
+
+Stay tuned for updates by following [SeleniumHQ](https://twitter.com/seleniumhq)!
+
+Happy testing!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2024/selenium-4-19-released.md b/website_and_docs/content/blog/2024/selenium-4-19-released.md
new file mode 100644
index 000000000000..bbe08de0c5b9
--- /dev/null
+++ b/website_and_docs/content/blog/2024/selenium-4-19-released.md
@@ -0,0 +1,147 @@
+---
+title: "Selenium 4.19 Released!"
+linkTitle: "Selenium 4.19 Released!"
+date: 2024-03-27
+tags: ["selenium"]
+categories: ["releases"]
+author: Diego Molina [@diemol](https://diemol.com)
+images:
+ - "/images/blog/2024/selenium_4.19.png"
+description: >
+ Today we're happy to announce that Selenium 4.19 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.19.0 for
+Javascript, Ruby, Python, .NET, Java and the Grid!
+Links to everything can be found on our [downloads page][downloads].
+
+### Highlights
+
+ * Chrome DevTools support is now: v121, v122, and v123 (Firefox still uses v85 for all versions)
+ * Thanks to Selenium Manager's [records usage](https://plausible.io/manager.selenium.dev), we know Selenium has at least 1.8M active users in the last 30 days!
+ * Java and JavaScript keep adding more WebDriver [BiDi] features.
+ * The WebDriver [BiDi] features in Java have a new home, read it at Puja's [blog post](/blog/2024/bidi-java-breaking-change).
+
+
+#### Noteworthy changes per language
+
+ * Java
+ * `se:bidi` was removed from the session response when starting a Grid session, as `webSocketUrl` is enough.
+ * Memory allocation and thread handling was improved in Grid.
+ * Add missing event handlers for TargetLocator interface in `WebDriverListener`.
+ * Several [BiDi] additions: adding `setFiles` command of the Input Module, between others.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)
+
+
+
+
+ * JavaScript
+ * Several [BiDi] additions: adding `setFiles` command of the Input Module, between others.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)
+
+
+
+ * .NET
+ * The `ChromiumDriverService.AllowedIPAddresses` name was corrected
+ * It is now possible to set timeouts via capabilities
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)
+
+
+
+ * Python
+ * More network interfaces were added to detect lan ip
+ * The `install_addon()` (Firefox extensions) was improved to take into account dir paths with trailing slashes
+ * Improvements for type parameters
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)
+
+
+
+ * Ruby
+ * Full RBS support was added (#13234)
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
+
+
+
+
+ * Rust
+ * Improving how MS Edge is downloaded
+ * Fix how MS Edge is managed in RPM-based Linux
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rust/CHANGELOG.md)
+
+
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+#### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/adamtheturtle" >}}
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/jkbzh" >}}
+{{< gh-user "https://api.github.com/users/sbabcoc" >}}
+{{< gh-user "https://api.github.com/users/zhani" >}}
+
+
+
+
+
+#### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/AlphaWong" >}}
+{{< gh-user "https://api.github.com/users/amardeep2006" >}}
+{{< gh-user "https://api.github.com/users/jkbzh" >}}
+{{< gh-user "https://api.github.com/users/mmonfared" >}}
+{{< gh-user "https://api.github.com/users/rdinoff" >}}
+
+
+
+
+#### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+{{< gh-user "https://api.github.com/users/cedricroijakkers" >}}
+{{< gh-user "https://api.github.com/users/maxmanuylov" >}}
+{{< gh-user "https://api.github.com/users/msvticket" >}}
+
+
+
+
+#### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+
+
+
+
+Stay tuned for updates by following SeleniumHQ on [X (Formerly Twitter)](https://twitter.com/seleniumhq) or [LinkedIn](https://www.linkedin.com/company/selenium/)!
+
+Happy testing!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2024/selenium-4-20-released.md b/website_and_docs/content/blog/2024/selenium-4-20-released.md
new file mode 100644
index 000000000000..9f42faeafa34
--- /dev/null
+++ b/website_and_docs/content/blog/2024/selenium-4-20-released.md
@@ -0,0 +1,145 @@
+---
+title: "Selenium 4.20 Released!"
+linkTitle: "Selenium 4.20 Released!"
+date: 2024-04-25
+tags: ["selenium"]
+categories: ["releases"]
+author: Diego Molina [@diemol](https://diemol.com)
+images:
+ - "/images/blog/2024/selenium_4.20.png"
+description: >
+ Today we're happy to announce that Selenium 4.20 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.20.0 for
+Javascript, Ruby, Python, .NET, Java and the Grid!
+Links to everything can be found on our [downloads page][downloads].
+
+### Highlights
+
+ * Chrome DevTools support is now: v122, v123, and v124 (Firefox still uses v85 for all versions)
+ * Selenium has at least [2.3M active users](https://plausible.io/manager.selenium.dev) in the last 30 days. 500k more than last month!
+ * Java and JavaScript keep adding more WebDriver [BiDi] features.
+ * .NET C# and JavaScript now publish [nightly builds to GitHub packages](/downloads/#nightly).
+ * Nightly packages are tested daily with the examples from the Selenium [documentation](/documentation).
+ * The code used to invoke Selenium Manager has been refactored in all languages, making it easier to maintain and improve.
+ * The interface has changed and if users were invoking it, they might experience issues.
+ Selenium Manager is still in beta and these type of changes are expected.
+
+
+#### Noteworthy changes per language
+
+ * Java
+ * Browser containers provisioned in Dynamic Grid will use the hostConfig
+ * Dynamic Grid re-fetches browser images if they were pruned during runtime
+ * Several [BiDi] additions: Update browsing context create method, between others.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)
+
+
+
+
+ * JavaScript
+ * Several [BiDi] additions: Update capture screenshot APIs to include all parameters and remove scroll parameter, between others
+ * Nightly JS builds are now pushed to GitHub packages
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)
+
+
+
+ * .NET
+ * The correct devtools session id is now used after reinitialization
+ * Nightly .NET C# builds are now pushed to GitHub packages
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)
+
+
+
+ * Python
+ * Improvements for type hints in parameters
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)
+
+
+
+ * Ruby
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
+
+
+
+
+ * Rust
+ * Use DEBUG level instead of WARN traces in offline mode
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rust/CHANGELOG.md)
+
+
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+#### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Trigtrig" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+
+#### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Sakif-Al-Faruque" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/digitalvoice-nz" >}}
+{{< gh-user "https://api.github.com/users/harshitBhardwaj97" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+{{< gh-user "https://api.github.com/users/zipperer" >}}
+
+
+
+
+#### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Earlopain" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+{{< gh-user "https://api.github.com/users/maxmanuylov" >}}
+
+
+
+
+#### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+
+
+
+
+Stay tuned for updates by following SeleniumHQ on [X (Formerly Twitter)](https://twitter.com/seleniumhq) or [LinkedIn](https://www.linkedin.com/company/selenium/)!
+
+Happy testing!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2024/selenium-4-21-released.md b/website_and_docs/content/blog/2024/selenium-4-21-released.md
new file mode 100644
index 000000000000..3b44c6299c37
--- /dev/null
+++ b/website_and_docs/content/blog/2024/selenium-4-21-released.md
@@ -0,0 +1,141 @@
+---
+title: "Selenium 4.21 Released!"
+linkTitle: "Selenium 4.21 Released!"
+date: 2024-05-16
+tags: ["selenium"]
+categories: ["releases"]
+author: Diego Molina [@diemol](https://diemol.com)
+images:
+ - "/images/blog/2024/selenium_4.21.png"
+description: >
+ Today we're happy to announce that Selenium 4.21 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.21.0 for
+Javascript, Ruby, Python, .NET, Java and the Grid!
+Links to everything can be found on our [downloads page][downloads].
+
+### Highlights
+
+ * Chrome DevTools support is now: v123, v124, and v125 (Firefox still uses v85 for all versions)
+ * Selenium has at least [2.4M active users](https://plausible.io/manager.selenium.dev) in the last 30 days. 100k more than last month!
+ * India and United States are the top countries with the most users.
+ * Python is the most used language from the last 5 releases.
+ * The most used operating system is Windows, with at least 1.9M users.
+ * Extensibility points started to be implemented to simplify the integration between Selenium and Appium. Ruby is the first language to implement it.
+ * Java and JavaScript keep adding more WebDriver [BiDi] features.
+ * In Java, it is possible to set parameters for Selenium Manager via system properties.
+ * Nightly packages are tested daily with the examples from the Selenium [documentation](/documentation).
+
+
+#### Noteworthy changes per language
+
+ * Java
+ * Browser containers provisioned in Dynamic Grid will use the hostConfig
+ * Set test name to video file name in Dynamic Grid
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)
+
+
+
+
+ * JavaScript
+ * Ensure `selectVisibleByText` method is same as other languages
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)
+
+
+
+ * .NET
+ * Overwrite internal log file if it already exists
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)
+
+
+
+ * Python
+ * Moving ignore_local_proxy_environment_variables to BaseOptions
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)
+
+
+
+ * Ruby
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
+
+
+
+
+ * Rust
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rust/CHANGELOG.md)
+
+
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+#### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+{{< gh-user "https://api.github.com/users/iampopovich" >}}
+{{< gh-user "https://api.github.com/users/joebandenburg" >}}
+{{< gh-user "https://api.github.com/users/kool79" >}}
+{{< gh-user "https://api.github.com/users/sandeepsuryaprasad" >}}
+
+
+
+
+
+#### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Arpan3323" >}}
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/chamiz" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+
+
+
+
+#### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+{{< gh-user "https://api.github.com/users/edhinard" >}}
+
+
+
+
+#### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+
+
+
+
+Stay tuned for updates by following SeleniumHQ on [X (Formerly Twitter)](https://twitter.com/seleniumhq) or [LinkedIn](https://www.linkedin.com/company/selenium/)!
+
+Happy testing!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2024/selenium-4-22-released.md b/website_and_docs/content/blog/2024/selenium-4-22-released.md
new file mode 100644
index 000000000000..bcaa36af21a4
--- /dev/null
+++ b/website_and_docs/content/blog/2024/selenium-4-22-released.md
@@ -0,0 +1,149 @@
+---
+title: "Selenium 4.22 Released!"
+linkTitle: "Selenium 4.22 Released!"
+date: 2024-06-21
+tags: ["selenium"]
+categories: ["releases"]
+author: Titus Fortner [@titusfortner](https://titusfortner.com)
+description: >
+ Today we're happy to announce that Selenium 4.22 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.22.0 for
+Javascript, Ruby, Python, .NET, Java and the Grid!
+Links to everything can be found on our [downloads page][downloads].
+
+### Highlights
+
+ * Selenium has at least [2.6 active users](https://plausible.io/manager.selenium.dev) in the last 30 days. 200k more than last month!
+ * All information we collect is publicly available.
+ * The numbers only represent users who have Selenium Manager enabled and are using Selenium v4.17 or greater.
+ * Python, Chrome and Windows all see the majority of use.
+* Chrome DevTools support is now: v124, v125, and v126 (Firefox still uses v85 for all versions)
+* The first implementations of the new [BiDi API](https://www.selenium.dev/documentation/webdriver/bidi/logging)
+have rolled out in Ruby, Python and JavaScript
+
+#### Noteworthy changes per language
+
+ * Java
+ * Enabling BiDi can now be accomplished by calling `enableBiDi()` on an Options class instance.
+ * Video file name in Dynamic Grid can be set with `se:videoName` capability.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)
+
+
+
+ * JavaScript
+ * BiDi API for console logging and JavaScript errors has been implemented.
+ * Additional BiDi implementations.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)
+
+
+
+ * .NET
+ * The .NET bindings have started to roll out asynchronous methods.
+ * The synchronous methods will still be supported, but they will call the async methods "under the hood."
+ * This release adds asynchronous methods to the Navigation class.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)
+
+
+
+ * Python
+ * This release implements a new way of working with Chrome Devtools Protocol
+ * The previous implementation requires async/await pattern, so it was not backwards compatible.
+ * The new implementation is backwards compatible and executes async code in separate threads.
+ * Updated the webkitgtk and wpewebkit driver implementations.
+ * Enabling BiDi can now be accomplished by setting the `enable_bidi()` property of an Options class instance to `True`.
+ * BiDi API for console logging and JavaScript errors has been implemented.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)
+
+
+
+ * Ruby
+ * Implemented a toggle for BiDi and Classic implementations.
+ * BiDi API for console logging and JavaScript errors has been implemented.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
+
+
+
+
+ * Rust
+ * Added the ability to stream logging information to stdout instead of after execution complete.
+ * Improved binary location on Windows with native Rust methods.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rust/CHANGELOG.md)
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+#### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/3dprogramin" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/bgermann" >}}
+{{< gh-user "https://api.github.com/users/Earlopain" >}}
+{{< gh-user "https://api.github.com/users/iampopovich" >}}
+{{< gh-user "https://api.github.com/users/millin" >}}
+{{< gh-user "https://api.github.com/users/sbabcoc" >}}
+{{< gh-user "https://api.github.com/users/vlad8x8" >}}
+{{< gh-user "https://api.github.com/users/yuzawa-san" >}}
+
+
+
+
+
+#### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/alaahong" >}}
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/digitalvoice-nz" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+{{< gh-user "https://api.github.com/users/sangcnguyen" >}}
+
+
+
+
+#### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+#### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+
+
+
+
+Stay tuned for updates by following SeleniumHQ on [X (Formerly Twitter)](https://twitter.com/seleniumhq) or [LinkedIn](https://www.linkedin.com/company/selenium/)!
+
+Happy automating!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2024/selenium-4-23-released.md b/website_and_docs/content/blog/2024/selenium-4-23-released.md
new file mode 100644
index 000000000000..e9cbb1a9e123
--- /dev/null
+++ b/website_and_docs/content/blog/2024/selenium-4-23-released.md
@@ -0,0 +1,123 @@
+---
+title: "Selenium 4.23 Released!"
+linkTitle: "Selenium 4.23 Released!"
+date: 2024-07-26
+tags: ["selenium"]
+categories: ["releases"]
+author: Puja Jagani [@pujagani](https://github.com/pujagani)
+description: >
+ Today we're happy to announce that Selenium 4.23 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.23.0 for
+Javascript, Ruby, Python, .NET, Java and the Grid!
+Links to everything can be found on our [downloads page][downloads].
+
+#### Noteworthy changes per language
+
+ * Java
+ * Add custom duration for Actions constructor (#14085).
+ * Set session-request-timeout as client readTimeout in RemoteNewSessionQueue.
+ * Add high-level BiDi logging APIs.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)
+
+
+
+ * JavaScript
+ * Add source type to BiDi log entry.
+ * Add high-level script pinning BiDi APIs.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)
+
+
+
+ * .NET
+ * Log http requests/responses via internal DiagnosticsHttpHandler.
+ * Return protected synchronous Execute method in WebDriver.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)
+
+
+
+ * Python
+ * Allow RelativeBy to take 2 parameters.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)
+
+
+
+ * Ruby
+ * Improved error messaging.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
+
+
+
+
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+#### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/iampopovich" >}}
+
+
+
+
+
+#### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/alaahong" >}}
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+
+
+
+
+#### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+{{< gh-user "https://api.github.com/users/slhck" >}}
+{{< gh-user "https://api.github.com/users/StegSchreck" >}}
+
+
+
+
+#### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+
+
+
+
+Stay tuned for updates by following SeleniumHQ on [X (Formerly Twitter)](https://twitter.com/seleniumhq) or [LinkedIn](https://www.linkedin.com/company/selenium/)!
+
+Happy automating!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2024/selenium-4-24-released.md b/website_and_docs/content/blog/2024/selenium-4-24-released.md
new file mode 100644
index 000000000000..24fc82308c67
--- /dev/null
+++ b/website_and_docs/content/blog/2024/selenium-4-24-released.md
@@ -0,0 +1,157 @@
+---
+title: "Selenium 4.24 Released!"
+linkTitle: "Selenium 4.24 Released!"
+date: 2024-08-28
+tags: ["selenium"]
+categories: ["releases"]
+author: Diego Molina [@diemol](https://www.diemol.com)
+images:
+ - "/images/blog/2024/selenium_4.24.png"
+description: >
+ Today we're happy to announce that Selenium 4.24 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.24.0 for
+Javascript, Ruby, Python, .NET, Java and the Grid!
+Links to everything can be found on our [downloads page][downloads].
+
+#### Noteworthy changes per language
+
+ * Java
+ * **BiDi Prompt/Alert Test Fix**: Fixed prompt/alert related tests if BiDi is enabled.
+ * **Execute Script API**: Added execute script high-level API for BiDi.
+ * **JSpecify Annotations**: Added JSpecify annotations for WebDriver, WebElement, SearchContext, and other interfaces.
+ * **Dom Mutation Handler Support**: Added DOM mutation handler support for BiDi.
+ * **Close HttClient on Session Failure**: Ensured HttClient is closed if starting the session fails.
+ * **System Property to Disable Tracing**: Added a system property to disable tracing. ([c8676eff10](https://github.com/SeleniumHQ/selenium/commit/c8676eff107a7e5e617c6fc953baad45305cc680))
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)
+
+
+
+ * JavaScript
+ * **High-Level Script Command for BiDi**: Added a high-level script command for BiDi.
+ * **Authentication Handlers for BiDi**: Added authentication handlers for BiDi.
+ * **Expose Selenium Version for Node.js**: Exposed the Selenium version for Node.js.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)
+
+
+
+ * .NET
+ * **Migration to System.Text.Json**: Migrated from `Newtonsoft.Json` to `System.Text.Json` package.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)
+
+
+
+ * Python
+ * **Unhandled Prompt Behavior**: Added unhandled prompt behavior to 'ignore' option if BiDi is enabled.
+ * **Mypy Error Fixes**: Fixed mypy errors for various modules.
+ * **Pytest Configuration Update**: Moved pytest configuration settings to `pyproject.toml`.
+ * **Global Default Timeout Override**: Allowed overriding `GLOBAL_DEFAULT_TIMEOUT`.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)
+
+
+
+ * Ruby
+ * **Deprecate WebStorage JS Methods**: Deprecated WebStorage JavaScript methods.
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
+
+
+
+ * Rust
+ * **Skipping Drivers and Browsers in Path**: Included arguments for skipping drivers and browsers in the path. ([a056044d9c](https://github.com/SeleniumHQ/selenium/commit/a056044d9c20c174e5c04804eb30a446132be60a))
+ * **Use Debug Format Specifier**: Used the Debug format specifier to display error messages. ([d8a7172a2a](https://github.com/SeleniumHQ/selenium/commit/d8a7172a2a3a591af0852203449c81eb13aead2b))
+ * **Firefox Version Discovery**: Used Firefox history major releases endpoint for version discovery. ([02d6903006](https://github.com/SeleniumHQ/selenium/commit/02d6903006d884f57781f5625eb33a887f4369f5))
+ * [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rust/CHANGELOG.md)
+
+
+### Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+#### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/MustafaAgamy" >}}
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/angiejones" >}}
+{{< gh-user "https://api.github.com/users/cgossett" >}}
+{{< gh-user "https://api.github.com/users/diogoteles08" >}}
+{{< gh-user "https://api.github.com/users/dnwe" >}}
+{{< gh-user "https://api.github.com/users/iampopovich" >}}
+{{< gh-user "https://api.github.com/users/lauromoura" >}}
+{{< gh-user "https://api.github.com/users/manuelsblanco" >}}
+{{< gh-user "https://api.github.com/users/mdmintz" >}}
+{{< gh-user "https://api.github.com/users/mk868" >}}
+{{< gh-user "https://api.github.com/users/navin772" >}}
+{{< gh-user "https://api.github.com/users/paveloom" >}}
+{{< gh-user "https://api.github.com/users/sandeepsuryaprasad" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+
+
+
+
+
+#### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/MustafaAgamy" >}}
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/alaahong" >}}
+{{< gh-user "https://api.github.com/users/codespearhead" >}}
+{{< gh-user "https://api.github.com/users/innazh" >}}
+{{< gh-user "https://api.github.com/users/jochen-testingbot" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+{{< gh-user "https://api.github.com/users/pmartinez1" >}}
+{{< gh-user "https://api.github.com/users/sbabcoc" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+{{< gh-user "https://api.github.com/users/skyhirider" >}}
+
+
+
+
+#### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/DrFaust92" >}}
+{{< gh-user "https://api.github.com/users/Trigtrig" >}}
+{{< gh-user "https://api.github.com/users/nandorpal" >}}
+
+
+
+
+#### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+Stay tuned for updates by following SeleniumHQ on [X (Formerly Twitter)](https://twitter.com/seleniumhq) or [LinkedIn](https://www.linkedin.com/company/selenium/)!
+
+Happy automating!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2024/selenium-4-25-released.md b/website_and_docs/content/blog/2024/selenium-4-25-released.md
new file mode 100644
index 000000000000..252fcacf99f1
--- /dev/null
+++ b/website_and_docs/content/blog/2024/selenium-4-25-released.md
@@ -0,0 +1,159 @@
+---
+title: "Selenium 4.25 Released!"
+linkTitle: "Selenium 4.25 Released!"
+date: 2024-09-20
+tags: ["selenium"]
+categories: ["releases"]
+author: Diego Molina [@diemol](https://www.diemol.com)
+images:
+ - "/images/blog/2024/selenium_4.25.jpg"
+description: >
+ Today we're happy to announce that Selenium 4.25 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.25 for
+Javascript, Ruby, Python, .NET, Java and the Grid!
+Links to everything can be found on our [downloads page][downloads].
+
+Selenium 4.25.0 introduces several important changes and improvements across multiple programming
+languages and build systems. Below are the key highlights from this release.
+
+### General Updates
+- Chrome DevTools support is now: v129, v128, and v127 (Firefox still uses v85 for all versions)
+- Selenium has at least [4M active users](https://plausible.io/manager.selenium.dev) in the last 30 days. 1.5M more than 4 months ago!
+- **First implementation of BiDi (Bidirectional WebDriver Protocol) for .NET**, providing advanced capabilities like inspecting browser contexts and receiving real-time events.
+ - We are looking for feedback on this feature, so please try it out and let us know what you think! Try `var bidi = await driver.AsBiDiAsync();` to get started.
+
+
+
+### Java
+- Escape cookie values when required for tests ([#14486](https://github.com/SeleniumHQ/selenium/commit/375e841c7acaf575133617968406e289ee04b459))
+- Warn about an upcoming change enforcing string quotes in TOML ([#14491](https://github.com/SeleniumHQ/selenium/commit/6b4c39c19e9ac3f63bbf8827cfd26aa782e77042))
+- [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)
+
+
+
+### Python
+- Fixed type errors for `pointer_input.py`, `wheel_input.py`, and `firefox/options.py` ([#14476](https://github.com/SeleniumHQ/selenium/commit/05bce9b4c088d939d4a25a33e0d014d3f3a67473))
+- Fixed failing BiDi tests ([#14448](https://github.com/SeleniumHQ/selenium/commit/be40b5c85350b2f5cf83194cce4cb1ab23e13172))
+- Dropped support for Python 2.x in `firefox_profile.py` ([#14489](https://github.com/SeleniumHQ/selenium/commit/71a0629521b42263ad34874adba4e97cd8747fbd))
+- [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)
+
+
+
+### JavaScript
+- Fixed flaky network event tests for BiDi ([#14512](https://github.com/SeleniumHQ/selenium/commit/2970ad30a75d798edb4abdbcfd04666a95f8ef8a))
+- Closed CDP websocket connection on `driver.quit` ([#14501](https://github.com/SeleniumHQ/selenium/commit/7c8b46dd4a4ce11ad6fd1c436416cdbd448c1b73))
+- [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)
+
+
+
+### .NET
+- BiDi API updates, including renaming methods and simplifying context handling ([#14318](https://github.com/SeleniumHQ/selenium/commit/3e8b34cea24635e89aa42d09db8c37b6723a9005))
+- Exposed BiDi associated references in browsing context ([#14495](https://github.com/SeleniumHQ/selenium/commit/6c0df70463242ba1f7b182e11060fcf9a8e50a01))
+- [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)
+
+
+
+### Ruby
+- Allowed driver path to be set using environment variables ([#14287](https://github.com/SeleniumHQ/selenium/commit/7602371488ebd14d2c6d8d980134bff42bbd17e9))
+- Fixed the `add_cause` method not being able to process an array of hashes ([#14433](https://github.com/SeleniumHQ/selenium/commit/247bc2bbced6502625786dc9fb56c602bc9786dc))
+- [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
+
+
+
+### Rust
+- Fixed errors in Selenium Manager when the browser path is incorrect ([#14381](https://github.com/SeleniumHQ/selenium/commit/0d426741c9b609f0748e64cff6e63343215eebcf))
+- Reused driver mirror URLs to discover Firefox versions ([#14493](https://github.com/SeleniumHQ/selenium/commit/64590084bc4baa5a00c8b7709b80c75e77de818a))
+- [See all changes](https://github.com/SeleniumHQ/selenium/blob/trunk/rust/CHANGELOG.md)
+
+### Docker Selenium
+- KEDA Scaler in Kubernetes:
+ - Enhanced KEDA scaler behavior, addressing:
+ - Node with different platformName scaling: Fixed incorrect scaling behavior when both Linux and Windows node stereotypes are present ([#1925](https://github.com/SeleniumHQ/docker-selenium/issues/1925)).
+ - Excessive autoscaling: Resolved over-scaling of browser nodes ([#2160](https://github.com/SeleniumHQ/docker-selenium/issues/2160)).
+ - Added separate parameters for basic authentication (`username`, `password`) for the Grid GraphQL endpoint ([#2401](https://github.com/SeleniumHQ/docker-selenium/pull/2401)).
+ - Added support for `nodeMaxSessions` parameter to control maximum concurrent sessions per node, aligning with the node config `--max-sessions` ([#2402](https://github.com/SeleniumHQ/docker-selenium/pull/2402)).
+
+ > Note: The above KEDA scaler updates are available experimentally via our built images approach. Check out [this](https://github.com/SeleniumHQ/docker-selenium/blob/4.25.0-20240922/.keda/README.md) for more details.
+
+- Selenium Grid Helm Chart: Updated to support the new KEDA scaler enhancements.
+- [See all changes](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.25.0-20240922)
+
+## Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Delta456" >}}
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/angiejones" >}}
+{{< gh-user "https://api.github.com/users/cgossett" >}}
+{{< gh-user "https://api.github.com/users/dnwe" >}}
+{{< gh-user "https://api.github.com/users/manuelsblanco" >}}
+{{< gh-user "https://api.github.com/users/mk868" >}}
+{{< gh-user "https://api.github.com/users/navin772" >}}
+{{< gh-user "https://api.github.com/users/sandeepsuryaprasad" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+
+
+
+
+
+### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/KaranocaVe" >}}
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+
+
+
+
+### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Koeppchen" >}}
+
+
+
+
+### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+Stay tuned for updates by following SeleniumHQ on [X (Formerly Twitter)](https://twitter.com/seleniumhq) or [LinkedIn](https://www.linkedin.com/company/selenium/)!
+
+Happy automating!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2024/selenium-4-26-released.md b/website_and_docs/content/blog/2024/selenium-4-26-released.md
new file mode 100644
index 000000000000..3008954f4a29
--- /dev/null
+++ b/website_and_docs/content/blog/2024/selenium-4-26-released.md
@@ -0,0 +1,187 @@
+---
+title: "Selenium 4.26 Released!"
+linkTitle: "Selenium 4.26 Released!"
+date: 2024-11-03
+tags: ["selenium"]
+categories: ["releases"]
+author: Diego Molina [@diemol](https://www.diemol.com)
+images:
+ - "/images/blog/2024/selenium_4.26.jpg"
+description: >
+ Today we're happy to announce that Selenium 4.26 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.26 for
+Javascript, Ruby, Python, .NET, Java and the Grid!
+Links to everything can be found on our [downloads page][downloads].
+
+Selenium 4.26.0 release introduces new features, key enhancements, and numerous bug fixes across
+different languages and components. This version focuses on improving compatibility, updating
+dependencies, enhancing internal logging, and providing broader WebDriver capabilities. Here are
+the most important updates:
+
+## General Highlights
+- **Chrome DevTools support** is now: v130, v129, and v128 (Firefox still uses v85 for all versions)
+- **Selenium has at least** [4.8M active users](https://plausible.io/manager.selenium.dev) in the last 30 days. 800K more than 1 month ago!
+- **Selenium Manager Enhancements**: Added better handling for invalid browser versions and improved logging, helping to streamline browser management.
+- **Expanded BiDi (Bidirectional WebDriver Protocol) Support for .NET**: Continuing the work on BiDi for .NET, this release includes improved WebSocket communication, CDP DevTools integration, and expanded logging, advancing real-time and bidirectional interactions.
+- **Grid UI Enhancements**: New sorting options by Platform, Status, and ID, session timeout display, and WebSocket connection management for better performance and user experience.
+- **CI/CD Pipeline Improvements**: Numerous updates for CI workflows, such as artifact handling and new testing configurations, to boost stability and developer productivity.
+
+
+
+### .NET
+- Updated WebSocket communication and DevTools integration in the BiDi implementation, adding extensive internal logs to improve diagnostics ([#14566](https://github.com/SeleniumHQ/selenium/pull/14566), [#14558](https://github.com/SeleniumHQ/selenium/pull/14558)).
+- Added support for the `GetLog` command in the Remote WebDriver ([#14549](https://github.com/SeleniumHQ/selenium/pull/14549)).
+- Enhanced configuration for `PrintOptions`, allowing direct control over `PageDimensions` and `PageMargins` ([#14593](https://github.com/SeleniumHQ/selenium/pull/14593)).
+- Deprecated several old constructors for cleaner exception handling and improved compatibility with Ahead-of-Time (AOT) compilation ([#14574](https://github.com/SeleniumHQ/selenium/pull/14574)).
+
+
+
+### Java
+- Increased property scope for improved compatibility with Appium ([#14183](https://github.com/SeleniumHQ/selenium/pull/14183)).
+- Updated SpotBugs settings and fixed issues in `ChromiumDriver` and `PortProber` for cleaner code ([#14589](https://github.com/SeleniumHQ/selenium/pull/14589)).
+- Added PAC proxy URL support for Selenium Manager to expand proxy configuration capabilities ([#14506](https://github.com/SeleniumHQ/selenium/pull/14506)).
+
+
+
+### Python
+- Added more internal logging for CDP, and configured WebDriver HTTP client settings for enhanced performance ([#14668](https://github.com/SeleniumHQ/selenium/pull/14668), [#13286](https://github.com/SeleniumHQ/selenium/pull/13286)).
+ > Explore the various configuration parameters for the [WebDriver HTTP client](https://www.selenium.dev/documentation/webdriver/drivers/http_client/).
+- Removed deprecated EdgeService parameters and eliminated Python 2.x code from various test files ([#14563](https://github.com/SeleniumHQ/selenium/pull/14563), [#14502](https://github.com/SeleniumHQ/selenium/pull/14502)).
+- Set consistent polling for `WebDriverWait` methods to align behavior between Java and Python implementations ([#14626](https://github.com/SeleniumHQ/selenium/pull/14626)).
+- Improves binding extensibility for seamless integration of Selenium into Appium's Python client. ([#14587](https://github.com/SeleniumHQ/selenium/pull/14587)).
+
+
+
+### JavaScript
+- Closed BiDi WebSocket connection on session end, improving session management in BiDi ([#14507](https://github.com/SeleniumHQ/selenium/pull/14507)).
+- Fixed issues with `sendKeys` command, addressing errors in `FileDetector` handling ([#14663](https://github.com/SeleniumHQ/selenium/pull/14663)).
+
+
+
+### Ruby
+- Added RBS type support for BiDi-related classes, aligning with updates for Ruby BiDi compatibility ([#14611](https://github.com/SeleniumHQ/selenium/pull/14611)).
+- Updated BiDi script structures to match recent specifications for consistent implementation ([#14236](https://github.com/SeleniumHQ/selenium/pull/14236)).
+
+
+
+### Selenium Grid
+- New Grid UI features for sorting and WebSocket management, adding clarity and control to session management ([#14571](https://github.com/SeleniumHQ/selenium/pull/14571), [#14598](https://github.com/SeleniumHQ/selenium/pull/14598), [#14599](https://github.com/SeleniumHQ/selenium/pull/14599)).
+- Enabled async requests in `httpclient` to enhance request handling performance ([#14409](https://github.com/SeleniumHQ/selenium/pull/14409)).
+- Improved node handling for better scalability and stability ([#14628](https://github.com/SeleniumHQ/selenium/pull/14628)).
+
+
+
+### Docker Selenium
+- Updated FFmpeg v7.1 in video recorder ([#2439](https://github.com/SeleniumHQ/docker-selenium/pull/2439)).
+- Updated in Helm chart for Selenium Grid deployment to Kubernetes
+ - Add GraphQL metrics exporter for monitoring ([#2425](https://github.com/SeleniumHQ/docker-selenium/pull/2425)).
+ - Add templates for Relay node ([#2453](https://github.com/SeleniumHQ/docker-selenium/pull/2453)).
+ - Allow to overwrite config videoRecorder in each node ([#2445](https://github.com/SeleniumHQ/docker-selenium/pull/2445)).
+
+
+
+## Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/BlitzDestroyer" >}}
+{{< gh-user "https://api.github.com/users/Delta456" >}}
+{{< gh-user "https://api.github.com/users/Mr0grog" >}}
+{{< gh-user "https://api.github.com/users/RenderMichael" >}}
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/dbernhard-0x7CD" >}}
+{{< gh-user "https://api.github.com/users/garg3133" >}}
+{{< gh-user "https://api.github.com/users/iampopovich" >}}
+{{< gh-user "https://api.github.com/users/mk868" >}}
+{{< gh-user "https://api.github.com/users/navin772" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+
+
+
+
+
+### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Abdelrhman-Ellithy" >}}
+{{< gh-user "https://api.github.com/users/AishIngale" >}}
+{{< gh-user "https://api.github.com/users/Delta456" >}}
+{{< gh-user "https://api.github.com/users/alaahong" >}}
+{{< gh-user "https://api.github.com/users/harshitBhardwaj97" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+{{< gh-user "https://api.github.com/users/zipperer" >}}
+
+
+
+
+### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/brunobritorj" >}}
+
+
+
+
+### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+## Project Highlights
+
+This year marks a monumental milestone—20 years of Selenium transforming browser automation!
+Since its inception as a modest open-source project, Selenium has grown into the world’s most
+trusted tool for web automation, powering testing and development for countless users globally.
+From revolutionizing open-source collaboration to shaping automation practices, Selenium has
+impacted developers, testers, and organizations worldwide.
+
+To honor this journey, the Selenium team hosted a special webinar on October 28th, 2024, where
+the leadership team shared insights on Selenium’s evolution, the latest advancements in WebDriver
+BiDi, and exciting prospects for the future. If you’d like to learn more about Selenium’s
+incredible journey and future plans, head to the official blog post
+[here](https://www.selenium.dev/blog/2024/selenium-milestone-20yrs-blog/).
+
+Special thanks to the Selenium community for your continued support and contributions, to
+the entire Selenium team for their dedication and hard work,
+and to [Pallavi Sharma](https://www.linkedin.com/in/pallavimuse/) and
+[Maaret Pyhäjärvi](https://www.linkedin.com/in/maaret/) for organizing and leading this event.
+
+
+
+Stay tuned for updates by following SeleniumHQ on [X (Formerly Twitter)](https://twitter.com/seleniumhq) or [LinkedIn](https://www.linkedin.com/company/selenium/)!
+
+Happy automating!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2024/selenium-4-27-released.md b/website_and_docs/content/blog/2024/selenium-4-27-released.md
new file mode 100644
index 000000000000..5c25525cda3c
--- /dev/null
+++ b/website_and_docs/content/blog/2024/selenium-4-27-released.md
@@ -0,0 +1,186 @@
+---
+title: "Selenium 4.27 Released!"
+linkTitle: "Selenium 4.27 Released!"
+date: 2024-11-27
+tags: ["selenium"]
+categories: ["releases"]
+author: Diego Molina [@diemol](https://www.diemol.com)
+images:
+ - "/images/blog/2024/selenium_4.27.webp"
+description: >
+ Today we're happy to announce that Selenium 4.27 has been released!
+---
+We're very happy to announce the release of Selenium 4.27 for
+Javascript, Ruby, Python, .NET, Java and the Grid!
+Links to everything can be found on our [downloads page][downloads].
+
+Here is the latest iteration of the world’s most popular browser automation tool! This release
+brings significant updates across all supported languages, enhancing functionality, performance,
+and compatibility. From new features like FedCM command support in Python and improved BiDi
+handling in .NET to critical deprecations like CDP methods for Firefox.
+
+## General Highlights
+
+- **Chrome DevTools support** is now: v131, v128, and v127 (Firefox still uses v85 for all versions)
+- **Selenium has over** [5.1M active users](https://plausible.io/manager.selenium.dev) in the last 30 days. 300K more than 1 month ago!
+- **Deprecation of CDP methods for Firefox** across several bindings to align with evolving automation standards.
+- **Enhanced Selenium Grid** with improved session handling, distributed retry logic, and faster server shutdown processes.
+- **Updates for .NET and Java** to modernize exception handling, improve BiDi support, and address compatibility warnings.
+- **Deprecation of `getAttribute`** in multiple languages as part of Selenium's evolution.
+
+
+
+
+### Python
+- Deprecated CDP methods for Firefox. ([e2e9ac5f7e](https://github.com/SeleniumHQ/selenium/commit/e2e9ac5f7e5ca2a2326bea9d16425525ce43da57))
+- Replaced `imghdr` with `filetype` for better compatibility. ([b1828bf108](https://github.com/SeleniumHQ/selenium/commit/b1828bf1087d7d4acfd437d83ef6168617286191))
+- Moved project metadata from `setup.py` to `pyproject.toml`. ([673d2c78be](https://github.com/SeleniumHQ/selenium/commit/673d2c78be76f1ccbb2e1017e5240d52f428b400))
+- Added FedCM command support. ([d3d8070d50](https://github.com/SeleniumHQ/selenium/commit/d3d8070d50b481d2c6da98223322bc843cc25a01))
+- Introduced backward compatibility for `AppiumConnection`. ([3a3c46b3c1](https://github.com/SeleniumHQ/selenium/commit/3a3c46b3c144b0a350dea3598481edd2761f11c5))
+- Added user agent and extra headers via `ClientConfig`. ([e2023893c7](https://github.com/SeleniumHQ/selenium/commit/e2023893c7f37f69b2f7106a3907e0275bd9fbe1))
+- Addressed `DetachedShadowRoot` exception handling. ([7aabb8d1b4](https://github.com/SeleniumHQ/selenium/commit/7aabb8d1b48c1cae74ae97710009daea960dc9a3))
+
+
+
+### Ruby
+- Deprecated CDP methods for Firefox. ([e9c09a200e](https://github.com/SeleniumHQ/selenium/commit/e9c09a200e374bba63acb0ef605175abb125e82e))
+- Resolved deprecation warnings for the `uri` gem. ([751bacb6bc](https://github.com/SeleniumHQ/selenium/commit/751bacb6bc934436ec9dec2416a022d8d577e30a))
+- Added BiDi navigation commands and support for network interception. ([573c8fe961](https://github.com/SeleniumHQ/selenium/commit/573c8fe9612c9c81406642e3e7a917cb5314eb3c))
+
+
+
+
+### Java
+- Enhanced error messages for `NoSuchElementException`. ([4a0d05e50e](https://github.com/SeleniumHQ/selenium/commit/4a0d05e50ea1750482211e04ece8062436eb5c6b))
+- Deprecated `WebElement.getAttribute()`. ([cd7303c437](https://github.com/SeleniumHQ/selenium/commit/cd7303c437b0702d3a17c9ef43594375c11016eb))
+- Introduced methods for selecting options containing specific text. ([b4b8aaba2b](https://github.com/SeleniumHQ/selenium/commit/b4b8aaba2bd3df57cae31164c614aec5f377c443))
+- Added Firefox CDP deprecation warnings. ([19fc217985](https://github.com/SeleniumHQ/selenium/commit/19fc2179855d0f70b7241a6c4cfbd9152e023609))
+
+
+
+### .NET
+- Added CDP deprecation warnings for Firefox. ([8f725b3a80](https://github.com/SeleniumHQ/selenium/commit/8f725b3a80c3f3d621821e94a87db346ea91a8b1))
+- Improved BiDi and async support across modules. ([9054e892cc](https://github.com/SeleniumHQ/selenium/commit/9054e892ccabfb470243e2bad585f0474901dd31))
+- Enabled nullability annotations for better type safety. ([d9149acc09](https://github.com/SeleniumHQ/selenium/commit/d9149acc097531d336e611bd92d897381a0316c6))
+- Introduced compatibility improvements for actions with clashing device names. ([a9ec9ca682](https://github.com/SeleniumHQ/selenium/commit/a9ec9ca6821fd466e8e9d6e966d0feb150b0a5a4))
+- **Deprecated `GetAttribute` method** for WebElements. ([ac523a5d0a](https://github.com/SeleniumHQ/selenium/commit/ac523a5d0aa5a980a71c5adda3f4dafb0a560409))
+
+
+
+
+### JavaScript
+- Enabled BiDi tests for locating nodes with Chrome and Edge. ([339421538b](https://github.com/SeleniumHQ/selenium/commit/339421538b790c0ac2cf0a1a0aad62d0e76349eb))
+- Enhanced support for authentication handlers in BiDi commands. ([25551adfe8](https://github.com/SeleniumHQ/selenium/commit/25551adfe80f788453ec38fac7933c5369616d4f))
+- Updated dependencies to resolve security alerts. ([3906742748](https://github.com/SeleniumHQ/selenium/commit/3906742748d8b94b2eac074aeaf839eed20a95fa))
+
+
+
+### Rust
+- Selenium Manager now honors full browser versions. ([fe5b1985e5](https://github.com/SeleniumHQ/selenium/commit/fe5b1985e570bae90bf757c23439d461ef0dda9c))
+- Updated logic to prioritize stable versions for Firefox management. ([0d2dda17b4](https://github.com/SeleniumHQ/selenium/commit/0d2dda17b4c4aba6ab0537f9d28910527c45a38b))
+
+
+
+### Selenium Grid
+- Improved retry logic for session creation in distributed grids. ([e4ab299ea4](https://github.com/SeleniumHQ/selenium/commit/e4ab299ea4d16943c18e8c31e9db1f7738ed9493))
+- Improved session handling in Selenium Grid and reduced test flakiness. ([b0464e1adf](https://github.com/SeleniumHQ/selenium/commit/b0464e1adf8b4367dab9a98c26c800a7172cc0f8))
+- Enhanced server shutdown for faster termination. ([62aa0e551e](https://github.com/SeleniumHQ/selenium/commit/62aa0e551e79176f21e3e1658518bc40855f81ae))
+- Implemented graceful handling of stale sessions and client timeouts. ([b0464e1adf](https://github.com/SeleniumHQ/selenium/commit/b0464e1adf8b4367dab9a98c26c800a7172cc0f8))
+- Improved detection of unsupported HTTP methods during request handling. ([f56b3d07d9](https://github.com/SeleniumHQ/selenium/commit/f56b3d07d932f81bafc80b90d9b3cb059fba133e))
+
+
+
+### Docker Selenium
+- K8s: Allow multiple nodes of the same type in Helm configuration ([#2475](https://github.com/SeleniumHQ/docker-selenium/pull/2475))
+- [See all changes](https://github.com/SeleniumHQ/docker-selenium/releases/tag/4.27.0-20241127)
+
+
+
+## Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Delta456" >}}
+{{< gh-user "https://api.github.com/users/Earlopain" >}}
+{{< gh-user "https://api.github.com/users/RenderMichael" >}}
+{{< gh-user "https://api.github.com/users/andrew" >}}
+{{< gh-user "https://api.github.com/users/emanlove" >}}
+{{< gh-user "https://api.github.com/users/iampopovich" >}}
+{{< gh-user "https://api.github.com/users/josegomezr" >}}
+{{< gh-user "https://api.github.com/users/mk868" >}}
+{{< gh-user "https://api.github.com/users/navin772" >}}
+{{< gh-user "https://api.github.com/users/pnatashap" >}}
+{{< gh-user "https://api.github.com/users/sandeepsuryaprasad" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+{{< gh-user "https://api.github.com/users/syber911911" >}}
+
+
+
+
+
+### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/AishIngale" >}}
+{{< gh-user "https://api.github.com/users/RenderMichael" >}}
+{{< gh-user "https://api.github.com/users/YevgeniyShunevych" >}}
+{{< gh-user "https://api.github.com/users/alaahong" >}}
+{{< gh-user "https://api.github.com/users/jasonren0403" >}}
+{{< gh-user "https://api.github.com/users/navin772" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+{{< gh-user "https://api.github.com/users/zipperer" >}}
+
+
+
+
+### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+
+
+Stay tuned for updates by following SeleniumHQ on [X (Formerly Twitter)](https://twitter.com/seleniumhq) or [LinkedIn](https://www.linkedin.com/company/selenium/)!
+
+Happy automating!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2024/selenium-community-live-episode1.md b/website_and_docs/content/blog/2024/selenium-community-live-episode1.md
new file mode 100644
index 000000000000..7130d6924011
--- /dev/null
+++ b/website_and_docs/content/blog/2024/selenium-community-live-episode1.md
@@ -0,0 +1,49 @@
+---
+title: "Selenium Community Live - Episode 1"
+linkTitle: "Selenium Community Live - Episode 1"
+date: 2024-12-25
+tags: ["webinar", "meetup", "talks","community"]
+categories: ["webinar"]
+author: Pallavi Sharma
+images:
+description: >
+ Selenium Community Live - Episode 1
+---
+
+At the eve of celebration of 20 years of Selenium, the current **Project Leadership Committee of Selenium** decided on starting Selenium Community Live event, an idea helmed by **Maaret Pyhäjärvi** .
+The first episode happened on Dec 18th, 2024: **Selenium Community Live - Episode 1**
+
+**Selenium Community Live - Episode 1**
+
+Collaboration, communication and community are the force behind the success of the Selenium Project in open source for last twenty years.
+Jason Huggins and Simon Stewart with their respective projects Selenium and WebDriver collaborated and brought together Selenium WebDriver.
+Eventually WebDriver became a W3C standard for browser automation, and Jim Evans and Manoj Kumar in the first episode of Selenium Community Live
+discuss all about Selenium, and making of the WebDriver standard. They shed light on the process and people behind building these specifications.
+They also spoke about various browser vendors and browser automation projects coming together to collaborate on making the next standard in browser automation
+WebDriver Bi-Di. The Selenium project extend thanks to both Jim and Manoj for commemorating the first episode for community.
+
+**Meet the Speakers:**
+
+1. **Jim Evans**
+
+2. **Manoj Kumar**
+
+## Watch the Recording the first Episode of Selenium Community Live
+
+Couldn’t join us live? Watch the entire episode here -
+📹 Recording Link: [Watch the Event Recording on YouTube](https://www.youtube.com/watch?v=Y4tZOXGQGRQ)
+
+The links for the various projects which were discussed in the event -
+
+A few links which you may wish to explore -
+**TPAC**
+
+**W3C Browser Testing Working Group**
+
+**WebDriver**
+
+**WebDriver Bi-Di**
+
+**WebDriver Bi-Di .net implementation by Jim Evans **
+
+Stay tuned as we bring the next! **Subscribe here to the Selenium HQ Official YouTube Channel.**
\ No newline at end of file
diff --git a/website_and_docs/content/blog/2024/selenium-milestone-20yrs-blog.md b/website_and_docs/content/blog/2024/selenium-milestone-20yrs-blog.md
new file mode 100644
index 000000000000..7a17c5ce33a0
--- /dev/null
+++ b/website_and_docs/content/blog/2024/selenium-milestone-20yrs-blog.md
@@ -0,0 +1,55 @@
+---
+title: "Celebrating 20 Years of Selenium: A Journey of Innovation in Browser Automation"
+linkTitle: "Celebrating 20 Years of Selenium"
+date: 2024-10-18
+tags: ["webinar", "meetup", "talks"]
+categories: ["webinar"]
+author: Pallavi Sharma
+images:
+ - "/images/blog/2024/20-selenium"
+description: >
+ Celebrating 20 Years of Selenium!
+---
+
+This year marks a monumental milestone—20 remarkable years of Selenium, the tool that
+revolutionized browser automation! We’re thrilled to invite you to a special event to commemorate this
+incredible journey: **Celebrating 20 Years of Selenium**
+
+
+**Two Decades of Selenium: Revolutionizing Open Source Browser Automation and Testing**
+Over the past two decades, Selenium has reshaped the automation landscape, evolving from a simple tool into the backbone of browser automation across the globe. What began as a modest open-source project has grown into the most trusted tool for web automation, embraced by developers, testers, and businesses alike.
+As we celebrate Selenium’s 20th birthday on October 28th, we invite you to join a special webinar that honors the tool itself and the incredible community that has powered its success. Governed by the Software Freedom Conservancy, Selenium’s legacy is built on open-source collaboration and the passion of its contributors.
+The webinar begins at **11:30 AM GMT on October 28th, 2024**, and will be packed with two hours of insightful talks from the Selenium Leadership Team. We’ll explore the project’s current advancements, the cutting-edge work in the WebDriver BiDi space, and what lies ahead for the next decade of Selenium. Here’s what you can expect:
+
+**Meet the Speakers:**
+
+1. **Diego Molina** – Selenium Project Leadership & Technical Leadership
+Topic: "Choosing the Right Framework: Exploring the Selenium Ecosystem for Testing"
+Diego will dive into a critical discussion on Selenium’s role in the broader testing ecosystem. He’ll explore whether Selenium remains the best option for web testing, considering the wide array of available frameworks. Expect valuable insights into Selenium’s advantages, limitations, and how to choose the right tool for your needs.
+
+2. **Puja Jagani** – Selenium Technical Leadership
+Topic: "BiDi-powered Selenium: Shaping Tomorrow's Automation"
+Puja, a leading contributor to the WebDriver BiDi initiative, will give us a glimpse into the future of automation. Her talk will explore how the W3C BiDi protocol transforms browser automation with event-driven testing capabilities, offering improved performance and cutting-edge features that will redefine the automation landscape.
+
+3. Q and A - With Folks From **Selenium Project**
+
+Why You Should Attend
+This webinar is more than just a celebration—it’s a chance to learn from the visionaries driving Selenium’s evolution. Whether you’re a seasoned professional or new to browser automation, this event offers invaluable insights into Selenium’s past, present, and future.
+💻 Event Registration: **Celebrating 20 Years of Selenium**
+📅 Date & Time: October 28th, 2024, at 11:30 AM GMT
+
+Join Us in Celebrating Selenium’s Incredible Journey!
+For 20 years, Selenium has helped shape how we test, automate, and innovate on the web. This is your opportunity to celebrate that legacy and learn what the future holds for browser automation. We can’t wait to see you there!
+Event Organizers - **Maaret**, **Diego**, and **Pallavi**.
+
+## Watch the Recording of Our 20th Anniversary Event
+
+Couldn’t join us live? Watch the entire **"Celebrating 20 Years of Selenium"**
+event on YouTube. Relive the milestone moments, hear directly from
+the Selenium leadership team, and get insights into the future of browser automation.
+
+📹 Recording Link: [Watch the Event Recording on YouTube](https://www.youtube.com/watch?v=TO-ZCl2LZ50)
+
+This recording covers the highlights, including discussions on Selenium’s evolution,
+its role in the testing ecosystem, and the exciting advancements in WebDriver BiDi.
+
diff --git a/website_and_docs/content/blog/2024/selenium-vs-blog-posts.md b/website_and_docs/content/blog/2024/selenium-vs-blog-posts.md
new file mode 100644
index 000000000000..d753c3e145df
--- /dev/null
+++ b/website_and_docs/content/blog/2024/selenium-vs-blog-posts.md
@@ -0,0 +1,38 @@
+---
+title: "Selenium Vs … blog posts"
+linkTitle: "Selenium Vs … blog posts"
+date: 2024-01-09
+tags: ["selenium"]
+categories: ["general"]
+author: David Burns ([@AutomatedTester](https://twitter.com/automatedtester))
+description: >
+ This blog post discusses the click bait posts out there comparing selenium, cypress, and playwright. How none of these are meaningful or helpful.
+---
+
+The easiest way to clickbait a blog post about automated testing is to compare Selenium against another tool in the space with a catchy title especially when it talks down about the incumbent.
+
+Unfortunately, this can lead to muddying the waters of which features are available in any of the products out there especially when we compare apples to apples.
+
+Selenium has always been a great tool for browser automation. Fortunately for the project, it has become the tool of choice for testing web applications for nearly 2 decades. The area this project has focused on is building out the hard parts of browser automation that are increasingly difficult. Stable APIs and scalability of the infrastructure to run Selenium has always been the priority of the project. It hasn’t focused on how people test with it because there are very good test frameworks out there and having to do it for 5 different languages is a non-trivial amount of engineering effort.
+
+However, some particular misconceptions regularly reappear across these blog posts.
+
+## It’s too hard to set up browsers and drivers compared to Playwright and Cypress
+
+This used to be true in the past as you had to download the drivers. This wasn’t too bad for GeckoDriver and SafariDriver as they could handle browser upgrades gracefully. On the other hand, you need to update the drivers for Chromium-based browser for every new release.
+
+For over a year now, Selenium handles this automatically. If it can’t find a ChromeDriver or EdgeDriver, it will download it using [Selenium Manager](https://www.selenium.dev/blog/2022/introducing-selenium-manager/). Since its first release it has improved a lot and it is now probably the best in class since the latest versions of Selenium will even download browsers if it can and use that. Compared to Playwright and Cypress you don’t need to update your dependency on Selenium to update browsers and drivers, you still use the same browsers as your customers, and switching versions becomes a breeze: you don’t also have to change the test framework you’re using. And, let's not forget that it uses the browser that [Google recommends you use for testing](https://developer.chrome.com/blog/chrome-for-testing/).
+
+## Setting up a test runner is hard work where Playwright and Cypress have it built in…
+
+Well… maybe? Setting up E2E test frameworks with Selenium isn’t as difficult as some might suggest. The hard part really is making sure that the driver is in the right place and we’ve solved that as discussed above. Once that’s done, Selenium’s approach allows you to use whichever test runner you’re most comfortable with. If you’d like a “batteries included” approach, with Selenium tightly integrated with the test runner, then one of the many projects that use Selenium, such as [SeleniumBase, Nightwatch, Serenity, and so on](https://www.selenium.dev/ecosystem/#frameworks), might be the right tool for you.
+
+One thing to note is that Playwright is the only multi-language browser automation framework like Selenium. However, if you don’t use TypeScript or JavaScript you will still need to do the setup of the test runner yourself. Some testing frameworks have plugins that automatically set up the fixtures you might need. In the JavaScript/TypeScript space if you really need a built-in test runner there are downstream projects like NightwatchJS and tangential projects like WebdriverIO. Downstream projects use our libraries and tangential projects have their own libraries but still follow the WebDriver standard.
+
+## Playwright and Cypress can do network interception and allow me to write event-driven code unlike Selenium
+
+Selenium has been able to offer this since Selenium 4 came out. It’s so good that even [Playwright suggest you use it for scaling your tests](https://playwright.dev/docs/selenium-grid). The Selenium Project won’t be removing this anytime soon as we are dependent on WebDriver BiDi specification being implemented for those features to replace them. Even then Selenium has a history of trying to make sure that upgrades don’t break anything without sufficient warning. It’s why each language provides high-level wrappers, such as the `NetworkInterceptor`, that isolate your tests from the underlying technology being used.
+
+## Summary
+
+As we have seen from the above Selenium is still as good as the products out there. One thing that is different for Selenium from Cypress or Playwright is that we’re a volunteer-driven project and not commercially backed. Want to help us out? Why not write a blog post about how you’re using the features above or post on social media how these features make your lives easier?
diff --git a/website_and_docs/content/blog/2024/seleniumconf-appiumconf-valencia-2025.md b/website_and_docs/content/blog/2024/seleniumconf-appiumconf-valencia-2025.md
new file mode 100644
index 000000000000..a4aa2f9bd9d9
--- /dev/null
+++ b/website_and_docs/content/blog/2024/seleniumconf-appiumconf-valencia-2025.md
@@ -0,0 +1,42 @@
+---
+title: "Announcing SeleniumConf & AppiumConf 2025"
+linkTitle: "Announcing SeleniumConf & AppiumConf 2025"
+date: 2024-10-11
+tags: ["conference", "meetup", "workshop"]
+categories: ["conference"]
+author: Diego Molina ([@diemol](https://diemol.com))
+images:
+ - "/images/blog/2024/seleniumconf-appiumconf-featured-img"
+description: >
+ SeleniumConf and AppiumConf are back in person!
+---
+
+We're thrilled to announce that **SeleniumConf & AppiumConf** is returning for 2025, bringing together browser and mobile automation enthusiasts from around the world. This
+must-attend event will take place from **March 26-28, 2025**, in the vibrant city of **Valencia, Spain**!
+
+This year, the conference will gather over **400 browser and mobile automation professionals, including developers, testers, quality managers, test architects**, and others,
+to explore the latest trends in **browser and mobile automation**, including cutting-edge topics like **AI in automation, game testing, accessibility automation**, and much more.
+Whether you're new to automation or an experienced professional, this conference is designed to offer **actionable insights and practical knowledge** that you can take back to your team.
+
+## Why Attend?
+
+- **Unparalleled Learning**: Get hands-on training and real-world insights from world-class experts in **Selenium**, **Appium**, and the broader **WebDriver ecosystem**. Learn
+ how automation tools like **WebdriverIO, Puppeteer, Nightwatch**, and more are pushing the boundaries of testing.
+- **AI & Automation**: Discover how **AI** is reshaping browser and mobile automation and learn practical techniques integrating **AI** into your testing workflows.
+- **Workshops & Networking**: Full-day workshops on March 26 offer deep dives into advanced topics like **Selenium Grid with Kubernetes**, **Advance Appium** or **Selenium Deep Dive**.
+ Plus, with so many professionals on-site, it's the perfect opportunity to grow your network and meet project leads, committers, and fellow testers.
+- **Scenic Valencia**: All of this will take place at the stunning **[Veles e Vents event building](https://veleseventsvalencia.es/en)**, located right by the Mediterranean Sea.
+ And don't worry, we've got special hotel rates just for you!
+
+## Mark Your Calendar 🗓️
+
+- **Call for Proposals** and **ticket sales** open on **October 15, 2024**. Take your chance to submit a talk or secure your spot at this exciting event!
+- The **conference workshops** will be posted on **October 15, 2024**, so stay tuned! In the meantime, visit **[www.seleniumconf.com](https://www.seleniumconf.com)** for more details and to plan your trip.
+
+## Help Spread the Word!
+
+Excited about SeleniumConf & AppiumConf 2025? **Share this event** with your colleagues, friends, and fellow automation enthusiasts.
+Remember to follow us for updates and visit **[www.seleniumconf.com](https://www.seleniumconf.com)** to learn more.
+
+
+Happy testing!
diff --git a/website_and_docs/content/blog/2024/welcoming-puppeteer-to-the-webdriver-world.md b/website_and_docs/content/blog/2024/welcoming-puppeteer-to-the-webdriver-world.md
new file mode 100644
index 000000000000..03df0c198d9f
--- /dev/null
+++ b/website_and_docs/content/blog/2024/welcoming-puppeteer-to-the-webdriver-world.md
@@ -0,0 +1,25 @@
+---
+title: "Welcoming Puppeteer to the WebDriver World"
+linkTitle: "Welcoming Puppeteer to the WebDriver World"
+date: 2024-08-09
+tags: ["selenium"]
+categories: ["general"]
+author: David Burns [@automatedtester](https://www.linkedin.com/in/theautomatedtester/)
+description: >
+ Puppeteer has moved over to support WebDriver BiDi getting full support in Chromium browsers and Firefox.
+---
+
+The Selenium Project has always been fully supportive of creating a standard to improve the quality
+of the web that we use. We started with the [WebDriver Specification](https://w3c.github.io/webdriver) and over the last couple of years have been working
+with the Safari, Edge, Chrome, and Firefox teams on the [WebDriver-BiDi specification](https://w3c.github.io/webdriver-bidi).
+
+Today, we are celebrating that [Puppeteer](https://pptr.dev) has moved over to using [WebDriver-BiDi](https://w3c.github.io/webdriver-bidi), the new WebDriver Specification
+that allows WebDriver clients to have event driven APIs instead of the synchronous way Selenium has done it before.
+
+This new protocol allows us to be able to do things Selenium always wanted to do but was never surfaced to us in a
+meaningful way. We have documented all the latest additions to Selenium, thanks to WebDriver-BiDi, in our [documentation](https://www.selenium.dev/documentation/webdriver/bidi/)
+
+You can read about the latest changes on [Mozilla Hacks](https://hacks.mozilla.org/2024/08/puppeteer-support-for-firefox/)
+and on the [Chrome Developer Blog](https://developer.chrome.com/blog/firefox-support-in-puppeteer-with-webdriver-bidi?hl=en).
+
+Congratulations to everyone in making this a reality and supporting a standardised web!
diff --git a/website_and_docs/content/blog/2025/_index.md b/website_and_docs/content/blog/2025/_index.md
new file mode 100644
index 000000000000..0c07aa002fd7
--- /dev/null
+++ b/website_and_docs/content/blog/2025/_index.md
@@ -0,0 +1,5 @@
+---
+title: "Blog Posts - 2025"
+linkTitle: "2025"
+weight: 85
+---
diff --git a/website_and_docs/content/blog/2025/lambdatest-selenium-partnership.md b/website_and_docs/content/blog/2025/lambdatest-selenium-partnership.md
new file mode 100644
index 000000000000..82cd175c3244
--- /dev/null
+++ b/website_and_docs/content/blog/2025/lambdatest-selenium-partnership.md
@@ -0,0 +1,66 @@
+---
+title: "LambdaTest Becomes a Selenium Development Partner"
+linkTitle: "LambdaTest Becomes a Selenium Development Partner"
+date: 2025-04-10
+tags: ["selenium"]
+categories: ["general"]
+author: Sri Harsha [@harsha509](https://www.linkedin.com/in/sriharsha509/)
+images:
+ - "/images/blog/2025/lambdatest-selenium-development-partner.png"
+description: >
+ The Selenium Project is pleased to welcome LambdaTest as an official Development Partner.
+---
+
+We are excited to share that [LambdaTest](https://www.lambdatest.com) has joined as a development
+partner for Selenium. This partnership highlights our shared commitment
+to innovation, community engagement, and collaborative progress in the
+test automation space. LambdaTest’s dedicated Open Source Program Office (OSPO)
+is contributing valuable expertise and resources that will further enrich the Selenium ecosystem.
+
+## A Partnership Rooted in Open Source Values
+
+At the heart of Selenium lies a vibrant community dedicated to open
+standards and continuous improvement. Our collaboration with LambdaTest
+is designed to strengthen the community by channeling focused contributions
+from their OSPO—improving tools, integrations, and documentation for
+Selenium users around the world.
+
+## About LambdaTest
+
+[LambdaTest](https://www.lambdatest.com) is a platform that empowers businesses to
+accelerate time to market through intelligent, cloud-based test authoring,
+orchestration, and execution. With over 15,000 customers and 2.3 million+
+users across 130+ countries, LambdaTest is the trusted choice for modern software testing.
+
+## Key Points of the Partnership
+
+- **Open Source Integrity:** Selenium continues to flourish as a community-led project, embodying the true spirit of open source.
+- **Dedicated OSPO Contributions:** The team at LambdaTest is actively enhancing Selenium by improving documentation, bolstering community support, and enabling better integrations. Their efforts are aimed at empowering the global Selenium user base.
+- **Community-Focused Innovation:** By pooling our collective expertise, we are well-positioned to drive new solutions and elevate test automation practices to new heights.
+
+## What This Partnership Means for the Community
+
+The contributions from LambdaTest’s OSPO are set to bring
+notable benefits to the broader testing landscape:
+
+- **Faster Development:** The infusion of dedicated engineering resources will accelerate the development of new features and improvements.
+- **Improved Stability:** Increased efforts in testing and quality assurance will help quickly identify and resolve issues.
+- **Better Documentation:** Enhanced documentation will make it easier for users to dive into Selenium and harness its advanced capabilities.
+- **Enhanced Community Support:** LambdaTest will play an active role in organizing and sponsoring community events, fostering rich collaboration and knowledge sharing.
+
+## Looking Ahead
+
+This partnership is more than a technical alliance—it reaffirms our
+belief in the power of community-led development. The proactive contributions
+from LambdaTest’s OSPO will help create a more connected and empowered test
+automation community. We invite you to join our upcoming workshops, webinars,
+and discussion forums to see firsthand how these collaborative projects will
+shape the future of open source test automation.
+
+Formalizing LambdaTest as a Selenium development partner is a milestone that
+celebrates our commitment to innovation and community spirit. With the dedicated
+efforts from LambdaTest’s OSPO, we continue our mission to enhance the
+Selenium ecosystem for every developer and tester worldwide.
+
+Join us on this journey toward a future that is more resilient,
+supportive, and inventive in the realm of test automation.
diff --git a/website_and_docs/content/blog/2025/remove-cdp-firefox.md b/website_and_docs/content/blog/2025/remove-cdp-firefox.md
new file mode 100644
index 000000000000..0787c9f042aa
--- /dev/null
+++ b/website_and_docs/content/blog/2025/remove-cdp-firefox.md
@@ -0,0 +1,18 @@
+---
+title: "Removing ChromeDevTools Support For Firefox"
+linkTitle: "Removing ChromeDevTools Support For Firefox"
+date: 2025-02-03
+tags: ["selenium"]
+categories: ["releases"]
+author: Puja Jagani [@pujagani](https://www.linkedin.com/in/pujajagani/)
+description: >
+ Today we're happy to announce ChromeDevTools support for Firefox is removed and WebDriver BiDi is paving the path forward
+---
+
+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.
+
+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/].
+
+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.
+
+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/).
\ No newline at end of file
diff --git a/website_and_docs/content/blog/2025/selenium-4-28-released.md b/website_and_docs/content/blog/2025/selenium-4-28-released.md
new file mode 100644
index 000000000000..747e837294eb
--- /dev/null
+++ b/website_and_docs/content/blog/2025/selenium-4-28-released.md
@@ -0,0 +1,184 @@
+---
+title: "Selenium 4.28 Released!"
+linkTitle: "Selenium 4.28 Released!"
+date: 2025-01-20
+tags: ["selenium"]
+categories: ["releases"]
+author: Diego Molina [@diemol](https://www.diemol.com)
+images:
+ - "/images/blog/2025/selenium_4.28.jpg"
+description: >
+ Today we're happy to announce that Selenium 4.28 has been released!
+---
+We're very happy to announce the release of Selenium 4.28 for
+Javascript, Ruby, Python, .NET, Java and the Grid!
+Links to everything can be found on our [downloads page][downloads].
+
+
+
+
+## **Highlights**
+- **Chrome DevTools support** is now: v132, v131, and v130 (Firefox still uses v85 for all versions)
+- Expanded **nullability annotations** for better type safety in .NET and Java.
+- Refinements to **Selenium Grid**, including more efficient session handling and node management.
+- **Packaging and installation enhancements** across Python and Ruby for smoother integration.
+- **Documentation improvements** across Python and .NET libraries, ensuring clearer developer guidance.
+- Updated **language-specific implementations** for modern development standards.
+
+
+
+## **Changes by Language**
+
+### **Java**
+- **Encapsulation Improvements**: Encapsulated `additionalCommands` with a getter method ([#14816](https://github.com/SeleniumHQ/selenium/pull/14816)).
+- **Nullability Enhancements**: Added nullness annotations for enums, exceptions, interactions, logging, and Proxy ([#15105](https://github.com/SeleniumHQ/selenium/pull/15105), [#15094](https://github.com/SeleniumHQ/selenium/pull/15094)).
+- **SpotBugs Updates**: Excluded specific warnings to maintain clean code ([#14766](https://github.com/SeleniumHQ/selenium/pull/14766)).
+- **Improved Logging**: Enhanced error handling and message clarity in exceptions ([#15116](https://github.com/SeleniumHQ/selenium/pull/15116)).
+- **Relative Locators**: Updates for `RelativeBy` locators, simplifying usage ([#14482](https://github.com/SeleniumHQ/selenium/pull/14482)).
+
+
+
+### **Python**
+- **Packaging Fixes**: Addressed issues for smoother installation ([#14806](https://github.com/SeleniumHQ/selenium/pull/14806), [#14823](https://github.com/SeleniumHQ/selenium/pull/14823)).
+- **Documentation Upgrades**: Added comprehensive docstrings to multiple classes, including `WebDriverWait`, `ExpectedConditions`, and `WebElement` ([#15077](https://github.com/SeleniumHQ/selenium/pull/15077), [#15096](https://github.com/SeleniumHQ/selenium/pull/15096)).
+- **Refactoring**: Moved project metadata and improved code organization ([#14837](https://github.com/SeleniumHQ/selenium/pull/14837)).
+- **Enhanced CDP Command Handling**: Added `execute_cdp_cmd` to `Remote` ([#14809](https://github.com/SeleniumHQ/selenium/pull/14809)).
+
+
+
+### **JavaScript**
+- **Federated Credential Management Support**: Introduced support for Federated Credential Management, enhancing authentication capabilities. ([#15008](https://github.com/SeleniumHQ/selenium/pull/15008))
+- **Node.js Version Specification**: The minimum required Node.js version has been specified as 18.20.5.
+- **Improved Logging**: Added detailed error messages for invalid cookie name validation in `getCookie` and `deleteCookie` methods, aiding in debugging.
+- **Diagnostic Logging for Safari**: Enabled diagnostic logging for Safari, facilitating better issue tracking and resolution.
+
+
+
+### **.NET**
+- **Nullability Improvements**: Added annotations to `SessionId`, `Alert`, `CookieJar`, `Logs API`, and more ([#14840](https://github.com/SeleniumHQ/selenium/pull/14840), [#14874](https://github.com/SeleniumHQ/selenium/pull/14874)).
+- **Refactored DevTools**: Modernized code style and enhanced JSON parsing ([#14990](https://github.com/SeleniumHQ/selenium/pull/14990)).
+- **Future-Proofing**: Added notes and deprecated setters for better immutability ([#15107](https://github.com/SeleniumHQ/selenium/pull/15107)).
+- **Testing Updates**: Migrated NUnit assertions to modern syntax ([#14870](https://github.com/SeleniumHQ/selenium/pull/14870)).
+
+
+
+### **Ruby**
+- **BiDi Network Enhancements**: Added request handlers for authentication and interception ([#14751](https://github.com/SeleniumHQ/selenium/pull/14751)).
+- **Cookie Management Updates**: Added tests and improved handling for cookies ([#14843](https://github.com/SeleniumHQ/selenium/pull/14843)).
+
+
+
+### **Grid**
+- **Improved Session Management**: Enhanced slot matching and session queue handling ([#14914](https://github.com/SeleniumHQ/selenium/pull/14914)).
+- **Dynamic Grid Enhancements**: Added video recording capabilities on browser node ([#15047](https://github.com/SeleniumHQ/selenium/pull/15047)).
+- **Reliability Boost**: Improved HTTP request retries and node health checks ([#14924](https://github.com/SeleniumHQ/selenium/pull/14924)).
+
+
+
+### Docker Selenium
+- Update procedure to install Firefox in Node/Standalone Firefox ([#2550](https://github.com/SeleniumHQ/docker-selenium/discussions/2550))
+- Enable video recorder in Node/Standalone containers ([#2539](https://github.com/SeleniumHQ/docker-selenium/discussions/2539))
+- Env var `SE_ENABLE_TRACING=false` is not required when starting the container anymore ([#2549](https://github.com/SeleniumHQ/docker-selenium/discussions/2549))
+- Env var `SE_NODE_PLATFORM_NAME` & `SE_NODE_BROWSER_VERSION` to adjust default Node stereotypes for autoscaling ([#2520](https://github.com/SeleniumHQ/docker-selenium/pull/2520), [#2525](https://github.com/SeleniumHQ/docker-selenium/pull/2525))
+- Selenium Grid scaler in KEDA improvements ([KEDA#6437](https://github.com/kedacore/keda/pull/6437), [KEDA#6477](https://github.com/kedacore/keda/pull/6477))
+- [See all changes](https://github.com/SeleniumHQ/docker-selenium/releases)
+
+
+
+We thank all our contributors for their incredible efforts in making Selenium better with every release. ❤️
+
+For a detailed look at all changes, check out the [release notes](https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.28.0).
+
+
+
+
+## Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/AdamPDotty" >}}
+{{< gh-user "https://api.github.com/users/DineshKumarRA" >}}
+{{< gh-user "https://api.github.com/users/MustafaAgamy" >}}
+{{< gh-user "https://api.github.com/users/dennisoelkers" >}}
+{{< gh-user "https://api.github.com/users/iampopovich" >}}
+{{< gh-user "https://api.github.com/users/lauromoura" >}}
+{{< gh-user "https://api.github.com/users/mk868" >}}
+{{< gh-user "https://api.github.com/users/navin772" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+
+
+
+
+
+### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Delta456" >}}
+{{< gh-user "https://api.github.com/users/jasonren0403" >}}
+{{< gh-user "https://api.github.com/users/navin772" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+{{< gh-user "https://api.github.com/users/praveenmar" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+{{< gh-user "https://api.github.com/users/yvsvarma" >}}
+
+
+
+
+### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/KyriosGN0" >}}
+{{< gh-user "https://api.github.com/users/jbolsens-legion" >}}
+{{< gh-user "https://api.github.com/users/joshfng" >}}
+
+
+
+
+### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/RenderMichael" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+
+
+Stay tuned for updates by following SeleniumHQ on:
+- [Mastodon](https://mastodon.social/@seleniumHQ@fosstodon.org)
+- [BlueSky](https://bsky.app/profile/seleniumconf.bsky.social)
+- [LinkedIn](https://www.linkedin.com/company/selenium/)
+- [Selenium Community YouTube Channel](https://www.youtube.com/@SeleniumHQProject/streams)
+- [X (Formerly Twitter)](https://twitter.com/seleniumhq)
+
+Happy automating!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2025/selenium-4-29-released.md b/website_and_docs/content/blog/2025/selenium-4-29-released.md
new file mode 100644
index 000000000000..19cd5b451444
--- /dev/null
+++ b/website_and_docs/content/blog/2025/selenium-4-29-released.md
@@ -0,0 +1,174 @@
+---
+title: "Selenium 4.29 Released!"
+linkTitle: "Selenium 4.29 Released!"
+date: 2025-02-20
+tags: ["selenium"]
+categories: ["releases"]
+author: Diego Molina [@diemol](https://www.diemol.com)
+images:
+ - "/images/blog/2025/selenium_4.29.jpg"
+description: >
+ Today we're happy to announce that Selenium 4.29 has been released!
+---
+We're very happy to announce the release of Selenium 4.29 for
+Javascript, Ruby, Python, .NET, Java and the Grid!
+Links to everything can be found on our [downloads page][downloads].
+
+
+---
+
+## 🚀 Major Highlights
+
+- **Final removal of [Firefox CDP support](/blog/2025/remove-cdp-firefox/)** across all language bindings.
+- **New WebDriver BiDi capabilities**: Implementation of `setCacheBehavior` and `getClientWindows` commands.
+- **Grid UI Fixes**: Live session view now works as expected.
+- **PrintOptions enhancements**: Support for predefined and custom paper sizes.
+- **Nullability annotations** continue to improve type safety in .NET.
+- **BiDi improvements**: Network response handlers and optimizations.
+- **Enhancements to logging options** in Java.
+
+---
+
+## 🔹 Language-Specific Changes
+
+### **Java**
+- Implemented `setCacheBehavior` for WebDriver BiDi. ([#15130](https://github.com/SeleniumHQ/selenium/pull/15130))
+- Enhanced `PageSize` class to support predefined and custom paper sizes. ([#15052](https://github.com/SeleniumHQ/selenium/pull/15052))
+- Ensured purging dead nodes service interval is configurable. ([#15175](https://github.com/SeleniumHQ/selenium/pull/15175))
+- Improved handling of Selenium logging options. ([#15197](https://github.com/SeleniumHQ/selenium/pull/15197))
+- Added support for `getClientWindows` in WebDriver BiDi. ([#14869](https://github.com/SeleniumHQ/selenium/pull/14869))
+
+### **Python**
+- Fixed installation issues for source distributions. ([#15128](https://github.com/SeleniumHQ/selenium/pull/15128))
+- Updated `PrintOptions` to support different page sizes. ([#15064](https://github.com/SeleniumHQ/selenium/pull/15064))
+- Documented `cygwin` path usage in `send_keys()`. ([#15275](https://github.com/SeleniumHQ/selenium/pull/15275))
+- Fixed return type and docstrings for `get_downloadable_files()`. ([#15292](https://github.com/SeleniumHQ/selenium/pull/15292))
+
+### **JavaScript**
+- Implemented `setCacheBehavior` for WebDriver BiDi. ([#15136](https://github.com/SeleniumHQ/selenium/pull/15136))
+- Fixed dependencies for `novnc` v1.5.0. ([#15005](https://github.com/SeleniumHQ/selenium/pull/15005))
+- Added support for `getClientWindows` in WebDriver BiDi. ([#15248](https://github.com/SeleniumHQ/selenium/pull/15248))
+
+### **Ruby**
+- Removed Java date dependency. ([#15122](https://github.com/SeleniumHQ/selenium/pull/15122))
+- Added WebDriver BiDi network response handler. ([#14900](https://github.com/SeleniumHQ/selenium/pull/14900))
+- Implemented WebDriver BiDi `setCacheBehavior` command. ([#15114](https://github.com/SeleniumHQ/selenium/pull/15114))
+
+### **.NET**
+- Improved BiDi exception handling when it is not enabled. ([#15163](https://github.com/SeleniumHQ/selenium/pull/15163))
+- Added nullability annotations across multiple modules, including `Command`, `DriverService`, `FirefoxProfile`, `Manage()`, `SafariOptions`, and `Navigate()`.
+- Updated WebAuth credential handling. ([#15201](https://github.com/SeleniumHQ/selenium/pull/15201))
+- Simplified creation of network types. ([#15267](https://github.com/SeleniumHQ/selenium/pull/15267))
+- Improved logging stability. ([#15257](https://github.com/SeleniumHQ/selenium/pull/15257))
+
+### **Docker Selenium**
+
+- Publish Node/Standalone images with the latest Grid core version and browser backward versions
+- Update container environment to JDK21 ([#2642](https://github.com/SeleniumHQ/docker-selenium/pull/2642))
+- Node base with share system certificate support ([#2653](https://github.com/SeleniumHQ/docker-selenium/pull/2653))
+- Node container is able to restart and retry to register when `register-period` exceeded ([#2662](https://github.com/SeleniumHQ/docker-selenium/pull/2662))
+- Selenium Grid scaler in KEDA feature preview
+ - Add trigger param to set custom capabilities for matching specific Nodes ([KEDA#6536](https://github.com/kedacore/keda/pull/6536))
+ - Add trigger param for Node enables managed downloads capability ([KEDA#6570](https://github.com/kedacore/keda/pull/6570))
+- 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))
+- [See all changes](https://github.com/SeleniumHQ/docker-selenium/releases)
+
+
+
+
+We thank all our contributors for their incredible efforts in making Selenium better with every release. ❤️
+
+For a detailed look at all changes, check out the [release notes](https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.29.0).
+
+
+
+
+## Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Delta456" >}}
+{{< gh-user "https://api.github.com/users/iampopovich" >}}
+{{< gh-user "https://api.github.com/users/navin772" >}}
+{{< gh-user "https://api.github.com/users/smortex" >}}
+{{< gh-user "https://api.github.com/users/yvsvarma" >}}
+
+
+
+
+
+### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/AndreyJVM" >}}
+{{< gh-user "https://api.github.com/users/Delta456" >}}
+{{< gh-user "https://api.github.com/users/alaahong" >}}
+{{< gh-user "https://api.github.com/users/b2m" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+
+
+
+
+### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/PeterUpfold" >}}
+{{< gh-user "https://api.github.com/users/StenAL" >}}
+{{< gh-user "https://api.github.com/users/amardeep2006" >}}
+{{< gh-user "https://api.github.com/users/calendir" >}}
+{{< gh-user "https://api.github.com/users/joshfng" >}}
+{{< gh-user "https://api.github.com/users/ritzk" >}}
+
+
+
+
+### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/cgoldberg" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/RenderMichael" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+
+
+Stay tuned for updates by following SeleniumHQ on:
+- [Mastodon](https://mastodon.social/@seleniumHQ@fosstodon.org)
+- [BlueSky](https://bsky.app/profile/seleniumconf.bsky.social)
+- [LinkedIn](https://www.linkedin.com/company/selenium/)
+- [Selenium Community YouTube Channel](https://www.youtube.com/@SeleniumHQProject/streams)
+- [X (Formerly Twitter)](https://twitter.com/seleniumhq)
+
+Happy automating!
+
+[downloads]: /downloads
+[bindings]: /downloads#bindings
+[team]: /project/structure
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2025/selenium-4-30-released.md b/website_and_docs/content/blog/2025/selenium-4-30-released.md
new file mode 100644
index 000000000000..6ef3314a255e
--- /dev/null
+++ b/website_and_docs/content/blog/2025/selenium-4-30-released.md
@@ -0,0 +1,197 @@
+---
+title: "Selenium 4.30 Released!"
+linkTitle: "Selenium 4.30 Released!"
+date: 2025-03-21
+tags: [ "selenium" ]
+categories: [ "releases" ]
+author: Diego Molina [@diemol](https://www.diemol.com)
+images:
+ - "/images/blog/2025/selenium_4.30.jpg"
+description: >
+ Today we're happy to announce that Selenium 4.30 has been released!
+---
+
+We're very happy to announce the release of Selenium 4.30 for Javascript, Ruby, Python, .NET, Java
+and the Grid!
+This version brings key updates across the project, with improvements to the BiDi protocol,
+extensive nullability work in .NET, better error handling, and various bug fixes. It’s a great
+step forward as we continue strengthening Selenium’s stability, consistency, and support across
+all supported languages.
+
+Links to all assets can be found on our [downloads page][downloads].
+
+
+---
+
+## 🚀 Major Highlights
+
+- Continued enhancements to **BiDi (Bi-Directional Protocol)** support across Java, Ruby, .NET, JavaScript, and Python.
+- Extensive **nullability annotations** added throughout the .NET bindings.
+- Selenium Manager (Rust) now supports **nightly Grid builds**.
+- Improvements to testing infrastructure and developer experience, including better packaging, linting, and platform support.
+- Numerous bug fixes and refactors across the Grid, bindings, and devtools.
+
+---
+
+## 🔹 Language-Specific Changes
+
+### **Java**
+
+- Implemented BiDi commands: `getBidiSessionStatus` and `Permissions`.
+- Refined logger initialization.
+- Removed deprecated, non-W3C compliant `NetworkConnection` interface.
+- Added support for setting viewport and handling CDP warnings gracefully.
+
+### **Python**
+
+- Improved devtools test handling and documentation.
+- Fixed packaging issues and test discovery for `pytest`.
+- Added docstring updates for clarity and modernization.
+- Replaced strings with `By` class attributes.
+- Improved socket resource management and error handling.
+- Updated `expected_conditions` type annotations.
+
+### **JavaScript**
+
+- Fixed BiDi tests for Chrome and Firefox on CI.
+- Implemented BiDi `permissions` module commands.
+
+### **Ruby**
+
+- Fixed a compatibility issue with Ruby 3.1 ("no anonymous block parameter").
+- Added BiDi support for:
+ - Setting viewport
+ - Activating browser context
+ - Providing responses
+- Added a `target_type` parameter to devtools.
+
+### **.NET**
+
+- Enabled **nullable reference types** across many components.
+- Trimmed away CDP for **AOT** applications.
+- Enhanced BiDi support including:
+ - `SetFiles` command
+ - Support for `UnhandledPromptBehavior`
+ - Event support like `OnNavigationCommitted`
+ - Encapsulation of the transport layer
+- Improved `WebDriver`, `WebElement`, and capabilities types with nullability.
+- Introduced `SystemClock` singleton.
+- Revisited and fixed test execution on Windows/macOS.
+- Removed obsoleted members for 4.30.
+
+### **Grid & Selenium Manager**
+
+- Added trace logging for session stop events in Grid.
+- Improved configuration options for server timeouts and session handling.
+- Added support in Selenium Manager (Rust) for **nightly Grid builds**.
+- Enhanced ability to trace and view live sessions.
+
+### **Docker Selenium**
+
+- Helm config: Node Relay to extend autoscaling Grid with test cloud resources ([#2703](https://github.com/SeleniumHQ/docker-selenium/pull/2703)).
+- Docker: Disable HeapDumpOnOutOfMemoryError by default ([#2708](https://github.com/SeleniumHQ/docker-selenium/pull/2708))
+- [See all changes](https://github.com/SeleniumHQ/docker-selenium/releases)
+
+
+
+
+We thank all our contributors for their incredible efforts in making Selenium better with every
+release. ❤️
+
+For a detailed look at all changes, check out
+the [release notes](https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.30.0).
+
+
+
+## Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Delta456" >}}
+{{< gh-user "https://api.github.com/users/FloKNetcare" >}}
+{{< gh-user "https://api.github.com/users/ahalbrock" >}}
+{{< gh-user "https://api.github.com/users/allrob23" >}}
+{{< gh-user "https://api.github.com/users/jpawlyn" >}}
+{{< gh-user "https://api.github.com/users/navin772" >}}
+{{< gh-user "https://api.github.com/users/smortex" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+{{< gh-user "https://api.github.com/users/ahalbrock" >}}
+
+
+
+
+### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Delta456" >}}
+{{< gh-user "https://api.github.com/users/WasiqB" >}}
+{{< gh-user "https://api.github.com/users/alaahong" >}}
+{{< gh-user "https://api.github.com/users/beinghumantester" >}}
+{{< gh-user "https://api.github.com/users/franciscotrenco" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+
+
+
+
+### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/cgoldberg" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/RenderMichael" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+
+
+Stay tuned for updates by following SeleniumHQ on:
+
+- [Mastodon](https://mastodon.social/@seleniumHQ@fosstodon.org)
+- [BlueSky](https://bsky.app/profile/seleniumconf.bsky.social)
+- [LinkedIn](https://www.linkedin.com/company/selenium/)
+- [Selenium Community YouTube Channel](https://www.youtube.com/@SeleniumHQProject/streams)
+- [X (Formerly Twitter)](https://twitter.com/seleniumhq)
+
+Happy automating!
+
+[downloads]: /downloads
+
+[bindings]: /downloads#bindings
+
+[team]: /project/structure
+
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2025/selenium-4-31-released.md b/website_and_docs/content/blog/2025/selenium-4-31-released.md
new file mode 100644
index 000000000000..87c727c935ef
--- /dev/null
+++ b/website_and_docs/content/blog/2025/selenium-4-31-released.md
@@ -0,0 +1,175 @@
+---
+title: "Selenium 4.31 Released!"
+linkTitle: "Selenium 4.31 Released!"
+date: 2025-04-05
+tags: [ "selenium" ]
+categories: [ "releases" ]
+author: Diego Molina [@diemol](https://www.diemol.com)
+images:
+ - "/images/blog/2025/selenium_4.31.jpg"
+description: >
+ Today we're happy to announce that Selenium 4.31 has been released!
+---
+
+We’re excited to announce the release of **Selenium 4.31** for Javascript, Ruby, Python, .NET, Java
+and the Grid! 🎉
+This release focuses on improvements across the board, including better BiDi protocol support, test
+reliability, nullability enhancements, and cleanup of legacy code across languages.
+
+Links to all assets can be found on our [downloads page][downloads].
+
+
+---
+
+## 🚀 Major Highlights
+
+- Continued work towards full BiDi support in all bindings
+- Cleanup of unused legacy components (like `wgxpath`)
+- Expanded test coverage and fixes for various environments (CI, RBE, MacOS)
+- Improvements in documentation and development tooling
+
+---
+
+## 🔹 Language-Specific Changes
+
+### **Java**
+
+- [Handle `getNamedCookie` and `deleteNamedCookie` for empty strings](https://github.com/SeleniumHQ/selenium/pull/15092)
+- [Add nullness for AppCacheStatus, Credential, and Either](https://github.com/SeleniumHQ/selenium/pull/15119)
+- [Add nullness for interactions](https://github.com/SeleniumHQ/selenium/pull/15118)
+- [Enable Safari for CookieImplementationTest](https://github.com/SeleniumHQ/selenium/pull/15544)
+- [Add test to add a cookie in a user context (BiDi)](https://github.com/SeleniumHQ/selenium/pull/15312)
+
+### **Python**
+
+- [Fix docstring issues that sphinx complains about](https://github.com/SeleniumHQ/selenium/pull/15466)
+- [Only shutdown service if process not already terminated](https://github.com/SeleniumHQ/selenium/pull/15183)
+- [Remove unused mocker arg in chrome options test](https://github.com/SeleniumHQ/selenium/pull/15540)
+- [Fix driver class name in test fixtures](https://github.com/SeleniumHQ/selenium/pull/15550)
+
+### **JavaScript**
+
+- Fixed BiDi tests for Chrome and Firefox on CI.
+- Implemented BiDi `permissions` module commands.
+
+### **Ruby**
+
+- [Fix BiDi test errors](https://github.com/SeleniumHQ/selenium/pull/15482)
+- [Allow symbols again to be passed on `delete_cookie`](https://github.com/SeleniumHQ/selenium/pull/15519)
+
+### **.NET**
+
+- [Decouple nested BiDi types across multiple modules](https://github.com/SeleniumHQ/selenium/pulls?q=is%3Apr+author%3Anvborisenko+label%3Adotnet)
+- [Fix null warnings in `RelativeBy` by sealing the type](https://github.com/SeleniumHQ/selenium/pull/15379)
+- [Simplify conversion to `LocalValue`](https://github.com/SeleniumHQ/selenium/pull/15441)
+- [Unify protected and internal Execute methods](https://github.com/SeleniumHQ/selenium/pull/15233)
+- [Make `ContinueWithAuthCommand` closer to spec (breaking change)](https://github.com/SeleniumHQ/selenium/pull/15545)
+- [Avoid intermediate JsonDocument allocation to improve performance](https://github.com/SeleniumHQ/selenium/pull/15555)
+
+### **Grid**
+
+- [Expose register status via Node status response](https://github.com/SeleniumHQ/selenium/pull/15448)
+- [Add traces for event stop session in Node](https://github.com/SeleniumHQ/selenium/pull/15348)
+
+### **Docker Selenium**
+
+- Helm config: Add template for file browser video records service ([#2763](https://github.com/SeleniumHQ/docker-selenium/pull/2763))
+- Helm config: Strictly handle `basicAuth.enabled` in template ([#2760](https://github.com/SeleniumHQ/docker-selenium/pull/2760))
+- Selenium Grid Autoscaling in Kubernetes is expected working well with KEDA core v2.17.0.
+- [See all changes](https://github.com/SeleniumHQ/docker-selenium/releases)
+
+
+
+
+We thank all our contributors for their incredible efforts in making Selenium better with every
+release. ❤️
+
+For a detailed look at all changes, check out
+the [release notes](https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.31.0).
+
+
+
+## Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Delta456" >}}
+{{< gh-user "https://api.github.com/users/PSandro" >}}
+{{< gh-user "https://api.github.com/users/mk868" >}}
+{{< gh-user "https://api.github.com/users/navin772" >}}
+
+
+
+
+### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/alaahong" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+
+
+
+
+### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/KenHuPricer" >}}
+{{< gh-user "https://api.github.com/users/KyriosGN0" >}}
+
+
+
+
+### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/cgoldberg" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/RenderMichael" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+
+
+Stay tuned for updates by following SeleniumHQ on:
+
+- [Mastodon](https://mastodon.social/@seleniumHQ@fosstodon.org)
+- [BlueSky](https://bsky.app/profile/seleniumconf.bsky.social)
+- [LinkedIn](https://www.linkedin.com/company/selenium/)
+- [Selenium Community YouTube Channel](https://www.youtube.com/@SeleniumHQProject/streams)
+- [X (Formerly Twitter)](https://twitter.com/seleniumhq)
+
+Happy automating!
+
+[downloads]: /downloads
+
+[bindings]: /downloads#bindings
+
+[team]: /project/structure
+
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2025/selenium-4-32-released.md b/website_and_docs/content/blog/2025/selenium-4-32-released.md
new file mode 100644
index 000000000000..f407371e737e
--- /dev/null
+++ b/website_and_docs/content/blog/2025/selenium-4-32-released.md
@@ -0,0 +1,180 @@
+---
+title: "Selenium 4.32 Released!"
+linkTitle: "Selenium 4.32 Released!"
+date: 2025-05-05
+tags: [ "selenium" ]
+categories: [ "releases" ]
+author: Diego Molina [@diemol](https://www.diemol.com)
+images:
+ - "/images/blog/2025/selenium_4.32.jpg"
+description: >
+ Today we're happy to announce that Selenium 4.32 has been released!
+---
+
+We’re excited to announce the release of **Selenium 4.32** for Javascript, Ruby, Python, .NET, Java
+and the Grid! 🎉
+This release continues the focus on strengthening BiDi support across multiple bindings, improving
+stability in tests, and refining documentation and developer experience.
+
+Links to all assets can be found on our [downloads page][downloads].
+
+
+---
+
+## 🚀 Major Highlights
+
+- Enhanced **BiDi (Bi-Directional)** protocol support for Python, Java, Ruby, and .NET bindings
+- Dozens of **bug fixes and stability improvements** in tests and documentation
+- Selenium Grid now better handles **capabilities for mobile testing with Relay Nodes**
+- New utility class in Python to manage a local Grid server
+- Additional updates to support AOT compatibility and memory optimizations in .NET
+
+---
+
+## 🔹 Language-Specific Changes
+
+### **Java**
+
+- BiDi improvements: `onNavigationCommitted`, `getClientWindows`, and Edge support [#15560](https://github.com/SeleniumHQ/selenium/pull/15560), [#15661](https://github.com/SeleniumHQ/selenium/pull/15661)
+- BiDi tests enabled for Edge network module [#15654](https://github.com/SeleniumHQ/selenium/pull/15654)
+- Set BiDi as active protocol for Remote Firefox [#15224](https://github.com/SeleniumHQ/selenium/pull/15224)
+- Dependency versioning improvements via BOM [#15689](https://github.com/SeleniumHQ/selenium/pull/15689)
+
+### **Python**
+
+- Fixes to test args for `--headless` and `--bidi` [#15567](https://github.com/SeleniumHQ/selenium/pull/15567)
+- Improvements in test coverage and cleanup [#15579](https://github.com/SeleniumHQ/selenium/pull/15579), [#15580](https://github.com/SeleniumHQ/selenium/pull/15580)
+- FedCM state leak fix [#15583](https://github.com/SeleniumHQ/selenium/pull/15583)
+- BiDi Network: intercepts and authentication implemented [#14592](https://github.com/SeleniumHQ/selenium/pull/14592)
+- Implemented BiDi `browser`, `browsing_context`, and `log` modules [#15616](https://github.com/SeleniumHQ/selenium/pull/15616), [#15631](https://github.com/SeleniumHQ/selenium/pull/15631), [#15668](https://github.com/SeleniumHQ/selenium/pull/15668)
+- Added `Server` utility class to manage Grid [#15666](https://github.com/SeleniumHQ/selenium/pull/15666)
+- Modernized linting setup and doc publishing [#15614](https://github.com/SeleniumHQ/selenium/pull/15614)
+
+### **JavaScript**
+
+- [Set remote active protocol in Firefox to BiDi only](https://github.com/SeleniumHQ/selenium/commit/a1ff120a9fd69daeea6a51d41aee6beb83748895)
+
+### **Ruby**
+
+- Added `PrintOptions` support [#15158](https://github.com/SeleniumHQ/selenium/pull/15158)
+- WebSocket port handling for Firefox [#15458](https://github.com/SeleniumHQ/selenium/pull/15458)
+- BiDi `setViewport`, `activate`, and log support enhanced [#15290](https://github.com/SeleniumHQ/selenium/pull/15290), [#15365](https://github.com/SeleniumHQ/selenium/pull/15365)
+
+
+### **.NET**
+
+- Extensive BiDi refactoring for better spec alignment and AOT compatibility [#15575](https://github.com/SeleniumHQ/selenium/pull/15575), [#15591](https://github.com/SeleniumHQ/selenium/pull/15591)
+- Introduced strong typing for LocalValue conversions [#15532](https://github.com/SeleniumHQ/selenium/pull/15532)
+- Refined network interception and error handling [#15603](https://github.com/SeleniumHQ/selenium/pull/15603), [#15521](https://github.com/SeleniumHQ/selenium/pull/15521)
+- Websocket memory and platform detection improvements [#15640](https://github.com/SeleniumHQ/selenium/pull/15640), [#15649](https://github.com/SeleniumHQ/selenium/pull/15649)
+
+### **Grid**
+
+- Fixed Safari-specific capability prefix handling [#15574](https://github.com/SeleniumHQ/selenium/pull/15574)
+- Improved handling of `browserName` for Relay Nodes in mobile [#15537](https://github.com/SeleniumHQ/selenium/pull/15537)
+
+### **Docker Selenium**
+
+- Docker: Init python venv with non-root user ([#2769](https://github.com/SeleniumHQ/docker-selenium/pull/2769))
+- Docker: Remove Hub GraphQL dependency from video recorder ([#2813](https://github.com/SeleniumHQ/docker-selenium/pull/2813))
+- Docker: Fluxbox not rendering Chinese characters via VNC view ([#2817](https://github.com/SeleniumHQ/docker-selenium/pull/2817))
+- [See all changes](https://github.com/SeleniumHQ/docker-selenium/releases)
+
+
+
+
+We thank all our contributors for their incredible efforts in making Selenium better with every
+release. ❤️
+
+For a detailed look at all changes, check out
+the [release notes](https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.32.0).
+
+
+
+## Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Delta456" >}}
+{{< gh-user "https://api.github.com/users/FFederi" >}}
+{{< gh-user "https://api.github.com/users/navin772" >}}
+{{< gh-user "https://api.github.com/users/yvsvarma" >}}
+
+
+
+
+### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/HandyCC" >}}
+{{< gh-user "https://api.github.com/users/Ozoniuss" >}}
+{{< gh-user "https://api.github.com/users/alaahong" >}}
+{{< gh-user "https://api.github.com/users/manoj9788" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+
+
+
+
+### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Trigtrig" >}}
+{{< gh-user "https://api.github.com/users/lermit" >}}
+
+
+
+
+### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/cgoldberg" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/RenderMichael" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+
+
+Stay tuned for updates by following SeleniumHQ on:
+
+- [Mastodon](https://mastodon.social/@seleniumHQ@fosstodon.org)
+- [BlueSky](https://bsky.app/profile/seleniumconf.bsky.social)
+- [LinkedIn](https://www.linkedin.com/company/selenium/)
+- [Selenium Community YouTube Channel](https://www.youtube.com/@SeleniumHQProject/streams)
+- [X (Formerly Twitter)](https://twitter.com/seleniumhq)
+
+Happy automating!
+
+[downloads]: /downloads
+
+[bindings]: /downloads#bindings
+
+[team]: /project/structure
+
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2025/selenium-4-33-released.md b/website_and_docs/content/blog/2025/selenium-4-33-released.md
new file mode 100644
index 000000000000..d5f022ff40d1
--- /dev/null
+++ b/website_and_docs/content/blog/2025/selenium-4-33-released.md
@@ -0,0 +1,178 @@
+---
+title: "Selenium 4.33 Released!"
+linkTitle: "Selenium 4.33 Released!"
+date: 2025-05-25
+tags: [ "selenium" ]
+categories: [ "releases" ]
+author: Diego Molina [@diemol](https://www.diemol.com)
+images:
+ - "/images/blog/2025/selenium_4.33.jpg"
+description: >
+ Today we're happy to announce that Selenium 4.33 has been released!
+---
+
+We’re excited to announce the release of **Selenium 4.33** for Javascript, Ruby, Python, .NET, Java
+and the Grid! 🎉
+
+This release contains improvements, cleanups, and new features across all language bindings and the
+Grid. This release continues our effort to modernize the codebase, improve developer experience, and
+refine the project’s tooling and documentation.
+
+Links to all assets can be found on our [downloads page][downloads].
+
+
+---
+
+## 🚀 Highlights
+
+- [9f3c923670](https://github.com/SeleniumHQ/selenium/commit/9f3c92367005f19fad2bc79c171e7250cce43da3) - Grid UI now includes live previews for each Node.
+- [43e6bb970e](https://github.com/SeleniumHQ/selenium/commit/43e6bb970e65ec62692d6bf49962ea81e1103e78) - Python BiDi support expands with the new webExtension module.
+- [ef05c15798](https://github.com/SeleniumHQ/selenium/commit/ef05c15798b22a3ade4bb1f111d3e1955988e267) - Java: Reverted deprecation notice for `getAttribute` after community feedback.
+- [638621f4bc](https://github.com/SeleniumHQ/selenium/commit/638621f4bc3c632c5955fb4d056fd2f01b6cf835) - Java: Clean-up of deprecated timeout configuration methods.
+
+## 🔍 Changes by Component
+
+### Grid
+
+- [9f3c923670](https://github.com/SeleniumHQ/selenium/commit/9f3c92367005f19fad2bc79c171e7250cce43da3) - UI Overview is able to see live preview per Node
+- [7401a3db93](https://github.com/SeleniumHQ/selenium/commit/7401a3db93a7b6cca6f4697c5d032196b2e7f661) - UI Sessions capability fields to display as additional columns
+
+### Python
+
+- [92db47fa2a](https://github.com/SeleniumHQ/selenium/commit/92db47fa2ad6b4f8baa70446b7c18e6c17966306) - Add missing modules to python API docs
+- [4fc2582bf9](https://github.com/SeleniumHQ/selenium/commit/4fc2582bf96ecc2d0d0f4552c0c200a1d4e1e303) - Better error for downloads on local webdrivers
+- [43e6bb970e](https://github.com/SeleniumHQ/selenium/commit/43e6bb970e65ec62692d6bf49962ea81e1103e78) - Add bidi webExtension module (#15749)
+
+### Rust
+
+- [7497552255](https://github.com/SeleniumHQ/selenium/commit/7497552255a2bef5a1d9883d7620de2e41c6b553) - Replace WMIC commands (deprecated) by WinAPI in Windows
+
+### Java
+
+- [ef05c15798](https://github.com/SeleniumHQ/selenium/commit/ef05c15798b22a3ade4bb1f111d3e1955988e267) - Reverting deprecation notice for `getAttribute`.
+- [638621f4bc](https://github.com/SeleniumHQ/selenium/commit/638621f4bc3c632c5955fb4d056fd2f01b6cf835) - Removing deprecated `setScriptTimeout` and `pageLoadTimeout`.
+- [fcf4c9d09e](https://github.com/SeleniumHQ/selenium/commit/fcf4c9d09ecd41223d185a0d9922f14f37f9d4f6) - Removing deprecated SlowLoadableComponent constructor.
+- [1e65b7b49f](https://github.com/SeleniumHQ/selenium/commit/1e65b7b49f4c22e842b3620d9c5841961dfccc5e) - Removing deprecated NATIVE_EVENTS field.
+- [f3f0cadedb](https://github.com/SeleniumHQ/selenium/commit/f3f0cadedbaef98cc224dc7c84f4d8720d115565) - Deprecating methods that use FirefoxBinary as well.
+
+### Ruby
+
+- [212fc8be35](https://github.com/SeleniumHQ/selenium/commit/212fc8be3566e333ee3823e153b770162c3902b8) - Upgrade to Ruby 3.2.
+- [1e2945de78](https://github.com/SeleniumHQ/selenium/commit/1e2945de78c8005d96bad66af43a02b46bde3d20) - Let firefox choose the bidi port by default.
+
+### .NET
+
+- [212fc8be35](https://github.com/SeleniumHQ/selenium/commit/212fc8be3566e333ee3823e153b770162c3902b8) - Upgrade to Ruby 3.2.
+- [1e2945de78](https://github.com/SeleniumHQ/selenium/commit/1e2945de78c8005d96bad66af43a02b46bde3d20) - Let firefox choose the bidi port by default.
+
+### JavaScript
+
+- [3ef1c25fe8](https://github.com/SeleniumHQ/selenium/commit/3ef1c25fe8eef39b195550f7b5bf76d38f4f42ca) - Chrome capabilities test passes now in RBE.
+
+
+### Docker Selenium
+
+- K8s: Fix Helm chart template for deployment of video recording manager ([#2828](https://github.com/SeleniumHQ/docker-selenium/pull/2828), [#2831](https://github.com/SeleniumHQ/docker-selenium/pull/2831)).
+- K8s: Node enable readiness probe checks status registered to Hub ([#2833](https://github.com/SeleniumHQ/docker-selenium/pull/2833)).
+- K8s: Video recorder run as sidecar container is disabled by default ([#2843](https://github.com/SeleniumHQ/docker-selenium/pull/2843)).
+- K8s: Fix chart template issue that might occur when using Helm version v3.18.0 ([365c106](https://github.com/SeleniumHQ/docker-selenium/commit/365c10659905e6ad5e7e972fcb54225dc2a8c928)).
+- K8s: Update chart dependencies (KEDA core 2.17,1, and so on).
+- [See all changes](https://github.com/SeleniumHQ/docker-selenium/releases)
+
+
+
+
+We thank all our contributors for their incredible efforts in making Selenium better with every
+release. ❤️
+
+For a detailed look at all changes, check out
+the [release notes](https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.33.0).
+
+
+
+## Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/DeflateAwning" >}}
+{{< gh-user "https://api.github.com/users/Delta456" >}}
+{{< gh-user "https://api.github.com/users/bandophahita" >}}
+{{< gh-user "https://api.github.com/users/navin772" >}}
+{{< gh-user "https://api.github.com/users/t7ru" >}}
+{{< gh-user "https://api.github.com/users/tomhughes" >}}
+
+
+
+
+### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/PeteSong" >}}
+{{< gh-user "https://api.github.com/users/alaahong" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+
+
+
+
+### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/alcpereira" >}}
+
+
+
+
+### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/cgoldberg" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/RenderMichael" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+
+
+Stay tuned for updates by following SeleniumHQ on:
+
+- [Mastodon](https://mastodon.social/@seleniumHQ@fosstodon.org)
+- [BlueSky](https://bsky.app/profile/seleniumconf.bsky.social)
+- [LinkedIn](https://www.linkedin.com/company/selenium/)
+- [Selenium Community YouTube Channel](https://www.youtube.com/@SeleniumHQProject/streams)
+- [X (Formerly Twitter)](https://twitter.com/seleniumhq)
+
+Happy automating!
+
+[downloads]: /downloads
+
+[bindings]: /downloads#bindings
+
+[team]: /project/structure
+
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2025/selenium-4-34-released.md b/website_and_docs/content/blog/2025/selenium-4-34-released.md
new file mode 100644
index 000000000000..77524edd69f2
--- /dev/null
+++ b/website_and_docs/content/blog/2025/selenium-4-34-released.md
@@ -0,0 +1,209 @@
+---
+title: "Selenium 4.34 Released!"
+linkTitle: "Selenium 4.34 Released!"
+date: 2025-06-29
+tags: [ "selenium" ]
+categories: [ "releases" ]
+author: Diego Molina [@diemol](https://www.diemol.com)
+images:
+ - "/images/blog/2025/selenium_4.34.jpg"
+description: >
+ Today we're happy to announce that Selenium 4.34 has been released!
+---
+
+We’re excited to announce the release of **Selenium 4.34** for Javascript, Ruby, Python, .NET, Java
+and the Grid! 🎉
+
+Links to all assets can be found on our [downloads page][downloads].
+
+
+---
+
+## 🔦 Highlights
+
+- **macOS Improvements**: Added macOS-specific key support for both Ruby and Python.
+- **Web Extension Support**: BiDi implementations now support Chromium web extensions (Java, Python).
+- **Deprecations**: FTP proxy support deprecated across Java, Python, Ruby, and .NET.
+- **Selenium Manager**: Now supports Electron (Rust backend). Still needs implementation in the bindings.
+- **BiDi Enhancements**: Continued progress with `historyUpdated`, `permissions`, and `storage` modules (Java, .NET, Python).
+- **Quality Improvements**: Significant type annotation cleanup, test stability enhancements, and doc generation in Python.
+
+### Java
+
+- ✅ Implemented BiDi commands:
+ - `browsingContext.historyUpdated`
+ - `webExtensions` and extended `BrowsingContextInfo`
+- 🛠 Refactored `CommandPayload`, removed deprecated classes:
+ - `ContextAware`
+ - `CommandLine`
+ - `OsProcess`
+- ⚠️ Deprecated `FtpProxy`
+- ➕ Environment variable support for driver paths with Selenium Manager
+- 🔐 Improvements in `VirtualAuthenticator`
+
+### Python
+
+- 🔑 Added macOS-specific keys to `Keys` enum (`OPTION`, `FN`)
+- 🧠 Extensive BiDi updates:
+ - WebExtensions
+ - Permissions
+ - Storage
+ - History updates (with timestamps)
+- 🧼 Code quality:
+ - mypy/type hint cleanups
+ - API docs improvements (auto-generated)
+ - tox/ruff upgrades
+- 💡 `enable_webextensions()` now documented with CDP note
+- ❌ Deprecated: FTP proxy support
+- 🌐 Better error reporting on HTTP failures, improved error handling in `expected_conditions`
+
+### .NET
+
+- 🚫 Deprecated FTP proxy support
+- 📚 BiDi enhancements:
+ - `OnHistoryUpdated` event
+ - AcceptInsecureCerts & Proxy in user context
+ - Implicit screenshot-to-bytes conversion
+ - Protected DTOs from inheritance
+- 🧹 Cleanup:
+ - Namespace simplifications
+ - Removed StyleCop config
+
+### JavaScript
+
+- 📢 Warning added when FTP proxy is used
+- 💡 Declared minimum required Node.js version: `>= 20.0.0`
+
+### Grid
+- 🧪 Grid UI updated to Node 20 for type compatibility
+- 🧰 New built-in slot selector: `GreedySlotSelector`
+- 🧹 UI cleanup: session deletion, log level validation
+
+### Ruby
+
+- 🧑💻 Added macOS key mappings (Option/Fn)
+- ⚠️ Deprecated FTP proxy support
+- 🛠 Fixed child process termination handling
+
+### Rust (Selenium Manager)
+
+- 🖥️ Added **Electron** browser support
+- 🔧 Fixed Edge version test logic
+- Electron support.
+
+### Docker Selenium
+
+- K8s: Distributor uses Greedy as slot selector strategy in autoscaling ([#2875](https://github.com/SeleniumHQ/docker-selenium/pull/2875))
+- K8s: Fix video uploader secrets pass to Node single container ([#2886](https://github.com/SeleniumHQ/docker-selenium/pull/2886))
+- Docker: Update dependencies version for CVEs fix
+- Docker: Enable `SE_NODE_ENABLE_MANAGED_DOWNLOADS` in Node config by default ([#2869](https://github.com/SeleniumHQ/docker-selenium/pull/2869))
+- Docker: Session created in Node container can be deleted on UI by default ([#2871](https://github.com/SeleniumHQ/docker-selenium/pull/2871))
+- Docker: Environment variable flag to upgrade latest version of Chrome and ChromeDriver in container ([#2872](https://github.com/SeleniumHQ/docker-selenium/pull/2872))
+- [See all changes](https://github.com/SeleniumHQ/docker-selenium/releases)
+
+
+
+
+We thank all our contributors for their incredible efforts in making Selenium better with every
+release. ❤️
+
+For a detailed look at all changes, check out
+the [release notes](https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.34.0).
+
+
+
+## Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/AB-xdev" >}}
+{{< gh-user "https://api.github.com/users/Bradltr95" >}}
+{{< gh-user "https://api.github.com/users/Delta456" >}}
+{{< gh-user "https://api.github.com/users/LuisOsv" >}}
+{{< gh-user "https://api.github.com/users/ShauryaDusht" >}}
+{{< gh-user "https://api.github.com/users/adolfoarmas" >}}
+{{< gh-user "https://api.github.com/users/asolntsev" >}}
+{{< gh-user "https://api.github.com/users/iampopovich" >}}
+{{< gh-user "https://api.github.com/users/manuelsblanco" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+{{< gh-user "https://api.github.com/users/sandeepsuryaprasad" >}}
+
+
+
+
+### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/ShinySaana" >}}
+{{< gh-user "https://api.github.com/users/alaahong" >}}
+{{< gh-user "https://api.github.com/users/ivonnegattringer" >}}
+{{< gh-user "https://api.github.com/users/navin772" >}}
+{{< gh-user "https://api.github.com/users/noritaka1166" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+
+
+
+
+### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/KyriosGN0" >}}
+{{< gh-user "https://api.github.com/users/cgoldberg" >}}
+
+
+
+
+### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/cgoldberg" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/RenderMichael" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+
+
+Stay tuned for updates by following SeleniumHQ on:
+
+- [Mastodon](https://mastodon.social/@seleniumHQ@fosstodon.org)
+- [BlueSky](https://bsky.app/profile/seleniumconf.bsky.social)
+- [LinkedIn](https://www.linkedin.com/company/selenium/)
+- [Selenium Community YouTube Channel](https://www.youtube.com/@SeleniumHQProject/streams)
+- [X (Formerly Twitter)](https://twitter.com/seleniumhq)
+
+Happy automating!
+
+[downloads]: /downloads
+
+[bindings]: /downloads#bindings
+
+[team]: /project/structure
+
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2025/selenium-4-35-released.md b/website_and_docs/content/blog/2025/selenium-4-35-released.md
new file mode 100644
index 000000000000..61fa2919575f
--- /dev/null
+++ b/website_and_docs/content/blog/2025/selenium-4-35-released.md
@@ -0,0 +1,220 @@
+---
+title: "Selenium 4.35 Released!"
+linkTitle: "Selenium 4.35 Released!"
+date: 2025-08-12
+tags: [ "selenium" ]
+categories: [ "releases" ]
+author: Diego Molina [@diemol](https://www.diemol.com)
+images:
+ - "/images/blog/2025/selenium_4.35.jpg"
+description: >
+ Today we're happy to announce that Selenium 4.35 has been released!
+---
+
+We’re excited to announce the release of **Selenium 4.35** for Javascript, Ruby, Python, .NET, Java
+and the Grid! 🎉
+
+Links to all assets can be found on our [downloads page][downloads].
+
+
+---
+
+## 🔦 Highlights
+
+- **Chrome DevTools support** is now: v139, v138, and v137.
+- **BiDi Improvements Across Bindings**: Expanded BiDi support including emulation, input, script execution, and user context enhancements.
+- **Java Cleanup and JSpecify Annotations**: Deprecated APIs removed and comprehensive `@Nullable` annotations added for better type safety.
+- **Grid Performance Enhancements**: Improved logging, reduced redundancy, race condition fixes, and migration from Guava to Caffeine.
+- **Better Proxy and Network Handling**: Support for `SameSite=default`, IPv6 improvements, and fixes for proxy authentication and WebView2.
+- **Logging Improvements**: Driver logs in .NET are more structured and can output to console or file with timestamps.
+
+---
+
+## 🧪 Language-specific Updates
+
+### Java
+
+- 🔧 Added support for:
+ - BiDi emulation module
+ - `SameSite=default` for cookies
+ - Shadow DOM element normalization
+- 🧹 Major cleanup of deprecated classes:
+ - `LocationContext`, `WebStorage`, `FirefoxBinary`, `SessionStorage`, `AppCacheStatus`, and more
+- ✅ Enhanced test coverage: `--connect-existing` WebSocket check
+- 📝 Added JSpecify `@Nullable` annotations across all driver services and locator classes
+- 🧼 Memory/resource improvements:
+ - Released `HttpClient` resources
+ - Removed unused internal classes
+
+### Python
+
+- 🧠 BiDi enhancements:
+ - Implemented input and emulation modules
+ - Added `pin`, `unpin`, and `execute` for scripts
+ - Supported `accept_insecure_certs`, `proxy`, and `unhandled_prompt_behavior` in user context
+- 🔧 Improved handling for:
+ - Proxy authentication with special characters
+ - WebView2 + CDP/BiDi compatibility
+ - Vendor prefix fix for Edge
+- 📦 Loosened dependency for `urllib3`, and included IPv6 support for `free_port()`
+- 📚 API documentation improvements, including nightly builds and license notices
+
+### .NET
+
+- 💡 Logging Enhancements:
+ - Timestamps for Chromium-based browser logs
+ - GeckoDriver log file support
+ - Default log level now `WARN`
+ - Console output support for all drivers
+- 🧠 BiDi enhancements:
+ - Exposed internal methods and new result types
+ - User context supports `UnhandledPromptBehavior`, `proxy`, `accept_insecure_certs`
+ - Tree and Emulation modules added
+- 🧹 Cleanup:
+ - Removed long-deprecated members
+ - Reduced internal tracing noise
+- 🔄 Native packaging for Selenium Manager
+- 🌐 IPv6 support for port allocation
+
+### JavaScript
+
+- 🧪 BiDi:
+ - Stability fix for flaky cookie network test
+ - Skip FedCM tests until Chrome 140
+- ⚠️ Added `SameSite=default` cookie support
+- 🔄 Dependency updates (`typescript`, `@emotion/styled`)
+
+### Ruby
+
+- 🔒 Guarded support for Firefox Beta
+- 🚫 Removed deprecated local/session storage APIs
+- 🆗 Allowed use of `rubyzip` v3
+- ✂️ Excluded Rakefile from line-length linter
+- ⚠️ Added support for `SameSite=default`
+
+### Rust (Selenium Manager)
+
+- 🧪 Updated base URL for Edge WebDriver
+- ⬆️ Dependency upgrades (`zip`, `rstest`, `which`, Bazel lock files)
+- 🔧 Improved architecture normalization for Plausible analytics
+
+### Grid
+
+- 🔁 Performance and logging improvements:
+ - Reduced duplicate logs
+ - Improved node health checks
+ - Better session map handling and retry queue management
+- 🧰 Switched from Guava’s CacheBuilder to Caffeine
+- 🧪 New UI sorting option by URI
+
+
+### 🐳 Docker Selenium
+
+- K8s: Add config for over-provision ratio in autoscaling deployment of Nodes ([#2930](https://github.com/SeleniumHQ/docker-selenium/pull/2930))
+- Docker: Distributor uses Greedy as the slot selector strategy default in Hub-Node and Standalone mode ([#2915](https://github.com/SeleniumHQ/docker-selenium/pull/2915))
+- Docker: Update Google Noto font family to support better language character displays ([#2914](https://github.com/SeleniumHQ/docker-selenium/pull/2914))
+- [See all changes](https://github.com/SeleniumHQ/docker-selenium/releases)
+
+
+
+
+We thank all our contributors for their incredible efforts in making Selenium better with every
+release. ❤️
+
+For a detailed look at all changes, check out
+the [release notes](https://github.com/SeleniumHQ/selenium/releases/tag/selenium-4.35.0).
+
+
+
+## Contributors
+
+**Special shout-out to everyone who helped the Selenium Team get this release out!**
+
+### [Selenium](https://github.com/SeleniumHQ/selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/Earlopain" >}}
+{{< gh-user "https://api.github.com/users/asolntsev" >}}
+{{< gh-user "https://api.github.com/users/iampopovich" >}}
+{{< gh-user "https://api.github.com/users/jameshilliard" >}}
+{{< gh-user "https://api.github.com/users/mk868" >}}
+{{< gh-user "https://api.github.com/users/musicinmybrain" >}}
+{{< gh-user "https://api.github.com/users/navin772" >}}
+{{< gh-user "https://api.github.com/users/noritaka1166" >}}
+{{< gh-user "https://api.github.com/users/nxs7" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+{{< gh-user "https://api.github.com/users/sandeepsuryaprasad" >}}
+
+
+
+
+### [Selenium Docs & Website](https://github.com/SeleniumHQ/seleniumhq.github.io)
+
+
+
+
+{{< gh-user "https://api.github.com/users/alaahong" >}}
+{{< gh-user "https://api.github.com/users/pallavigitwork" >}}
+
+
+
+
+### [Docker Selenium](https://github.com/SeleniumHQ/docker-selenium)
+
+
+
+
+{{< gh-user "https://api.github.com/users/KyriosGN0" >}}
+{{< gh-user "https://api.github.com/users/amardeep2006" >}}
+{{< gh-user "https://api.github.com/users/anwaramoon" >}}
+
+
+
+
+### [Selenium Team Members][team]
+
+**Thanks as well to all the team members who contributed to this release:**
+
+
+
+
+{{< gh-user "https://api.github.com/users/aguspe" >}}
+{{< gh-user "https://api.github.com/users/AutomatedTester" >}}
+{{< gh-user "https://api.github.com/users/bonigarcia" >}}
+{{< gh-user "https://api.github.com/users/cgoldberg" >}}
+{{< gh-user "https://api.github.com/users/diemol" >}}
+{{< gh-user "https://api.github.com/users/harsha509" >}}
+{{< gh-user "https://api.github.com/users/joerg1985" >}}
+{{< gh-user "https://api.github.com/users/nvborisenko" >}}
+{{< gh-user "https://api.github.com/users/p0deje" >}}
+{{< gh-user "https://api.github.com/users/pujagani" >}}
+{{< gh-user "https://api.github.com/users/RenderMichael" >}}
+{{< gh-user "https://api.github.com/users/shbenzer" >}}
+{{< gh-user "https://api.github.com/users/shs96c" >}}
+{{< gh-user "https://api.github.com/users/titusfortner" >}}
+{{< gh-user "https://api.github.com/users/VietND96" >}}
+
+
+
+
+
+
+Stay tuned for updates by following SeleniumHQ on:
+
+- [Mastodon](https://mastodon.social/@seleniumHQ@fosstodon.org)
+- [BlueSky](https://bsky.app/profile/seleniumconf.bsky.social)
+- [LinkedIn](https://www.linkedin.com/company/selenium/)
+- [Selenium Community YouTube Channel](https://www.youtube.com/@SeleniumHQProject/streams)
+- [X (Formerly Twitter)](https://twitter.com/seleniumhq)
+
+Happy automating!
+
+[downloads]: /downloads
+
+[bindings]: /downloads#bindings
+
+[team]: /project/structure
+
+[BiDi]: https://github.com/w3c/webdriver-bidi
diff --git a/website_and_docs/content/blog/2025/selenium-appium-conference-2025.md b/website_and_docs/content/blog/2025/selenium-appium-conference-2025.md
new file mode 100644
index 000000000000..6edaaba66946
--- /dev/null
+++ b/website_and_docs/content/blog/2025/selenium-appium-conference-2025.md
@@ -0,0 +1,39 @@
+---
+title: "Selenium Conference and Appium Conference 2025, Valencia Spain"
+linkTitle: "Selenium Conference Appium Conference 2025 Valencia Spain"
+date: 2025-04-21
+tags: ["conference", "selenium","appium", "web driver ecosystem", "valencia", "spain"]
+categories: ["conference"]
+author: Pallavi Sharma
+images:
+description: >
+ Selenium Conference and Appium Conference 2025, Valencia Spain
+---
+
+Selenium and Appium projects joined hands together for the 2025 annual conference of both, which was held from March 26th - March 28th in Valencia, Spain. The official web page of the conference can be found **here**
+
+The event took place at the beautiful venue of **Veles e Vents**.
+
+On March 26th, there were **Workshops**, which were enthusiastically attended by participants from across the globe. On the 26th March evening, the conference organised Speaker's Dinner, which provided a fun space to sit, talk and know other better.
+
+We are thankful to our esteemed speaker group, who joined us from all over the world and helped make the event a success. Details about the speakers for the event is available here - **Speakers of the Conference**
+
+The main event started from 27th of March and ran through 28th March evening. The event was attended by close to 400 global participants. We are thankful to each of them, for their presence which made the event worthwhile.
+
+Conference also provided scholarship to 4 people who were chosen after a tough selection process to attend the conference. We thank all our **Sponsors** who collaborated and helped make the event possible.
+
+The video recording, presentations and photographs from the main event can be found here - **Videos, Photos and More..**
+
+Conference, also ran Pre Conference webinars which helped showcase high rated talks which couldn't make it to the end program to the audience. The details of the same are available here - **Pre Conference Webinars**
+
+The conference program chair was **Diego Molina**. Diego helmed all the activities of the conference with great leadership and meticulous supervision.
+
+The conference was supported by a wide group of professionals who participated in volunteer capacity as reviewers and organizers of the event.
+More details about them can be found here - **Organizers & Program Review Committee **.
+
+The entire event was professionally managed by the event organiser company **OneStic**. They ensured smooth flow of the event. Special mention to **Jesus Sanchez** for going out of the way to ensure everyone was well taken care of.
+
+
+## Subscribe to Official Selenium Conference YouTube Channel
+To explore more about our previous conferences and the next ones don't forget to subscribe to our official You Tube Channel **Selenium Conference Official YouTube Channel.**
+
diff --git a/website_and_docs/content/blog/2025/selenium-community-live-episode2.md b/website_and_docs/content/blog/2025/selenium-community-live-episode2.md
new file mode 100644
index 000000000000..f713b6686c6a
--- /dev/null
+++ b/website_and_docs/content/blog/2025/selenium-community-live-episode2.md
@@ -0,0 +1,35 @@
+---
+title: "Selenium Community Live - Episode 2"
+linkTitle: "Selenium Community Live - Episode 2"
+date: 2025-01-21
+tags: ["webinar", "meetup", "talks","community"]
+categories: ["webinar"]
+author: Pallavi Sharma
+images:
+description: >
+ Selenium Community Live - Episode 2
+---
+
+The second episode of Selenium Community Live happened on Jan 21st, 2025, with speaker **David Burns**, event hosted by **Pallavi Sharma**
+
+You can watch the episode here- **Selenium Community Live - Episode 2**
+
+**Selenium Community Live - Episode 2**
+
+David Burns, Selenium Project Leadership Member, Chair W3C Browser Testing and Tools Workgroup, Head Open source and Developer Advocacy at Browser Stack was the speaker for the episode. David spoke about Web Browsers and Browser engines, and how while automating them we should be aware of the underlying software we are automating, even the platform makes a difference!
+Thank you everyone who joined the community event.
+
+**Meet the Speakers:**
+
+1. **David Burns**
+
+
+## Watch the Recording
+
+Couldn’t join us live? Watch the entire episode here -
+📹 Recording Link: [Watch the Event Recording on YouTube](https://www.youtube.com/watch?v=0W_rYPxVIgA)
+
+David also runs a blog, and if you are interested in knowing internals of Selenium explore the link -
+**Blog By David**
+
+Stay tuned as we bring the next! **Subscribe here to the Selenium HQ Official YouTube Channel.**
diff --git a/website_and_docs/content/blog/2025/selenium-community-live-episode4.md b/website_and_docs/content/blog/2025/selenium-community-live-episode4.md
new file mode 100644
index 000000000000..e647aa3dc7a0
--- /dev/null
+++ b/website_and_docs/content/blog/2025/selenium-community-live-episode4.md
@@ -0,0 +1,40 @@
+---
+title: "Selenium Community Live - Episode 4"
+linkTitle: "Selenium Community Live - Episode 4"
+date: 2025-03-19
+tags: ["webinar", "meetup", "talks","community"]
+categories: ["webinar"]
+author: Pallavi Sharma
+images:
+description: >
+ Selenium Community Live - Episode 4
+---
+
+The fourth episode of Selenium Community Live happened on March 19th, 2025, with speaker **Michael Mintz**, event hosted by **Pallavi Sharma**
+
+You can watch the episode on YouTube here- **Episode 4 on YouTube**
+or
+You can watch the episode on LinkedIn here- **Episode 4 on LinkedIn**
+
+**Selenium Community Live - Episode 4**
+
+Michael Mintz is creator of Selenium Base, an all in one Browser Automation Framework, built over Selenium WebDriver Python bindings. The framework is well known and used
+in the WebDriver Ecosystem community for testing, web scraping, web crawling and stealth purposes.
+You can find out more about Selenium Base here - **Selenium Base**
+
+
+**Meet the Speakers:**
+
+1. **Michael Mintz**
+
+
+## Watch the Recording
+
+Couldn’t join us live? Watch the entire episode here -
+📹 Recording Link: [Watch the Event Recording on YouTube](https://youtube.com/live/FSH712hhHvo?feature=share)
+
+To know more about Selenium Base, please follow the link
+**Explore more on Selenium Base**
+
+In case you were wondering what happened to episode 3, it was cancelled but will be scheduled in coming weeks. Thank you!
+Stay tuned as we bring the next! **Subscribe here to the Selenium HQ Official YouTube Channel.**
diff --git a/website_and_docs/content/blog/2025/selenium-community-live-episode5.md b/website_and_docs/content/blog/2025/selenium-community-live-episode5.md
new file mode 100644
index 000000000000..9646d6dd157a
--- /dev/null
+++ b/website_and_docs/content/blog/2025/selenium-community-live-episode5.md
@@ -0,0 +1,97 @@
+---
+title: "Selenium Community Live - Episode 5"
+linkTitle: "Selenium Community Live - Episode 5"
+date: 2025-05-05
+tags: ["webinar", "meetup", "talks","community"]
+categories: ["webinar"]
+author: Puja Jagani
+images:
+description: >
+ Selenium Community Live - Episode 5
+---
+
+The fifth episode of Selenium Community Live happened on April 25th 2025.
+
+The event featured speakers **Ashley Hunsberger **, Director at NBCUniversal with close to 25 years of industry experience and a long-time friend of the Selenium, alongside **Puja Jagani**, Open Source Engineer & Developer Advocate at BrowserStack and member of the Selenium leadership(TLC and PLC). The event was hosted by
+**Pallavi Sharma**, Founder 5 Elements Learning and a long-time Selenium Committer.
+
+The theme of the community event was "Beyond Code: Understanding Developer Satisfaction in Open Source Contributions".
+
+While many discussions around open source have happened that focus on code contributions and technical aspects, there is a vital human element involved, something that keeps the contributions rolling for decades, i.e. developer satisfaction. This community event was dedicated to discussing the human factor in open source contributions. The speakers shared their insights and experience on developer satisfaction in open source.
+
+### What motivates Open Source contributors?
+
+Ashley’s LinkedIn states that "My driving principle is simple: people first" and building on that, Ashley and Puja both highlight that open source is "by the community, for the community," where collaboration and human connections are foundational motivating factors for them.
+
+Ashley shares her journey with Selenium, highlighting how the warm, caring community has helped her build genuine friendships and good memories.
+
+"In the end, do people really remember what we build? They're going to remember how we made them feel." - Ashley Hunsberger
+
+She states that for her, a main motivational factor is community, and what she thinks drives people is the altruistic purpose of giving back to the community beyond their organisation and serving a great purpose. According to her, motivation drives behaviour, and if you have clear motivation, that will drive your place in the community in the long run.
+
+Beyond altruism, Puja thinks there is a diversity of motivators, emphasising that contributions extend far beyond code. Contributions might include:
+- Helping with documentation
+- Managing continuous integration (CI) pipelines
+- Handling legal, and financial aspects, and other administrative aspects
+- Organising conferences, community events, and meetups.
+
+These roles are often in the spotlight but critical to the health and growth of open source projects. A huge spectrum of motivators drives people’s behaviour and keeps the open source project breathing and growing.
+
+### No single factor that contributes to developer satisfaction
+
+Ashley brings a unique perspective to the idea that developer satisfaction can be understood through the lens of the Job Characteristics Model. This model outlines key aspects of work that lead to positive outcomes such as retention, motivation, and job satisfaction.
+
+Key factors include:
+- Skill Variety: Open source contributors engage in a wide range of skills, from coding to release engineering, documentation, and advocacy.
+- Task Identity: Contributors often see their work through from start to finish, building and shipping features that users directly benefit from.
+- Task Significance: Understanding the impact and value of their contributions motivates developers to continue their work.
+- Autonomy: Contributors enjoy flexibility in how, when, and where they contribute, within the project's guidelines.
+- Feedback: Constructive feedback loops help contributors improve and feel connected to the community.
+
+These elements combine to foster long-term satisfaction.
+
+### The Evolution of Motivation in Open Source
+
+Puja shared her own journey with Selenium, from initially feeling nervous about contributing to becoming a part of the technical leadership. Initially, simple contributions like fixing a bug brought immense satisfaction. Over time, the motivation evolved to include community appreciation and the visible impact of her work on the end users of Selenium. She recounts a meaningful interaction at a recent conference where an attendee thanked her for contributing to Selenium, highlighting how such moments validate and inspire ongoing commitment.
+
+### Handling Conflict in Open Source
+
+Ashley and Puja acknowledged that interactions on platforms like GitHub or chat channels can include harsh or unexpected comments or the project itself can have some differences of opinion. And this could be largely due to the diverse background of people, any open source project experiences. This difference of opinion and thought diversity is what makes the group awesome, but certain situations need to be resolved with care.
+
+Ashley shares her first experience receiving a non-constructive code review and emphasises the importance of kindness and clarity in feedback:
+"Be kind, but clear. Clear is kind. You don't have to be nice, but be clear about what happened, why, and how to improve." - Ashley Hunsberger
+
+Effective conflict resolution involves open questions, understanding the intent, and focusing on shared goals. It’s important to remember that conflicts are natural in any group, but they can be handled constructively with the key focus being on what is important for the situation. It is also essential to make sure an open source project has a code of conduct that is implemented in such situations and that the community is aware they have a safe space to report their issue and that they will be heard.
+
+### Inclusivity
+
+Ashley distinguishes between mentorship and sponsorship as two pillars of inclusion:
+- Mentorship: Providing advice, guidance, and support to help someone grow and navigate the community.
+- Sponsorship: Actively advocating for someone, opening doors, and recommending them for opportunities
+
+Ashley further discussed that inclusivity needs to be beyond code. Such as ensuring inclusive language and removing any barriers of entry for new contributors. The key focus should be on building an inclusive environment and creating a welcoming space for new contributors and the community.
+
+### Overcoming Impostor Syndrome
+
+Impostor syndrome is a common challenge for developers, especially when engaging in large, visible open-source projects. Ashley shares candidly about her struggles and offers practical advice when Pallavi asked her to share her insights on how to enable people to overcome impostor syndrome. Ashley shares the following
+- Be kind to yourself and reframe negative thoughts. Add "yet" to statements like "I don’t know how to do this... yet."
+- Recognise that many others share the same fears and questions.
+- Build a support network of trusted friends, mentors, and peers who understand your journey.
+- Use tools like worksheets to identify negative thinking patterns and consciously reframe them.
+- Focus on facts about your skills and contributions rather than self-doubt.
+
+These strategies can help contributors maintain confidence in their open-source journey.
+
+Next they discussed how open source projects can help people, and here the importance of visibility and recognition in sustaining open source motivation was emphasised. Seeing the direct impact of one’s work, whether through download statistics, user feedback, or conference stories, reinforces the value of contributions. Whether you are a seasoned contributor or a newcomer, reflecting on the above areas can hopefully help you foster a more satisfying developer experience.
+
+Selenium is now entering its 21st year of existence, has had contributors spanning across various time zones, geographies and areas of expertise. With nearly 800 contributors over two decades, we take this moment to express gratitude to each of them. Through continuous feedback and meaningful interaction with the community, Selenium remains dedicated to work towards a healthier developer satisfaction.
+
+## Watch the Recording
+
+Couldn’t join us live? Watch the entire episode!
+
+You can watch the episode on YouTube here- **Episode 5 on YouTube**
+or
+you can watch the episode on LinkedIn here- **Episode 5 on LinkedIn**.
+
+Stay tuned as we bring the next! **Subscribe here to the Selenium HQ Official YouTube Channel.**
\ No newline at end of file
diff --git a/website_and_docs/content/blog/2025/selenium-community-live-episode6.md b/website_and_docs/content/blog/2025/selenium-community-live-episode6.md
new file mode 100644
index 000000000000..b82605e3dfed
--- /dev/null
+++ b/website_and_docs/content/blog/2025/selenium-community-live-episode6.md
@@ -0,0 +1,39 @@
+---
+title: "Selenium Community Live - Episode 6"
+linkTitle: "Selenium Community Live - Episode 6"
+date: 2025-05-21
+tags: ["webinar", "meetup", "talks","community"]
+categories: ["webinar"]
+author: Pallavi Sharma
+images:
+description: >
+ Selenium Community Live - Episode 6
+---
+
+The sixth episode of Selenium Community Live happened on May 21st, 2025, with speaker **Luke Hill**, event hosted by **Pallavi Sharma**
+
+You can watch the episode on YouTube here- **Episode 6 on YouTube**
+or
+You can watch the episode on LinkedIn here- **Episode 6 on LinkedIn**
+
+**Selenium Community Live - Episode 6**
+
+Luke Hill is a Lead QA Engineer at Dexters with extensive automation expertise across FinTech, E-Commerce, and Education sectors. A passionate open-source contributor, Luke owns site_prism (a Page Object Gem extending Capybara), serves on the Cucumber technical committee, and is a maintainer of Selenium. Known for his meticulous testing approach and ability to identify challenging edge cases, Luke consistently helps teams deliver more reliable code. His technical expertise in both frontend and backend testing makes him a valuable voice in the QA community.
+
+Luke GitHub Profile is here - **Luke's GitHub**
+
+
+**Meet the Speakers:**
+
+1. **Luke Hill**
+
+
+## Watch the Recording
+
+Couldn’t join us live? Watch the entire episode here -
+📹 Recording Link: [Watch the Event Recording on YouTube](https://www.youtube.com/live/48g7sOBHEL0?feature=shared)
+
+To know more about Site Prism, please follow the link
+**Site Prism**
+
+Stay tuned as we bring the next! **Subscribe here to the Selenium HQ Official YouTube Channel.**
diff --git a/website_and_docs/content/blog/2025/selenium-community-live-episode7.md b/website_and_docs/content/blog/2025/selenium-community-live-episode7.md
new file mode 100644
index 000000000000..7bdb4360fa1b
--- /dev/null
+++ b/website_and_docs/content/blog/2025/selenium-community-live-episode7.md
@@ -0,0 +1,36 @@
+---
+title: "Selenium Community Live - Episode 7"
+linkTitle: "Selenium Community Live - Episode 7"
+date: 2025-07-01
+tags: ["webinar", "meetup", "talks","community"]
+categories: ["webinar"]
+author: Pallavi Sharma
+images:
+description: >
+ Selenium Community Live - Episode 7
+---
+
+The seventh episode of Selenium Community Live happened on June 19th, 2025, with speaker **Christian Bromann**, event was hosted by **Pallavi Sharma**
+
+You can watch the episode on YouTube here- **Episode 7 on YouTube**
+or
+You can watch the episode on LinkedIn here- **Episode 7 on LinkedIn**
+
+**Selenium Community Live - Episode 7**
+
+Christian Bromann is a seasoned software engineer currently working at OutSystems where he contributes to the StencilJS project, a popular web component framework. He's the driving force behind WebdriverIO, a leading test automation framework that has revolutionized browser testing for countless development teams worldwide.
+
+Christian's GitHub Profile is here - **GitHub Profile**
+
+
+**Meet the Speakers:**
+
+1. **Christian Bromann**
+
+
+## Watch the Recording
+
+Couldn’t join us live? Watch the entire episode here -
+📹 Recording Link: [Watch the Event Recording on YouTube](https://www.youtube.com/live/zrQRWi9Gpdg)
+
+Stay tuned as we bring the next! **Subscribe here to the Selenium HQ Official YouTube Channel.**
diff --git a/website_and_docs/content/blog/2025/selenium-community-live-episode8.md b/website_and_docs/content/blog/2025/selenium-community-live-episode8.md
new file mode 100644
index 000000000000..32baa452b1d1
--- /dev/null
+++ b/website_and_docs/content/blog/2025/selenium-community-live-episode8.md
@@ -0,0 +1,101 @@
+---
+title: "Selenium Community Live - Episode 8"
+linkTitle: "Selenium Community Live - Episode 8"
+date: 2025-07-30
+tags: ["webinar", "meetup", "talks","community"]
+categories: ["webinar"]
+author: Pallavi Sharma
+images:
+description: >
+ Selenium Community Live - Episode 8
+---
+
+
+Episode 8 of Selenium Community Live with Dorothy Graham took place on July 30th, 2025. During this remarkable session, Graham a legend with 50+ years in software testing, shared incredible insights from her journey through the evolution of test automation. Her perspective reveals timeless truths that modern teams often overlook.
+
+**Meet the Speakers:**
+
+1. **Dorothy Graham**
+
+Let's dive into session notes.
+
+**From Mainframes to Smartphones: The Incredible Journey**
+
+Graham's automation story began in 1970 at Bell Labs, working on a UNIVAC 1108 mainframe that cost $1.6 million (equivalent to $15 million today). The specifications, 1.3 megahertz, half a megabyte of RAM, and 100 megabytes of storage. Her iPhone today has 12,000 times more storage and costs 20,000 times less. Back then, you would write code on paper, punch it onto cards, and get maybe one turnaround per day. A single typo meant starting over tomorrow.
+This dramatic shift in just 50 years raises the question: what will the next 50 years bring?
+
+**The Evolution of Testing Tools: From Commercial to Open Source**
+
+Graham witnessed the dramatic transformation of testing tools over decades. The first commercial tool, AutoTester, appeared in 1985, followed by an explosion of tools in the 80s and 90s. The CAST (Computer Aided Software Testing) report eventually documented 103 different tools, yet when she recently checked, only three were still alive. What happened to all those tools? They disappeared, reminding us that tools come and go, but principles endure.
+Enter Selenium in 2004, a game-changer as an open-source tool that broke the expensive commercial tool monopoly. Graham congratulated the community: "Selenium has been around for over 20 years. That's really good." Its longevity stems from community support, continuous evolution, and freedom from licensing costs.
+However, Graham warns: "The fact that you don't have to pay purchase or licensing costs doesn't mean it doesn't need investment." Free tools still require proper architecture, training, and skilled implementation. She stresses, this as a reminder to people in management making decisions.
+
+**What Test Automation Shouldn't Look Like**
+
+Graham's most compelling insight involves what not to do in automation. She shares Steven Norman's brilliant analogy:
+Imagine recording your drive to work, then pressing play the next day. You would reverse into traffic that wasn't there yesterday, stop at green lights because they were red yesterday, and run red lights because they turned green yesterday.
+She mentions, Testing isn't passive observation, it's active investigation.
+Graham also emphasizes: "Testing is something you do. It's not passive. It's active." This is why capture-replay approaches fundamentally misunderstand what good testing requires.
+
+**EuroSTAR Survey Insights: The Reality of Test Automation in 2023**
+
+In preparation for her keynote at the EuroSTAR conference in Vienna, Graham conducted a comprehensive survey of 200 automation practitioners that revealed surprising insights:
+
+Encouraging findings:
+
+• 80% use open-source tools.
+
+• 90% test at system level, 72% at API level
+
+• 70% had formal testing training
+
+Concerning discoveries:
+
+• 25% had zero training in their daily tools
+
+• 38% would need to rewrite 95%+ of tests when changing tools
+
+• Most automated tests mirror manual test structure (which is wrong)
+
+• Top problem isn't technical, it's unrealistic management expectations
+
+
+if you are interested to learn more about the survey, visit **link**
+
+**The Forgotten Secrets of Good Automation**
+
+Drawing from her decades as a practitioner, coach, and consultant, Graham shares what she believes are the most overlooked principles in modern test automation.
+
+1. Effectiveness Before Efficiency
+Graham's first hard-learned lesson: the biggest mistake is automating poor-quality tests just to make them faster.
+
+• Wrong approach: Poor manual tests → automation → fast, poor automated tests
+
+• Right approach: Improve test effectiveness first → then automate selectively
+
+She emphasizes: "You will get much better results if you think first about how can we improve our testing. You are better off having better testing than automating testing."
+
+2. Proper Architecture Matters
+Through years of consulting, Graham identified that good automation requires two critical abstraction levels:
+Technical level: Modular, reusable scripts where one manual test becomes multiple automated scripts, and one script serves hundreds of tests. As she notes: "If you have a thousand manual tests, they might be implemented by only 50 scripts together with data files."
+Business level: Domain-specific keywords like "create_new_policy" instead of raw code, enabling skilled testers to write tests without programming. This makes automation accessible to "people who are non-technical who often are the best testers."
+
+**A Special Thank You to Our Community**
+
+This incredible session featured engaging questions from community members whose thoughtful inquiries sparked valuable discussions about management expectations, career paths, AI's impact, and the future of testing skills. Their participation exemplified the collaborative spirit that makes the Selenium community so vibrant.
+
+We extend our heartfelt gratitude to Dorothy Graham for sharing her wealth of knowledge and to all community members who joined Episode 8.
+
+This session marks the end of Season 1 of Selenium Community Live, a season that began by celebrating two decades of Selenium and concluded with timeless wisdom from one of testing's most respected pioneers.
+
+As we prepare for Season 2, we invite you to stay connected with the Selenium community.
+
+
+## Watch the Recording
+
+Couldn’t join us live? Watch the entire episode here -
+📹 Recording Link: [Watch the Event Recording on YouTube](https://www.youtube.com/live/4WJIt2kybHA?si=wP7vYs7oRcUPxS-e)
+
+Stay tuned as we bring the next!
+
+**Subscribe here to the Selenium HQ Official YouTube Channel.**
diff --git a/website_and_docs/content/blog/_index.html b/website_and_docs/content/blog/_index.html
index 63abe75d817b..788d47eabbfa 100644
--- a/website_and_docs/content/blog/_index.html
+++ b/website_and_docs/content/blog/_index.html
@@ -11,8 +11,12 @@
---
-{{< blocks/cover title="Selenium Blog" image_anchor="top" height="min" color="selenium-green" >}}
-
- Keep up to date with all Selenium news here!
-
-{{< /blocks/cover >}}
+{{< blocks/section color="selenium-green" height="min" >}}
+
+
Selenium Blog
+
+ Keep up to date with all Selenium news here!
+
+
+{{< /blocks/section >}}
+
diff --git a/website_and_docs/content/documentation/_index.en.md b/website_and_docs/content/documentation/_index.en.md
index 99710f0697bd..136db40dc513 100755
--- a/website_and_docs/content/documentation/_index.en.md
+++ b/website_and_docs/content/documentation/_index.en.md
@@ -31,7 +31,7 @@ an interface to write instruction sets that can be run interchangeably in many
browsers. Once you've installed everything, only a few lines of code get you inside
a browser. You can find a more comprehensive example in [Writing your first Selenium script]({{< ref "first_script.md" >}})
-{{< tabpane code=false langEqualsHeader=true >}}
+{{< tabpane text=true >}}
{{< tab header="Java" >}}
{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/hello/HelloSelenium.java" >}}
{{< /tab >}}
@@ -39,10 +39,10 @@ a browser. You can find a more comprehensive example in [Writing your first Sele
{{< gh-codeblock path="/examples/python/tests/hello/hello_selenium.py" >}}
{{< /tab >}}
{{< tab header="CSharp" >}}
-{{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Hello/HelloSelenium.cs" >}}
+{{< gh-codeblock path="/examples/dotnet/HelloSelenium.cs" >}}
{{< /tab >}}
{{< tab header="Ruby" >}}
-{{< gh-codeblock path="/examples/ruby/spec/hello/hello_selenium_spec.rb" >}}
+{{< gh-codeblock path="/examples/ruby/spec/hello/hello_selenium.rb" >}}
{{< /tab >}}
{{< tab header="JavaScript" >}}
{{< gh-codeblock path="/examples/javascript/test/hello/helloSelenium.js" >}}
@@ -59,6 +59,3 @@ You should continue on to [Getting Started]({{< ref "webdriver/getting_started"
to understand how you can install Selenium and successfully use it as a test
automation tool, and scaling simple tests like this to run in large, distributed
environments on multiple browsers, on several different operating systems.
-
-
-
diff --git a/website_and_docs/content/documentation/_index.ja.md b/website_and_docs/content/documentation/_index.ja.md
index 77ab68d04db9..1512d796ef18 100755
--- a/website_and_docs/content/documentation/_index.ja.md
+++ b/website_and_docs/content/documentation/_index.ja.md
@@ -10,15 +10,15 @@ Seleniumはブラウザー自動化を可能にし、それを支えるツール
ユーザーとブラウザーのやり取りのエミュレーション、ブラウザーの割当を増強したり縮減する分散型サーバー、そしてすべてのメジャーなブラウザー用に置換可能なコードの実装を可能にする[W3C WebDriver 仕様](//www.w3.org/TR/webdriver/)インフラの提供します。
-このプロジェクトは多くの有志貢献者の何千時間に及ぶ個々の時間を費やした事とソースコード[自由に利用可能]({{< ref "/copyright.md#license" >}})を誰にでも利用、楽しめ、そして改良できることによって実現しました。
+このプロジェクトは多くの有志貢献者の何千時間に及ぶ個々の時間を費やした事とソースコード[自由に利用可能]({{< ref "copyright.md#license" >}})を誰にでも利用、楽しめ、そして改良できることによって実現しました。
Seleniumはウェブプラットフォームの自動化のより開かれた議論をするためブラウザーベンダー、エンジニア、愛好家をまとめます。このプロジェクトはコミュニティーを導きと育成のために[年次カンファレンス](//seleniumconf.com/)開催します。
-Seleniumの中核は[WebDriver]({{< ref "/webdriver.md" >}})であり、様々なブラウザーを変えてインストラクション集を実行できるインターフェースです。これは作りえる一番基本的な
+Seleniumの中核は[WebDriver]({{< ref "webdriver.md" >}})であり、様々なブラウザーを変えてインストラクション集を実行できるインターフェースです。これは作りえる一番基本的な
インストラクションの一つです:
-{{< tabpane code=false langEqualsHeader=true >}}
+{{< tabpane text=true >}}
{{< tab header="Java" >}}
{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/hello/HelloSelenium.java" >}}
{{< /tab >}}
@@ -26,10 +26,10 @@ Seleniumの中核は[WebDriver]({{< ref "/webdriver.md" >}})であり、様々
{{< gh-codeblock path="/examples/python/tests/hello/hello_selenium.py" >}}
{{< /tab >}}
{{< tab header="CSharp" >}}
-{{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Hello/HelloSelenium.cs" >}}
+{{< gh-codeblock path="/examples/dotnet/HelloSelenium.cs" >}}
{{< /tab >}}
{{< tab header="Ruby" >}}
-{{< gh-codeblock path="/examples/ruby/spec/hello/hello_selenium_spec.rb" >}}
+{{< gh-codeblock path="/examples/ruby/spec/hello/hello_selenium.rb" >}}
{{< /tab >}}
{{< tab header="JavaScript" >}}
{{< gh-codeblock path="/examples/javascript/test/hello/helloSelenium.js" >}}
@@ -48,6 +48,3 @@ Seleniumが適切なツールであるかどうかを判断してください。
Seleniumをインストールし、テスト自動化ツールとして正常に使用する方法を理解し、
このような単純なテストをスケーリングして、複数のブラウザー、
複数の異なるオペレーティングシステムの大規模な分散環境で実行する必要があります。
-
-
-
diff --git a/website_and_docs/content/documentation/_index.other.md b/website_and_docs/content/documentation/_index.other.md
deleted file mode 100755
index d9688e6d621e..000000000000
--- a/website_and_docs/content/documentation/_index.other.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: "The Selenium Browser Automation Project"
-linkTitle: "Documentation"
-cascade:
-- type: docs
----
-
-{{% pageinfo color="warning" %}}
-
-
- Is there another translation you'd like to see? We're only supporting translations for which we have
- a dedicated translator. If you'd like to volunteer to be a translator, read how
- you can help.
-
-{{% /pageinfo %}}
diff --git a/website_and_docs/content/documentation/_index.pt-br.md b/website_and_docs/content/documentation/_index.pt-br.md
index 5b24ea3cf9ae..7d92d0f5eb8b 100755
--- a/website_and_docs/content/documentation/_index.pt-br.md
+++ b/website_and_docs/content/documentation/_index.pt-br.md
@@ -24,12 +24,12 @@ para promover uma discussão aberta sobre a automação da plataforma da web.
O projeto organiza [uma conferência anual](//seleniumconf.com/)
para ensinar e nutrir a comunidade.
-No núcleo do Selenium está [WebDriver]({{< ref "/webdriver.md" >}}),
+No núcleo do Selenium está [WebDriver]({{< ref "webdriver.md" >}}),
uma interface para escrever conjuntos de instruções que podem ser executados alternadamente em muitos
navegadores. Aqui está uma das instruções mais simples que você pode fazer:
-{{< tabpane code=false langEqualsHeader=true >}}
+{{< tabpane text=true >}}
{{< tab header="Java" >}}
{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/hello/HelloSelenium.java" >}}
{{< /tab >}}
@@ -37,10 +37,10 @@ navegadores. Aqui está uma das instruções mais simples que você pode fazer:
{{< gh-codeblock path="/examples/python/tests/hello/hello_selenium.py" >}}
{{< /tab >}}
{{< tab header="CSharp" >}}
-{{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Hello/HelloSelenium.cs" >}}
+{{< gh-codeblock path="/examples/dotnet/HelloSelenium.cs" >}}
{{< /tab >}}
{{< tab header="Ruby" >}}
-{{< gh-codeblock path="/examples/ruby/spec/hello/hello_selenium_spec.rb" >}}
+{{< gh-codeblock path="/examples/ruby/spec/hello/hello_selenium.rb" >}}
{{< /tab >}}
{{< tab header="JavaScript" >}}
{{< gh-codeblock path="/examples/javascript/test/hello/helloSelenium.js" >}}
diff --git a/website_and_docs/content/documentation/_index.zh-cn.md b/website_and_docs/content/documentation/_index.zh-cn.md
index a9e8993e34d6..8049e83ad16d 100755
--- a/website_and_docs/content/documentation/_index.zh-cn.md
+++ b/website_and_docs/content/documentation/_index.zh-cn.md
@@ -13,17 +13,17 @@ Selenium 是支持 web 浏览器自动化的一系列工具和库的综合项目
该 规范 允许您为所有主要 Web 浏览器编写可互换的代码。
这个项目是由志愿者贡献者实现的,他们投入了自己数千小时的时间,
-并使源代码[免费提供]({{< ref "/copyright.md#license" >}})给任何人使用、享受和改进。
+并使源代码[免费提供]({{< ref "copyright.md#许可" >}})给任何人使用、享受和改进。
Selenium 汇集了浏览器供应商,工程师和爱好者,以进一步围绕 Web 平台自动化进行公开讨论。
该项目组织了[一次年度会议](//seleniumconf.com/),以教学和培养社区。
-Selenium 的核心是 [WebDriver]({{< ref "/webdriver.md" >}}),这是一个编写指令集的接口,可以在许多浏览器中互换运行。
+Selenium 的核心是 [WebDriver]({{< ref "webdriver.md" >}}),这是一个编写指令集的接口,可以在许多浏览器中互换运行。
这里有一个最简单的说明:
-{{< tabpane code=false langEqualsHeader=true >}}
+{{< tabpane text=true >}}
{{< tab header="Java" >}}
{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/hello/HelloSelenium.java" >}}
{{< /tab >}}
@@ -31,10 +31,10 @@ Selenium 的核心是 [WebDriver]({{< ref "/webdriver.md" >}}),这是一个编
{{< gh-codeblock path="/examples/python/tests/hello/hello_selenium.py" >}}
{{< /tab >}}
{{< tab header="CSharp" >}}
-{{< gh-codeblock path="/examples/dotnet/SeleniumDocs/Hello/HelloSelenium.cs" >}}
+{{< gh-codeblock path="/examples/dotnet/HelloSelenium.cs" >}}
{{< /tab >}}
{{< tab header="Ruby" >}}
-{{< gh-codeblock path="/examples/ruby/spec/hello/hello_selenium_spec.rb" >}}
+{{< gh-codeblock path="/examples/ruby/spec/hello/hello_selenium.rb" >}}
{{< /tab >}}
{{< tab header="JavaScript" >}}
{{< gh-codeblock path="/examples/javascript/test/hello/helloSelenium.js" >}}
@@ -56,4 +56,3 @@ Selenium 的核心是 [WebDriver]({{< ref "/webdriver.md" >}}),这是一个编
在大型分布式环境,
以及不同操作系统上的环境上
运行多个浏览器的测试.
-
diff --git a/website_and_docs/content/documentation/about/contributing.en.md b/website_and_docs/content/documentation/about/contributing.en.md
index 41c88058d88b..993437df8f4f 100644
--- a/website_and_docs/content/documentation/about/contributing.en.md
+++ b/website_and_docs/content/documentation/about/contributing.en.md
@@ -44,7 +44,57 @@ If you are not sure about what you have found is an issue or not,
please ask through the communication channels described at
https://selenium.dev/support.
-## Contributions
+
+## What to Help With
+
+### Creating Examples
+
+Examples that need to be added are marked with: {{% badge-code %}}
+
+We want to be able to run all of our code examples in the CI to ensure that people can copy and paste and
+execute everything on the site. So we put the code where it belongs in the
+[examples directory](https://github.com/SeleniumHQ/seleniumhq.github.io/blob/trunk/examples/).
+Each page in the documentation correlates to a test file in each of the languages, and should follow naming conventions.
+For instance examples for this page https://www.selenium.dev/documentation/webdriver/browsers/chrome/ get added in these
+files:
+* `"/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java"`
+* `"/examples/python/tests/browsers/test_chrome.py"`
+* `"/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs"`
+* `"/examples/ruby/spec/browsers/chrome_spec.rb"`
+* `"/examples/javascript/test/browser/chromeSpecificCaps.spec.js"`
+
+Each example should get its own test. Ideally each test has an assertion that verifies the code works as intended.
+Once the code is copied to its own test in the proper file, it needs to be referenced in the markdown file.
+
+For example, the tab in Ruby would look like this:
+
+ {{* tab header="Ruby" */>}}
+ {{* gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L8-L9" */>}}
+ {{* /tab */>}}
+
+The line numbers at the end represent only the line or lines of code that actually represent the item being displayed.
+If a user wants more context, they can click the link to the GitHub page that will show the full context.
+
+Make sure that if you add a test to the page that all the other line numbers in the markdown file are still
+correct. Adding a test at the top of a page means updating every single reference in the documentation that has a line
+number for that file.
+
+Finally, make sure that the tests pass in the CI.
+
+
+### Moving Examples
+
+Examples that need to be moved are marked with: {{% badge-examples %}}
+
+Everything from the [Creating Examples](#creating-examples) section applies, with one addition.
+
+Make sure the tab includes `text=true`. By default, the tabs get formatted
+for code, so to use markdown or other shortcode statements (like `gh-codeblock`) it needs to be declared as text.
+For most examples, the `tabpane` declares the `text=true`, but if some of the tabs have code examples, the `tabpane`
+cannot specify it, and it must be specified in the tabs that do not need automatic code formatting.
+
+
+## Contribution Mechanics
The Selenium project welcomes new contributors. Individuals making
significant and valuable contributions over time are made _Committers_
@@ -54,7 +104,7 @@ This guide will guide you through the contribution process.
### Step 1: Fork
-Fork the project [on Github](https://github.com/seleniumhq/seleniumhq.github.io)
+Fork the project [on GitHub](https://github.com/seleniumhq/seleniumhq.github.io)
and check out your copy locally.
```shell
@@ -67,7 +117,7 @@ and check out your copy locally.
We use [Hugo](https://gohugo.io/) and the [Docsy theme](https://www.docsy.dev/)
to build and render the site. You will need the “extended”
Sass/SCSS version of the Hugo binary to work on this site. We recommend
-to use Hugo 0.101.0 or higher.
+to use Hugo 0.125.4 .
Please follow the [Install Hugo](https://www.docsy.dev/docs/getting-started/#install-hugo)
instructions from Docsy.
@@ -85,18 +135,18 @@ directly on top of `dev`.
### Step 3: Make changes
-The repository contains the site and docs. Before jumping into
-making changes, please initialize the submodules and install the
-needed dependencies (see commands below). To make changes to the site,
+The repository contains the site and docs. To make changes to the site,
work on the `website_and_docs` directory. To see a live preview of
your changes, run `hugo server` on the site's root directory.
```shell
-% git submodule update --init --recursive
% cd website_and_docs
% hugo server
```
+The project loads code from GitHub, if that code has been updated, and it isn't
+reflected in your preview, you can run hugo without the cache: `hugo server --ignoreCache`
+
See [Style Guide]({{< ref "style.md" >}}) for more information on our conventions for contribution
### Step 4: Commit
diff --git a/website_and_docs/content/documentation/about/contributing.ja.md b/website_and_docs/content/documentation/about/contributing.ja.md
index 75fb56bfaea5..138fead97eb1 100644
--- a/website_and_docs/content/documentation/about/contributing.ja.md
+++ b/website_and_docs/content/documentation/about/contributing.ja.md
@@ -2,9 +2,8 @@
title: "Seleniumのサイトとドキュメントに貢献する"
linkTitle: "Seleniumのサイトとドキュメントに貢献する"
weight: 2
-requiresTranslation: true
description: >-
- Information on improving documentation and code examples for Selenium
+ Seleniumのドキュメントとコード例を改善するための情報
aliases:
[
"/documentation/ja/contributing/",
@@ -12,15 +11,6 @@ aliases:
]
---
-{{% pageinfo color="warning" %}}
-
-
- Page being translated from
- English to Japanese. Do you speak Japanese? Help us to translate
- it by sending us pull requests!
-
-{{% /pageinfo %}}
-
Seleniumは大きなソフトウェアプロジェクトであり、そのサイトとドキュメントは、物事の仕組みを理解し、その可能性を活用する効果的な方法を学ぶための鍵となります。
このプロジェクトには、Seleniumのサイトとドキュメントの両方が含まれています。これは、Seleniumを効果的に使用する方法、Seleniumに参加する方法、およびSeleniumに貢献する方法に関する最新情報を提供するための継続的な取り組みです(特定のリリースを対象としていません)。
@@ -42,6 +32,50 @@ Seleniumのすべてのコンポーネントは、時間の経過とともに非
見つかったものが問題であるかどうかわからない場合、[https://selenium.dev/support](https://selenium.dev/support)に記載されているコミュニケーション手段にて質問してください。
+
+## 何を手伝うか
+
+### 例の作成
+
+追加が必要な例には、次のマークが付いています: {{% badge-code %}}
+
+すべてのコード例をCIで実行できるようにし、サイト上のすべてのコードをコピー&ペーストして実行できることを確認したいと考えています。そのため、コードを[examplesディレクトリ](https://github.com/SeleniumHQ/seleniumhq.github.io/blob/trunk/examples/)の適切な場所に配置します。
+ドキュメントの各ページは各言語のテストファイルに関連しており、命名規則に従う必要があります。
+例えば、このページ(https://www.selenium.dev/documentation/webdriver/browsers/chrome/)の例は以下のファイルに追加されています:
+* `"/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java"`
+* `"/examples/python/tests/browsers/test_chrome.py"`
+* `"/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs"`
+* `"/examples/ruby/spec/browsers/chrome_spec.rb"`
+* `"/examples/javascript/test/browser/chromeSpecificCaps.spec.js"`
+
+各例はそれぞれ独自のテストが必要です。理想的には、各テストにはコードが意図したとおりに動作することを確認するアサーションが含まれています。
+コードを適切なファイル内の独自のテストにコピーしたら、Markdownファイルで参照する必要があります。
+
+例えば、Rubyのtabは次のようになります:
+
+ {{* tab header="Ruby" */>}}
+ {{* gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L8-L9" */>}}
+ {{* /tab */>}}
+
+末尾の行番号は、実際に表示される項目を表すコードの行のみを表します。
+ユーザーがより多くのコンテキストを必要とする場合、GitHubページへのリンクをクリックすると完全なコンテキストが表示されます。
+
+ページにテストを追加する場合は、Markdownファイル内の他のすべての行番号が正しいことを確認してください。
+ページの先頭にテストを追加すると、そのファイルの行番号を持つドキュメント内のすべての参照が更新されます。
+
+最後に、CIでテストがPassすることを確認してください。
+
+
+### 例の移動
+
+移動が必要な例には、次のマークが付いています: {{% badge-examples %}}
+
+[例の作成](#例の作成)セクションのすべてが適用されますが、1つ追加があります。
+
+tabには`text=true`を含めてください。デフォルトではtabはコード用にフォーマットされるため、Markdownや他のショートコードステートメント(`gh-codeblock`など)を使用するには、`text=true`を宣言する必要があります。
+ほとんどの例では、`tabpane`が`text=true`を宣言しますが、tabの一部にコード例が含まれている場合、`tabpane`はそれを指定できず、自動コードフォーマットが不要なtabでは指定する必要があります。
+
+
## 貢献
Seleniumプロジェクトは新しいコントリビュータを歓迎します。目立った価値ある貢献を継続的に行った個人は _コミッター_
@@ -51,7 +85,7 @@ Seleniumプロジェクトは新しいコントリビュータを歓迎します
### ステップ 1: フォーク
-[Github](https://github.com/seleniumhq/seleniumhq.github.io)上のプロジェクトをフォークし、コピーをローカルにチェックアウトしてください。
+[GitHub](https://github.com/seleniumhq/seleniumhq.github.io)上のプロジェクトをフォークし、コピーをローカルにチェックアウトしてください。
```shell
% git clone git@github.com:seleniumhq/seleniumhq.github.io.git
@@ -60,13 +94,9 @@ Seleniumプロジェクトは新しいコントリビュータを歓迎します
#### 依存関係: Hugo
-We use [Hugo](https://gohugo.io/) and the [Docsy theme](https://www.docsy.dev/)
-to build and render the site. You will need the “extended”
-Sass/SCSS version of the Hugo binary to work on this site. We recommend
-to use Hugo 0.101.0 or higher.
+[Hugo](https://gohugo.io/)と[Docsyテーマ](https://www.docsy.dev/)を使用してサイトの構築とレンダリングをしています。このサイトの作業をするには、Hugoバイナリの“拡張”Sass/SCSSバージョンが必要です。Hugo 0.125.4の使用を推奨します。
-Please follow the [Install Hugo](https://www.docsy.dev/docs/getting-started/#install-hugo)
-instructions from Docsy.
+[Docsyのインストール手順](https://www.docsy.dev/docs/getting-started/#install-hugo)に従ってください。
### ステップ 2: ブランチの作成
@@ -80,11 +110,7 @@ instructions from Docsy.
### ステップ 3: 変更を加える
-The repository contains the site and docs. Before jumping into
-making changes, please initialize the submodules and install the
-needed dependencies (see commands below). To make changes to the site,
-work on the `website_and_docs` directory. To see a live preview of
-your changes, run `hugo server` on the site's root directory.
+リポジトリにはサイトとドキュメントが含まれています。 変更を加える前に、submoduleを初期化し、必要な依存関係をインストールしてください(以下のコマンドを参照)。サイトに変更を加えるには、`website_and_docs` ディレクトリで作業してください。変更のライブプレビューを確認するには、サイトのルートディレクトリで `hugo server`を実行してください。
```shell
% git submodule update --init --recursive
@@ -92,7 +118,7 @@ your changes, run `hugo server` on the site's root directory.
% hugo server
```
-See [Style Guide]({{< ref "style.md" >}}) for more information on our conventions for contribution
+寄稿に関する規約の詳細については、 [スタイルガイド]({{< ref "style.md" >}}) をご覧ください。
### ステップ 4: コミット
diff --git a/website_and_docs/content/documentation/about/contributing.pt-br.md b/website_and_docs/content/documentation/about/contributing.pt-br.md
index 82266e5643ab..90a86c7fa7c5 100644
--- a/website_and_docs/content/documentation/about/contributing.pt-br.md
+++ b/website_and_docs/content/documentation/about/contributing.pt-br.md
@@ -45,6 +45,56 @@ Se você não tem certeza se o que encontrou é um problema ou não,
pergunte através dos canais de comunicação descritos em
https://selenium.dev/support.
+
+## What to Help With
+
+### Creating Examples
+
+Examples that need to be added are marked with: {{% badge-code %}}
+
+We want to be able to run all of our code examples in the CI to ensure that people can copy and paste and
+execute everything on the site. So we put the code where it belongs in the
+[examples directory](https://github.com/SeleniumHQ/seleniumhq.github.io/blob/trunk/examples/).
+Each page in the documentation correlates to a test file in each of the languages, and should follow naming conventions.
+For instance examples for this page https://www.selenium.dev/documentation/webdriver/browsers/chrome/ get added in these
+files:
+* `"/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java"`
+* `"/examples/python/tests/browsers/test_chrome.py"`
+* `"/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs"`
+* `"/examples/ruby/spec/browsers/chrome_spec.rb"`
+* `"/examples/javascript/test/browser/chromeSpecificCaps.spec.js"`
+
+Each example should get its own test. Ideally each test has an assertion that verifies the code works as intended.
+Once the code is copied to its own test in the proper file, it needs to be referenced in the markdown file.
+
+For example, the tab in Ruby would look like this:
+
+ {{* tab header="Ruby" */>}}
+ {{* gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L8-L9" */>}}
+ {{* /tab */>}}
+
+The line numbers at the end represent only the line or lines of code that actually represent the item being displayed.
+If a user wants more context, they can click the link to the GitHub page that will show the full context.
+
+Make sure that if you add a test to the page that all the other line numbers in the markdown file are still
+correct. Adding a test at the top of a page means updating every single reference in the documentation that has a line
+number for that file.
+
+Finally, make sure that the tests pass in the CI.
+
+
+### Moving Examples
+
+Examples that need to be moved are marked with: {{% badge-examples %}}
+
+Everything from the [Creating Examples](#creating-examples) section applies, with one addition.
+
+Make sure the tab includes `text=true`. By default, the tabs get formatted
+for code, so to use markdown or other shortcode statements (like `gh-codeblock`) it needs to be declared as text.
+For most examples, the `tabpane` declares the `text=true`, but if some of the tabs have code examples, the `tabpane`
+cannot specify it, and it must be specified in the tabs that do not need automatic code formatting.
+
+
## Contribuições
O projeto Selenium dá as boas-vindas a novos contribuidores. Indivíduos fazendo
@@ -55,7 +105,7 @@ Este guia irá guiá-lo através do processo de contribuição.
### Passo 1: Fork
-Faça um fork do projeto [no Github](https://github.com/seleniumhq/seleniumhq.github.io)
+Faça um fork do projeto [no GitHub](https://github.com/seleniumhq/seleniumhq.github.io)
e faça checkout na sua cópia localmente.
```shell
@@ -67,7 +117,7 @@ e faça checkout na sua cópia localmente.
Usamos [Hugo](https://gohugo.io/) e [Docsy theme](https://www.docsy.dev/)
para criar e gerar o website. Você vai necessitar de usar a versão "extended"
-Sass/SCSS do binário Hugo. Recomendamos a versão 0.101.0 ou superior.
+Sass/SCSS do binário Hugo. Recomendamos a versão 0.125.4 .
Por favor siga as instruções do Docsy [Install Hugo](https://www.docsy.dev/docs/getting-started/#install-hugo)
diff --git a/website_and_docs/content/documentation/about/contributing.zh-cn.md b/website_and_docs/content/documentation/about/contributing.zh-cn.md
index 65049986a8db..84a81142c462 100644
--- a/website_and_docs/content/documentation/about/contributing.zh-cn.md
+++ b/website_and_docs/content/documentation/about/contributing.zh-cn.md
@@ -40,6 +40,56 @@ Selenium项目欢迎每一个人的贡献.
如果不确定所发现的问题是否存在, 请通过以下沟通渠道进行描述
https://selenium.dev/support.
+
+## What to Help With
+
+### Creating Examples
+
+Examples that need to be added are marked with: {{% badge-code %}}
+
+We want to be able to run all of our code examples in the CI to ensure that people can copy and paste and
+execute everything on the site. So we put the code where it belongs in the
+[examples directory](https://github.com/SeleniumHQ/seleniumhq.github.io/blob/trunk/examples/).
+Each page in the documentation correlates to a test file in each of the languages, and should follow naming conventions.
+For instance examples for this page https://www.selenium.dev/documentation/webdriver/browsers/chrome/ get added in these
+files:
+* `"/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java"`
+* `"/examples/python/tests/browsers/test_chrome.py"`
+* `"/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs"`
+* `"/examples/ruby/spec/browsers/chrome_spec.rb"`
+* `"/examples/javascript/test/browser/chromeSpecificCaps.spec.js"`
+
+Each example should get its own test. Ideally each test has an assertion that verifies the code works as intended.
+Once the code is copied to its own test in the proper file, it needs to be referenced in the markdown file.
+
+For example, the tab in Ruby would look like this:
+
+ {{* tab header="Ruby" */>}}
+ {{* gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L8-L9" */>}}
+ {{* /tab */>}}
+
+The line numbers at the end represent only the line or lines of code that actually represent the item being displayed.
+If a user wants more context, they can click the link to the GitHub page that will show the full context.
+
+Make sure that if you add a test to the page that all the other line numbers in the markdown file are still
+correct. Adding a test at the top of a page means updating every single reference in the documentation that has a line
+number for that file.
+
+Finally, make sure that the tests pass in the CI.
+
+
+### Moving Examples
+
+Examples that need to be moved are marked with: {{% badge-examples %}}
+
+Everything from the [Creating Examples](#creating-examples) section applies, with one addition.
+
+Make sure the tab includes `text=true`. By default, the tabs get formatted
+for code, so to use markdown or other shortcode statements (like `gh-codeblock`) it needs to be declared as text.
+For most examples, the `tabpane` declares the `text=true`, but if some of the tabs have code examples, the `tabpane`
+cannot specify it, and it must be specified in the tabs that do not need automatic code formatting.
+
+
## 贡献
Selenium项目欢迎新的贡献者.
@@ -49,7 +99,7 @@ Selenium项目欢迎新的贡献者.
### 步骤 1: Fork
-在 [Github](https://github.com/seleniumhq/seleniumhq.github.io)上Fork本项目,
+在 [GitHub](https://github.com/seleniumhq/seleniumhq.github.io)上Fork本项目,
并check out到您的本地
@@ -63,7 +113,7 @@ Selenium项目欢迎新的贡献者.
我们使用 [Hugo](https://gohugo.io/) 和 [Docsy theme](https://www.docsy.dev/)
用于构建和渲染本网站.
你需要Hugo“extended”扩展的Sass/SCSS版本用于这个网站.
-我们推荐使用0.101.0或更高版本的Hugo.
+我们推荐使用Hugo 0.125.4 .
请参考来自Docsy的说明
[安装Hugo](https://www.docsy.dev/docs/getting-started/#install-hugo) .
diff --git a/website_and_docs/content/documentation/about/copyright.en.md b/website_and_docs/content/documentation/about/copyright.en.md
index fc427ad032eb..3915afdcbf52 100644
--- a/website_and_docs/content/documentation/about/copyright.en.md
+++ b/website_and_docs/content/documentation/about/copyright.en.md
@@ -20,7 +20,7 @@ The information provided is on an “as-is” basis.
The authors and the publisher shall have
neither liability nor responsibility to any person or entity
with respect to any loss or damages arising
-from the information contained in this book.
+from the information contained herein.
No patent liability is assumed with respect
to the use of the information contained herein.
@@ -56,7 +56,7 @@ to the use of the information contained herein.
| Software | Version | License |
| -------- | ------- | ------- |
-| [Hugo](//gohugo.io/) | v0.101.0 | [Apache 2.0](//gohugo.io/about/license/) |
+| [Hugo](//gohugo.io/) | v0.110.0 | [Apache 2.0](//gohugo.io/about/license/) |
| [Docsy](//github.com/google/docsy/) | --- | [Apache 2.0](//github.com/google/docsy/blob/master/LICENSE) |
diff --git a/website_and_docs/content/documentation/about/copyright.ja.md b/website_and_docs/content/documentation/about/copyright.ja.md
index 489354797c94..aa1f4ce4f065 100644
--- a/website_and_docs/content/documentation/about/copyright.ja.md
+++ b/website_and_docs/content/documentation/about/copyright.ja.md
@@ -13,7 +13,7 @@ aliases: [
{{% pageinfo color="warning" %}}
-
+
Page being translated from
English to Japanese. Do you speak Japanese? Help us to translate
it by sending us pull requests!
@@ -62,7 +62,7 @@ aliases: [
| Software | Version | License |
| -------- | ------- | ------- |
-| [Hugo](//gohugo.io/) | v0.101.0 | [Apache 2.0](//gohugo.io/about/license/) |
+| [Hugo](//gohugo.io/) | v0.110.0 | [Apache 2.0](//gohugo.io/about/license/) |
| [Docsy](//github.com/google/docsy/) | --- | [Apache 2.0](//github.com/google/docsy/blob/master/LICENSE) |
diff --git a/website_and_docs/content/documentation/about/copyright.pt-br.md b/website_and_docs/content/documentation/about/copyright.pt-br.md
index 0633f95a5300..d50d38fdb7e0 100644
--- a/website_and_docs/content/documentation/about/copyright.pt-br.md
+++ b/website_and_docs/content/documentation/about/copyright.pt-br.md
@@ -3,8 +3,7 @@ title: "Direitos autorais e atribuições"
linkTitle: "Direitos autorais e atribuições"
weight: 1
description: >
- Copyright, contributions and all attributions for the different projects
- under the Selenium umbrella.
+ Direitos autorais, contribuições e todas as atribuições para os diferentes projetos sob a iniciativa do Selenium.
aliases: [
"/documentation/pt-br/front_matter/copyright_and_attributions/",
"/pt-br/documentation/about/copyright_and_attributions"
@@ -54,7 +53,7 @@ relação ao uso das informações aqui contidas.
| Software | Versão | Licença |
| -------- | ------- | ------- |
-| [Hugo](//gohugo.io/) | v0.101.0 | [Apache 2.0](//gohugo.io/about/license/) |
+| [Hugo](//gohugo.io/) | v0.110.0 | [Apache 2.0](//gohugo.io/about/license/) |
| [Docsy](//github.com/google/docsy/) | --- | [Apache 2.0](//github.com/google/docsy/blob/master/LICENSE) |
diff --git a/website_and_docs/content/documentation/about/copyright.zh-cn.md b/website_and_docs/content/documentation/about/copyright.zh-cn.md
index bbdd153d8306..dd928414b2ac 100644
--- a/website_and_docs/content/documentation/about/copyright.zh-cn.md
+++ b/website_and_docs/content/documentation/about/copyright.zh-cn.md
@@ -49,7 +49,7 @@ aliases: [
| 软件 | 版本 | 许可 |
| -------- | ------- | ------- |
-| [Hugo](//gohugo.io/) | v0.101.0 | [Apache 2.0](//gohugo.io/about/license/) |
+| [Hugo](//gohugo.io/) | v0.110.0 | [Apache 2.0](//gohugo.io/about/license/) |
| [Docsy](//github.com/google/docsy/) | --- | [Apache 2.0](//github.com/google/docsy/blob/master/LICENSE) |
## 许可
diff --git a/website_and_docs/content/documentation/about/style.en.md b/website_and_docs/content/documentation/about/style.en.md
index b602a9fcc14f..fa2ad642bc07 100644
--- a/website_and_docs/content/documentation/about/style.en.md
+++ b/website_and_docs/content/documentation/about/style.en.md
@@ -6,37 +6,12 @@ description: >-
Conventions for contributions to the Selenium documentation and code examples
---
-Read our [contributing documentation]({{< ref contributing.md >}}) for complete instructions on
+Read our [contributing documentation]({{< ref contributing.md >}}) for complete instructions on
how to add content to this documentation.
## Alerts
-Alerts have been added to direct potential contributors to where specific help is needed.
-
-When code examples are needed, this code has been added to the site:
-
-{{< highlight html >}}
-{{* alert-code /*/>}}
-{{< /highlight >}}
-
-Which gets displayed like this:
-{{< alert-code />}}
-
-To specify what code is needed, you can pass information inside the tag:
-
-{{< highlight html >}}
-{{* alert-code */>}}
-specifically code that does this one thing.
-{{* /alert-code */>}}
-{{< /highlight >}}
-
-Which looks like this:
-
-{{< alert-code >}}
-specifically code that does this one thing.
-{{< /alert-code >}}
-
-Similarly, for additional content you can use:
+Alerts have been added to direct potential contributors to where specific content is missing.
{{< highlight html >}}
{{* alert-content /*/>}}
@@ -93,7 +68,7 @@ Selenium now has official translators for each of the supported languages.
also add it to `important_documentation.ja.md`, `important_documentation.pt-br.md`,
`important_documentation.zh-cn.md`.
* If you make text changes in the English version, just make a Pull Request.
- The new process is for issues to be created and tagged as needs translation based on
+ The new process is for issues to be created and tagged as needs translation based on
changes made in a given PR.
## Code examples
@@ -106,31 +81,30 @@ and the code itself should be placed inside code tabs.
The Docsy code tabs look like this:
{{< tabpane langEqualsHeader=true >}}
- {{< tab header="Java" >}}
- WebDriver driver = new ChromeDriver();
- {{< /tab >}}
- {{< tab header="Python" >}}
- driver = webdriver.Chrome()
- {{< /tab >}}
- {{< tab header="CSharp" >}}
- var driver = new ChromeDriver();
- {{< /tab >}}
- {{< tab header="Ruby" >}}
- driver = Selenium::WebDriver.for :chrome
- {{< /tab >}}
- {{< tab header="JavaScript" >}}
- let driver = await new Builder().forBrowser('chrome').build();
- {{< /tab >}}
- {{< tab header="Kotlin" >}}
- val driver = ChromeDriver()
- {{< /tab >}}
+{{< tab header="Java" >}}
+WebDriver driver = new ChromeDriver();
+{{< /tab >}}
+{{< tab header="Python" >}}
+driver = webdriver.Chrome()
+{{< /tab >}}
+{{< tab header="CSharp" >}}
+var driver = new ChromeDriver();
+{{< /tab >}}
+{{< tab header="Ruby" >}}
+driver = Selenium::WebDriver.for :chrome
+{{< /tab >}}
+{{< tab header="JavaScript" >}}
+let driver = await new Builder().forBrowser('chrome').build();
+{{< /tab >}}
+{{< tab header="Kotlin" >}}
+val driver = ChromeDriver()
+{{< /tab >}}
{{< /tabpane >}}
To generate the above tabs, this is what you need to write.
Note that the `tabpane` includes `langEqualsHeader=true`.
This auto-formats the code in each tab to match the header name,
-but more importantly it ensures that all tabs on the page with a language
-are set to the same thing, so we always want to include it.
+and ensures that all tabs on the page with a language are set to the same thing.
{{* tabpane langEqualsHeader=true */>}}
{{* tab header="Java" */>}}
@@ -153,18 +127,19 @@ are set to the same thing, so we always want to include it.
{{* /tab */>}}
{{* /tabpane */>}}
-#### Reference Github Examples
+#### Reference GitHub Examples
To ensure that all code is kept up to date, our goal is to write the code in the repo where it
can be executed when Selenium versions are updated to ensure that everything is correct.
-All code examples to be in our
+All code examples to be in our
[example directories](https://github.com/SeleniumHQ/seleniumhq.github.io/tree/dev/examples).
This code can be automatically displayed in the documentation using the `gh-codeblock` shortcode.
-The shortcode automatically generates its own html, so set `code=false` to prevent the auto-formatting.
-We still need `langEqualsHeader=true` to keep the language tabs synchronized throughout the page.
-Note that the `gh-codeblock` line can not be indented at all.
+The shortcode automatically generates its own html, so we do not want it to auto-format with the language header.
+If all tabs are using this shortcode, set `text=true` in the `tabpane` and remove `langEqualsHeader=true`.
+If only some tabs are using this shortcode, keep `langEqualsHeader=true` in the `tabpane` and add `text=true`
+to the `tab`. Note that the `gh-codeblock` line can not be indented at all.
One great thing about using `gh-codeblock` is that it adds a link to the full example.
This means you don't have to include any additional context code, just the line(s) that
@@ -172,80 +147,81 @@ are needed, and the user can navigate to the repo to see how to use it.
A basic comparison of code looks like:
- {{* tabpane code=false langEqualsHeader=true */>}}
+ {{* tabpane text=true */>}}
{{* tab header="Java" */>}}
- {{* gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L46-L47" */>}}
+ {{* gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L26-L27" */>}}
{{* /tab */>}}
{{* tab header="Python" */>}}
- {{* gh-codeblock path="examples/python/tests/getting_started/test_first_script.py#L17-L18" */>}}
+ {{* gh-codeblock path="/examples/python/tests/getting_started/first_script.py#L18-L19" */>}}
{{* /tab */>}}
{{* tab header="CSharp" */>}}
- {{* gh-codeblock path="examples/dotnet/SeleniumDocs/GettingStarted/FirstScriptTest.cs#L39-L40" */>}}
+ {{* gh-codeblock path="/examples/dotnet/SeleniumDocs/GettingStarted/FirstScript.cs#L25-L26" */>}}
{{* /tab */>}}
{{* tab header="Ruby" */>}}
- {{* gh-codeblock path="examples/ruby/spec/getting_started/first_script_spec.rb#L16-L17" */>}}
+ {{* gh-codeblock path="/examples/ruby/spec/getting_started/first_script.rb#L17-L18" */>}}
{{* /tab */>}}
{{* tab header="JavaScript" */>}}
- {{* gh-codeblock path="examples/javascript/test/getting_started/firstScript.spec.js#L23-L24" */>}}
+ {{* gh-codeblock path="/examples/javascript/test/getting_started/firstScript.spec.js#L22-L23" */>}}
{{* /tab */>}}
{{* tab header="Kotlin" */>}}
- {{* gh-codeblock path="examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt#L39-L40" */>}}
+ {{* gh-codeblock path="/examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt#L31-L32" */>}}
{{* /tab */>}}
{{* /tabpane */>}}
Which looks like this:
-{{< tabpane code=false langEqualsHeader=true >}}
+{{< tabpane text=true >}}
{{< tab header="Java" >}}
-{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L46-L47" >}}
+{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L26-L27" >}}
{{< /tab >}}
{{< tab header="Python" >}}
-{{< gh-codeblock path="examples/python/tests/getting_started/test_first_script.py#L17-L18" >}}
+{{< gh-codeblock path="/examples/python/tests/getting_started/first_script.py#L18-L19" >}}
{{< /tab >}}
{{< tab header="CSharp" >}}
-{{< gh-codeblock path="examples/dotnet/SeleniumDocs/GettingStarted/FirstScriptTest.cs#L39-L40" >}}
+{{< gh-codeblock path="/examples/dotnet/SeleniumDocs/GettingStarted/FirstScript.cs#L25-L26" >}}
{{< /tab >}}
{{< tab header="Ruby" >}}
-{{< gh-codeblock path="examples/ruby/spec/getting_started/first_script_spec.rb#L16-L17" >}}
+{{< gh-codeblock path="/examples/ruby/spec/getting_started/first_script.rb#L17-L18" >}}
{{< /tab >}}
{{< tab header="JavaScript" >}}
-{{< gh-codeblock path="examples/javascript/test/getting_started/firstScript.spec.js#L23-L24" >}}
+{{< gh-codeblock path="/examples/javascript/test/getting_started/firstScript.spec.js#L22-L23" >}}
{{< /tab >}}
{{< tab header="Kotlin" >}}
-{{< gh-codeblock path="examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt#L39-L40" >}}
+{{< gh-codeblock path="/examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt#L31-L32" >}}
{{< /tab >}}
{{< /tabpane >}}
### Using Markdown in a Tab
If you want your example to include something other than code (default) or html (from `gh-codeblock`),
-you need to first set `code=false`,
+you need to first set `text=true`,
then change the Hugo syntax for the `tab`to use `%` instead of `<` and `>` with curly braces:
- {{* tabpane code=false langEqualsHeader=true */>}}
+ {{* tabpane text=true */>}}
{{%/* tab header="Java" */%}}
1. Start the driver
- {{* gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L29" */>}}
+ {{* gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L12" */>}}
2. Navigate to a page
- {{* gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L39" */>}}
+ {{* gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L14" */>}}
3. Quit the driver
- {{* gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L34" */>}}
+ {{* gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L29" */>}}
{{%/* /tab */%}}
< ... >
{{* /tabpane */>}}
This produces:
-{{< tabpane code=false langEqualsHeader=true >}}
+{{< tabpane text=true >}}
{{% tab header="Java" %}}
+
1. Start the driver
-{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L29" >}}
+ {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L12" >}}
2. Navigate to a page
-{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L39" >}}
+ {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L14" >}}
3. Quit the driver
-{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L34" >}}
-{{% /tab %}}
-{{< /tabpane >}}
+ {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L29" >}}
+ {{% /tab %}}
+ {{< /tabpane >}}
This is preferred to writing code comments because those will not be translated.
Only include the code that is needed for the documentation, and avoid over-explaining.
diff --git a/website_and_docs/content/documentation/about/style.ja.md b/website_and_docs/content/documentation/about/style.ja.md
index 58a5e7c1e8fa..fa2ad642bc07 100644
--- a/website_and_docs/content/documentation/about/style.ja.md
+++ b/website_and_docs/content/documentation/about/style.ja.md
@@ -2,42 +2,16 @@
title: "Style guide for Selenium documentation"
linkTitle: "Style"
weight: 6
-requiresTranslation: true
description: >-
Conventions for contributions to the Selenium documentation and code examples
---
-Read our [contributing documentation]({{< ref contributing.md >}}) for complete instructions on
+Read our [contributing documentation]({{< ref contributing.md >}}) for complete instructions on
how to add content to this documentation.
## Alerts
-Alerts have been added to direct potential contributors to where specific help is needed.
-
-When code examples are needed, this code has been added to the site:
-
-{{< highlight html >}}
-{{* alert-code /*/>}}
-{{< /highlight >}}
-
-Which gets displayed like this:
-{{< alert-code />}}
-
-To specify what code is needed, you can pass information inside the tag:
-
-{{< highlight html >}}
-{{* alert-code */>}}
-specifically code that does this one thing.
-{{* /alert-code */>}}
-{{< /highlight >}}
-
-Which looks like this:
-
-{{< alert-code >}}
-specifically code that does this one thing.
-{{< /alert-code >}}
-
-Similarly, for additional content you can use:
+Alerts have been added to direct potential contributors to where specific content is missing.
{{< highlight html >}}
{{* alert-content /*/>}}
@@ -94,7 +68,7 @@ Selenium now has official translators for each of the supported languages.
also add it to `important_documentation.ja.md`, `important_documentation.pt-br.md`,
`important_documentation.zh-cn.md`.
* If you make text changes in the English version, just make a Pull Request.
- The new process is for issues to be created and tagged as needs translation based on
+ The new process is for issues to be created and tagged as needs translation based on
changes made in a given PR.
## Code examples
@@ -107,30 +81,30 @@ and the code itself should be placed inside code tabs.
The Docsy code tabs look like this:
{{< tabpane langEqualsHeader=true >}}
- {{< tab header="Java" >}}
- WebDriver driver = new ChromeDriver();
- {{< /tab >}}
- {{< tab header="Python" >}}
- driver = webdriver.Chrome()
- {{< /tab >}}
- {{< tab header="CSharp" >}}
- var driver = new ChromeDriver();
- {{< /tab >}}
- {{< tab header="Ruby" >}}
- driver = Selenium::WebDriver.for :chrome
- {{< /tab >}}
- {{< tab header="JavaScript" >}}
- let driver = await new Builder().forBrowser('chrome').build();
- {{< /tab >}}
- {{< tab header="Kotlin" >}}
- val driver = ChromeDriver()
- {{< /tab >}}
+{{< tab header="Java" >}}
+WebDriver driver = new ChromeDriver();
+{{< /tab >}}
+{{< tab header="Python" >}}
+driver = webdriver.Chrome()
+{{< /tab >}}
+{{< tab header="CSharp" >}}
+var driver = new ChromeDriver();
+{{< /tab >}}
+{{< tab header="Ruby" >}}
+driver = Selenium::WebDriver.for :chrome
+{{< /tab >}}
+{{< tab header="JavaScript" >}}
+let driver = await new Builder().forBrowser('chrome').build();
+{{< /tab >}}
+{{< tab header="Kotlin" >}}
+val driver = ChromeDriver()
+{{< /tab >}}
{{< /tabpane >}}
To generate the above tabs, this is what you need to write.
Note that the `tabpane` includes `langEqualsHeader=true`.
-This auto-formats the code in each tab to match the header name
-and is also used to synchronize the tabs on the page.
+This auto-formats the code in each tab to match the header name,
+and ensures that all tabs on the page with a language are set to the same thing.
{{* tabpane langEqualsHeader=true */>}}
{{* tab header="Java" */>}}
@@ -153,18 +127,19 @@ and is also used to synchronize the tabs on the page.
{{* /tab */>}}
{{* /tabpane */>}}
-#### Reference Github Examples
+#### Reference GitHub Examples
To ensure that all code is kept up to date, our goal is to write the code in the repo where it
can be executed when Selenium versions are updated to ensure that everything is correct.
-All code examples to be in our
+All code examples to be in our
[example directories](https://github.com/SeleniumHQ/seleniumhq.github.io/tree/dev/examples).
This code can be automatically displayed in the documentation using the `gh-codeblock` shortcode.
-The shortcode automatically generates its own html, so set `code=false` to prevent the auto-formatting.
-We still need `langEqualsHeader=true` to keep the language tabs synchronized throughout the page.
-Note that the `gh-codeblock` line can not be indented at all.
+The shortcode automatically generates its own html, so we do not want it to auto-format with the language header.
+If all tabs are using this shortcode, set `text=true` in the `tabpane` and remove `langEqualsHeader=true`.
+If only some tabs are using this shortcode, keep `langEqualsHeader=true` in the `tabpane` and add `text=true`
+to the `tab`. Note that the `gh-codeblock` line can not be indented at all.
One great thing about using `gh-codeblock` is that it adds a link to the full example.
This means you don't have to include any additional context code, just the line(s) that
@@ -172,80 +147,81 @@ are needed, and the user can navigate to the repo to see how to use it.
A basic comparison of code looks like:
- {{* tabpane code=false langEqualsHeader=true */>}}
+ {{* tabpane text=true */>}}
{{* tab header="Java" */>}}
- {{* gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L46-L47" */>}}
+ {{* gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L26-L27" */>}}
{{* /tab */>}}
{{* tab header="Python" */>}}
- {{* gh-codeblock path="examples/python/tests/getting_started/test_first_script.py#L17-L18" */>}}
+ {{* gh-codeblock path="/examples/python/tests/getting_started/first_script.py#L18-L19" */>}}
{{* /tab */>}}
{{* tab header="CSharp" */>}}
- {{* gh-codeblock path="examples/dotnet/SeleniumDocs/GettingStarted/FirstScriptTest.cs#L39-L40" */>}}
+ {{* gh-codeblock path="/examples/dotnet/SeleniumDocs/GettingStarted/FirstScript.cs#L25-L26" */>}}
{{* /tab */>}}
{{* tab header="Ruby" */>}}
- {{* gh-codeblock path="examples/ruby/spec/getting_started/first_script_spec.rb#L16-L17" */>}}
+ {{* gh-codeblock path="/examples/ruby/spec/getting_started/first_script.rb#L17-L18" */>}}
{{* /tab */>}}
{{* tab header="JavaScript" */>}}
- {{* gh-codeblock path="examples/javascript/test/getting_started/firstScript.spec.js#L23-L24" */>}}
+ {{* gh-codeblock path="/examples/javascript/test/getting_started/firstScript.spec.js#L22-L23" */>}}
{{* /tab */>}}
{{* tab header="Kotlin" */>}}
- {{* gh-codeblock path="examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt#L39-L40" */>}}
+ {{* gh-codeblock path="/examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt#L31-L32" */>}}
{{* /tab */>}}
{{* /tabpane */>}}
Which looks like this:
-{{< tabpane code=false langEqualsHeader=true >}}
+{{< tabpane text=true >}}
{{< tab header="Java" >}}
-{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L46-L47" >}}
+{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L26-L27" >}}
{{< /tab >}}
{{< tab header="Python" >}}
-{{< gh-codeblock path="examples/python/tests/getting_started/test_first_script.py#L17-L18" >}}
+{{< gh-codeblock path="/examples/python/tests/getting_started/first_script.py#L18-L19" >}}
{{< /tab >}}
{{< tab header="CSharp" >}}
-{{< gh-codeblock path="examples/dotnet/SeleniumDocs/GettingStarted/FirstScriptTest.cs#L39-L40" >}}
+{{< gh-codeblock path="/examples/dotnet/SeleniumDocs/GettingStarted/FirstScript.cs#L25-L26" >}}
{{< /tab >}}
{{< tab header="Ruby" >}}
-{{< gh-codeblock path="examples/ruby/spec/getting_started/first_script_spec.rb#L16-L17" >}}
+{{< gh-codeblock path="/examples/ruby/spec/getting_started/first_script.rb#L17-L18" >}}
{{< /tab >}}
{{< tab header="JavaScript" >}}
-{{< gh-codeblock path="examples/javascript/test/getting_started/firstScript.spec.js#L23-L24" >}}
+{{< gh-codeblock path="/examples/javascript/test/getting_started/firstScript.spec.js#L22-L23" >}}
{{< /tab >}}
{{< tab header="Kotlin" >}}
-{{< gh-codeblock path="examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt#L39-L40" >}}
+{{< gh-codeblock path="/examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt#L31-L32" >}}
{{< /tab >}}
{{< /tabpane >}}
### Using Markdown in a Tab
If you want your example to include something other than code (default) or html (from `gh-codeblock`),
-you need to first set `code=false`,
+you need to first set `text=true`,
then change the Hugo syntax for the `tab`to use `%` instead of `<` and `>` with curly braces:
- {{* tabpane code=false langEqualsHeader=true */>}}
+ {{* tabpane text=true */>}}
{{%/* tab header="Java" */%}}
1. Start the driver
- {{* gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L29" */>}}
+ {{* gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L12" */>}}
2. Navigate to a page
- {{* gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L39" */>}}
+ {{* gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L14" */>}}
3. Quit the driver
- {{* gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L34" */>}}
+ {{* gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L29" */>}}
{{%/* /tab */%}}
< ... >
{{* /tabpane */>}}
This produces:
-{{< tabpane code=false langEqualsHeader=true >}}
+{{< tabpane text=true >}}
{{% tab header="Java" %}}
+
1. Start the driver
-{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L29" >}}
+ {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L12" >}}
2. Navigate to a page
-{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L39" >}}
+ {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L14" >}}
3. Quit the driver
-{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L34" >}}
-{{% /tab %}}
-{{< /tabpane >}}
+ {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L29" >}}
+ {{% /tab %}}
+ {{< /tabpane >}}
This is preferred to writing code comments because those will not be translated.
Only include the code that is needed for the documentation, and avoid over-explaining.
diff --git a/website_and_docs/content/documentation/about/style.pt-br.md b/website_and_docs/content/documentation/about/style.pt-br.md
index 35c38cdab605..760f76d18bd0 100644
--- a/website_and_docs/content/documentation/about/style.pt-br.md
+++ b/website_and_docs/content/documentation/about/style.pt-br.md
@@ -1,43 +1,17 @@
---
-title: "Style guide for Selenium documentation"
-linkTitle: "Style"
+title: "Guia de estilo para a documentação do Selenium"
+linkTitle: "Estilo"
weight: 6
-requiresTranslation: true
description: >-
- Conventions for contributions to the Selenium documentation and code examples
+ Convenções para contribuições à documentação do Selenium e exemplos de código.
---
-Read our [contributing documentation]({{< ref contributing.md >}}) for complete instructions on
+Read our [contributing documentation]({{< ref contributing.md >}}) for complete instructions on
how to add content to this documentation.
## Alerts
-Alerts have been added to direct potential contributors to where specific help is needed.
-
-When code examples are needed, this code has been added to the site:
-
-{{< highlight html >}}
-{{* alert-code /*/>}}
-{{< /highlight >}}
-
-Which gets displayed like this:
-{{< alert-code />}}
-
-To specify what code is needed, you can pass information inside the tag:
-
-{{< highlight html >}}
-{{* alert-code */>}}
-specifically code that does this one thing.
-{{* /alert-code */>}}
-{{< /highlight >}}
-
-Which looks like this:
-
-{{< alert-code >}}
-specifically code that does this one thing.
-{{< /alert-code >}}
-
-Similarly, for additional content you can use:
+Alerts have been added to direct potential contributors to where specific content is missing.
{{< highlight html >}}
{{* alert-content /*/>}}
@@ -94,7 +68,7 @@ Selenium now has official translators for each of the supported languages.
also add it to `important_documentation.ja.md`, `important_documentation.pt-br.md`,
`important_documentation.zh-cn.md`.
* If you make text changes in the English version, just make a Pull Request.
- The new process is for issues to be created and tagged as needs translation based on
+ The new process is for issues to be created and tagged as needs translation based on
changes made in a given PR.
## Code examples
@@ -107,30 +81,30 @@ and the code itself should be placed inside code tabs.
The Docsy code tabs look like this:
{{< tabpane langEqualsHeader=true >}}
- {{< tab header="Java" >}}
- WebDriver driver = new ChromeDriver();
- {{< /tab >}}
- {{< tab header="Python" >}}
- driver = webdriver.Chrome()
- {{< /tab >}}
- {{< tab header="CSharp" >}}
- var driver = new ChromeDriver();
- {{< /tab >}}
- {{< tab header="Ruby" >}}
- driver = Selenium::WebDriver.for :chrome
- {{< /tab >}}
- {{< tab header="JavaScript" >}}
- let driver = await new Builder().forBrowser('chrome').build();
- {{< /tab >}}
- {{< tab header="Kotlin" >}}
- val driver = ChromeDriver()
- {{< /tab >}}
+{{< tab header="Java" >}}
+WebDriver driver = new ChromeDriver();
+{{< /tab >}}
+{{< tab header="Python" >}}
+driver = webdriver.Chrome()
+{{< /tab >}}
+{{< tab header="CSharp" >}}
+var driver = new ChromeDriver();
+{{< /tab >}}
+{{< tab header="Ruby" >}}
+driver = Selenium::WebDriver.for :chrome
+{{< /tab >}}
+{{< tab header="JavaScript" >}}
+let driver = await new Builder().forBrowser('chrome').build();
+{{< /tab >}}
+{{< tab header="Kotlin" >}}
+val driver = ChromeDriver()
+{{< /tab >}}
{{< /tabpane >}}
To generate the above tabs, this is what you need to write.
Note that the `tabpane` includes `langEqualsHeader=true`.
-This auto-formats the code in each tab to match the header name
-and is also used to synchronize the tabs on the page.
+This auto-formats the code in each tab to match the header name,
+and ensures that all tabs on the page with a language are set to the same thing.
{{* tabpane langEqualsHeader=true */>}}
{{* tab header="Java" */>}}
@@ -153,18 +127,19 @@ and is also used to synchronize the tabs on the page.
{{* /tab */>}}
{{* /tabpane */>}}
-#### Reference Github Examples
+#### Reference GitHub Examples
To ensure that all code is kept up to date, our goal is to write the code in the repo where it
can be executed when Selenium versions are updated to ensure that everything is correct.
-All code examples to be in our
+All code examples to be in our
[example directories](https://github.com/SeleniumHQ/seleniumhq.github.io/tree/dev/examples).
This code can be automatically displayed in the documentation using the `gh-codeblock` shortcode.
-The shortcode automatically generates its own html, so set `code=false` to prevent the auto-formatting.
-We still need `langEqualsHeader=true` to keep the language tabs synchronized throughout the page.
-Note that the `gh-codeblock` line can not be indented at all.
+The shortcode automatically generates its own html, so we do not want it to auto-format with the language header.
+If all tabs are using this shortcode, set `text=true` in the `tabpane` and remove `langEqualsHeader=true`.
+If only some tabs are using this shortcode, keep `langEqualsHeader=true` in the `tabpane` and add `text=true`
+to the `tab`. Note that the `gh-codeblock` line can not be indented at all.
One great thing about using `gh-codeblock` is that it adds a link to the full example.
This means you don't have to include any additional context code, just the line(s) that
@@ -172,80 +147,81 @@ are needed, and the user can navigate to the repo to see how to use it.
A basic comparison of code looks like:
- {{* tabpane code=false langEqualsHeader=true */>}}
+ {{* tabpane text=true */>}}
{{* tab header="Java" */>}}
- {{* gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L46-L47" */>}}
+ {{* gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L26-L27" */>}}
{{* /tab */>}}
{{* tab header="Python" */>}}
- {{* gh-codeblock path="examples/python/tests/getting_started/test_first_script.py#L17-L18" */>}}
+ {{* gh-codeblock path="/examples/python/tests/getting_started/first_script.py#L18-L19" */>}}
{{* /tab */>}}
{{* tab header="CSharp" */>}}
- {{* gh-codeblock path="examples/dotnet/SeleniumDocs/GettingStarted/FirstScriptTest.cs#L39-L40" */>}}
+ {{* gh-codeblock path="/examples/dotnet/SeleniumDocs/GettingStarted/FirstScript.cs#L25-L26" */>}}
{{* /tab */>}}
{{* tab header="Ruby" */>}}
- {{* gh-codeblock path="examples/ruby/spec/getting_started/first_script_spec.rb#L16-L17" */>}}
+ {{* gh-codeblock path="/examples/ruby/spec/getting_started/first_script.rb#L17-L18" */>}}
{{* /tab */>}}
{{* tab header="JavaScript" */>}}
- {{* gh-codeblock path="examples/javascript/test/getting_started/firstScript.spec.js#L23-L24" */>}}
+ {{* gh-codeblock path="/examples/javascript/test/getting_started/firstScript.spec.js#L22-L23" */>}}
{{* /tab */>}}
{{* tab header="Kotlin" */>}}
- {{* gh-codeblock path="examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt#L39-L40" */>}}
+ {{* gh-codeblock path="/examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt#L31-L32" */>}}
{{* /tab */>}}
{{* /tabpane */>}}
Which looks like this:
-{{< tabpane code=false langEqualsHeader=true >}}
+{{< tabpane text=true >}}
{{< tab header="Java" >}}
-{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L46-L47" >}}
+{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L26-L27" >}}
{{< /tab >}}
{{< tab header="Python" >}}
-{{< gh-codeblock path="examples/python/tests/getting_started/test_first_script.py#L17-L18" >}}
+{{< gh-codeblock path="/examples/python/tests/getting_started/first_script.py#L18-L19" >}}
{{< /tab >}}
{{< tab header="CSharp" >}}
-{{< gh-codeblock path="examples/dotnet/SeleniumDocs/GettingStarted/FirstScriptTest.cs#L39-L40" >}}
+{{< gh-codeblock path="/examples/dotnet/SeleniumDocs/GettingStarted/FirstScript.cs#L25-L26" >}}
{{< /tab >}}
{{< tab header="Ruby" >}}
-{{< gh-codeblock path="examples/ruby/spec/getting_started/first_script_spec.rb#L16-L17" >}}
+{{< gh-codeblock path="/examples/ruby/spec/getting_started/first_script.rb#L17-L18" >}}
{{< /tab >}}
{{< tab header="JavaScript" >}}
-{{< gh-codeblock path="examples/javascript/test/getting_started/firstScript.spec.js#L23-L24" >}}
+{{< gh-codeblock path="/examples/javascript/test/getting_started/firstScript.spec.js#L22-L23" >}}
{{< /tab >}}
{{< tab header="Kotlin" >}}
-{{< gh-codeblock path="examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt#L39-L40" >}}
+{{< gh-codeblock path="/examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt#L31-L32" >}}
{{< /tab >}}
{{< /tabpane >}}
### Using Markdown in a Tab
If you want your example to include something other than code (default) or html (from `gh-codeblock`),
-you need to first set `code=false`,
+you need to first set `text=true`,
then change the Hugo syntax for the `tab`to use `%` instead of `<` and `>` with curly braces:
- {{* tabpane code=false */>}}
+ {{* tabpane text=true */>}}
{{%/* tab header="Java" */%}}
1. Start the driver
- {{* gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L29" */>}}
+ {{* gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L12" */>}}
2. Navigate to a page
- {{* gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L39" */>}}
+ {{* gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L14" */>}}
3. Quit the driver
- {{* gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L34" */>}}
+ {{* gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L29" */>}}
{{%/* /tab */%}}
< ... >
{{* /tabpane */>}}
This produces:
-{{< tabpane code=false langEqualsHeader=true >}}
+{{< tabpane text=true >}}
{{% tab header="Java" %}}
+
1. Start the driver
-{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L29" >}}
+ {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L12" >}}
2. Navigate to a page
-{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L39" >}}
+ {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L14" >}}
3. Quit the driver
-{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L34" >}}
-{{% /tab %}}
-{{< /tabpane >}}
+ {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L29" >}}
+ {{% /tab %}}
+ {{< /tabpane >}}
This is preferred to writing code comments because those will not be translated.
Only include the code that is needed for the documentation, and avoid over-explaining.
diff --git a/website_and_docs/content/documentation/about/style.zh-cn.md b/website_and_docs/content/documentation/about/style.zh-cn.md
index 35c38cdab605..fa2ad642bc07 100644
--- a/website_and_docs/content/documentation/about/style.zh-cn.md
+++ b/website_and_docs/content/documentation/about/style.zh-cn.md
@@ -2,42 +2,16 @@
title: "Style guide for Selenium documentation"
linkTitle: "Style"
weight: 6
-requiresTranslation: true
description: >-
Conventions for contributions to the Selenium documentation and code examples
---
-Read our [contributing documentation]({{< ref contributing.md >}}) for complete instructions on
+Read our [contributing documentation]({{< ref contributing.md >}}) for complete instructions on
how to add content to this documentation.
## Alerts
-Alerts have been added to direct potential contributors to where specific help is needed.
-
-When code examples are needed, this code has been added to the site:
-
-{{< highlight html >}}
-{{* alert-code /*/>}}
-{{< /highlight >}}
-
-Which gets displayed like this:
-{{< alert-code />}}
-
-To specify what code is needed, you can pass information inside the tag:
-
-{{< highlight html >}}
-{{* alert-code */>}}
-specifically code that does this one thing.
-{{* /alert-code */>}}
-{{< /highlight >}}
-
-Which looks like this:
-
-{{< alert-code >}}
-specifically code that does this one thing.
-{{< /alert-code >}}
-
-Similarly, for additional content you can use:
+Alerts have been added to direct potential contributors to where specific content is missing.
{{< highlight html >}}
{{* alert-content /*/>}}
@@ -94,7 +68,7 @@ Selenium now has official translators for each of the supported languages.
also add it to `important_documentation.ja.md`, `important_documentation.pt-br.md`,
`important_documentation.zh-cn.md`.
* If you make text changes in the English version, just make a Pull Request.
- The new process is for issues to be created and tagged as needs translation based on
+ The new process is for issues to be created and tagged as needs translation based on
changes made in a given PR.
## Code examples
@@ -107,30 +81,30 @@ and the code itself should be placed inside code tabs.
The Docsy code tabs look like this:
{{< tabpane langEqualsHeader=true >}}
- {{< tab header="Java" >}}
- WebDriver driver = new ChromeDriver();
- {{< /tab >}}
- {{< tab header="Python" >}}
- driver = webdriver.Chrome()
- {{< /tab >}}
- {{< tab header="CSharp" >}}
- var driver = new ChromeDriver();
- {{< /tab >}}
- {{< tab header="Ruby" >}}
- driver = Selenium::WebDriver.for :chrome
- {{< /tab >}}
- {{< tab header="JavaScript" >}}
- let driver = await new Builder().forBrowser('chrome').build();
- {{< /tab >}}
- {{< tab header="Kotlin" >}}
- val driver = ChromeDriver()
- {{< /tab >}}
+{{< tab header="Java" >}}
+WebDriver driver = new ChromeDriver();
+{{< /tab >}}
+{{< tab header="Python" >}}
+driver = webdriver.Chrome()
+{{< /tab >}}
+{{< tab header="CSharp" >}}
+var driver = new ChromeDriver();
+{{< /tab >}}
+{{< tab header="Ruby" >}}
+driver = Selenium::WebDriver.for :chrome
+{{< /tab >}}
+{{< tab header="JavaScript" >}}
+let driver = await new Builder().forBrowser('chrome').build();
+{{< /tab >}}
+{{< tab header="Kotlin" >}}
+val driver = ChromeDriver()
+{{< /tab >}}
{{< /tabpane >}}
To generate the above tabs, this is what you need to write.
Note that the `tabpane` includes `langEqualsHeader=true`.
-This auto-formats the code in each tab to match the header name
-and is also used to synchronize the tabs on the page.
+This auto-formats the code in each tab to match the header name,
+and ensures that all tabs on the page with a language are set to the same thing.
{{* tabpane langEqualsHeader=true */>}}
{{* tab header="Java" */>}}
@@ -153,18 +127,19 @@ and is also used to synchronize the tabs on the page.
{{* /tab */>}}
{{* /tabpane */>}}
-#### Reference Github Examples
+#### Reference GitHub Examples
To ensure that all code is kept up to date, our goal is to write the code in the repo where it
can be executed when Selenium versions are updated to ensure that everything is correct.
-All code examples to be in our
+All code examples to be in our
[example directories](https://github.com/SeleniumHQ/seleniumhq.github.io/tree/dev/examples).
This code can be automatically displayed in the documentation using the `gh-codeblock` shortcode.
-The shortcode automatically generates its own html, so set `code=false` to prevent the auto-formatting.
-We still need `langEqualsHeader=true` to keep the language tabs synchronized throughout the page.
-Note that the `gh-codeblock` line can not be indented at all.
+The shortcode automatically generates its own html, so we do not want it to auto-format with the language header.
+If all tabs are using this shortcode, set `text=true` in the `tabpane` and remove `langEqualsHeader=true`.
+If only some tabs are using this shortcode, keep `langEqualsHeader=true` in the `tabpane` and add `text=true`
+to the `tab`. Note that the `gh-codeblock` line can not be indented at all.
One great thing about using `gh-codeblock` is that it adds a link to the full example.
This means you don't have to include any additional context code, just the line(s) that
@@ -172,80 +147,81 @@ are needed, and the user can navigate to the repo to see how to use it.
A basic comparison of code looks like:
- {{* tabpane code=false langEqualsHeader=true */>}}
+ {{* tabpane text=true */>}}
{{* tab header="Java" */>}}
- {{* gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L46-L47" */>}}
+ {{* gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L26-L27" */>}}
{{* /tab */>}}
{{* tab header="Python" */>}}
- {{* gh-codeblock path="examples/python/tests/getting_started/test_first_script.py#L17-L18" */>}}
+ {{* gh-codeblock path="/examples/python/tests/getting_started/first_script.py#L18-L19" */>}}
{{* /tab */>}}
{{* tab header="CSharp" */>}}
- {{* gh-codeblock path="examples/dotnet/SeleniumDocs/GettingStarted/FirstScriptTest.cs#L39-L40" */>}}
+ {{* gh-codeblock path="/examples/dotnet/SeleniumDocs/GettingStarted/FirstScript.cs#L25-L26" */>}}
{{* /tab */>}}
{{* tab header="Ruby" */>}}
- {{* gh-codeblock path="examples/ruby/spec/getting_started/first_script_spec.rb#L16-L17" */>}}
+ {{* gh-codeblock path="/examples/ruby/spec/getting_started/first_script.rb#L17-L18" */>}}
{{* /tab */>}}
{{* tab header="JavaScript" */>}}
- {{* gh-codeblock path="examples/javascript/test/getting_started/firstScript.spec.js#L23-L24" */>}}
+ {{* gh-codeblock path="/examples/javascript/test/getting_started/firstScript.spec.js#L22-L23" */>}}
{{* /tab */>}}
{{* tab header="Kotlin" */>}}
- {{* gh-codeblock path="examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt#L39-L40" */>}}
+ {{* gh-codeblock path="/examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt#L31-L32" */>}}
{{* /tab */>}}
{{* /tabpane */>}}
Which looks like this:
-{{< tabpane code=false langEqualsHeader=true >}}
+{{< tabpane text=true >}}
{{< tab header="Java" >}}
-{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L46-L47" >}}
+{{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L26-L27" >}}
{{< /tab >}}
{{< tab header="Python" >}}
-{{< gh-codeblock path="examples/python/tests/getting_started/test_first_script.py#L17-L18" >}}
+{{< gh-codeblock path="/examples/python/tests/getting_started/first_script.py#L18-L19" >}}
{{< /tab >}}
{{< tab header="CSharp" >}}
-{{< gh-codeblock path="examples/dotnet/SeleniumDocs/GettingStarted/FirstScriptTest.cs#L39-L40" >}}
+{{< gh-codeblock path="/examples/dotnet/SeleniumDocs/GettingStarted/FirstScript.cs#L25-L26" >}}
{{< /tab >}}
{{< tab header="Ruby" >}}
-{{< gh-codeblock path="examples/ruby/spec/getting_started/first_script_spec.rb#L16-L17" >}}
+{{< gh-codeblock path="/examples/ruby/spec/getting_started/first_script.rb#L17-L18" >}}
{{< /tab >}}
{{< tab header="JavaScript" >}}
-{{< gh-codeblock path="examples/javascript/test/getting_started/firstScript.spec.js#L23-L24" >}}
+{{< gh-codeblock path="/examples/javascript/test/getting_started/firstScript.spec.js#L22-L23" >}}
{{< /tab >}}
{{< tab header="Kotlin" >}}
-{{< gh-codeblock path="examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt#L39-L40" >}}
+{{< gh-codeblock path="/examples/kotlin/src/test/kotlin/dev/selenium/getting_started/FirstScriptTest.kt#L31-L32" >}}
{{< /tab >}}
{{< /tabpane >}}
### Using Markdown in a Tab
If you want your example to include something other than code (default) or html (from `gh-codeblock`),
-you need to first set `code=false`,
+you need to first set `text=true`,
then change the Hugo syntax for the `tab`to use `%` instead of `<` and `>` with curly braces:
- {{* tabpane code=false */>}}
+ {{* tabpane text=true */>}}
{{%/* tab header="Java" */%}}
1. Start the driver
- {{* gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L29" */>}}
+ {{* gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L12" */>}}
2. Navigate to a page
- {{* gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L39" */>}}
+ {{* gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L14" */>}}
3. Quit the driver
- {{* gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L34" */>}}
+ {{* gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L29" */>}}
{{%/* /tab */%}}
< ... >
{{* /tabpane */>}}
This produces:
-{{< tabpane code=false langEqualsHeader=true >}}
+{{< tabpane text=true >}}
{{% tab header="Java" %}}
+
1. Start the driver
-{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L29" >}}
+ {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L12" >}}
2. Navigate to a page
-{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L39" >}}
+ {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L14" >}}
3. Quit the driver
-{{< gh-codeblock path="examples/java/src/test/java/dev/selenium/getting_started/FirstScriptTest.java#L34" >}}
-{{% /tab %}}
-{{< /tabpane >}}
+ {{< gh-codeblock path="/examples/java/src/test/java/dev/selenium/getting_started/FirstScript.java#L29" >}}
+ {{% /tab %}}
+ {{< /tabpane >}}
This is preferred to writing code comments because those will not be translated.
Only include the code that is needed for the documentation, and avoid over-explaining.
diff --git a/website_and_docs/content/documentation/grid/_index.en.md b/website_and_docs/content/documentation/grid/_index.en.md
index 4e8b5c629d5a..cab1f133ecff 100644
--- a/website_and_docs/content/documentation/grid/_index.en.md
+++ b/website_and_docs/content/documentation/grid/_index.en.md
@@ -1,7 +1,7 @@
---
title: "Grid"
linkTitle: "Grid"
-weight: 6
+weight: 4
description: >
Want to run tests in parallel across multiple machines? Then, Grid is for you.
aliases:
diff --git a/website_and_docs/content/documentation/grid/_index.ja.md b/website_and_docs/content/documentation/grid/_index.ja.md
index b12d41eaf877..23c2d39512c7 100644
--- a/website_and_docs/content/documentation/grid/_index.ja.md
+++ b/website_and_docs/content/documentation/grid/_index.ja.md
@@ -1,35 +1,26 @@
---
title: "Grid"
linkTitle: "Grid"
-weight: 6
+weight: 4
description: >
- 複数のマシン間で並行してテストを実行したいですか? その場合、グリッドはあなたのためになります。
-aliases:
- [
- "/documentation/ja/selenium_installation/installing_standalone_server/",
- "/documentation/ja/grid/",
- "/documentation/ja/grid/grid_4/",
- "/documentation/ja/grid/purposes_and_main_functionalities/"
- ]
+ 複数のマシンで並行してテストを実行したいですか? Grid が手助けします。
+aliases:
+ [
+ "/documentation/ja/selenium_installation/installing_standalone_server/",
+ "/documentation/ja/grid/",
+ "/documentation/ja/grid/grid_4/",
+ "/documentation/ja/grid/purposes_and_main_functionalities/",
+ ]
---
-{{% pageinfo color="warning" %}}
-
-
- Page being translated from English to Japanese.
- Do you speak Japanese? Help us to translate
- it by sending us pull requests!
-
-{{% /pageinfo %}}
+Selenium Grid を利用して、クライアントからリモートブラウザーインスタンスにコマンドを
+ルーティングし、リモートマシン上で WebDriver スクリプトを実行することができます。
-Selenium Grid allows the execution of WebDriver scripts on remote machines
-by routing commands sent by the client to remote browser instances.
+Grid の目標は、
-Grid aims to:
+- 複数のマシンでの並行したテスト実行を、簡単な方法で提供する
+- 異なるバージョンのブラウザでのテストを可能にする
+- クロスプラットフォームテストを可能にする
-* Provide an easy way to run tests in parallel on multiple machines
-* Allow testing on different browser versions
-* Enable cross platform testing
-
-Interested? Go through the following sections to understand
-how Grid works, and how to set up your own.
\ No newline at end of file
+興味がありますか?
+Grid の仕組みと設定方法が知りたければ以下のセクションを読んでください。
diff --git a/website_and_docs/content/documentation/grid/_index.pt-br.md b/website_and_docs/content/documentation/grid/_index.pt-br.md
index 70bfa581e61c..1288fe2c1451 100644
--- a/website_and_docs/content/documentation/grid/_index.pt-br.md
+++ b/website_and_docs/content/documentation/grid/_index.pt-br.md
@@ -1,7 +1,7 @@
---
title: "Grid"
linkTitle: "Grid"
-weight: 6
+weight: 4
description: >
Pretende executar testes em paralelo em várias máquinas? Então a Grid é para si.
aliases:
diff --git a/website_and_docs/content/documentation/grid/_index.zh-cn.md b/website_and_docs/content/documentation/grid/_index.zh-cn.md
index 5131dbb55ceb..fe867bf3e7f6 100644
--- a/website_and_docs/content/documentation/grid/_index.zh-cn.md
+++ b/website_and_docs/content/documentation/grid/_index.zh-cn.md
@@ -1,7 +1,7 @@
---
title: "Grid"
linkTitle: "Grid"
-weight: 6
+weight: 4
description: >
要在多台计算机上并行运行测试吗? 那么, Grid正是为你准备的.
aliases:
diff --git a/website_and_docs/content/documentation/grid/advanced_features/_index.pt-br.md b/website_and_docs/content/documentation/grid/advanced_features/_index.pt-br.md
index 0219b392552c..e9a4d28b76ba 100644
--- a/website_and_docs/content/documentation/grid/advanced_features/_index.pt-br.md
+++ b/website_and_docs/content/documentation/grid/advanced_features/_index.pt-br.md
@@ -1,18 +1,9 @@
---
-title: "Advanced Features"
-linkTitle: "Advanced Features"
+title: "Características avançadas"
+linkTitle: "Características avançadas"
weight: 12
description: >
- To get all the details of the advanced features, understand how it works, and how to set
- up your own, please browse thorough the following sections.
+ Para obter todos os detalhes dos recursos avançados, entenda como funciona e como configurar
+ crie o seu próprio, navegue pelas seções a seguir.
aliases: ["/documentation/pt-br/grid/grid_4/advanced_features/"]
---
-
-{{% pageinfo color="warning" %}}
-
-
- Page being translated from
- English to Portuguese. Do you speak Portuguese? Help us to translate
- it by sending us pull requests!
-
-{{% /pageinfo %}}
diff --git a/website_and_docs/content/documentation/grid/advanced_features/customize_node.en.md b/website_and_docs/content/documentation/grid/advanced_features/customize_node.en.md
index 59d98b9b4986..f73e5c9dbee5 100644
--- a/website_and_docs/content/documentation/grid/advanced_features/customize_node.en.md
+++ b/website_and_docs/content/documentation/grid/advanced_features/customize_node.en.md
@@ -64,8 +64,10 @@ Below is a sample that just prints some messages on to the console whenever ther
```java
package org.seleniumhq.samples;
+import java.io.IOException;
import java.net.URI;
import java.util.UUID;
+import java.util.function.Supplier;
import org.openqa.selenium.Capabilities;
import org.openqa.selenium.NoSuchSessionException;
import org.openqa.selenium.WebDriverException;
@@ -83,6 +85,7 @@ import org.openqa.selenium.grid.security.Secret;
import org.openqa.selenium.grid.security.SecretOptions;
import org.openqa.selenium.grid.server.BaseServerOptions;
import org.openqa.selenium.internal.Either;
+import org.openqa.selenium.io.TemporaryFilesystem;
import org.openqa.selenium.remote.SessionId;
import org.openqa.selenium.remote.http.HttpRequest;
import org.openqa.selenium.remote.http.HttpResponse;
@@ -92,8 +95,8 @@ public class DecoratedLoggingNode extends Node {
private Node node;
- protected DecoratedLoggingNode(Tracer tracer, URI uri, Secret registrationSecret) {
- super(tracer, new NodeId(UUID.randomUUID()), uri, registrationSecret);
+ protected DecoratedLoggingNode(Tracer tracer, NodeId nodeId, URI uri, Secret registrationSecret, Duration sessionTimeout) {
+ super(tracer, nodeId, uri, registrationSecret, sessionTimeout);
}
public static Node create(Config config) {
@@ -101,12 +104,17 @@ public class DecoratedLoggingNode extends Node {
BaseServerOptions serverOptions = new BaseServerOptions(config);
URI uri = serverOptions.getExternalUri();
SecretOptions secretOptions = new SecretOptions(config);
+ NodeOptions nodeOptions = new NodeOptions(config);
+ Duration sessionTimeout = nodeOptions.getSessionTimeout();
// Refer to the foot notes for additional context on this line.
Node node = LocalNodeFactory.create(config);
DecoratedLoggingNode wrapper = new DecoratedLoggingNode(loggingOptions.getTracer(),
- uri, secretOptions.getRegistrationSecret());
+ node.getId(),
+ uri,
+ secretOptions.getRegistrationSecret(),
+ sessionTimeout);
wrapper.node = node;
return wrapper;
}
@@ -114,112 +122,102 @@ public class DecoratedLoggingNode extends Node {
@Override
public Either newSession(
CreateSessionRequest sessionRequest) {
- System.out.println("Before newSession()");
- try {
- return this.node.newSession(sessionRequest);
- } finally {
- System.out.println("After newSession()");
- }
+ return perform(() -> node.newSession(sessionRequest), "newSession");
}
@Override
public HttpResponse executeWebDriverCommand(HttpRequest req) {
- try {
- System.out.println("Before executeWebDriverCommand(): " + req.getUri());
- return node.executeWebDriverCommand(req);
- } finally {
- System.out.println("After executeWebDriverCommand()");
- }
+ return perform(() -> node.executeWebDriverCommand(req), "executeWebDriverCommand");
}
@Override
public Session getSession(SessionId id) throws NoSuchSessionException {
- try {
- System.out.println("Before getSession()");
- return node.getSession(id);
- } finally {
- System.out.println("After getSession()");
- }
+ return perform(() -> node.getSession(id), "getSession");
}
@Override
public HttpResponse uploadFile(HttpRequest req, SessionId id) {
- try {
- System.out.println("Before uploadFile()");
- return node.uploadFile(req, id);
- } finally {
- System.out.println("After uploadFile()");
- }
+ return perform(() -> node.uploadFile(req, id), "uploadFile");
+ }
+
+ @Override
+ public HttpResponse downloadFile(HttpRequest req, SessionId id) {
+ return perform(() -> node.downloadFile(req, id), "downloadFile");
+ }
+
+ @Override
+ public TemporaryFilesystem getDownloadsFilesystem(UUID uuid) {
+ return perform(() -> {
+ try {
+ return node.getDownloadsFilesystem(uuid);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }, "downloadsFilesystem");
+ }
+
+ @Override
+ public TemporaryFilesystem getUploadsFilesystem(SessionId id) throws IOException {
+ return perform(() -> {
+ try {
+ return node.getUploadsFilesystem(id);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }, "uploadsFilesystem");
+
}
@Override
public void stop(SessionId id) throws NoSuchSessionException {
- try {
- System.out.println("Before stop()");
- node.stop(id);
- } finally {
- System.out.println("After stop()");
- }
+ perform(() -> node.stop(id), "stop");
}
@Override
public boolean isSessionOwner(SessionId id) {
- try {
- System.out.println("Before isSessionOwner()");
- return node.isSessionOwner(id);
- } finally {
- System.out.println("After isSessionOwner()");
- }
+ return perform(() -> node.isSessionOwner(id), "isSessionOwner");
}
@Override
public boolean isSupporting(Capabilities capabilities) {
- try {
- System.out.println("Before isSupporting");
- return node.isSupporting(capabilities);
- } finally {
- System.out.println("After isSupporting()");
- }
+ return perform(() -> node.isSupporting(capabilities), "isSupporting");
}
@Override
public NodeStatus getStatus() {
- try {
- System.out.println("Before getStatus()");
- return node.getStatus();
- } finally {
- System.out.println("After getStatus()");
- }
+ return perform(() -> node.getStatus(), "getStatus");
}
@Override
public HealthCheck getHealthCheck() {
- try {
- System.out.println("Before getHealthCheck()");
- return node.getHealthCheck();
- } finally {
- System.out.println("After getHealthCheck()");
- }
+ return perform(() -> node.getHealthCheck(), "getHealthCheck");
}
@Override
public void drain() {
+ perform(() -> node.drain(), "drain");
+ }
+
+ @Override
+ public boolean isReady() {
+ return perform(() -> node.isReady(), "isReady");
+ }
+
+ private void perform(Runnable function, String operation) {
try {
- System.out.println("Before drain()");
- node.drain();
+ System.err.printf("[COMMENTATOR] Before %s()%n", operation);
+ function.run();
} finally {
- System.out.println("After drain()");
+ System.err.printf("[COMMENTATOR] After %s()%n", operation);
}
-
}
- @Override
- public boolean isReady() {
+ private T perform(Supplier function, String operation) {
try {
- System.out.println("Before isReady()");
- return node.isReady();
+ System.err.printf("[COMMENTATOR] Before %s()%n", operation);
+ return function.get();
} finally {
- System.out.println("After isReady()");
+ System.err.printf("[COMMENTATOR] After %s()%n", operation);
}
}
}
diff --git a/website_and_docs/content/documentation/grid/advanced_features/customize_node.ja.md b/website_and_docs/content/documentation/grid/advanced_features/customize_node.ja.md
index 1eaaaa4c72a8..c6a19435cf13 100644
--- a/website_and_docs/content/documentation/grid/advanced_features/customize_node.ja.md
+++ b/website_and_docs/content/documentation/grid/advanced_features/customize_node.ja.md
@@ -6,7 +6,7 @@ weight: 4
{{% pageinfo color="warning" %}}
-
+
Page being translated from
English to Japanese. Do you speak Japanese? Help us to translate
it by sending us pull requests!
@@ -100,8 +100,8 @@ public class DecoratedLoggingNode extends Node {
private Node node;
- protected DecoratedLoggingNode(Tracer tracer, URI uri, Secret registrationSecret) {
- super(tracer, new NodeId(UUID.randomUUID()), uri, registrationSecret);
+ protected DecoratedLoggingNode(Tracer tracer, NodeId nodeId, URI uri, Secret registrationSecret, Duration sessionTimeout) {
+ super(tracer, nodeId, uri, registrationSecret, sessionTimeout);
}
public static Node create(Config config) {
@@ -109,12 +109,17 @@ public class DecoratedLoggingNode extends Node {
BaseServerOptions serverOptions = new BaseServerOptions(config);
URI uri = serverOptions.getExternalUri();
SecretOptions secretOptions = new SecretOptions(config);
+ NodeOptions nodeOptions = new NodeOptions(config);
+ Duration sessionTimeout = nodeOptions.getSessionTimeout();
// Refer to the foot notes for additional context on this line.
Node node = LocalNodeFactory.create(config);
DecoratedLoggingNode wrapper = new DecoratedLoggingNode(loggingOptions.getTracer(),
- uri, secretOptions.getRegistrationSecret());
+ node.getId(),
+ uri,
+ secretOptions.getRegistrationSecret(),
+ sessionTimeout);
wrapper.node = node;
return wrapper;
}
diff --git a/website_and_docs/content/documentation/grid/advanced_features/customize_node.pt-br.md b/website_and_docs/content/documentation/grid/advanced_features/customize_node.pt-br.md
index 51990d5f94ae..ea10a4bf899e 100644
--- a/website_and_docs/content/documentation/grid/advanced_features/customize_node.pt-br.md
+++ b/website_and_docs/content/documentation/grid/advanced_features/customize_node.pt-br.md
@@ -1,70 +1,60 @@
---
-title: "Customizing a Node"
-linkTitle: "Customize Node"
+title: "Personalizando um Nó"
+linkTitle: "Personalizando um Nó"
weight: 4
---
+## Como personalizar um Nó
-{{% pageinfo color="warning" %}}
-
-
- Page being translated from
- English to Portugese. Do you speak Portugese? Help us to translate
- it by sending us pull requests!
-
-{{% /pageinfo %}}
+Há momentos em que gostaríamos de personalizar um Nó de acordo com nossas necessidades.
-## How to customize a Node
+Por exemplo, podemos desejar fazer alguma configuração adicional antes que uma sessão comece a ser executada e executar alguma limpeza após o término de uma sessão.
-There are times when we would like a Node to be customized to our needs.
+Os seguintes passos podem ser seguidos para isso:
-For e.g., we may like to do some additional setup before a session begins execution and some clean-up after a session runs to completion.
-
-Following steps can be followed for this:
-
-* Create a class that extends `org.openqa.selenium.grid.node.Node`
-* Add a static method (this will be our factory method) to the newly created class whose signature looks like this:
+- Crie uma classe que estenda `org.openqa.selenium.grid.node.Node`.
+- Adicione um método estático (este será nosso método de fábrica) à classe recém-criada, cuja assinatura se parece com esta:
`public static Node create(Config config)`. Here:
- * `Node` is of type `org.openqa.selenium.grid.node.Node`
- * `Config` is of type `org.openqa.selenium.grid.config.Config`
-* Within this factory method, include logic for creating your new Class.
-* To wire in this new customized logic into the hub, start the node and pass in the fully qualified class name of the above class to the argument `--node-implementation`
+ * `Node` é do tipo `org.openqa.selenium.grid.node.Node`
+ * `Config` é do tipo `org.openqa.selenium.grid.config.Config`
+* Dentro deste método de fábrica, inclua a lógica para criar sua nova classe..
+* TPara incorporar esta nova lógica personalizada no hub, inicie o nó e passe o nome da classe totalmente qualificado da classe acima como argumento. `--node-implementation`
-Let's see an example of all this:
+Vamos ver um exemplo de tudo isso:
-### Custom Node as an uber jar
+### Node personalizado como um uber jar
-1. Create a sample project using your favourite build tool (**Maven**|**Gradle**).
-2. Add the below dependency to your sample project.
+1. Crie um projeto de exemplo usando sua ferramenta de construção favorita. (**Maven**|**Gradle**).
+2. Adicione a seguinte dependência ao seu projeto de exemplo..
* [org.seleniumhq.selenium/selenium-grid](https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-grid)
-3. Add your customized Node to the project.
-4. Build an [uber jar](https://imagej.net/develop/uber-jars) to be able to start the Node using `java -jar` command.
-5. Now start the Node using the command:
+3. Adicione o seu nó personalizado ao projeto.
+4. Construir algo. [uber jar](https://imagej.net/develop/uber-jars) Para ser capaz de iniciar o Node usando o comando `java -jar`.
+5. Agora inicie o nó usando o comando:
```bash
java -jar custom_node-server.jar node \
--node-implementation org.seleniumhq.samples.DecoratedLoggingNode
```
+**Observação:** Se estiver usando o Maven como ferramenta de construção, é preferível usar o [maven-shade-plugin](https://maven.apache.org/plugins/maven-shade-plugin) em vez do [maven-assembly-plugin](https://maven.apache.org/plugins/maven-assembly-plugin) porque o plugin maven-assembly parece ter problemas para mesclar vários arquivos de Service Provider Interface (`META-INF/services`).
-**Note:** If you are using Maven as a build tool, please prefer using [maven-shade-plugin](https://maven.apache.org/plugins/maven-shade-plugin) instead of [maven-assembly-plugin](https://maven.apache.org/plugins/maven-assembly-plugin) because maven-assembly plugin seems to have issues with being able to merge multiple Service Provider Interface files (`META-INF/services`)
-### Custom Node as a regular jar
+### Node personalizado como jar
+
+1. Crie um projeto de exemplo usando a sua ferramenta de construção favorita (**Maven**|**Gradle**).
+2. Adicione a seguinte dependência ao seu projeto de exemplo:
+ * [org.seleniumhq.selenium/selenium-grid](https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-grid)
+3. Adicione o seu Node personalizado ao projeto.
+4. Construa um arquivo JAR do seu projeto usando a sua ferramenta de construção.
+5. Agora, inicie o Node usando o seguinte comando:
-1. Create a sample project using your favourite build tool (**Maven**|**Gradle**).
-2. Add the below dependency to your sample project.
- * [org.seleniumhq.selenium/selenium-grid](https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-grid)
-3. Add your customized Node to the project.
-4. Build a jar of your project using your build tool.
-5. Now start the Node using the command:
```bash
java -jar selenium-server-4.6.0.jar \
--ext custom_node-1.0-SNAPSHOT.jar node \
--node-implementation org.seleniumhq.samples.DecoratedLoggingNode
```
-Below is a sample that just prints some messages on to the console whenever there's an activity of interest (session created, session deleted, a webdriver command executed etc.,) on the Node.
-
+Aqui está um exemplo que apenas imprime algumas mensagens no console sempre que houver uma atividade de interesse (sessão criada, sessão excluída, execução de um comando do webdriver, etc.) no Node.
Sample customized node
@@ -100,8 +90,8 @@ public class DecoratedLoggingNode extends Node {
private Node node;
- protected DecoratedLoggingNode(Tracer tracer, URI uri, Secret registrationSecret) {
- super(tracer, new NodeId(UUID.randomUUID()), uri, registrationSecret);
+ protected DecoratedLoggingNode(Tracer tracer, NodeId nodeId, URI uri, Secret registrationSecret, Duration sessionTimeout) {
+ super(tracer, nodeId, uri, registrationSecret, sessionTimeout);
}
public static Node create(Config config) {
@@ -109,12 +99,17 @@ public class DecoratedLoggingNode extends Node {
BaseServerOptions serverOptions = new BaseServerOptions(config);
URI uri = serverOptions.getExternalUri();
SecretOptions secretOptions = new SecretOptions(config);
+ NodeOptions nodeOptions = new NodeOptions(config);
+ Duration sessionTimeout = nodeOptions.getSessionTimeout();
// Refer to the foot notes for additional context on this line.
Node node = LocalNodeFactory.create(config);
DecoratedLoggingNode wrapper = new DecoratedLoggingNode(loggingOptions.getTracer(),
- uri, secretOptions.getRegistrationSecret());
+ node.getId(),
+ uri,
+ secretOptions.getRegistrationSecret(),
+ sessionTimeout);
wrapper.node = node;
return wrapper;
}
@@ -234,21 +229,21 @@ public class DecoratedLoggingNode extends Node {
```
-**_Foot Notes:_**
+**_Notas de Rodapé:_**
-In the above example, the line `Node node = LocalNodeFactory.create(config);` explicitly creates a `LocalNode`.
+No exemplo acima, a linha `Node node = LocalNodeFactory.create(config);` cria explicitamente um `LocalNode`.
-There are basically 2 types of *user facing implementations* of `org.openqa.selenium.grid.node.Node` available.
+Basicamente, existem 2 tipos de implementações *visíveis para o usuário* de `org.openqa.selenium.grid.node.Node` disponíveis.
-These classes are good starting points to learn how to build a custom Node and also to learn the internals of a Node.
+Essas classes são bons pontos de partida para aprender como criar um Node personalizado e também para compreender os detalhes internos de um Node.
-* `org.openqa.selenium.grid.node.local.LocalNode` - Used to represent a long running Node and is the default implementation that gets wired in when you start a `node`.
- * It can be created by calling `LocalNodeFactory.create(config);`, where:
- * `LocalNodeFactory` belongs to `org.openqa.selenium.grid.node.local`
- * `Config` belongs to `org.openqa.selenium.grid.config`
-* `org.openqa.selenium.grid.node.k8s.OneShotNode` - This is a special reference implementation wherein the Node gracefully shuts itself down after servicing one test session. This class is currently not available as part of any pre-built maven artifact.
- * You can refer to the source code [here](https://github.com/SeleniumHQ/selenium/blob/trunk/java/src/org/openqa/selenium/grid/node/k8s/OneShotNode.java) to understand its internals.
- * To build it locally refer [here](https://github.com/SeleniumHQ/selenium/blob/trunk/deploys/k8s/README.md).
- * It can be created by calling `OneShotNode.create(config)`, where:
- * `OneShotNode` belongs to `org.openqa.selenium.grid.node.k8s`
- * `Config` belongs to `org.openqa.selenium.grid.config`
+* `org.openqa.selenium.grid.node.local.LocalNode` - Usado para representar um Node de execução contínua e é a implementação padrão que é usada quando você inicia um `node`.
+ * Pode ser criado chamando `LocalNodeFactory.create(config);`, onde:
+ * `LocalNodeFactory` pertence a `org.openqa.selenium.grid.node.local`
+ * `Config` pertence a `org.openqa.selenium.grid.config`
+* `org.openqa.selenium.grid.node.k8s.OneShotNode` - Esta é uma implementação de referência especial em que o Node encerra-se graciosamente após atender a uma sessão de teste. Esta classe atualmente não está disponível como parte de nenhum artefato Maven pré-construído.
+ * Você pode consultar o código-fonte [aqui](https://github.com/SeleniumHQ/selenium/blob/trunk/java/src/org/openqa/selenium/grid/node/k8s/OneShotNode.java) para entender seus detalhes internos.
+ * Para construí-lo localmente, consulte [aqui](https://github.com/SeleniumHQ/selenium/blob/trunk/deploys/k8s/README.md).
+ * Pode ser criado chamando `OneShotNode.create(config)`, onde:
+ * `OneShotNode` pertence a `org.openqa.selenium.grid.node.k8s`
+ * `Config` pertence a `org.openqa.selenium.grid.config`
diff --git a/website_and_docs/content/documentation/grid/advanced_features/customize_node.zh-cn.md b/website_and_docs/content/documentation/grid/advanced_features/customize_node.zh-cn.md
index a357269e6cdf..87d624ff1e61 100644
--- a/website_and_docs/content/documentation/grid/advanced_features/customize_node.zh-cn.md
+++ b/website_and_docs/content/documentation/grid/advanced_features/customize_node.zh-cn.md
@@ -6,7 +6,7 @@ weight: 4
{{% pageinfo color="warning" %}}
-
+
Page being translated from
English to Chinese. Do you speak Chinese? Help us to translate
it by sending us pull requests!
@@ -100,8 +100,8 @@ public class DecoratedLoggingNode extends Node {
private Node node;
- protected DecoratedLoggingNode(Tracer tracer, URI uri, Secret registrationSecret) {
- super(tracer, new NodeId(UUID.randomUUID()), uri, registrationSecret);
+ protected DecoratedLoggingNode(Tracer tracer, NodeId nodeId, URI uri, Secret registrationSecret, Duration sessionTimeout) {
+ super(tracer, nodeId, uri, registrationSecret, sessionTimeout);
}
public static Node create(Config config) {
@@ -109,12 +109,17 @@ public class DecoratedLoggingNode extends Node {
BaseServerOptions serverOptions = new BaseServerOptions(config);
URI uri = serverOptions.getExternalUri();
SecretOptions secretOptions = new SecretOptions(config);
+ NodeOptions nodeOptions = new NodeOptions(config);
+ Duration sessionTimeout = nodeOptions.getSessionTimeout();
// Refer to the foot notes for additional context on this line.
Node node = LocalNodeFactory.create(config);
DecoratedLoggingNode wrapper = new DecoratedLoggingNode(loggingOptions.getTracer(),
- uri, secretOptions.getRegistrationSecret());
+ node.getId(),
+ uri,
+ secretOptions.getRegistrationSecret(),
+ sessionTimeout);
wrapper.node = node;
return wrapper;
}
diff --git a/website_and_docs/content/documentation/grid/advanced_features/endpoints.en.md b/website_and_docs/content/documentation/grid/advanced_features/endpoints.en.md
index 714718021280..3d605084c87c 100644
--- a/website_and_docs/content/documentation/grid/advanced_features/endpoints.en.md
+++ b/website_and_docs/content/documentation/grid/advanced_features/endpoints.en.md
@@ -16,9 +16,20 @@ Grid status provides the current state of the Grid. It consists of details about
For every Node, the status includes information regarding Node availability, sessions, and slots.
```shell
-cURL GET 'http://localhost:4444/status'
+curl --request GET 'http://localhost:4444/status'
```
+### Delete session
+
+Deleting the session terminates the WebDriver session, quits the driver and removes it from the active sessions map.
+Any request using the removed session-id or reusing the driver instance will throw an error.
+
+```shell
+curl --request DELETE 'http://localhost:4444/session/'
+```
+
+### Which URL should I use?
+
In the Standalone mode, the Grid URL is the Standalone server address.
In the Hub-Node mode, the Grid URL is the Hub server address.
@@ -31,7 +42,7 @@ Default URL for all the above modes is http://localhost:4444.
### Remove Node
-To remove the Node from the Grid, use the cURL command enlisted below.
+To remove the Node from the Grid, use the curl command enlisted below.
It does not stop any ongoing session running on that Node.
The Node continues running as it is unless explicitly killed.
The Distributor is no longer aware of the Node and hence any matching new session request
@@ -41,15 +52,15 @@ In the Standalone mode, the Distributor URL is the Standalone server address.
In the Hub-Node mode, the Distributor URL is the Hub server address.
```shell
-cURL --request DELETE 'http://localhost:4444/se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET: '
+curl --request DELETE 'http://localhost:4444/se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET: '
```
-In the fully distributed mode, the URL is the Distributor server address.
+In the fully distributed mode, the URL is the Router server address.
```shell
-cURL --request DELETE 'http://localhost:5553/se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET: '
+curl --request DELETE 'http://localhost:4444/se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET: '
```
If no registration secret has been configured while setting up the Grid, then use
```shell
-cURL --request DELETE 'http:///se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET;'
+curl --request DELETE 'http:///se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET;'
```
### Drain Node
@@ -62,15 +73,15 @@ In the Standalone mode, the Distributor URL is the Standalone server address.
In the Hub-Node mode, the Distributor URL is the Hub server address.
```shell
-cURL --request POST 'http://localhost:4444/se/grid/distributor/node//drain' --header 'X-REGISTRATION-SECRET: '
+curl --request POST 'http://localhost:4444/se/grid/distributor/node//drain' --header 'X-REGISTRATION-SECRET: '
```
-In the fully distributed mode, the URL is the Distributor server address.
+In the fully distributed mode, the URL is the Router server address.
```shell
-cURL --request POST 'http://localhost:5553/se/grid/distributor/node//drain' --header 'X-REGISTRATION-SECRET: '
+curl --request POST 'http://localhost:4444/se/grid/distributor/node//drain' --header 'X-REGISTRATION-SECRET: '
```
If no registration secret has been configured while setting up the Grid, then use
```shell
-cURL --request POST 'http:///se/grid/distributor/node//drain' --header 'X-REGISTRATION-SECRET;'
+curl --request POST 'http:///se/grid/distributor/node//drain' --header 'X-REGISTRATION-SECRET;'
```
## Node
@@ -83,37 +94,37 @@ In case of multiple Nodes, use [Grid status](#grid-status) to get all Node detai
### Status
The Node status is essentially a health-check for the Node.
-Distributor pings the node status are regular intervals and updates the Grid Model accordingly.
+Distributor pings the node status at regular intervals and updates the Grid Model accordingly.
The status includes information regarding availability, sessions, and slots.
```shell
-cURL --request GET 'http://localhost:5555/status'
+curl --request GET 'http://localhost:5555/status'
```
### Drain
Distributor passes the [drain](#drain-node) command to the appropriate node identified by the node-id.
-To drain the Node directly, use the cuRL command enlisted below.
+To drain the Node directly, use the curl command enlisted below.
Both endpoints are valid and produce the same result. Drain finishes the ongoing sessions before stopping the Node.
```shell
-cURL --request POST 'http://localhost:5555/se/grid/node/drain' --header 'X-REGISTRATION-SECRET: '
+curl --request POST 'http://localhost:5555/se/grid/node/drain' --header 'X-REGISTRATION-SECRET: '
```
If no registration secret has been configured while setting up the Grid, then use
```shell
-cURL --request POST 'http:///se/grid/node/drain' --header 'X-REGISTRATION-SECRET;'
+curl --request POST 'http:///se/grid/node/drain' --header 'X-REGISTRATION-SECRET;'
```
### Check session owner
-To check if a session belongs to a Node, use the cURL command enlisted below.
+To check if a session belongs to a Node, use the curl command enlisted below.
```shell
-cURL --request GET 'http://localhost:5555/se/grid/node/owner/' --header 'X-REGISTRATION-SECRET: '
+curl --request GET 'http://localhost:5555/se/grid/node/owner/' --header 'X-REGISTRATION-SECRET: '
```
If no registration secret has been configured while setting up the Grid, then use
```shell
-cURL --request GET 'http:///se/grid/node/owner/' --header 'X-REGISTRATION-SECRET;'
+curl --request GET 'http:///se/grid/node/owner/' --header 'X-REGISTRATION-SECRET;'
```
It will return true if the session belongs to the Node else it will return false.
@@ -124,11 +135,11 @@ Deleting the session terminates the WebDriver session, quits the driver and remo
Any request using the removed session-id or reusing the driver instance will throw an error.
```shell
-cURL --request DELETE 'http://localhost:5555/se/grid/node/session/' --header 'X-REGISTRATION-SECRET: '
+curl --request DELETE 'http://localhost:5555/se/grid/node/session/' --header 'X-REGISTRATION-SECRET: '
```
If no registration secret has been configured while setting up the Grid, then use
```shell
-cURL --request DELETE 'http:///se/grid/node/session/' --header 'X-REGISTRATION-SECRET;'
+curl --request DELETE 'http:///se/grid/node/session/' --header 'X-REGISTRATION-SECRET;'
```
## New Session Queue
@@ -136,7 +147,7 @@ cURL --request DELETE 'http:///se/grid/node/session/' --he
### Clear New Session Queue
New Session Request Queue holds the new session requests.
-To clear the queue, use the cURL command enlisted below.
+To clear the queue, use the curl command enlisted below.
Clearing the queue rejects all the requests in the queue. For each such request, the server returns an error response to the respective client.
The result of the clear command is the total number of deleted requests.
@@ -145,23 +156,23 @@ In the Standalone mode, the Queue URL is the Standalone server address.
In the Hub-Node mode, the Queue URL is the Hub server address.
```shell
-cURL --request DELETE 'http://localhost:4444/se/grid/newsessionqueue/queue' --header 'X-REGISTRATION-SECRET: '
+curl --request DELETE 'http://localhost:4444/se/grid/newsessionqueue/queue' --header 'X-REGISTRATION-SECRET: '
```
-In the fully distributed mode, the Queue URL is New Session Queue server address.
+In the fully distributed mode, the Queue URL is Router server address.
```shell
-cURL --request DELETE 'http://localhost:5559/se/grid/newsessionqueue/queue' --header 'X-REGISTRATION-SECRET: '
+curl --request DELETE 'http://localhost:4444/se/grid/newsessionqueue/queue' --header 'X-REGISTRATION-SECRET: '
```
If no registration secret has been configured while setting up the Grid, then use
```shell
-cURL --request DELETE 'http:///se/grid/newsessionqueue/queue' --header 'X-REGISTRATION-SECRET;'
+curl --request DELETE 'http:///se/grid/newsessionqueue/queue' --header 'X-REGISTRATION-SECRET;'
```
### Get New Session Queue Requests
New Session Request Queue holds the new session requests.
-To get the current requests in the queue, use the cURL command enlisted below.
+To get the current requests in the queue, use the curl command enlisted below.
The response returns the total number of requests in the queue and the request payloads.
In the Standalone mode, the Queue URL is the Standalone server address.
@@ -169,9 +180,9 @@ In the Standalone mode, the Queue URL is the Standalone server address.
In the Hub-Node mode, the Queue URL is the Hub server address.
```shell
-cURL --request GET 'http://localhost:4444/se/grid/newsessionqueue/queue'
+curl --request GET 'http://localhost:4444/se/grid/newsessionqueue/queue'
```
-In the fully distributed mode, the Queue URL is New Session Queue server address.
+In the fully distributed mode, the Queue URL is Router server address.
```shell
-cURL --request GET 'http://localhost:5559/se/grid/newsessionqueue/queue'
+curl --request GET 'http://localhost:4444/se/grid/newsessionqueue/queue'
diff --git a/website_and_docs/content/documentation/grid/advanced_features/endpoints.ja.md b/website_and_docs/content/documentation/grid/advanced_features/endpoints.ja.md
index 545417b53c39..5407895187d8 100644
--- a/website_and_docs/content/documentation/grid/advanced_features/endpoints.ja.md
+++ b/website_and_docs/content/documentation/grid/advanced_features/endpoints.ja.md
@@ -1,6 +1,6 @@
---
-title: "Grid Endpoints"
-linkTitle: "Grid Endpoints"
+title: "Grid エンドポイント"
+linkTitle: "Grid エンドポイント"
weight: 3
aliases: [
"/documentation/ja/grid/grid_4/grid_endpoints/",
@@ -8,179 +8,201 @@ aliases: [
]
---
-{{% pageinfo color="warning" %}}
-
-
- Page being translated from
- English to Japanese. Do you speak Japanese? Help us to translate
- it by sending us pull requests!
-
-{{% /pageinfo %}}
+## Grid
-## Grid
+### Grid ステータス
-### Grid Status
+Grid ステータスは Grid の現在の状態を提供します。 登録されている全てのノードの詳細で構成されます。
+各ノードのステータスには、ノードの稼働状況、セッション、およびスロットに関する情報が含まれます。
-Grid status provides the current state of the Grid. It consists of details about every registered Node.
-For every Node, the status includes information regarding Node availability, sessions, and slots.
+```shell
+curl --request GET 'http://localhost:4444/status'
+```
+
+### セッションの削除
+
+セッションを削除すると、WebDriver セッションが終了し、ドライバがアクティブなセッションマップから削除されます。
+削除されたセッション ID を使用するリクエストや、ドライバのインスタンスを再利用しようとすると、エラーとなります。
```shell
-cURL GET 'http://localhost:4444/status'
+curl --request DELETE 'http://localhost:4444/session/'
```
-In the Standalone mode, the Grid URL is the Standalone server address.
+### Which URL should I use?
-In the Hub-Node mode, the Grid URL is the Hub server address.
+スタンドアロンモードでは、Grid URL は スタンドアロンサーバーのアドレスになります。
-In the fully distributed mode, the Grid URL is the Router server address.
+ハブ&ノードモードでは、Grid URL は ハブのアドレスになります。
-Default URL for all the above modes is http://localhost:4444.
+完全分散モードでは、Grid URL は ルーターのアドレスになります。
-## Distributor
+上記すべてのモードのデフォルトの URL は http://localhost:4444 です。
-### Remove Node
+## ディストリビューター
-To remove the Node from the Grid, use the cURL command enlisted below.
-It does not stop any ongoing session running on that Node.
-The Node continues running as it is unless explicitly killed.
-The Distributor is no longer aware of the Node and hence any matching new session request
-will not be forwarded to that Node.
+### ノード削除
-In the Standalone mode, the Distributor URL is the Standalone server address.
+ノードを Grid から削除するには、以下の curl コマンドを使用します。
+このコマンドは、そのノード上で実行中のセッションを停止させるものではありません。
+ノードは明示的に強制終了されない限り、そのまま動作し続けます。
+ディストリビューターはそのノードを認識しなくなるため、マッチする新しいセッションのリクエストは はその Node に転送されません。
+
+スタンドアロンモードでは、ディストリビューターの URL はスタンドアロンサーバーのアドレスとなります。
+
+ハブ&ノードモードでは、ディストリビューターの URL は ハブのアドレスになります。
-In the Hub-Node mode, the Distributor URL is the Hub server address.
```shell
-cURL --request DELETE 'http://localhost:4444/se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET: '
+curl --request DELETE 'http://localhost:4444/se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET: '
```
-In the fully distributed mode, the URL is the Distributor server address.
+
+完全分散モードでは、ディストリビューター URL は ディストリビューターのアドレスになります。
+
```shell
-cURL --request DELETE 'http://localhost:5553/se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET: '
+curl --request DELETE 'http://localhost:4444/se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET: '
```
-If no registration secret has been configured while setting up the Grid, then use
+
+Grid の設定時に登録用の secret を設定していない場合は次のようにします:
+
```shell
-cURL --request DELETE 'http:///se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET;'
+curl --request DELETE 'http:///se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET;'
```
-### Drain Node
+### ノードのドレイン
-Node drain command is for graceful node shutdown.
-Draining a Node stops the Node after all the ongoing sessions are complete.
-However, it does not accept any new session requests.
+ノードドレインコマンドはノードをグレースフルシャットダウンするために利用します。
+ドレインは実行中のセッションがすべて完了した後にノードを停止します。
+新規のセッションは受け付けません。
-In the Standalone mode, the Distributor URL is the Standalone server address.
+スタンドアロンモードでは、ディストリビューターの URL はスタンドアロンサーバーのアドレスとなります。
+
+ハブ&ノードモードでは、ディストリビューターの URL は ハブのアドレスになります。
-In the Hub-Node mode, the Distributor URL is the Hub server address.
```shell
-cURL --request POST 'http://localhost:4444/se/grid/distributor/node//drain' --header 'X-REGISTRATION-SECRET: '
+curl --request POST 'http://localhost:4444/se/grid/distributor/node//drain' --header 'X-REGISTRATION-SECRET: '
```
-In the fully distributed mode, the URL is the Distributor server address.
+
+完全分散モードでは、ディストリビューター URL は ディストリビューターのアドレスになります。
+
```shell
-cURL --request POST 'http://localhost:5553/se/grid/distributor/node//drain' --header 'X-REGISTRATION-SECRET: '
+curl --request POST 'http://localhost:4444/se/grid/distributor/node//drain' --header 'X-REGISTRATION-SECRET: '
```
-If no registration secret has been configured while setting up the Grid, then use
+
+Grid の設定時に登録用の secret を設定していない場合は次のようにします:
+
```shell
-cURL --request POST 'http:///se/grid/distributor/node//drain' --header 'X-REGISTRATION-SECRET;'
+curl --request POST 'http:///se/grid/distributor/node//drain' --header 'X-REGISTRATION-SECRET;'
```
-## Node
+## ノード
-The endpoints in this section are applicable for Hub-Node mode and fully distributed Grid mode where the
-Node runs independently.
-The default Node URL is http://localhost:5555 in case of one Node.
-In case of multiple Nodes, use [Grid status](#grid-status) to get all Node details and locate the Node address.
+この節でのエンドポイントは、ハブ&ノードモードとノードが独立して動作する完全分散型 Grid モードに適用されます。
+ノードが 1 つの場合、デフォルトのノード URL は http://localhost:5555 です。
+複数のノードがある場合は、[Grid ステータス](#grid-ステータス) を使ってすべてのノードの詳細とノードアドレスを取得してください。
-### Status
+### ステータス
-The Node status is essentially a health-check for the Node.
-Distributor pings the node status are regular intervals and updates the Grid Model accordingly.
-The status includes information regarding availability, sessions, and slots.
+ノードステータスは基本的にノードのヘルスチェックのためのものです。
+ディストリビューターは定期的にノードの状態を ping で取得し、それに応じて Grid モデルを更新します。
+ステータスには稼働状況、セッション、およびスロットに関する情報が含まれます。
```shell
-cURL --request GET 'http://localhost:5555/status'
+curl --request GET 'http://localhost:5555/status'
```
-### Drain
+### ドレイン
-Distributor passes the [drain](#drain-node) command to the appropriate node identified by the node-id.
-To drain the Node directly, use the cuRL command enlisted below.
-Both endpoints are valid and produce the same result. Drain finishes the ongoing sessions before stopping the Node.
+ディストリビューターは [ドレイン](#ノードのドレイン)コマンドを適切なノードに渡します。
+ノードを直接ドレインするには以下の curl コマンドを使います。
+どちらのエンドポイントも有効であり、同じ結果になります。
+ドレインは、ノードを停止する前に進行中のセッションを終了させます。
```shell
-cURL --request POST 'http://localhost:5555/se/grid/node/drain' --header 'X-REGISTRATION-SECRET: '
+curl --request POST 'http://localhost:5555/se/grid/node/drain' --header 'X-REGISTRATION-SECRET: '
```
-If no registration secret has been configured while setting up the Grid, then use
+
+Grid の設定時に登録用の secret を設定していない場合は次のようにします:
+
```shell
-cURL --request POST 'http:///se/grid/node/drain' --header 'X-REGISTRATION-SECRET;'
+curl --request POST 'http:///se/grid/node/drain' --header 'X-REGISTRATION-SECRET;'
```
-### Check session owner
+### セッションオーナーのチェック
-To check if a session belongs to a Node, use the cURL command enlisted below.
+あるセッションがノードに属しているかどうかをチェックするには、以下の curl コマンドを使います。
```shell
-cURL --request GET 'http://localhost:5555/se/grid/node/owner/' --header 'X-REGISTRATION-SECRET: '
+curl --request GET 'http://localhost:5555/se/grid/node/owner/' --header 'X-REGISTRATION-SECRET: '
```
-If no registration secret has been configured while setting up the Grid, then use
+
+Grid の設定時に登録用の secret を設定していない場合は次のようにします:
+
```shell
-cURL --request GET 'http:///se/grid/node/owner/' --header 'X-REGISTRATION-SECRET;'
+curl --request GET 'http:///se/grid/node/owner/' --header 'X-REGISTRATION-SECRET;'
```
-It will return true if the session belongs to the Node else it will return false.
+もしセッションがノードに属していたら true を返し、そうでなければ false が返ります。
-### Delete session
+### セッションの削除
-Deleting the session terminates the WebDriver session, quits the driver and removes it from the active sessions map.
-Any request using the removed session-id or reusing the driver instance will throw an error.
+セッションを削除すると、WebDriver セッションが終了し、ドライバがアクティブなセッションマップから削除されます。
+削除されたセッション ID を使用するリクエストや、ドライバのインスタンスを再利用しようとすると、エラーとなります。
```shell
-cURL --request DELETE 'http://localhost:5555/se/grid/node/session/' --header 'X-REGISTRATION-SECRET: '
+curl --request DELETE 'http://localhost:5555/se/grid/node/session/' --header 'X-REGISTRATION-SECRET: '
```
-If no registration secret has been configured while setting up the Grid, then use
+
+Grid の設定時に登録用の secret を設定していない場合は次のようにします:
+
```shell
-cURL --request DELETE 'http:///se/grid/node/session/' --header 'X-REGISTRATION-SECRET;'
+curl --request DELETE 'http:///se/grid/node/session/' --header 'X-REGISTRATION-SECRET;'
```
-## New Session Queue
+## 新規セッションキュー
-### Clear New Session Queue
+### 新規セッションキューのクリア
-New Session Request Queue holds the new session requests.
-To clear the queue, use the cURL command enlisted below.
-Clearing the queue rejects all the requests in the queue. For each such request, the server returns an error response to the respective client.
-The result of the clear command is the total number of deleted requests.
+新規セッションキューには、新規セッションリクエストが格納されます。
+キューをクリアするには、以下に挙げる curl コマンドを使用します。
+キューを消去すると、キューにあるすべてのリクエストを拒否します。
+サーバーは各リクエストのそれぞれのクライアントにエラーレスポンスを返します。
+クリアコマンドの結果は、削除されたリクエストの数です。
-In the Standalone mode, the Queue URL is the Standalone server address.
+スタンドアロンモードでは、キューの URL はスタンドアロンサーバーのアドレスとなります。
-In the Hub-Node mode, the Queue URL is the Hub server address.
+ハブ&ノードモードでは、キューの URL は ハブのアドレスになります。
```shell
-cURL --request DELETE 'http://localhost:4444/se/grid/newsessionqueue/queue' --header 'X-REGISTRATION-SECRET: '
+curl --request DELETE 'http://localhost:4444/se/grid/newsessionqueue/queue' --header 'X-REGISTRATION-SECRET: '
```
-In the fully distributed mode, the Queue URL is New Session Queue server address.
+完全分散モードでは、キューの URL は 新規セッションキューのアドレスになります。
+
```shell
-cURL --request DELETE 'http://localhost:5559/se/grid/newsessionqueue/queue' --header 'X-REGISTRATION-SECRET: '
+curl --request DELETE 'http://localhost:4444/se/grid/newsessionqueue/queue' --header 'X-REGISTRATION-SECRET: '
```
-If no registration secret has been configured while setting up the Grid, then use
+Grid の設定時に登録用の secret を設定していない場合は次のようにします:
+
```shell
-cURL --request DELETE 'http:///se/grid/newsessionqueue/queue' --header 'X-REGISTRATION-SECRET;'
+curl --request DELETE 'http:///se/grid/newsessionqueue/queue' --header 'X-REGISTRATION-SECRET;'
```
-### Get New Session Queue Requests
+### 新規セッションリクエストの取得
-New Session Request Queue holds the new session requests.
-To get the current requests in the queue, use the cURL command enlisted below.
-The response returns the total number of requests in the queue and the request payloads.
+新規セッションキューには、新規セッションリクエストが格納されます。
+キューにある現在のリクエストを取得するには、以下に挙げる curl コマンドを使用します。
+レスポンスはキュー内のリクエストの数とリクエストのペイロードを返します。
-In the Standalone mode, the Queue URL is the Standalone server address.
+スタンドアロンモードでは、キューの URL はスタンドアロンサーバーのアドレスとなります。
-In the Hub-Node mode, the Queue URL is the Hub server address.
+ハブ&ノードモードでは、キューの URL は ハブのアドレスになります。
```shell
-cURL --request GET 'http://localhost:4444/se/grid/newsessionqueue/queue'
+curl --request GET 'http://localhost:4444/se/grid/newsessionqueue/queue'
```
-In the fully distributed mode, the Queue URL is New Session Queue server address.
+完全分散モードでは、キューの URL は 新規セッションキューのアドレスになります。
+
```shell
-cURL --request GET 'http://localhost:5559/se/grid/newsessionqueue/queue'
+curl --request GET 'http://localhost:4444/se/grid/newsessionqueue/queue'
+```
diff --git a/website_and_docs/content/documentation/grid/advanced_features/endpoints.pt-br.md b/website_and_docs/content/documentation/grid/advanced_features/endpoints.pt-br.md
index 277631e336d4..046e2ab41fb8 100644
--- a/website_and_docs/content/documentation/grid/advanced_features/endpoints.pt-br.md
+++ b/website_and_docs/content/documentation/grid/advanced_features/endpoints.pt-br.md
@@ -16,9 +16,20 @@ O status da Grid fornece o estado atual da grid. Consiste em detalhes sobre cada
Para cada nó, o status inclui informações sobre a disponibilidade, sessões e slots do nó.
```shell
-cURL GET 'http://localhost:4444/status'
+curl --request GET 'http://localhost:4444/status'
```
+### Deletar sessão
+
+A exclusão da sessão encerra a sessão do WebDriver, fecha o driver e o remove do mapa de sessões ativas.
+Qualquer solicitação usando o id de sessão removido ou reutilizando a instância do driver gerará um erro.
+
+```shell
+curl --request DELETE 'http://localhost:4444/session/'
+```
+
+### Which URL should I use?
+
No modo Standalone, o URL da Grid é o endereço do servidor Standalone.
No modo Hub-Node, a URL da Grid é o endereço do servidor Hub.
@@ -31,7 +42,7 @@ A URL padrão para todos os modos acima é http://localhost:4444.
### Remover Nó
-Para remover o Nó da Grid, use o comando cURL listado abaixo.
+Para remover o Nó da Grid, use o comando curl listado abaixo.
Ele não interrompe nenhuma sessão em andamento em execução nesse nó.
O Node continua rodando como está, a menos que seja explicitamente eliminado.
O Distribuidor não está mais ciente do Nó e, portanto, qualquer solicitação de nova sessão correspondente
@@ -41,15 +52,15 @@ No modo Standalone, a URL do distribuidor é o endereço do servidor Standalone.
No modo Hub-Node, a URL do Distribuidor é o endereço do servidor Hub.
```shell
-cURL --request DELETE 'http://localhost:4444/se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET: '
+curl --request DELETE 'http://localhost:4444/se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET: '
```
-No modo totalmente distribuído, a URL é o endereço do servidor Distribuidor.
+No modo totalmente distribuído, a URL é o endereço do servidor Router.
```shell
-cURL --request DELETE 'http://localhost:5553/se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET: '
+curl --request DELETE 'http://localhost:4444/se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET: '
```
Se nenhum segredo de registro foi configurado durante a configuração da Grid, use
```shell
-cURL --request DELETE 'http:///se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET;'
+curl --request DELETE 'http:///se/grid/distributor/node/' --header 'X-REGISTRATION-SECRET;'
```
### Drenar Nó
@@ -62,15 +73,15 @@ No modo Standalone, a URL do distribuidor é o endereço do servidor Standalone.
No modo Hub-Node, a URL do Distribuidor é o endereço do servidor Hub.
```shell
-cURL --request POST 'http://localhost:4444/se/grid/distributor/node//drain' --header 'X-REGISTRATION-SECRET: '
+curl --request POST 'http://localhost:4444/se/grid/distributor/node//drain' --header 'X-REGISTRATION-SECRET: