Introduction
Ensuring browser compatibility is crucial to maintaining test stability when running Selenium tests in a CI/CD pipeline. Recently, while executing tests in my Selenium Python example project, I encountered a breaking issue related to ChromeDriver v133 and Xvfb. This issue prevented Selenium from executing JavaScript code properly, causing tests to fail unexpectedly.
In this article, I’ll walk you through the issue, its root cause, and the solution I implemented to restore test execution.
The Problem
During a test run, I observed the following log output in the GitHub actions workflow run:
The key takeaway from this error log was:
- Selenium Manager detected Chrome v133 and attempted to use the corresponding ChromeDriver v133.
- When attempting to execute JavaScript using
Runtime.evaluate
, ChromeDriver returned an unknown error. - This issue is likely related to
Xvfb
, which is commonly used to run headless browsers in Linux-based CI/CD environments. - Maximizing the browser window in Selenium fails on Chrome v133 in Linux environments, as reported by other users in the test automation community.
The Solution
The solution code can be found here.
After debugging the issue, I found that Chrome v133 had a compatibility problem when used with Xvfb in Selenium tests. The simplest solution was to pin the browser version to v132 using Selenium’s built-in browser version setting.
Here’s the fix that worked for me:
Why This Works
By explicitly setting , we instruct Selenium Manager to:
- Download and use ChromeDriver v132, which is known to work reliably.
- Ensure that the installed Chrome version matches ChromeDriver v132, preventing compatibility issues.
- Avoid the buggy behavior observed in Chrome v133, restoring stable test execution.
Key Takeaways
- Verify browser and driver versions when encountering test failures.
- Utilize Selenium Manager’s option to specify a stable version when necessary.
- Stay informed about known issues with new browser releases, especially in headless environments like Xvfb.
- If maximizing the browser window fails in Linux environments, consider using it as an alternative until a fix is available.
Conclusion
Implementing this solution resolved the issues in my Selenium tests. If you’re experiencing similar challenges in your automation pipeline, consider pinning your browser version to maintain stability.
Happy testing!