Skip to content

Conversation

@pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Dec 7, 2025

This PR updates selenium from 4.8.2 to 4.39.0.

Changelog

4.39.0

* Add CDP for Chrome 143 and remove 140
* [bidi]: add emulation command - `set_locale_override` (16504)
* [bidi]: add emulation command `set_scripting_enabled` (16513)
* Update docstrings to google pydoc format (16511)
* Update docstrings (remove reST leftovers and resolve D200) (16525)
* Fix docstring formatting and apply ruff linting rules (16527)
* Fix Ruff D417 warnings in docstrings (16535)
* Fix ruff D415 warnings in docstrings (16536)
* [bidi]: add `set_screen_orientation_override` command in Emulation (16522)
* Fix D205 ruff warnings for docstrings and add type hints (16537)
* [bidi]: add `set_download_behavior` command (16556)
* Fix more type annotations (16551)
* [bidi]: add emulation command `set_user_agent_override` (16595)
* Improve type hints with union syntax and native types (16590)
* Use daemon threads for WebSocket connections (16298)
* [bidi] Allow resetting viewport (16623)

4.38.0

* Add CDP for Chrome 142 and remove 139
* [py][bidi]: add set_timezone_override command in emulation (16500)
* Replaced :param: and :args: from docstrings (16469)

4.37.0

* Add CDP for Chrome 141 and remove 138
* Fix mypy errors in by file and exceptions file (16300)
* Update docstrings style according to google guideline (16445)
* Support Python 3.14 and drop Python 3.9 (16342)
* Update docstrings style (16427)
* Fix default rpId in virtual authenticator (16428)
* Raise NotImplementedError when deleting downloads in driver subclass (16423)
* Configure WebSocket timeout and wait interval via ClientConfig (16248)
* Re-add defaults for Chromium kwargs (16372)
* Add --enable-chrome-logs to chrome service args to inherit browser i/o streams (16202)
* Fix type annotations in the chromium webdriver file (16309)
* Raise InvalidSelectorException for compound class names (16291)

4.36.0

* Add CDP for Chrome 140 and remove 137
* close ipv6 port in case of error (16165)
* Update docstring and comments in keys.py (16187)
* Fix formatting (16189)
* Fix type annotation error and raise clearer error message (16174)
* Fix type annotation errors in service.py (16250)
* replace `platform.system()` with `sys.platform` (16259)
* Fix mypy type annotation issues in action_builder (16207)
* [bidi]: add `downloadEnd` event for browsing context (16209)
* Specify the full path for fedcm import in webdriver.py (16286)
* Fix mypy errors (16283)
* Update DesiredCapabilities example to use modern Options API (16295)
* Add args to is_url_connectable (16212)
* Convert all relative imports to absolute imports (16311)
* Raise InvalidSelectorException for compound class names (16291)
* Fix type annotations in the chromium webdriver file (16309)

4.35.0

* Add CDP for Chrome 139 and remove 136
* [bidi]: implement bidi module - emulation (15819)
* Allow free_port() to bind to IPv6 if IPv4 is unavailable (16003)
* Fix vendor prefix for Edge browser remote connections (16078)
* [bidi]: support `accept_insecure_certs` and `proxy` parameters in `create_user_context` (15983)
* Encapsulated Geo Location co-ordinates using `getters/setters` (16079)
* [bidi]: add `unhandled_prompt_behavior` param for `create_user_context` (16112)
* add `default` as a value for SameSite (16129)
* Use native dict for type annotation (16157)
* Fix proxy basic auth handling special characters (16105)
* fix WebView2 and target issues related to CDP and BiDi (16140)
* [bidi]: add event handler support for browsing context (16101)
* [bidi]: Implement low-level API for Input BiDi module (16049)

4.34.1

* Updated urllib3 due to security issue https://github.com/urllib3/urllib3/security/advisories/GHSA-48p4-8xcf-vxj5

4.34.0

