This PR pins selenium to the latest release 4.24.0.
Changelog
### 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)
```
### 4.8.2
```
* Update tox.ini for a valid "isort" version (11667)
* Undo a bug fix that caused a worse bug. (11666)
```
### 4.8.1
```
* Add CDP files for v110 and remove v107
* pylint fixes including tidy of f strings, simplifications of conditional statements and isinstances (11205)
* Replace devtools genrule with proper generate_devtools rule. (11392)
* Add docstring for `alert_is_present`
* Updating Selenium Manager binaries for 4.8.1 release
```
### 4.8.0
```
* Add CDP files for v109 and remove v106
* Add logging to Selenium Manager for both stdout and stderr
* Multiple updates and improvements to types
* Fix sdist tar package_dir (11416)
* Add comment with name of large JS executions (11038)
* Deprecate headless property for chromium and firefox options classes (11467)
```
### 4.7.2
```
* Put selenium manager bug fix from 4.7.1 in the correct place
```
### 4.7.1
```
* Fix bug preventing selenium manager from using Internet Explorer
```
### 4.7.0
```
* Add CDP files for v108 and remove v105
* Improve error handling with Selenium Manager (11329)
* Fix bug preventing alternate package managers from using Selenium Manager (11234)
```
### 4.6.1
```
* Replace response.getheader() with response.headers.get() (deprecated in urllib3 1.26.13).
* Fixed a bug in `Service` destructors accessing modules that no longer existed during interpreter shutdown.
* Improved exception messages when raising for `relative` locator issues.
```
### 4.6.0
```
* Document firefox `service=` arg. closes 11067
* Additional types and tidying safari service
* Revert removal of default executable global for safari
* Additional types; remove unused `permissions.py`
* Remove `RemoteDriverServerException`
* Remove unused `send_remote_shutdown_command` implementations in services
* Update `log_path` docs for non chromium based services
* Make `get_screenshot_as_file()` work with pathlib.Paths (11095)
* Remove `protocols.py`
* fix typing in get_full_page_screenshot_as_png (11163)
* typo in error message (11166)
* Adding CDP files for v107 and removing v104
* add initial support for selenium manager
* Revert "[py] do not allow Select class to work with disabled selects"
* 11093 - The SessionId shouldn't be added to params themself bu… (11121)
```
### 4.5.0
```
* Fix frame_to_be_available_and_switch_to_it() for string inputs (10963)
* Implicit non w3c capability conversion for `acceptSslCerts`, `platform` and `version` is now deprecated
* Additional type hints
* Bugfix options returning `None` when strict_file_interactability, set_window_rect or accept_insecure_certs are not set
* Add CDP for v105, remove support for v102
* Add CDP for v106, remove support for v103
```
### 4.4.3
```
* Update explicit dependency for certifi to remove upper bound (10956)
```
### 4.4.2
```
* Add explicit dependency for certifi (10953)
```
### 4.4.1
```
* Removal of urllib3[secure] extras (deprecated) dependency
```
### 4.4.0
```
* More flexibility in locating Firefox binary (10818)
* Add CDP for v104, remove support for v101
* Throw error when setting w3c to False on Chromium, and warning when setting w3c to True
```
### 4.3.0
```
* Deprecated find_element_by_* and find_elements_by_* are now removed (10712)
* Deprecated Opera support has been removed (10630)
* Fully upgraded from python 2x to 3.7 syntax and features (10647)
* Added a devtools version fallback mechanism to look for an older version when mismatch occurs (10749)
* Better support for co-operative multi inheritance by utilising super() throughout
* Improved type hints throughout
```
### 4.2.0
```
* Fix bug preventing Firefox from setting accept_insecure_certs to False (10442)
* Deprecated opera classes as not w3c compatible (10379)
* Fix SecurityError: Invalid Domain problem (10653)
* Implement convenience methods for scrolling
```
### 4.1.5
```
* use `typing_extensions` to be compatible with `py37` (10613)
```
### 4.1.4
```
* Hook options class in safari driver (10433)
* Remove universal wheel, python 2 is unsupported (10438)
* Fix `tox -e docs` by pinning `Jinja2` (10492)
* Add support Chrome 100 and remove for Chrome 97
* Removed desired capabilities from handshake code (10494)
* Invalid selector exceptions are is not a no such element exception
* Do not convert tag name to css selector
* Add debug logging for urllib response data (10568)
* Use monotonic clock for waits, fixes 10544 (10550)
* Adding Chrome DevTools 101 and removing 98
* Add the ability to create sdist package of the python bindings
* Remove unicode prefix for strings (10562)
* Use `get_timeout()` for urllib pool manager timeouts in remote connection (10563)
* Fixing "--connect-existing" 10598
* Added DeprecationWarning to the warnings.warn methods inside the find_element_by_x methods (10575)
* Added virtual authenticator for Python Bindings (10579)
```
### 4.1.3
```
* fix generated wheel asset (10022)
* add support for proxy authentication (10358)
* add Safari options (10385)
* add support for Firefox to install unpacked addons (10308)
* add support for Chrome 99 and remove support for Chrome 96
```
### 4.1.2
```
* Include `py.typed` in the library
```
### 4.1.1
```
* add support for Chrome 98 and remove support for Chrome 95
* Add py.typed file (10310)
* Elaborate find_element deprecation message (10273)
* add support for Chrome v97
* convert selectors for finding elements in shadow dom
* missing self for service args
* don't use websocket-port if user sets connect-existing (a4dc6e)
* update tests for current IE options
* fix firefox addon tests
* Support new Cast command added to Chrome Devtools (10150)
* send Base64 encoded addon to driver instead of path String
* Reflect how find_elements returns a list, not just one WebElement. (10172)
* add shadowroot to api docs
* add log reference to api rst file
* remove non breaking space for doc generation
* Updating exceptions file for docs
* Add type hinting to Shadowroot
* update ShadowRoot find element signatures to match those in WebElement (10138)
* add Zenkaku/Hankaku key
* raise `NoSuchElementException` for relative failures instead of `IndexError` (10078)
* Remove legacy in favour of W3C endpoints. (10075)
* Tidy relativeby docs, use non deprecated methods in webserver (10077, 10103, 10108, 10186, 10212, 10120)
* PEP 484 type hints s (10099)
* Handle Socks Proxy for Remote Connections. Fixes 10091
* Add extra attributes to pointer down and pointer move actions
* Add Scroll via Wheel Inputs and Wheel Actions
```
### 4.1.0
```
* add warning if people set w3c to false as it may break their tests
* Fix wrong type annotations for "env" it's a dict not a string (10072)
* Added default executable path in service module for (10057)
* Fix typos for docstrings (10052)
* Fix return type hint in get_screenshot_as_png (10060)
* Add CDP for v96, remove support for v92 and v93
* Add support for shadow dom end points
* Upgrade sphinx to use latest
* Correct docstrings around Service usage
* XFail alert tests due to https://bugzilla.mozilla.org/show_bug.cgi\?id\=1731795
* Remove py2 import code
* Check the values in NO_PROXY and set the poolmanager accordingly (9925, 9967)
* Move python version to a variable to be shared about in build steps
* Bump Bazel rules_pkg to 0.5.1
```
### 4.0
```
* Update driver initialisation to use service and option objects
* turn on keep-alive by default for remote connections (7072)
* Fix ConnectionResetError
* Add new Cast commands
* Suggest download Microsoft Webdriver over HTTPS
* Clear PoolManager in ‘remote_connection’ to ensure sockets are closed
* remove --disable-gpu option for headless Chrome
* Add support for the New Window command (6873)
* Update docstrings in Options classes to allow documentation to highlight Return values
* Fix typos in select.py (6925)
* Remove native events handling code
* Deleting unused imports, fixing flake8 issues
* Remove unused port selection in IE Driver
* Enabling tests xpassed in Chrome
* Pretty-printing code samples
* remove all deprecated methods and args from Python bindings
* Fix DeprecationWarning: invalid escape sequence
* Don't override browser options with desired capabilities by default in WebKitGTK (6814)
* Add WebKitGTK to API docs (6815)
* Subclass options classes from a common base class (6522)
* Update Sphinx (6728)
* WebDriverWait: update documentation for until and until_not (6711)
* Fix typo in description of WebDriver class (6724)
* add strictFileInteractability to acceptable W3C capabilities
* Deprecate Blackberry Driver support
* Fixing/tidying docstring.
```
### 4.0.0
```
* Add cdp 95 to python and JS
* Remove Edge legacy options. (9908)
* Expected condition for checking attribute value (9881)
* implement relative locator for find_element (9902)
* Fix python generation code for CDP to optionals better
Selenium 4 Release Candidate 3
* Fix CDP Code Generation broken by Chromium 94
* Fix Deprecation warnings for IE Bindings. Fixes 9818
Selenium 4 Release Candidate 2
* Add new websocketUrl capability
* Force free ports for cdp in geckodriver
* Add w3c capabilities to Python options (9870)
* expected_conditions and wait modules raises InvalidSelectorException for invalid xpaths (9805)
* implement chromium specific endpoint for setting permissions
* implement chromium specific endpoint for deleting network conditions
* update ruby, python and JS to add support for v94 and remove support for v92
* Fix type hint on chrome option method (9840)
* Allows None to be set for the sameSite attribute (9771)
* Fix typo in python webdriver for IE (9801)
Selenium 4 Release Candidate 1
* Remove cdp versions 88, 89, and 90
* Replace v91 with v93 in bazel files
* update IE options class in each language to match the currently supported capabilities in the IE Driver
* Specify that the "find_element_by_* ..." warning is a deprecation warning (9700)
* clean up imports
* Use options when passing things to remote webdriver instead of capabilities (9678)
* Correct deprecation message in IE handling code
* Rewrite the logging module for bidi connections
* remove non-w3c compliant parameters from default capabilities
* Run type checks in CI and report typing coverage to codecov (9523)
* PEP 484 Type Hints added
* Handle first/always match better when it hits lists/dicts. Fixes 9538
* correct tox warnings
* Fix deprecation warnings for Safari (9577)
* Allow 0 coordinates for the window position. Fixes 9574
* Fix incorrect use of 'NoReturn' type annotation. (9540)
Selenium 4 Beta 4 (The Final Beta)
* Returning fixed IP in GitHub actions (9550)
* PEP 484 type hints for common.exceptions and webdriver.support.color (9482)
* Add the ability to pass in multiple options and have that capabilities returned as (first|always)Match
* Add docstrings for RelativeBy
* Add the ability to pass in different locators to do Relative Locator searches
* Add a test with returning a JS Const object 9468
* Handle poor responses from drivers when there are errors. Fixes 9437
* Add the ability to enable mobile on options classes
* Add the ability to use Options classes on Safari
* Fix converting list of tuples to str in send_keys (9330)
* Expand element to be clickable in expected conditions(9374)
* Upgrade rules_python to 0.2.0
Selenium 4 Beta 3
* Enable more tests
* Improve support for WebDriver Bidi over selenium grid
* Update CDP Support versions to remove 86,87 and add 90,91
* Allow overriding the default 250 msecs duration of pointer movement (9336)
* Only give deprecation warning if Profile is being used in options
* Loosen version requirements on dependencies. Fixes 9312
* Bump urllib3 from 1.26.2 to 1.26.3 in /py (9311)
* Disable wait on frame test due to bug in Firefox
* Correct pinned browser path for chrome on linux
Selenium 4 beta 2 Post 1
* Fix Chrome instantiation
Selenium 4 beta 2
* Set up python for pinned browsers
* Add Multiple file upload test
* Fix using arguments in Chrome Option. Fixes 9281
* Deprecate arguments in remote webdriver instantiation
* Improve proxy via options test for Firefox
* Set Chromium Edge to be the default for Edge browsers
* Move code so that it is reachable
* Fix usage of options to RemoteWebDriver (9240)
* Deprecate using a Firefox profile in Options
* use attribute endpoint to evaluate multiple selects
* implement get_dom_attribute
* Add attribute_to_be_include method to expected_conditions when the at… (9200)
* Additional Python type hints (9192)
* Correct Type Hinting on option method. Fixes 9210
* Use a flat namespace for selenium options
* remove unused imports
* Add ARIA APIs for getting the role and label of an Element
* Fix homepage attribute in wheel target
* Avoid using bazel native python rules
```
### 3.141.0
```
* Bump version to a better approximation of Π
* Improved Test build targets
* fix os path in test for Windows
* use 'NUL' for /dev/null on Windows
* Update ctor docstrings to explain that a directory passed in is cloned. Fixes 6542
* Allow passing of service_args to Safari. Fixes 6459
* Remove element equals url
* Improved WebExtension support
```
### 3.14.1
```
* Fix ability to set timeout for urllib3 (6286)
* get_cookie uses w3c endpoint when compliant
* Remove body from GET requests (6250)
* Fix actions pause for fraction of a second (6300)
* Fixed input pausing for some actions methods
* Capabilities can be set on Options classes
* WebElement rect method is now forward compatible for OSS endpoints (6355)
* Deprecation warnings now have a stacklevel of 2
* keep_alive can now be set on Webdriver init (6316)
* isDisplayed atom is now used for all w3c compliant browser, fixing issue with Safari 12
```
### 3.14.0
```
* Fix doc of URL-related ExpectedCondition (6236)
* Added ExpectedCondition invisibility_of_element
* Swap out httplib for urllib3
* Be consistent with webdriver init kwarg service_log_path (5725)
```
### 3.13.0
```
* Add executing Chrome devtools command (5989)
* fix incorrect w3c action encoding in python client (6014)
* Implement context manager for WebDriver
* Stop sending "windowHandle" param in maximize_window command for w3c
```
### 3.12.0
```
* Add desired_capabilities keyword to IE and Firefox drivers for driver consistency
* Fix bug with creating Safari webdriver instance (5578)
* Add support for Safari extension command
* Deprecate Options `set_headless` methods in favor of property setter
* Only set --disable-gpu for Chrome headless when on Windows
* Add selenium User-Agent header (5696)
* Remote webdriver can now be started when passing options
* All Options.to_capabilities now start with default DesiredCapabilities
* Improve the error message that is raised when safaridriver cannot be found (5739)
* IeOptions class is now imported to selenium.webdriver
* Remove the beta `authenticate` methods from `Alert`
```
### 3.11.0
```
No changes just keeping python version in step with the rest of the project.
```
### 3.10.0
```
* make tests to check clicking on disabled element work for w3c compliant drivers (5561)
* add docstring for InvalidElementStateException. Fixes 5520
* Deleting unused imports
* Making python specification in IDEA project more generic
* It should be possible to use a custom safaridriver executable to run Selenium's test suite.
```
### 3.9.0
```
* Add docstrings to WebElement find methods (5384)
* Additional data in unexpected alert error is now handled for w3c drivers (5416)
* Allow service_args to be passed into Firefox WebDriver (5421)
* Fix bug introduced with response logging in 3.8.1 (5362)
```
### 3.8.1
```
* Fix bug when creating an Opera driver (5266)
* Stop sending sessionId in w3c payload. (4620)
* Fix issue with w3c actions releasing on element (5180)
* A more descriptive log message is displayed if the port cannot be connected (2913)
* Initialize Alert object by calling alert.text (1863)
* PhantomJS is now deprecated, please use either Chrome or Firefox in headless mode
* Legacy Firefox driver: ensuring copy of profile dir, its 'extensions' subdir and 'user.js' file are writable. (1466)
```
### 3.8.0
```
* Firefox options can now be imported from selenium.webdriver as FirefoxOptions (5120)
* Headless mode can now be set in Chrome Options using `set_headless`
* Headless mode can now be set in Firefox Options using `set_headless`
* Add the WebKitGTK WebDriver and options class (4635)
* Browser options can now be passed to remote WebDriver via the `options` parameter
* Browser option parameters are now standardized across drivers as `options`. `firefox_options`,
`chrome_options`, and `ie_options` are now deprecated
* Added missing W3C Error Codes (4556)
* Support has been removed for Python versions 2.6 and 3.3
```
### 3.7.0
```
* need to pass applicable environment variables to tox
* Fix active_element for w3c drivers (3979)
* add support for minimize command
* add support for fullscreen command
* window rect commands should fail on firefox and remote (legacy)
* Fix python backward compatibility for window commands (4937)
* Update docstrings to specify the type of path needed to install firefox addons. (4881)
* Update python chromeOptions key for capabilities (4622)
* Fix python pause action implementation (4795)
```
### 3.6.0
```
* Fix package name in python webelement module (4670)
* Fix python driver examples (3872)
* No need to multiply pause by 1000
* Add pause to action chains
* only check for proxyType once
* lowercase proxy type for w3c payload in python 4574
* guarding against null return value from find_elements in python 4555
* remove unnecessary pytest marking, address flake8 issues
* allow IE WebDriver to accept IE Options
* add IE Options class
* convert OSS capabilities to W3C equivalent for W3C payload
* Add Safari to API docs
```
### 3.5.0
```
* Numerous test fixes
*Iterate over capabilities in a way to support py2.7 and py3
* Fix W3C switching to window by name.
* Support GeckoDriver addon install/uninstall commands 4215.
* Move firefox_profile into moz:firefoxOptions.
* Filter non-W3C capability names out of alwaysMatch.
* Honor cmd line args passed to Service ctor (4167)
* Add expected conditions based on URL to Python Expected Conditions 4160
* Add network emulation to Chrome Python bindings (4011)
* add warning when saving incorrectly named screenshot (4141)
```
### 3.4.3
```
* Fix EventFiringWebdriver and WebElement to raise AttributeError on missing attributes. (4107)
* unwrap WebElements inside dicts
```
### 3.4.2
```
* translate move_by_offset command to w3c
* Update capabilities properly instead of assuming dict structure. Fixes 3927
* Add missing file for Chrome options to API docs.
* Add Chrome options module to API docs.
```
### 3.4.1
```
* Add back the ability to set profile when using Firefox 45ESR. Fixes 3897
```
### 3.4.0
```
* Correct usage of newSession around `firstMatch` and `alwaysMatch`
* Remove superfluous capabilities that are not needed
* Add expected condition that waits for all found elements to be visible (3532)
* Allow methods wrapped by EventFiringWebDriver and EventFiringWebElement (806)
* Dropping `javascriptEnabled` capability for real browsers
* Use W3C check from parent object instead of assuming from capabilities
* Bump example source distribution to match latest release.
* Replace TypeError with KeyError in remote webdriver error handler code (3826)
* When testing Marionette use default capabilities in testing
* Conform to the api of urllib2 for adding header for a request (3803)
* Add `text` key to alertsendKeys parameters for W3C Endpoint
* Location once scrolled into view should use W3C executeScript endpoint not JSONWP
* Fixed the usage information in documentation of "save_screenshot". (3804)
* Add Element Not Interactable exception
* Clean up imports in error handler
* flake8 cleanup
```
### 3.3.3
```
* make w3c execute_script commands unique
```
### 3.3.2
```
* Update window commands to use W3C End points
* Update Alert when in W3C mode to use W3C Endpoints
* Update to new W3C Execute Script end points
* Add setting/getting proxy details to Firefox Options
* Deprecate the use of browser profile when instantiating a session
* Update start session to handle the W3C New Session
* Add get/set window rect commands
* Add InvalidArgumentException
* When passing in `text` to send_keys, make sure we send a string not array
* Fix string decoding in remote connection (3663)
* Fix indentation to satisfy PEP8
* Try use old way of setting page load timeout if new way fails. Fixes 3654
* fix file uploads for Firefox
* Run unit tests on Python 3.3, 3.4, and 3.5 (3638)
* Fix indentation in double_click.
* Fix non-W3C page load timeout setting.
```
### 3.3.1
```
* Fix encoding of basic auth header when using Python 3 Fixes 3622
* Add initial unit test suite
* Update W3C Timeout setting to be in line with the specification
* support.ui.Select class inherits from object (3067)
* fix bug in proxy constructor that some properties are not proper set (3459)
* Fix flake8 issues (3628)
```
### 3.3.0
```
**Note** If you are updating to this version, please also update GeckoDriver to v0.15.0
* Fix python HTTPS encoding for python driver (3379)
* Allow Firefox preferences to be set directly in Options
* Fix shutdown and process termination (3263)
* Preventing exception if log_path is none or empty. Fixes 3128
* Add the W3C capability to Firefox for accepting insecure certificates
* Initial implementation of Pointer Actions
* Only skip tests if driver name matches a directory name.
* Update calls that return a pure object with keys to look for 'value' key
* Initial W3C Actions support
* fix docs output directory
```
### 3.0.2
```
* Add support for W3C Get Active Element
* Return when we use executeScript for faking WebElement.get_property
* Expand user paths and resolve absolute path for Chrome extensions
* Add support for verbose logging and custom path to EdgeDriver
* Update TakeElementScreenshot to match WebDriver specification
* Raise WebDriverException when FirefoxBinary fails to locate binary
* Fix getting IP for python 3
* Write Service log to DEVNULL by default
* Only attempt to remove the Firefox profile path if one was specified
* Added context manager for chrome/content in Firefox
```
### 3.0.1
```
* Fix regressions with python 3
* Add support for Safari Technology Preview
```
### 3.0.0
```
* new FirefoxDriver ctor precedence logic and moz:firefoxOptions support (2882)
* Add W3C Set Window Position and W3C Get Window Position
* enable log path setting from firefox webdriver (2700)
* Correct encoding of getAttribute.js and only load it once. Fixes 2785
* Encode the isDisplayed atom and only load it once
```
### 3.0.0.b3
```
* Use atoms for get_attribute and is_displayed when communicating with
a w3c compliant remote end.
* Make it possible to specialise web element
```
### 3.0.0.b2
```
* Updated Marionette port argument to match other drivers.
```
### 3.0.0.b1
```
* Fix basestring reference to work with python 3. Fixes 1820
* Correct Length conditional when filtering in PhantomJS. Fixes 1817
* Fix send keys when using PUA keys e.g. Keys.RIGHT 1839
* Fix cookie file leak in PhantomJS 1854
* Use the correct binary path when using Marionette
* Fixed: Unhelpful error message when PhantomJS exits. (2173 2168)
* Fix broken link to python documentation (2159)
* Attempt to remove Firefox profile when using Marionette
* Ensure all capabilities are either within desiredCapabilities or requiredCapabilities
* Correct the expected capability name for the Firefox profile
* Add Firefox options to capabilities
* Visibility_of_all implies it only returns elements if all visible (2052)
* Find visible elements (2041)
* Pass the firefox_profile as a desired capability in the Python client when using a remote server
* Avoid checking exception details for invalid locators due to differences in server implementations
* Handle capabilities better with Marionette and GeckoDriver
* Updated the maxVersion of FirefoxDriver xpi maxVersion to work with Firefox 47.0.1
* Remove Selenium RC support
```
### 2.53.0
```
* Adding Options object for use with Python FirefoxDriver
* Fixed improper usage of super in exceptions module
* create a temp file for cookies in phantomjs if not specified
* Pass in the executable that FirefoxBinary finds to the service if there isn't one passed in as a kwarg or capability
* Applied some DRY and extracted out the keys_to_typing()
* Fix deselecting options in <select>
```
### 2.52.0
```
* Fixing case where UnexpectedAlertException doesn't get the alert_text in the error object
* Firefox: Actually use launch_browser timeout Fixes 1300
```
### 2.51.1
```
* correcting bundling issue missing README.rst file
```
### 2.51.0
```
* Firefox updates (see java changelog)
```
### 2.50.1
```
* Fixing error message handling. Fixes issue 1497
* Fixing error message handling. Fixes issue 1507
* Update webelement to handle W3C commands for size/location and rect
* rewrite click scrolling tests to match the Java ones
```
### 2.50.0
```
* handle potential URLError from sending shutdown, set self.process to None after it's already been quit
* Add support for submit() with W3C compliant endpoint
```
### 2.49.1
```
* Ensure you can close stream before attempting to close it.
* message response may cause json loads ValueError when it's not actually json
and just a string (like the message that occurs when firefox driver thinks
another element will receive the click)
* Cleanup some error handling when sniffing what protocol you are speaking
```
### 2.49.0
```
* Have Firefox service write to a file instead of PIPE
* on osx for firefox, fallback to checking homebrew install, if the default isn't there
* Added Firefox path variable for string placeholder
* Update README to show Python 3.2+
* refactoring all the service classes to use a common one.
* Add Firefox specific command to switch context between Browser content and Browser chrome
* updating files after go copyright:update
* Use specificationLevel to know that we are speaking GeckoDriver
* Bug fixes: 1294, 1186
```
### 2.48.0
```
* Update error pulling to match spec when we encounter a spec compliant browser.
* Disable tests that are not working with Marionette when running Marionette tests
* Add the ability to run python marionette tests
* Python 3 compatibility for remote Authorization
* changing casing of children finding tests
```
### 2.47.3
```
* Bring back py 3 support
```
### 2.47.2
```
* Fix running Edge driver locally on win10
* adding repr to WebDriver and WebElement
```
### 2.47.1
```
* Fix the issue of deleting the profile when shutting down Firefox
* WebElement **eq** compares against more types
* Issues fixed: 850
```
### 2.47.0
```
* Add in support for when communicating with a Spec compliant browsers
* Initial support for Edge using EdgeDriver
* Issues fixed: 818
```
### 2.46.1
```
* Adding ability to make remote call for webelement screenshots in accordance to the W3C spec
* Adding api to authenticate HTTP Auth modal dialogs via driver.switch_to.alert (beta)
* Add rebeccapurple to Color Object
* Add element screenshot
* Add service handler and minimal update to driver to use service for Marionette
* Add the ability to start FirefoxDriver backed with Marionette via a capability
* support socket timeout for connections
* free_port checks if port is available on all interfaces
* Allow error handling to handle both current errors and w3c errors
* Update find_elements to match spec
* phantomjs: service: remove unused import of signal
* phantomjs: add port information to WebDriverException
* Issues fixed (Github): 478, 612, 734, 780
```
### 2.46.0
```
* Firefox support up to 38
* BlackBerry browser support
* remove Presto-Opera support
* firefox extension extraction fixes
* process management fixes with phantomjs
* Comparing remote web element for equality does not require a remote command
* Issues Fixed: (gcode) 8493, 8521, 8498, 8274, 8497, 5923
* Issues Fixed: (github) 401
```
### 2.45.0
```
* Firefox support up to 35, support for native events up to 34.
* Make Opera driver support also the new Blink based Opera
* README: Fix the Yahoo example
* WebElement docstring fixes
* Add debugger_address option to the ChromeDriver options list to optionally instruct ChromeDriver to wait for the target devtools instance to be started at a given host:ip
* Set default value for PhantomJS process reference
* Allow setting of FileDetector for send_keys
* Pass info to TimeoutException in WebDriverWait
* Issues Fixed: 8065, 8310, 8539
```
### 2.44.0
```
* (previous release person forgot to add release notes! DAVID!)
```
### 2.43.0
```
* Expand WebElement.get_attribute API docs
* firefox may be installed without administrator privileges
and therefore there may be no HKEY_LOCAL_MACHINE entry. Issue 7784
* UnexpectedAlertPresentException should contain the alert text in python too. Issue 7745
* don't mutate the global 'ignored exceptions', take a copy of the globally specified ones, change the
global to be a tuple instead. Issue 7725
* raise exception when the firefox binary isn't actually found, which usually implies the upgrade failed (on windows) Issue 6092 ,6847
* Fixing NameError: global name 'options' is not defined.
* Remove unused import subprocess.PIPE
* Redirect Firefox output to /dev/null by default Fixes Issue 7677
* More flexible management of http timeouts in Selenium RC python client
* Generate Python API docs for selenium.webdriver.chrome.options. Fixes issue 7471
* Use 127.0.0.1 as localhost name resolving might fail on some systems
```
### 2.42.1
```
* Fixed Py3 issues
* Make firefox_binary.py and firefox_profile.py not executable
* Make exceptions Python 3 compatible
```
### 2.42
```
* Support for Firefox 29 Native Events
* "remote_url" and "remote_browser" parameters for "./go test_remote".
* missing **init** in new android module
* issue 7304 Fix memory leak caused by **del** in PhantomJS
* File upload using remotedriver on python3
* Updating xpi install to align with mozprofile
* command_executor should also support unicode strings as well.
```
### 2.41
```
* Support for Firefox 28
* deprecating switch_to_* in favour of driver.switch_to.*
```
### 2.40
```
* Support for Firefox 27
* Fixes related to http connection
* Fix for phantomjs running on windows 6736
```
### 2.39
```
* Support for Firefox 26
```
### 2.38.4
```
* keep-alive can't be used for phantomjs / IE, fix for that and tested for py3 :)
```
### 2.38.3
```
* really supporting py3 :)
```
### 2.38.2
```
* py3 support (once again)
```
### 2.38.1
```
* fix packaging problem where firefox/webdriver_prefs.json was missing
```
### 2.38
```
* Support for Firefox 25
* FirefoxProfile now using common webdriver.json instead of having our own copy in py
* behavior change to the preferences is that they now should be treated
like raw types rather than strings and allow the json library to translate
the types appropriated (e.g. True => true)
* Set proper 'Accept' request header so that Python bindings work with some old WebDriver implementations that reply 404 to requests with no 'Accept' set.
* handle redirect response explicitly (since switching to using keep-alive)
* phantomjs service needs to really kill the spawned process Issue 5921
* removing old api endpoints from command listing
* using keep-alive for remote connection
* adjusting phantomjs subprocess.Popen
* ActionsChains.send_keys should use <session>/keys endpoint Issue 6348
* fix TypeError in chrome_options.extensions for Python3.x
* Other Bugs Fixed: 6531, 6513, 4569, 6454
```
### 2.37.2
```
* fix regression added with unicode fix
* Bug fix 6360
```
### 2.37.1
```
* fix find_elements on webelement using unicode locators and py 2.7
```
### 2.37
```
* repackage with fix for Firefox native events on Linux
* fix issue with unicode By locators w/ python 2.7 6430
```
### 2.36
```
* Added Safari WebDriver. Fixes issue 5352.
* fix platform for safari caps
* Convert all offsets/coordinates/speeds into integers
* Fix drag and drop by offset behaviour
* Fix initialization of Proxy by capabilities when proxyType is set
* Enable SOCKS proxy support
* Validation of passed locator for find_element(s) methods 5690
* Adding support for /status, /sessions commands
* Doc fixes
* ability to set Chrome extensions by using base64 encoded strings 4013
* fix logic regarding Select.select_by_visible_text 3910
* Bugs fixed: 6165, 6231
```
### 2.35
```
* Remove duplicate 'get screenshot as file' methods. Add method 'get_screenshot_as_png'
* fixing UnicodeEncodeError on get attribute of webelement
```
### 2.34
```
* Corrected webdriverbackedselenium session handling. Fixes issue 4283
* Corrected use of basestring for python 3. Fixes issue 5924
* Support for Firefox 22
* Added support for logging from the browser
* corrected proxy handling on FirefoxProfile
* Corrected handling of chrome extensions. Fixes issue 5762
```
### 2.33
```
* getText() ignores elements in the <head>
* Adding both official and informal string representations to Color object.
* Replace distutils.dir_util by shutil
* Allow finding firefox binary at ProgramFiles(x86) on windows(64 bit)
* Py3 compatible winreg import and content-type access
```
### 2.32
```
* Support for FF20 Native Events
* Python 3 support
* Misc Python 3 patches
* Allow easy FirefoxBinary subclassing
```
### 2.31
```
* Support for FF19 native events
* web element equality is now in conformance with other language bindings
```
### 2.30
```
* Allow env to be specified for the chromedriver service
* Allow log path to be specified for phantomjs driver service.
* Bug Fixes: 4608 4940 4974 5034 5075
```
### 2.29
```
* Allow subclassing of driver and have the ability to send_keys Issue 4877, 5017
* Simplifying save_screenshot and allow phantomjs to take screenshots
```
### 2.28
```
* "null" can now be passed to executeScript
* Add transparent and extended colour keywords to color support module. Fixes issue 4866
```
### 2.27
```
* Added support for phantomjs / ghostdriver
* Fix python client, avoid duplicate chrome option items after reusing options class. Fixes Issue 4744.
* adding colour support to Python. fixes issue 4623
* Adding log_path/service_log_path as named kwargs for chrome
```
### 2.26
```
* Added location_when_scrolled_into_view - Bug 4357
* Added new expected_conditions support module to be used with WebDriverWait
```
### 2.25
```
* Jython 2.7 Support - Bug 3988
* EventFiringWebDriver added to Support module - Bug 2267
* Added IEDriverServer logging that can be accessed via desired capabilities
* Fixed by data being passed into find_elements - bug 3735
* Removed deprecated ChromeDriver items around desiredcapabilities in favour of chrome options
* Added default values for a number of action_chains calls
```
### 2.24
```
* Removing the ctypes approach of invoking IEDriver, you will need to download the IEDriverServer from
<https://code.google.com/p/selenium/downloads/list>
```
### 2.23
```
* Support for FF13 native events
```
### 2.22
```
* Moving IEDriver to be able to use IEDriverServer
```
### 2.21.3
```
* Fix for File Upload to remote servers
* Better handling of typing in input=file. Bug 3831, 3736
* Better handling of unicode URLS Bug 3740
```
### 2.21.2
```
* Fix typing to file input when not using Selenium Server. Bug 3736
```
### 2.21.1
```
* focusmanager.testmode messes with native events, removing it.
```
### 2.21
```
* Local File upload capabilities for non-remote browser
* Adding maximize_window api call
* Updating default firefox profile to set focusmanager.testmode to true
see <https://bugzilla.mozilla.org/show_bug.cgi?id=704583>
* bugs fixed: 3506, 3528, 3607
```
### 2.20
```
* disable native events for FF on Mac by default
* fix webdriverwait to execute at least once when using 0 timeout
* Fixed Issue 3438
```
### 2.19
```
* WebDriverBackedSelenium is now available to all languages
* Addon installation fixes
```
### 2.18
```
* Proxy capabilities passing
```
### 2.17
```
* OperaDriver can now be invoked by webdriver.Opera()
* Support has been added for ChomeOptions. This deprecates support passing in DesiredCapabilities
* Proxy class to tell the browser a proxy is in use. Currently only for Firefox
```
### 2.16
```
* bug fixes
```
### 2.15
```
* bug fixes
```
### 2.14
```
* Fix for LD_PRELOAD being polluted by WebDriver
* Added Orientation API
* A fix for Error Handling
```
### 2.13
```
* Fixed switch_to_window so that it didn't crash Firefox Bug 2633
* Fixed Screenshot handling to work in all browsers. Bug 2829
* Force Firefox to the Foreground
```
### 2.12
```
* Added Select as a support package
* Added Beta window size / position api's
* Bug Fixes
```
### 2.11.0
```
* no changes just packaging
```
### 2.10
```
* "Choose which apps" dialog has been disabled
* Bug Fixes
```
### 2.9
```
* Bug Fixes
* Documentation
```
### 2.8
```
* Actions updates
* Bug Fixes
```
### 2.6
```
* Documentation fixes
```
### 2.5
```
* Fixed x64 IE Support
* Bug Fixes
```
### 2.4
```
* Bug Fixes
* x64 IE Support
* Added WebDriverWait as a support package
```
### 2.3
```
* Bug Fixes
```
### 2.2
```
* Ability to get screenshots from Exceptions if they are given
* Access to Remote StackTrace on error
```
### 2.1
```
* Bug Fixes
Selenium 2
* Removed toggle() and select()
Selenium 2 RC 3
* Added Opera to Desired Capabilities
* Removed deprecrated methods
* Deprecated toggle() and select() methods. This will be removed in the next release
Selenium 2 Beta 4
* Fix for using existing Firefox Profiles
* Alerts Support in IE
* Fix to dictionary returned from size
* Deprecated value property. Use the get_attribute("value") method
* Deprecated get_page_source method. Use page_source property
* Deprecated get_current_window_handle. Use current_window_handle property
* Deprecated get_window_handles. Use window_handles property
* Ability to install extensions into profiles
* Added Location to the WebElement
* ChromeDriver rewritten to use new built in mechanism
* Added Advanced User Interaction API. Only Available for HTMLUnit at the moment
* Profiles now delete their temp folders when driver.quit() is called
Selenium 2 Beta 3
* Accept Untrusted Certificates in Firefox
* Fixed Screenshots
* Added DesiredCapabilities to simplify choosing Drivers
* Fixed Firefox Profile creation
* Added Firefox 4 support
* DocStrings Improvements
Selenium 2 Beta 2
* New bindings landed. Change webdriver namespace to "selenium.webdriver"
* Ability to move to default content
* Implicit Waits
* Change the API to use properties instead of get_x
* Changed the Element Finding to match other languages
* Added ability to execute asynchronous scripts from the driver
* Ability to get rendered element size
* Ability to get CSS Value on a webelement
* Corrected Element finding from the element
* Alert and Prompt handling
* Improved IEDriver
* Basic Authentication support for Selenium 2
* Ability to have multiple Firefox instances
```
Links
- PyPI: https://pypi.org/project/selenium
- Changelog: https://data.safetycli.com/changelogs/selenium/
- Homepage: https://www.selenium.dev
This PR pins selenium to the latest release 4.24.0.
Changelog
### 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) ``` ### 4.8.2 ``` * Update tox.ini for a valid "isort" version (11667) * Undo a bug fix that caused a worse bug. (11666) ``` ### 4.8.1 ``` * Add CDP files for v110 and remove v107 * pylint fixes including tidy of f strings, simplifications of conditional statements and isinstances (11205) * Replace devtools genrule with proper generate_devtools rule. (11392) * Add docstring for `alert_is_present` * Updating Selenium Manager binaries for 4.8.1 release ``` ### 4.8.0 ``` * Add CDP files for v109 and remove v106 * Add logging to Selenium Manager for both stdout and stderr * Multiple updates and improvements to types * Fix sdist tar package_dir (11416) * Add comment with name of large JS executions (11038) * Deprecate headless property for chromium and firefox options classes (11467) ``` ### 4.7.2 ``` * Put selenium manager bug fix from 4.7.1 in the correct place ``` ### 4.7.1 ``` * Fix bug preventing selenium manager from using Internet Explorer ``` ### 4.7.0 ``` * Add CDP files for v108 and remove v105 * Improve error handling with Selenium Manager (11329) * Fix bug preventing alternate package managers from using Selenium Manager (11234) ``` ### 4.6.1 ``` * Replace response.getheader() with response.headers.get() (deprecated in urllib3 1.26.13). * Fixed a bug in `Service` destructors accessing modules that no longer existed during interpreter shutdown. * Improved exception messages when raising for `relative` locator issues. ``` ### 4.6.0 ``` * Document firefox `service=` arg. closes 11067 * Additional types and tidying safari service * Revert removal of default executable global for safari * Additional types; remove unused `permissions.py` * Remove `RemoteDriverServerException` * Remove unused `send_remote_shutdown_command` implementations in services * Update `log_path` docs for non chromium based services * Make `get_screenshot_as_file()` work with pathlib.Paths (11095) * Remove `protocols.py` * fix typing in get_full_page_screenshot_as_png (11163) * typo in error message (11166) * Adding CDP files for v107 and removing v104 * add initial support for selenium manager * Revert "[py] do not allow Select class to work with disabled selects" * 11093 - The SessionId shouldn't be added to params themself bu… (11121) ``` ### 4.5.0 ``` * Fix frame_to_be_available_and_switch_to_it() for string inputs (10963) * Implicit non w3c capability conversion for `acceptSslCerts`, `platform` and `version` is now deprecated * Additional type hints * Bugfix options returning `None` when strict_file_interactability, set_window_rect or accept_insecure_certs are not set * Add CDP for v105, remove support for v102 * Add CDP for v106, remove support for v103 ``` ### 4.4.3 ``` * Update explicit dependency for certifi to remove upper bound (10956) ``` ### 4.4.2 ``` * Add explicit dependency for certifi (10953) ``` ### 4.4.1 ``` * Removal of urllib3[secure] extras (deprecated) dependency ``` ### 4.4.0 ``` * More flexibility in locating Firefox binary (10818) * Add CDP for v104, remove support for v101 * Throw error when setting w3c to False on Chromium, and warning when setting w3c to True ``` ### 4.3.0 ``` * Deprecated find_element_by_* and find_elements_by_* are now removed (10712) * Deprecated Opera support has been removed (10630) * Fully upgraded from python 2x to 3.7 syntax and features (10647) * Added a devtools version fallback mechanism to look for an older version when mismatch occurs (10749) * Better support for co-operative multi inheritance by utilising super() throughout * Improved type hints throughout ``` ### 4.2.0 ``` * Fix bug preventing Firefox from setting accept_insecure_certs to False (10442) * Deprecated opera classes as not w3c compatible (10379) * Fix SecurityError: Invalid Domain problem (10653) * Implement convenience methods for scrolling ``` ### 4.1.5 ``` * use `typing_extensions` to be compatible with `py37` (10613) ``` ### 4.1.4 ``` * Hook options class in safari driver (10433) * Remove universal wheel, python 2 is unsupported (10438) * Fix `tox -e docs` by pinning `Jinja2` (10492) * Add support Chrome 100 and remove for Chrome 97 * Removed desired capabilities from handshake code (10494) * Invalid selector exceptions are is not a no such element exception * Do not convert tag name to css selector * Add debug logging for urllib response data (10568) * Use monotonic clock for waits, fixes 10544 (10550) * Adding Chrome DevTools 101 and removing 98 * Add the ability to create sdist package of the python bindings * Remove unicode prefix for strings (10562) * Use `get_timeout()` for urllib pool manager timeouts in remote connection (10563) * Fixing "--connect-existing" 10598 * Added DeprecationWarning to the warnings.warn methods inside the find_element_by_x methods (10575) * Added virtual authenticator for Python Bindings (10579) ``` ### 4.1.3 ``` * fix generated wheel asset (10022) * add support for proxy authentication (10358) * add Safari options (10385) * add support for Firefox to install unpacked addons (10308) * add support for Chrome 99 and remove support for Chrome 96 ``` ### 4.1.2 ``` * Include `py.typed` in the library ``` ### 4.1.1 ``` * add support for Chrome 98 and remove support for Chrome 95 * Add py.typed file (10310) * Elaborate find_element deprecation message (10273) * add support for Chrome v97 * convert selectors for finding elements in shadow dom * missing self for service args * don't use websocket-port if user sets connect-existing (a4dc6e) * update tests for current IE options * fix firefox addon tests * Support new Cast command added to Chrome Devtools (10150) * send Base64 encoded addon to driver instead of path String * Reflect how find_elements returns a list, not just one WebElement. (10172) * add shadowroot to api docs * add log reference to api rst file * remove non breaking space for doc generation * Updating exceptions file for docs * Add type hinting to Shadowroot * update ShadowRoot find element signatures to match those in WebElement (10138) * add Zenkaku/Hankaku key * raise `NoSuchElementException` for relative failures instead of `IndexError` (10078) * Remove legacy in favour of W3C endpoints. (10075) * Tidy relativeby docs, use non deprecated methods in webserver (10077, 10103, 10108, 10186, 10212, 10120) * PEP 484 type hints s (10099) * Handle Socks Proxy for Remote Connections. Fixes 10091 * Add extra attributes to pointer down and pointer move actions * Add Scroll via Wheel Inputs and Wheel Actions ``` ### 4.1.0 ``` * add warning if people set w3c to false as it may break their tests * Fix wrong type annotations for "env" it's a dict not a string (10072) * Added default executable path in service module for (10057) * Fix typos for docstrings (10052) * Fix return type hint in get_screenshot_as_png (10060) * Add CDP for v96, remove support for v92 and v93 * Add support for shadow dom end points * Upgrade sphinx to use latest * Correct docstrings around Service usage * XFail alert tests due to https://bugzilla.mozilla.org/show_bug.cgi\?id\=1731795 * Remove py2 import code * Check the values in NO_PROXY and set the poolmanager accordingly (9925, 9967) * Move python version to a variable to be shared about in build steps * Bump Bazel rules_pkg to 0.5.1 ``` ### 4.0 ``` * Update driver initialisation to use service and option objects * turn on keep-alive by default for remote connections (7072) * Fix ConnectionResetError * Add new Cast commands * Suggest download Microsoft Webdriver over HTTPS * Clear PoolManager in ‘remote_connection’ to ensure sockets are closed * remove --disable-gpu option for headless Chrome * Add support for the New Window command (6873) * Update docstrings in Options classes to allow documentation to highlight Return values * Fix typos in select.py (6925) * Remove native events handling code * Deleting unused imports, fixing flake8 issues * Remove unused port selection in IE Driver * Enabling tests xpassed in Chrome * Pretty-printing code samples * remove all deprecated methods and args from Python bindings * Fix DeprecationWarning: invalid escape sequence * Don't override browser options with desired capabilities by default in WebKitGTK (6814) * Add WebKitGTK to API docs (6815) * Subclass options classes from a common base class (6522) * Update Sphinx (6728) * WebDriverWait: update documentation for until and until_not (6711) * Fix typo in description of WebDriver class (6724) * add strictFileInteractability to acceptable W3C capabilities * Deprecate Blackberry Driver support * Fixing/tidying docstring. ``` ### 4.0.0 ``` * Add cdp 95 to python and JS * Remove Edge legacy options. (9908) * Expected condition for checking attribute value (9881) * implement relative locator for find_element (9902) * Fix python generation code for CDP to optionals better Selenium 4 Release Candidate 3 * Fix CDP Code Generation broken by Chromium 94 * Fix Deprecation warnings for IE Bindings. Fixes 9818 Selenium 4 Release Candidate 2 * Add new websocketUrl capability * Force free ports for cdp in geckodriver * Add w3c capabilities to Python options (9870) * expected_conditions and wait modules raises InvalidSelectorException for invalid xpaths (9805) * implement chromium specific endpoint for setting permissions * implement chromium specific endpoint for deleting network conditions * update ruby, python and JS to add support for v94 and remove support for v92 * Fix type hint on chrome option method (9840) * Allows None to be set for the sameSite attribute (9771) * Fix typo in python webdriver for IE (9801) Selenium 4 Release Candidate 1 * Remove cdp versions 88, 89, and 90 * Replace v91 with v93 in bazel files * update IE options class in each language to match the currently supported capabilities in the IE Driver * Specify that the "find_element_by_* ..." warning is a deprecation warning (9700) * clean up imports * Use options when passing things to remote webdriver instead of capabilities (9678) * Correct deprecation message in IE handling code * Rewrite the logging module for bidi connections * remove non-w3c compliant parameters from default capabilities * Run type checks in CI and report typing coverage to codecov (9523) * PEP 484 Type Hints added * Handle first/always match better when it hits lists/dicts. Fixes 9538 * correct tox warnings * Fix deprecation warnings for Safari (9577) * Allow 0 coordinates for the window position. Fixes 9574 * Fix incorrect use of 'NoReturn' type annotation. (9540) Selenium 4 Beta 4 (The Final Beta) * Returning fixed IP in GitHub actions (9550) * PEP 484 type hints for common.exceptions and webdriver.support.color (9482) * Add the ability to pass in multiple options and have that capabilities returned as (first|always)Match * Add docstrings for RelativeBy * Add the ability to pass in different locators to do Relative Locator searches * Add a test with returning a JS Const object 9468 * Handle poor responses from drivers when there are errors. Fixes 9437 * Add the ability to enable mobile on options classes * Add the ability to use Options classes on Safari * Fix converting list of tuples to str in send_keys (9330) * Expand element to be clickable in expected conditions(9374) * Upgrade rules_python to 0.2.0 Selenium 4 Beta 3 * Enable more tests * Improve support for WebDriver Bidi over selenium grid * Update CDP Support versions to remove 86,87 and add 90,91 * Allow overriding the default 250 msecs duration of pointer movement (9336) * Only give deprecation warning if Profile is being used in options * Loosen version requirements on dependencies. Fixes 9312 * Bump urllib3 from 1.26.2 to 1.26.3 in /py (9311) * Disable wait on frame test due to bug in Firefox * Correct pinned browser path for chrome on linux Selenium 4 beta 2 Post 1 * Fix Chrome instantiation Selenium 4 beta 2 * Set up python for pinned browsers * Add Multiple file upload test * Fix using arguments in Chrome Option. Fixes 9281 * Deprecate arguments in remote webdriver instantiation * Improve proxy via options test for Firefox * Set Chromium Edge to be the default for Edge browsers * Move code so that it is reachable * Fix usage of options to RemoteWebDriver (9240) * Deprecate using a Firefox profile in Options * use attribute endpoint to evaluate multiple selects * implement get_dom_attribute * Add attribute_to_be_include method to expected_conditions when the at… (9200) * Additional Python type hints (9192) * Correct Type Hinting on option method. Fixes 9210 * Use a flat namespace for selenium options * remove unused imports * Add ARIA APIs for getting the role and label of an Element * Fix homepage attribute in wheel target * Avoid using bazel native python rules ``` ### 3.141.0 ``` * Bump version to a better approximation of Π * Improved Test build targets * fix os path in test for Windows * use 'NUL' for /dev/null on Windows * Update ctor docstrings to explain that a directory passed in is cloned. Fixes 6542 * Allow passing of service_args to Safari. Fixes 6459 * Remove element equals url * Improved WebExtension support ``` ### 3.14.1 ``` * Fix ability to set timeout for urllib3 (6286) * get_cookie uses w3c endpoint when compliant * Remove body from GET requests (6250) * Fix actions pause for fraction of a second (6300) * Fixed input pausing for some actions methods * Capabilities can be set on Options classes * WebElement rect method is now forward compatible for OSS endpoints (6355) * Deprecation warnings now have a stacklevel of 2 * keep_alive can now be set on Webdriver init (6316) * isDisplayed atom is now used for all w3c compliant browser, fixing issue with Safari 12 ``` ### 3.14.0 ``` * Fix doc of URL-related ExpectedCondition (6236) * Added ExpectedCondition invisibility_of_element * Swap out httplib for urllib3 * Be consistent with webdriver init kwarg service_log_path (5725) ``` ### 3.13.0 ``` * Add executing Chrome devtools command (5989) * fix incorrect w3c action encoding in python client (6014) * Implement context manager for WebDriver * Stop sending "windowHandle" param in maximize_window command for w3c ``` ### 3.12.0 ``` * Add desired_capabilities keyword to IE and Firefox drivers for driver consistency * Fix bug with creating Safari webdriver instance (5578) * Add support for Safari extension command * Deprecate Options `set_headless` methods in favor of property setter * Only set --disable-gpu for Chrome headless when on Windows * Add selenium User-Agent header (5696) * Remote webdriver can now be started when passing options * All Options.to_capabilities now start with default DesiredCapabilities * Improve the error message that is raised when safaridriver cannot be found (5739) * IeOptions class is now imported to selenium.webdriver * Remove the beta `authenticate` methods from `Alert` ``` ### 3.11.0 ``` No changes just keeping python version in step with the rest of the project. ``` ### 3.10.0 ``` * make tests to check clicking on disabled element work for w3c compliant drivers (5561) * add docstring for InvalidElementStateException. Fixes 5520 * Deleting unused imports * Making python specification in IDEA project more generic * It should be possible to use a custom safaridriver executable to run Selenium's test suite. ``` ### 3.9.0 ``` * Add docstrings to WebElement find methods (5384) * Additional data in unexpected alert error is now handled for w3c drivers (5416) * Allow service_args to be passed into Firefox WebDriver (5421) * Fix bug introduced with response logging in 3.8.1 (5362) ``` ### 3.8.1 ``` * Fix bug when creating an Opera driver (5266) * Stop sending sessionId in w3c payload. (4620) * Fix issue with w3c actions releasing on element (5180) * A more descriptive log message is displayed if the port cannot be connected (2913) * Initialize Alert object by calling alert.text (1863) * PhantomJS is now deprecated, please use either Chrome or Firefox in headless mode * Legacy Firefox driver: ensuring copy of profile dir, its 'extensions' subdir and 'user.js' file are writable. (1466) ``` ### 3.8.0 ``` * Firefox options can now be imported from selenium.webdriver as FirefoxOptions (5120) * Headless mode can now be set in Chrome Options using `set_headless` * Headless mode can now be set in Firefox Options using `set_headless` * Add the WebKitGTK WebDriver and options class (4635) * Browser options can now be passed to remote WebDriver via the `options` parameter * Browser option parameters are now standardized across drivers as `options`. `firefox_options`, `chrome_options`, and `ie_options` are now deprecated * Added missing W3C Error Codes (4556) * Support has been removed for Python versions 2.6 and 3.3 ``` ### 3.7.0 ``` * need to pass applicable environment variables to tox * Fix active_element for w3c drivers (3979) * add support for minimize command * add support for fullscreen command * window rect commands should fail on firefox and remote (legacy) * Fix python backward compatibility for window commands (4937) * Update docstrings to specify the type of path needed to install firefox addons. (4881) * Update python chromeOptions key for capabilities (4622) * Fix python pause action implementation (4795) ``` ### 3.6.0 ``` * Fix package name in python webelement module (4670) * Fix python driver examples (3872) * No need to multiply pause by 1000 * Add pause to action chains * only check for proxyType once * lowercase proxy type for w3c payload in python 4574 * guarding against null return value from find_elements in python 4555 * remove unnecessary pytest marking, address flake8 issues * allow IE WebDriver to accept IE Options * add IE Options class * convert OSS capabilities to W3C equivalent for W3C payload * Add Safari to API docs ``` ### 3.5.0 ``` * Numerous test fixes *Iterate over capabilities in a way to support py2.7 and py3 * Fix W3C switching to window by name. * Support GeckoDriver addon install/uninstall commands 4215. * Move firefox_profile into moz:firefoxOptions. * Filter non-W3C capability names out of alwaysMatch. * Honor cmd line args passed to Service ctor (4167) * Add expected conditions based on URL to Python Expected Conditions 4160 * Add network emulation to Chrome Python bindings (4011) * add warning when saving incorrectly named screenshot (4141) ``` ### 3.4.3 ``` * Fix EventFiringWebdriver and WebElement to raise AttributeError on missing attributes. (4107) * unwrap WebElements inside dicts ``` ### 3.4.2 ``` * translate move_by_offset command to w3c * Update capabilities properly instead of assuming dict structure. Fixes 3927 * Add missing file for Chrome options to API docs. * Add Chrome options module to API docs. ``` ### 3.4.1 ``` * Add back the ability to set profile when using Firefox 45ESR. Fixes 3897 ``` ### 3.4.0 ``` * Correct usage of newSession around `firstMatch` and `alwaysMatch` * Remove superfluous capabilities that are not needed * Add expected condition that waits for all found elements to be visible (3532) * Allow methods wrapped by EventFiringWebDriver and EventFiringWebElement (806) * Dropping `javascriptEnabled` capability for real browsers * Use W3C check from parent object instead of assuming from capabilities * Bump example source distribution to match latest release. * Replace TypeError with KeyError in remote webdriver error handler code (3826) * When testing Marionette use default capabilities in testing * Conform to the api of urllib2 for adding header for a request (3803) * Add `text` key to alertsendKeys parameters for W3C Endpoint * Location once scrolled into view should use W3C executeScript endpoint not JSONWP * Fixed the usage information in documentation of "save_screenshot". (3804) * Add Element Not Interactable exception * Clean up imports in error handler * flake8 cleanup ``` ### 3.3.3 ``` * make w3c execute_script commands unique ``` ### 3.3.2 ``` * Update window commands to use W3C End points * Update Alert when in W3C mode to use W3C Endpoints * Update to new W3C Execute Script end points * Add setting/getting proxy details to Firefox Options * Deprecate the use of browser profile when instantiating a session * Update start session to handle the W3C New Session * Add get/set window rect commands * Add InvalidArgumentException * When passing in `text` to send_keys, make sure we send a string not array * Fix string decoding in remote connection (3663) * Fix indentation to satisfy PEP8 * Try use old way of setting page load timeout if new way fails. Fixes 3654 * fix file uploads for Firefox * Run unit tests on Python 3.3, 3.4, and 3.5 (3638) * Fix indentation in double_click. * Fix non-W3C page load timeout setting. ``` ### 3.3.1 ``` * Fix encoding of basic auth header when using Python 3 Fixes 3622 * Add initial unit test suite * Update W3C Timeout setting to be in line with the specification * support.ui.Select class inherits from object (3067) * fix bug in proxy constructor that some properties are not proper set (3459) * Fix flake8 issues (3628) ``` ### 3.3.0 ``` **Note** If you are updating to this version, please also update GeckoDriver to v0.15.0 * Fix python HTTPS encoding for python driver (3379) * Allow Firefox preferences to be set directly in Options * Fix shutdown and process termination (3263) * Preventing exception if log_path is none or empty. Fixes 3128 * Add the W3C capability to Firefox for accepting insecure certificates * Initial implementation of Pointer Actions * Only skip tests if driver name matches a directory name. * Update calls that return a pure object with keys to look for 'value' key * Initial W3C Actions support * fix docs output directory ``` ### 3.0.2 ``` * Add support for W3C Get Active Element * Return when we use executeScript for faking WebElement.get_property * Expand user paths and resolve absolute path for Chrome extensions * Add support for verbose logging and custom path to EdgeDriver * Update TakeElementScreenshot to match WebDriver specification * Raise WebDriverException when FirefoxBinary fails to locate binary * Fix getting IP for python 3 * Write Service log to DEVNULL by default * Only attempt to remove the Firefox profile path if one was specified * Added context manager for chrome/content in Firefox ``` ### 3.0.1 ``` * Fix regressions with python 3 * Add support for Safari Technology Preview ``` ### 3.0.0 ``` * new FirefoxDriver ctor precedence logic and moz:firefoxOptions support (2882) * Add W3C Set Window Position and W3C Get Window Position * enable log path setting from firefox webdriver (2700) * Correct encoding of getAttribute.js and only load it once. Fixes 2785 * Encode the isDisplayed atom and only load it once ``` ### 3.0.0.b3 ``` * Use atoms for get_attribute and is_displayed when communicating with a w3c compliant remote end. * Make it possible to specialise web element ``` ### 3.0.0.b2 ``` * Updated Marionette port argument to match other drivers. ``` ### 3.0.0.b1 ``` * Fix basestring reference to work with python 3. Fixes 1820 * Correct Length conditional when filtering in PhantomJS. Fixes 1817 * Fix send keys when using PUA keys e.g. Keys.RIGHT 1839 * Fix cookie file leak in PhantomJS 1854 * Use the correct binary path when using Marionette * Fixed: Unhelpful error message when PhantomJS exits. (2173 2168) * Fix broken link to python documentation (2159) * Attempt to remove Firefox profile when using Marionette * Ensure all capabilities are either within desiredCapabilities or requiredCapabilities * Correct the expected capability name for the Firefox profile * Add Firefox options to capabilities * Visibility_of_all implies it only returns elements if all visible (2052) * Find visible elements (2041) * Pass the firefox_profile as a desired capability in the Python client when using a remote server * Avoid checking exception details for invalid locators due to differences in server implementations * Handle capabilities better with Marionette and GeckoDriver * Updated the maxVersion of FirefoxDriver xpi maxVersion to work with Firefox 47.0.1 * Remove Selenium RC support ``` ### 2.53.0 ``` * Adding Options object for use with Python FirefoxDriver * Fixed improper usage of super in exceptions module * create a temp file for cookies in phantomjs if not specified * Pass in the executable that FirefoxBinary finds to the service if there isn't one passed in as a kwarg or capability * Applied some DRY and extracted out the keys_to_typing() * Fix deselecting options in <select> ``` ### 2.52.0 ``` * Fixing case where UnexpectedAlertException doesn't get the alert_text in the error object * Firefox: Actually use launch_browser timeout Fixes 1300 ``` ### 2.51.1 ``` * correcting bundling issue missing README.rst file ``` ### 2.51.0 ``` * Firefox updates (see java changelog) ``` ### 2.50.1 ``` * Fixing error message handling. Fixes issue 1497 * Fixing error message handling. Fixes issue 1507 * Update webelement to handle W3C commands for size/location and rect * rewrite click scrolling tests to match the Java ones ``` ### 2.50.0 ``` * handle potential URLError from sending shutdown, set self.process to None after it's already been quit * Add support for submit() with W3C compliant endpoint ``` ### 2.49.1 ``` * Ensure you can close stream before attempting to close it. * message response may cause json loads ValueError when it's not actually json and just a string (like the message that occurs when firefox driver thinks another element will receive the click) * Cleanup some error handling when sniffing what protocol you are speaking ``` ### 2.49.0 ``` * Have Firefox service write to a file instead of PIPE * on osx for firefox, fallback to checking homebrew install, if the default isn't there * Added Firefox path variable for string placeholder * Update README to show Python 3.2+ * refactoring all the service classes to use a common one. * Add Firefox specific command to switch context between Browser content and Browser chrome * updating files after go copyright:update * Use specificationLevel to know that we are speaking GeckoDriver * Bug fixes: 1294, 1186 ``` ### 2.48.0 ``` * Update error pulling to match spec when we encounter a spec compliant browser. * Disable tests that are not working with Marionette when running Marionette tests * Add the ability to run python marionette tests * Python 3 compatibility for remote Authorization * changing casing of children finding tests ``` ### 2.47.3 ``` * Bring back py 3 support ``` ### 2.47.2 ``` * Fix running Edge driver locally on win10 * adding repr to WebDriver and WebElement ``` ### 2.47.1 ``` * Fix the issue of deleting the profile when shutting down Firefox * WebElement **eq** compares against more types * Issues fixed: 850 ``` ### 2.47.0 ``` * Add in support for when communicating with a Spec compliant browsers * Initial support for Edge using EdgeDriver * Issues fixed: 818 ``` ### 2.46.1 ``` * Adding ability to make remote call for webelement screenshots in accordance to the W3C spec * Adding api to authenticate HTTP Auth modal dialogs via driver.switch_to.alert (beta) * Add rebeccapurple to Color Object * Add element screenshot * Add service handler and minimal update to driver to use service for Marionette * Add the ability to start FirefoxDriver backed with Marionette via a capability * support socket timeout for connections * free_port checks if port is available on all interfaces * Allow error handling to handle both current errors and w3c errors * Update find_elements to match spec * phantomjs: service: remove unused import of signal * phantomjs: add port information to WebDriverException * Issues fixed (Github): 478, 612, 734, 780 ``` ### 2.46.0 ``` * Firefox support up to 38 * BlackBerry browser support * remove Presto-Opera support * firefox extension extraction fixes * process management fixes with phantomjs * Comparing remote web element for equality does not require a remote command * Issues Fixed: (gcode) 8493, 8521, 8498, 8274, 8497, 5923 * Issues Fixed: (github) 401 ``` ### 2.45.0 ``` * Firefox support up to 35, support for native events up to 34. * Make Opera driver support also the new Blink based Opera * README: Fix the Yahoo example * WebElement docstring fixes * Add debugger_address option to the ChromeDriver options list to optionally instruct ChromeDriver to wait for the target devtools instance to be started at a given host:ip * Set default value for PhantomJS process reference * Allow setting of FileDetector for send_keys * Pass info to TimeoutException in WebDriverWait * Issues Fixed: 8065, 8310, 8539 ``` ### 2.44.0 ``` * (previous release person forgot to add release notes! DAVID!) ``` ### 2.43.0 ``` * Expand WebElement.get_attribute API docs * firefox may be installed without administrator privileges and therefore there may be no HKEY_LOCAL_MACHINE entry. Issue 7784 * UnexpectedAlertPresentException should contain the alert text in python too. Issue 7745 * don't mutate the global 'ignored exceptions', take a copy of the globally specified ones, change the global to be a tuple instead. Issue 7725 * raise exception when the firefox binary isn't actually found, which usually implies the upgrade failed (on windows) Issue 6092 ,6847 * Fixing NameError: global name 'options' is not defined. * Remove unused import subprocess.PIPE * Redirect Firefox output to /dev/null by default Fixes Issue 7677 * More flexible management of http timeouts in Selenium RC python client * Generate Python API docs for selenium.webdriver.chrome.options. Fixes issue 7471 * Use 127.0.0.1 as localhost name resolving might fail on some systems ``` ### 2.42.1 ``` * Fixed Py3 issues * Make firefox_binary.py and firefox_profile.py not executable * Make exceptions Python 3 compatible ``` ### 2.42 ``` * Support for Firefox 29 Native Events * "remote_url" and "remote_browser" parameters for "./go test_remote". * missing **init** in new android module * issue 7304 Fix memory leak caused by **del** in PhantomJS * File upload using remotedriver on python3 * Updating xpi install to align with mozprofile * command_executor should also support unicode strings as well. ``` ### 2.41 ``` * Support for Firefox 28 * deprecating switch_to_* in favour of driver.switch_to.* ``` ### 2.40 ``` * Support for Firefox 27 * Fixes related to http connection * Fix for phantomjs running on windows 6736 ``` ### 2.39 ``` * Support for Firefox 26 ``` ### 2.38.4 ``` * keep-alive can't be used for phantomjs / IE, fix for that and tested for py3 :) ``` ### 2.38.3 ``` * really supporting py3 :) ``` ### 2.38.2 ``` * py3 support (once again) ``` ### 2.38.1 ``` * fix packaging problem where firefox/webdriver_prefs.json was missing ``` ### 2.38 ``` * Support for Firefox 25 * FirefoxProfile now using common webdriver.json instead of having our own copy in py * behavior change to the preferences is that they now should be treated like raw types rather than strings and allow the json library to translate the types appropriated (e.g. True => true) * Set proper 'Accept' request header so that Python bindings work with some old WebDriver implementations that reply 404 to requests with no 'Accept' set. * handle redirect response explicitly (since switching to using keep-alive) * phantomjs service needs to really kill the spawned process Issue 5921 * removing old api endpoints from command listing * using keep-alive for remote connection * adjusting phantomjs subprocess.Popen * ActionsChains.send_keys should use <session>/keys endpoint Issue 6348 * fix TypeError in chrome_options.extensions for Python3.x * Other Bugs Fixed: 6531, 6513, 4569, 6454 ``` ### 2.37.2 ``` * fix regression added with unicode fix * Bug fix 6360 ``` ### 2.37.1 ``` * fix find_elements on webelement using unicode locators and py 2.7 ``` ### 2.37 ``` * repackage with fix for Firefox native events on Linux * fix issue with unicode By locators w/ python 2.7 6430 ``` ### 2.36 ``` * Added Safari WebDriver. Fixes issue 5352. * fix platform for safari caps * Convert all offsets/coordinates/speeds into integers * Fix drag and drop by offset behaviour * Fix initialization of Proxy by capabilities when proxyType is set * Enable SOCKS proxy support * Validation of passed locator for find_element(s) methods 5690 * Adding support for /status, /sessions commands * Doc fixes * ability to set Chrome extensions by using base64 encoded strings 4013 * fix logic regarding Select.select_by_visible_text 3910 * Bugs fixed: 6165, 6231 ``` ### 2.35 ``` * Remove duplicate 'get screenshot as file' methods. Add method 'get_screenshot_as_png' * fixing UnicodeEncodeError on get attribute of webelement ``` ### 2.34 ``` * Corrected webdriverbackedselenium session handling. Fixes issue 4283 * Corrected use of basestring for python 3. Fixes issue 5924 * Support for Firefox 22 * Added support for logging from the browser * corrected proxy handling on FirefoxProfile * Corrected handling of chrome extensions. Fixes issue 5762 ``` ### 2.33 ``` * getText() ignores elements in the <head> * Adding both official and informal string representations to Color object. * Replace distutils.dir_util by shutil * Allow finding firefox binary at ProgramFiles(x86) on windows(64 bit) * Py3 compatible winreg import and content-type access ``` ### 2.32 ``` * Support for FF20 Native Events * Python 3 support * Misc Python 3 patches * Allow easy FirefoxBinary subclassing ``` ### 2.31 ``` * Support for FF19 native events * web element equality is now in conformance with other language bindings ``` ### 2.30 ``` * Allow env to be specified for the chromedriver service * Allow log path to be specified for phantomjs driver service. * Bug Fixes: 4608 4940 4974 5034 5075 ``` ### 2.29 ``` * Allow subclassing of driver and have the ability to send_keys Issue 4877, 5017 * Simplifying save_screenshot and allow phantomjs to take screenshots ``` ### 2.28 ``` * "null" can now be passed to executeScript * Add transparent and extended colour keywords to color support module. Fixes issue 4866 ``` ### 2.27 ``` * Added support for phantomjs / ghostdriver * Fix python client, avoid duplicate chrome option items after reusing options class. Fixes Issue 4744. * adding colour support to Python. fixes issue 4623 * Adding log_path/service_log_path as named kwargs for chrome ``` ### 2.26 ``` * Added location_when_scrolled_into_view - Bug 4357 * Added new expected_conditions support module to be used with WebDriverWait ``` ### 2.25 ``` * Jython 2.7 Support - Bug 3988 * EventFiringWebDriver added to Support module - Bug 2267 * Added IEDriverServer logging that can be accessed via desired capabilities * Fixed by data being passed into find_elements - bug 3735 * Removed deprecated ChromeDriver items around desiredcapabilities in favour of chrome options * Added default values for a number of action_chains calls ``` ### 2.24 ``` * Removing the ctypes approach of invoking IEDriver, you will need to download the IEDriverServer from <https://code.google.com/p/selenium/downloads/list> ``` ### 2.23 ``` * Support for FF13 native events ``` ### 2.22 ``` * Moving IEDriver to be able to use IEDriverServer ``` ### 2.21.3 ``` * Fix for File Upload to remote servers * Better handling of typing in input=file. Bug 3831, 3736 * Better handling of unicode URLS Bug 3740 ``` ### 2.21.2 ``` * Fix typing to file input when not using Selenium Server. Bug 3736 ``` ### 2.21.1 ``` * focusmanager.testmode messes with native events, removing it. ``` ### 2.21 ``` * Local File upload capabilities for non-remote browser * Adding maximize_window api call * Updating default firefox profile to set focusmanager.testmode to true see <https://bugzilla.mozilla.org/show_bug.cgi?id=704583> * bugs fixed: 3506, 3528, 3607 ``` ### 2.20 ``` * disable native events for FF on Mac by default * fix webdriverwait to execute at least once when using 0 timeout * Fixed Issue 3438 ``` ### 2.19 ``` * WebDriverBackedSelenium is now available to all languages * Addon installation fixes ``` ### 2.18 ``` * Proxy capabilities passing ``` ### 2.17 ``` * OperaDriver can now be invoked by webdriver.Opera() * Support has been added for ChomeOptions. This deprecates support passing in DesiredCapabilities * Proxy class to tell the browser a proxy is in use. Currently only for Firefox ``` ### 2.16 ``` * bug fixes ``` ### 2.15 ``` * bug fixes ``` ### 2.14 ``` * Fix for LD_PRELOAD being polluted by WebDriver * Added Orientation API * A fix for Error Handling ``` ### 2.13 ``` * Fixed switch_to_window so that it didn't crash Firefox Bug 2633 * Fixed Screenshot handling to work in all browsers. Bug 2829 * Force Firefox to the Foreground ``` ### 2.12 ``` * Added Select as a support package * Added Beta window size / position api's * Bug Fixes ``` ### 2.11.0 ``` * no changes just packaging ``` ### 2.10 ``` * "Choose which apps" dialog has been disabled * Bug Fixes ``` ### 2.9 ``` * Bug Fixes * Documentation ``` ### 2.8 ``` * Actions updates * Bug Fixes ``` ### 2.6 ``` * Documentation fixes ``` ### 2.5 ``` * Fixed x64 IE Support * Bug Fixes ``` ### 2.4 ``` * Bug Fixes * x64 IE Support * Added WebDriverWait as a support package ``` ### 2.3 ``` * Bug Fixes ``` ### 2.2 ``` * Ability to get screenshots from Exceptions if they are given * Access to Remote StackTrace on error ``` ### 2.1 ``` * Bug Fixes Selenium 2 * Removed toggle() and select() Selenium 2 RC 3 * Added Opera to Desired Capabilities * Removed deprecrated methods * Deprecated toggle() and select() methods. This will be removed in the next release Selenium 2 Beta 4 * Fix for using existing Firefox Profiles * Alerts Support in IE * Fix to dictionary returned from size * Deprecated value property. Use the get_attribute("value") method * Deprecated get_page_source method. Use page_source property * Deprecated get_current_window_handle. Use current_window_handle property * Deprecated get_window_handles. Use window_handles property * Ability to install extensions into profiles * Added Location to the WebElement * ChromeDriver rewritten to use new built in mechanism * Added Advanced User Interaction API. Only Available for HTMLUnit at the moment * Profiles now delete their temp folders when driver.quit() is called Selenium 2 Beta 3 * Accept Untrusted Certificates in Firefox * Fixed Screenshots * Added DesiredCapabilities to simplify choosing Drivers * Fixed Firefox Profile creation * Added Firefox 4 support * DocStrings Improvements Selenium 2 Beta 2 * New bindings landed. Change webdriver namespace to "selenium.webdriver" * Ability to move to default content * Implicit Waits * Change the API to use properties instead of get_x * Changed the Element Finding to match other languages * Added ability to execute asynchronous scripts from the driver * Ability to get rendered element size * Ability to get CSS Value on a webelement * Corrected Element finding from the element * Alert and Prompt handling * Improved IEDriver * Basic Authentication support for Selenium 2 * Ability to have multiple Firefox instances ```Links
- PyPI: https://pypi.org/project/selenium - Changelog: https://data.safetycli.com/changelogs/selenium/ - Homepage: https://www.selenium.dev