-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Blog about chrome moving to forthnightly releases #2601
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
+52
−0
Merged
Changes from 2 commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| title: "Blog Posts - 2026" | ||
| linkTitle: "2026" | ||
| weight: 86 | ||
| --- |
89 changes: 89 additions & 0 deletions
89
website_and_docs/content/blog/2026/chrome_fornightly_releases.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,89 @@ | ||
| --- | ||
| title: "The Fortnightly Flutter: Why Chrome’s New Cadence is a 'Non-Event' for Selenium Users" | ||
| linkTitle: "Chrome Moves to fortnightly releases" | ||
| date: 2026-03-10 | ||
| tags: ["selenium"] | ||
| categories: ["general"] | ||
| author: David Burns [@automatedtester](https://www.linkedin.com/in/theautomatedtester//) | ||
| description: > | ||
| This blog post discusses the move of Chrome going to do a 14 day release cycle and how it's mostly a non-event for Selenium users. | ||
| --- | ||
|
|
||
|
|
||
| If you’ve been following the Chromium blog, you’ll have seen the news: Chrome is moving to a fortnightly (two-week) release cycle. Starting in September 2026, the pace of the web is effectively doubling. For the uninitiated, this sounds like a recipe for "Broken Test Friday." In the old days of manual driver management, a faster release cadence meant more frequent SessionNotCreatedException errors and more time spent hunting for the right chromedriver binary to match your updated browser. | ||
|
|
||
| But I’m here to tell you: Don’t panic. If you are using a modern version of Selenium (v4.11 or newer), this change is effectively a "non-event." Thanks to Selenium Manager, the days of manually synchronizing your browser and driver are over. | ||
|
|
||
| ## The Problem: The Versioning Treadmill | ||
|
|
||
| Historically, automation engineers were stuck in a reactive loop. Chrome would auto-update in the background, your tests would fail because the driver on your PATH was stale, and you'd spend your morning manually downloading a .zip file. | ||
|
|
||
| As the release cycle moves to every two weeks, the "manual" cost of maintenance becomes unsustainable. You shouldn't be a "Binary Manager"; you should be a Test Engineer. | ||
|
|
||
| ## The Solution: Selenium Manager & Chrome for Testing (CfT) | ||
|
|
||
| A few years ago, the Selenium project introduced Selenium Manager, a tool bundled with every Selenium release. It works in tandem with Google’s Chrome for Testing (CfT)—a dedicated flavor of Chrome specifically for automation that doesn't "stealth update" and has its own versioned endpoints. | ||
|
|
||
| When your code starts a session, Selenium Manager silently handles the heavy lifting: | ||
|
|
||
| Detection: It checks which version of Chrome is currently on your machine. | ||
|
|
||
| Resolution: It discovers the matching ChromeDriver version via the CfT endpoints. | ||
|
|
||
| Acquisition: If Chrome isn't found (or you need a specific version), it downloads the correct Chrome for Testing binary and the driver for you. | ||
|
|
||
| Caching: It stores these in `~/.cache/selenium` so you aren't re-downloading them every time. | ||
|
|
||
| ## What this looks like in practice | ||
|
|
||
| You don't need to change your code to handle the fortnightly updates. If you have a standard setup, it just works. Here is how it looks across the bindings: | ||
|
AutomatedTester marked this conversation as resolved.
Outdated
|
||
|
|
||
| Java | ||
| {{< tabpane langEqualsHeader=true >}} | ||
| {{< tab header="Java" >}} | ||
| // No System.setProperty needed for chromedriver | ||
| WebDriver driver = new ChromeDriver(); | ||
| // Selenium Manager automatically resolves the driver & browser behind the scenes. | ||
| {{< /tab >}} | ||
| {{< /tabpane >}} | ||
|
|
||
| Python | ||
| {{< tabpane langEqualsHeader=true >}} | ||
| {{< tab header="Python" >}} | ||
| from selenium import webdriver | ||
|
|
||
| # No executable_path required | ||
|
|
||
| driver = webdriver.Chrome() | ||
|
AutomatedTester marked this conversation as resolved.
Outdated
|
||
|
|
||
| # Even if Chrome updates every two weeks, Selenium Manager fetches the right bits | ||
|
|
||
| {{< /tab >}} | ||
| {{< /tabpane >}} | ||
|
|
||
| Taking Control of Versions | ||
| While Selenium Manager handles the "latest" version by default, the move to a fortnightly cycle might make you want to pin your versions to ensure stability across your CI/CD pipelines. You can do this easily through ChromeOptions: | ||
|
AutomatedTester marked this conversation as resolved.
Outdated
|
||
|
|
||
| {{< tabpane langEqualsHeader=true >}} | ||
| {{< tab header="Python" >}} | ||
| from selenium import webdriver | ||
| from selenium.webdriver.chrome.options import Options | ||
|
|
||
| options = Options() | ||
|
|
||
| # Pin to a specific fortnightly release | ||
|
AutomatedTester marked this conversation as resolved.
Outdated
|
||
|
|
||
| options.browser_version = "153" | ||
|
|
||
| driver = webdriver.Chrome(options=options) | ||
| {{< /tab >}} | ||
| {{< /tabpane >}} | ||
|
|
||
| In this scenario, Selenium Manager will see you want version 153, find the correct CfT binary, download it, and run your tests against that specific version—regardless of what the "regular" Chrome on your machine is doing. | ||
|
|
||
| The Bottom Line | ||
| The web is moving faster, and browser vendors are shipping features and security patches at an incredible rate. Our goal at Selenium is to ensure that the infrastructure of your tests remains invisible. | ||
|
|
||
| The move to a two-week cycle is a testament to how far web engineering has come. With Selenium Manager, you can enjoy the benefits of a modern browser without the headache of manual maintenance. | ||
|
|
||
| Keep your tests green and your drivers automated. | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.