* Add CDP for Chrome 138 and remove 135
* Upgrade type hints (15784)
* Fix type error for attribute in remote_connection.py (15810)
* Fixed type hint (15814)
* Fix import for type hint (15817)
* [bidi]: add `enable_webextensions` option for chromium-based browsers (15794)
* Fix type annotation errors (15841)
* Fixed type annotation issues (15847)
* [bidi]: implement bidi permissions module (15830)
* Fixed mypy error and change source var (15853)
* do not use global var for devtools, allows multiple devtools to run (15881)
* Fix : Mypy type annotation errors - 2 (15848)
* [bidi]: add `timestamp` to `HistoryUpdatedParams` class (15892)
* Fix possible TypeError in expected conditions (15891)
* Refactor server.py to use properties (15840)
* Add properties (getter/setter) for service args (15889)
* Fix error handler for non-json response bodies (15887)
* [bidi]: add BiDi script module commands (15880)
* Fix: Mypy type annotation errors in remote/webdriver.py (15900)
* Deprecate support for FTP proxies (15906)
* Type hint cleanup (15917)
* Adding Note to enable_webextensions() regarding CDP (plus gen docstring updates) (15927)
* Return HTTP response reason when remote connection error occurs (15942)
* [py] add macOS specific keys to Key enum (15948)

4.33.0

* Add CDP for Chrome 137 and remove 134
* [bidi]: add bidi storage module (15669)
* Add session_id property to webelement and fix mypy error  (15705)
* [BiDi] use constant for LogLevel (15677)
* Missing Headers Assignment in Network Class’s _on_request() (15736)
* Correct type annotations of default-None params (15341)
* Add missing 'id' property to ShadowRoot class (15739)
* Use ruff for linting and code formatting (15746)
* return `message` as part of exception in `execute` method (15751)
* [bidi]: Add bidi webExtension module (15749)
* Better error for downloads on local webdrivers (15756)
* Add missing modules to python API docs (15779)

4.32.0

* Add CDP for Chrome 136 and remove 133
* BiDi Network implementation of Intercepts and Auth in Python (14592)
* Fix select being able to select options hidden by css rules (15135)
* [bidi]: Implement BiDi browser module  (15616)
* Call service.stop() when session can't be started (15636)
* Remove logging API for non-Chromium browsers  (15641)
* Raise TypeError when creating webdriver.Remote() without options (15619)
* Add autoflake linter and update linting dependencies (15643)
* Fix driver service stop when starting browser fails (15656)
* [bidi]: add bidi command `session.status` and encapsulate in Session class (15615)
* Set remote active protocol in Firefox to BiDi only
* [bidi]: Implement BiDi `browsing_context` module (15631)
* [BiDi] separate log module from script module and add more tests (15668)
* Add client_config property and update deprecation messages (15674)
* Remove support for GLOBAL_DEFAULT_TIMEOUT environment variable (15673)
* Server class to manage (download/run) grid server (15666)

4.31.0

* Add CDP for Chrome 135 and remove 132
* Fix docstring issues that sphinx complains about (15466)
* service: only shutdown if process not terminated (15183)

4.30.0

* Add CDP for Chrome 134 and remove 131
* Remove support for v85 since no longer required by Firefox
* expected_conditions: correct type annotation (15337)
* use `By` class attributes instead of strings in locator converter (15402)
* fix invalid selector bug for mutation observation
* improve socket resource management with proper shutdown sequence (15453)

4.29.0

* Add CDP for Chrome 133 and remove 130
* [py] Disable strict time stamps in Firefox profile (15141)
* [py] Enhance PrintOptions to support default, predefined, and custom page sizes (15052) (15064)
* [py] Remove Firefox CDP (15200)
* [py] Handle named `get_cookie` and `delete_cookie` for None and empty strings (15073)
* [py] Document cygwin path for `send_keys` (15275)
* [py] Fix return type and docstring of get_downloadable_files (15292)

4.28.1

* [py] Fix installing most of the data from source distributions

4.28.0

