v4.1.0
·
6 commits
to master
since this release
webdriver-manager 4.1.0
This release focuses on stability, platform compatibility, and CI reliability across Chrome/Chromium, Firefox, Edge, and Opera flows.
Highlights
Chrome / Chromium
- Improved Chrome for Testing (CfT) resolution and fallback behavior.
- Added robust handling for missing exact build metadata (fallback to milestone-level metadata).
- Added safer metadata parsing paths and improved error messages.
- Improved Windows platform selection: prefer
win64on 64-bit hosts with safe fallback towin32when needed.
Firefox
- Fixed Linux ARM64 (
aarch64) mapping to use correctlinux-aarch64GeckoDriver artifacts. - Improved architecture detection stability for ARM/Linux environments.
Edge
- Updated Edge driver source endpoint and improved OS/platform mapping behavior.
Opera
- Fixed install flow when cache returns a direct binary path (prevents
NotADirectoryError). - Improved cache/extraction resilience for file-vs-directory conflicts in extracted archives.
Cache / Concurrency / Download Stability
- Reduced repeated metadata/network lookups by caching resolved driver version internally.
- Added inter-process locking and post-lock cache recheck to prevent concurrent install races.
- Improved extraction robustness in concurrent/busy-file scenarios.
- Improved cache path fallback behavior for read-only/invalid HOME environments (Docker/serverless/PyInstaller-related cases).
Logger
set_logger()now accepts logger-like objects exposinglog(level, message)(not onlylogging.Logger).
Docs
- Clarified package/import naming (
webdriver-managervswebdriver_manager). - Clarified environment scope (desktop browser runtime vs Android/PyDroid).
- Added guidance for Docker/CI cache path usage.
CI / Tooling
- Updated workflows and expanded compatibility checks.
- Added non-blocking future-python coverage jobs.
- Modernized build flow usage in workflows.
Notes
If you are upgrading from older 4.0.x setups, we strongly recommend clearing stale .wdm cache in CI/containerized environments to avoid legacy artifact/path conflicts.