* Add CDP for Chrome 132 and remove 129
* [py] fix packaging (14823)
* [py] Typing package import enhancement (14283)
* [py] moved all getters in `fedcm/account.py` into descriptor object. (14858)
* [py] add execute_cdp_cmd to Remote (14809)
* Added more detailed docstrings to find_element() (14930)
* [py] Refactored `remote/client_config.py` by moving `properties` into `descriptor` object (14899)
* py: Ensure DRIVER_PATH_ENV_KEY defaults to string (14862)
* [py] add doc for driver_path_env_key (14997)
* [py] Fix WebKitGTK driver name check (15046)
* [py] Upgraded WebDriverWait Docstrings (15054)
* [py] Added Docstrings to ActionBuilder (15065)
* [py] Upgraded WebElement Docstrings (15056)
* [py] Upgraded WebDriver Docstrings (15055)
* [java][js][py] Add straight relative-by locators (14482)
* [py] Added Docstrings to RelativeBy Class and Added Missing Deprecation Warning to with_tag_name() (15097)

4.27.1

* Fix `pyproject.toml` for installable from sdist (14806)
* Revert the Deprecation warnings of WebElement.get_attribute() (14808)

4.27.0

* Add CDP for Chrome 131 and remove 128
* Add Firefox CDP deprecation warnings (14787)
* Cleaned up Py doc sphinx warnings/errors and added README (14191)
* Added Deprecation of WebElement.get_attribute() per 13334 (14675)
* Fix TypeError when init Safari webdriver (14699)
* Set user_agent and extra_headers via ClientConfig (14718)
* Updated Handling for DetachedShadowRoot Exception (14677)
* Support FedCM commands (14710)

4.26.1

* DeprecationWarning raised in default webdriver init (14690)
* Remote connection use timeout from ClientConfig (14692)
* Add backward compatibility for AppiumConnection (14696)

4.26.0

* Add CDP for Chrome 130 and remove 127
* Added more internal logging for CDP (14668)
* Set consistent polling across java and python for `WebDriverWait` methods (14626)
* webkitgtk: log_path -> log_output (14618)
* Implement configurable configuration class for the http client (13286)
* Better compatibility with Appium-python (14587)
* Avoid waiting indefinitely on a frozen chromedriver process (14578)
* Allow logging diagnose in safari driver (14606)
* Remote connection throws response status code when data is empty (14601)
* Remove deprecated parameter from EdgeService (14563)
* Allow driver path to be set using ENV variables (14528)
* Remove un-needed print (14562)
* Fix a bug in `bidi/session.py` by removing mutable object as default value for function argument (14286)

4.25.0

* Add CDP for Chrome 129 and remove 126
* fix type errors for `service.py`, `cdp.py`, `webelement.py` and `remote_connection.py` (14448)
* fix type errors for `input_device` and `file_detector` (14459)
* fix type errors for `pointer_input.py`, `wheel_input.py` and `firefox/options.py` (14476)
* firefox_profile.py: use `with` statement in zipfile as Python 2.x support is dropped (14489)

4.24.0

* Allow overriding `GLOBAL_DEFAULT_TIMEOUT` (14354)
* fix mypy errors for `timeouts.py` and `print_page_options.py` (14362)
* fix mypy errors for `input_device.py`, `ie/options.py` and `selenium_manager.py` (14377)
* fix type errors for `log.py`, `chromium/options.py`, `websocket_connection.py` and `chrome/options.py` (14392)
* Add CDP for Chrome 128 and remove 125

4.23.1

* Fix 14278 and match ordering of dependencies (14297)

4.23.0

* Disable strict time stamps in Firefox profile (14168)
* Update the py api doc build (14173)
* Add websocket-client v.1.8.0 to setup.py (14187)
* Remove precompiled binaries from sdist (14233)
* Fix RelativeBynear to take 2 parameters (13082)
* Add CDP for Chrome 127 and remove 124

4.22.0

* Fix EOFError when calling the Remote WebDriver download_file method (14031)
* Add low-level sync API to use DevTools (13977)
* Add preference to enable CDP in Firefox by default (14091)
* Allow using enable_bidi property on options class
* Implement script module for BiDi
* Remove desired capabilities argument for Webkitgtk (14128)
* Make webkitgtk.webdriver same as wpewebkit.webdriver
* Add CDP for Chrome 126 and remove 123

4.21.0

* Add CDP for Chrome 125 and remove 122
* Moving ignore_local_proxy_environment_variables to BaseOptions (13926)

4.20.0

* Add CDP for Chrome 124 and remove 121
* Add type hints for selenium.webdriver.remote.webdriver.WebDriver.__init__ (13775)
* Add types to set_window_position parameters (13786)
* Making Selenium Manager a thin wrapper (13387)
* This change has been made to make 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.

4.19.0

* Add CDP for Chrome 123 and remove 120
* Add more network interfaces to detect lan ip (13663)
* install_addon() didn't take into account dir paths with trailing slashes (13694)
* Explicitly export Select and WebDriverWait from selenium.webdriver.support.ui (13491)
* Add return type to webelement.submit (13490)
* Add type to parameter of webelement.WebElement.send_keys (13492)

4.18.1

* Add CDP for Chrome 122 and remove 119

4.18.0

* Update linting dependencies
* Setting Python for nightly releases - https://test.pypi.org/project/selenium/

4.17.2

* [py] Correct typing_extension dependency for wheel generation

4.17.1

* Fix typo in setup.py (13487)

4.17.0

* Add page load strategy enum (13258)
* Use correct file name when bumping versions (13282)
* Filter which bidi logs are recorded based on event type (12951)
* Add python to Selenium Manager input for tracking (see 13288)
* Sleep depending on the number of attempts to check if the service has started (13321)
* Use subprocess.DEVNULL instead of open(os.devnull) to avoid leaking a file handle (13329)
* Remove all references to firefox-bin
* Check if architecture/platform combination is supported for Selenium Manager (13381)
* Remove extension connection class and other usages of webdriver.xpi
* remove deprecated verbose argument from edge service
* remove deprecated desired_capabilities property from webdriver
* remove deprecated application cache support
* truncate large strings when logging requests
* Update WPEWebKit support code (13278)
* [py] Fix WPEWebKit python support code
* Do not change profile preferences of an existing directory by default (13477)
* Deprecate firefox profile methods that are not supported (13477)
* deprecate FirefoxBinary class (13476)
* Fix type error in mypy (13482)
* Add CDP for Chrome 121 and remove 118

4.16.0

* Fix inadvertent code change in mutation_event
* Fix bug in using SE_MANAGER_PATH
* Fix bug where downloaded file was not getting unzipped
* Add more logging to driver startup
* Fix WebDriverWait type hints for WebElement (13108)
* Clean up of usage of executable path in services
* Don't leak a file descriptor to os.devnull by default (13162)
* Allow bsd operating systems to use the linux binary
* Close trio memory channel sender after the driver is quit (13151)
* Remote webdriver cannot match Chromium browser name for remote connection
* Remove deprecated reuse_service parameter from Safari driver constructor
* Remove deprecated quiet parameter from Safari service constructor
* Ensure all drivers stop service during driver quit
* Update chromium driver constructors for readability
* Add CDP for Chrome 120 and remove 117

4.15.2

* Fix bug for unzipping downloaded files

4.15.1

* Fix bug in using SE_MANAGER_PATH
* Fix inadvertent code change in mutation_event

4.15.0

* Return a `pathlib.Path` when `SE_MANAGER_PATH` is set. closes 12929
* Do not set browser binary in selenium manager if it is an empty string (12738)
* Add CDP v119 and remove v116
* Remove selenium manager accommodation for Conda
* Implement file downloads (12979)
* Add some type hints to selenium.webdriver.support (13070)

4.14.0

* add CDP files for v118 and remove v115
* use lazy string interpolation for logging calls
* Fix dangling log_output in Service (12871)

4.13.0

* add CDP files for v117 and remove v114
* do not send parameters in payload that are used in endpoint (12685)
* close out driver logging on quit (12637)
* disable console appearing on windows when running in pythonw (12715)
* remove deprecated headless methods
* fix bug preventing using performance logging in chromium
* remove deprecation notice from Firefox profiles
* Allow users to set Selenium Manager path by environment variable (12752)

4.12.0

* Add CDP files for v116 and remove v113
* fix bug in ElementScrollBehavior in IE Options (12462)
* fix bug preventing sending keys with long strings (12474)
* fix typing for action_chains (12477)
* fix typing for IE Options (12464)
* fix bug in common options (12499)
* allow setting http client certifications with REQUESTS_CA_BUNDLE env (11957)
* support conda installation of selenium manager (12536)
* Drop support for `python3.7`
* Fixed a bug where `Popen.wait()` calls caught the wrong exceptions when timing out

4.11.2

* better bug fix for 12454

4.11.1

* Delete unusable Safari Options parameters to fix bug preventing Safari execution (12454)

4.11.0

* Add CDP files for v115 and remove v112
* removed redundant attributes `capabilities` and `set_capability` in wpewebkit/options.py (12169)
* mapped all error codes in `errorhandler.py` to corresponding exception object. (12190)
* improve driver logging (12103) - implement log_output() for flexibility and consistency of driver logging
* fix property name in Selenium Manager (12237)
* used truthy check instead of checking for length in `to_capabilities` method in `ie/options.py` (12262)
* remote commands dict is moved outside `RemoteConnection` class in `remote/remote_connection.py` (12261)
* moved `ConnectionType` class outside `Mobile` class to avoid nesting of classes (12256)
* used `pathlib` module to check if the file exist in `remote/file_detector.py` (12253)
* added truthy check in chromium options instead of identity operator (12274)
* added pythonic approach of type checking in `firefox/firefox_profile.py` (12271)
* let users pass service args to IE driver (12272)
* Adding ignore process match for IE Mode across bindings (12279)
* moved all ie options to custom descriptors. (12283)
* minor ie-options fix to PR 12283 (12309), fixes 12283
* added type hints to `SwitchTo` class (12296)
* Refactored Proxy object in common/proxy.py using custom descriptor. (12286)
* optimized Timeouts class by moving timeouts to descriptor class (12287)
* added type hinting support to ActionChains and Alert class (12290)
* Moved all `PrintOptions` class attributes to custom descriptor class. (12297)
* Use Selenium Manager to locate drivers on PATH (12356
* Enable cdp to work for edge
* Update docstring of wait.py so it can also cover the case of WebElement as 1st arg of WebDriverWait. (12376)
* Added type hinting support to `common/actions` libraries. (12325)
* Fix type of `ignore_proxy` in `ChromiumRemoteconnection`
* set exception direct cause when switching frame focus when NSE is raised
* Raise a more generic `ValueError` when proxy type is not acceptable
* Add browser output from selenium manager to options (12404)
* Add check=False explicitly to subprocess calls; simplify `keys_to_typing`
* Expose `WPEWebKitService` and `WebKitGTKService` in the public API
* Remove deprecated `ActionChains.scroll(...)`
* Removed unused variable `DEFAULT_SAFARI_CAPS` in `safari/webdriver.py` (12416)
* Added type checks in `setter` methods of different browser options (12328)
* Add creation flag for windows in selenium_manager (12435)
* Fix checking window handles for current

4.10.0

* Add CDP files for v114 and remove v111
* Fix bug preventing proxy from working in Options classes (12029)
* Add proxy support for Selenium Manager (12032)
* Additional updates to typing (12067, 12106)
* Add support for changing pointers in Actions class (11521)
* Remove browser filters for shadow root element searches (12112)
* Remove significant amounts of deprecated code (12030)
* Improve near relative locator behavior (11290)
* Change Selenium Manager logging to debug (12145)
* Add links to documentation in error messages (12156)
* Add custom error class for driver location and improve error logic
* Fix bug in BiDi mutation events

4.9.1

* Add CDP files for v113 and remove v110
* Minor fixes for docstring and dictionary declarations (11975)
* Update logging to match other bindings (11990)
* Support newer versions of urllib3 (11993)

4.9.0

* Remove "shadow_root" assertion in Python bindings for Firefox (11821)
* Simplify driver binary and driver location selecting (11864)
* Do not pass desired caps in Safari (11854)
* Selenium Manager get Browser Version from Options classes
* Selenium Manager use binary from Browser Options
* Adding v112 and removing v109

4.8.3

* Add fine grained control for arguments provided to service subprocesses by passing a `popen_kw` mapping for all services.
* `Options` classes now allow `timeout` to be set partially and no longer raise an exception when all values are not provided. (11623)
* No longer sending `SIGKILL` to subprocesses in instances where `SIGTERM` was successful within 60 seconds.
* Add CDP files for v111 and remove v108
* Pass default to `pop` when parsing service popen_kw
* Using json output with Selenium Manager
* Sphinx config update to keep invoked methods and shorter aliases in documentation (11802)
Links

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants