Selenium 4.18.1

* Add CDP for Chrome 122 and remove 119

Selenium 4.18.0

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

Selenium 4.17.2
* [py] Correct typing_extension dependency for wheel generation

Selenium 4.17.1
* Fix typo in setup.py (#13487)

Selenium 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

Selenium 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


Selenium 4.15.2
* Fix bug for unzipping downloaded files

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

Selenium 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)

Selenium 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)

Selenium 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)

Selenium 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

Selenium 4.11.2
* better bug fix for #12454

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

Selenium 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

Selenium 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

Selenium 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)

Selenium 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

Selenium 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)

Selenium 4.8.2
* Update tox.ini for a valid "isort" version (#11667)
* Undo a bug fix that caused a worse bug. (#11666)

Selenium 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

Selenium 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)

Selenium 4.7.2
* Put selenium manager bug fix from 4.7.1 in the correct place

Selenium 4.7.1
* Fix bug preventing selenium manager from using Internet Explorer

Selenium 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)

Selenium 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.

Selenium 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)

Selenium 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

Selenium 4.4.3
* Update explicit dependency for certifi to remove upper bound (#10956)

Selenium 4.4.2
* Add explicit dependency for certifi (#10953)

Selenium 4.4.1
* Removal of urllib3[secure] extras (deprecated) dependency

Selenium 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

Selenium 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

Selenium 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

Selenium 4.1.5
* use `typing_extensions` to be compatible with `py37` (#10613)

Selenium 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)

Selenium 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

Selenium 4.1.2

* Include `py.typed` in the library

Selenium 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

Selenium 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

Selenium 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

Selenium 4.0 Beta 1

* Deprecate all but `Options` and `Service` arguments in driver instantiation. (#9125,#9128)
* Upgrade Bazel rules_python to latest
* Deprecate w3c checks in python bindings (#9109)
* Remove legacy WebElement key `ELEMENT` (#9102, #9110)
* Improve how desired_capabilities and options are merged
* Use weakreferences for driver in switch and mobile classes (#2425)
* Fix 'webview2' browser name for Edge py options. (#9090)
* Add python type hinting
* Improved alias for Keys (#9076)
* Improve comment about using importlib_resources
* Add mozdebugger capability to use CDP Features with Firefox
* Refactor bidi APIs for logging to be on their own class
* Make sure we are checking a string for local file detector
* Add Ignored Exception to wait in Bidi Tests
* Update tests
* Adding Github Actions workflow for Python (#9031)
* Fix WebDriver.start_session docstring to remove incorrect arguments (#9021)
* Add Mutation Logging support
* Pin Firefox bidi support to use the generated code for CDP 85
* Fix handling of generated code put into wheels
* Modernise the python code around imports and conditionals
* Support for float types in text fields (#8936)
* Add print page command to python binding (#8903)
* Add Chrome v88 to bidi support
* Fix pytest macro to allow --test_args to pass through
* Remove thread.join in testing webserver due to chromedriver issue 3654
* Fix grammar typos in exceptions.py (#8876)
* Enforce python version in wheel when created. fixes #8863
* Correct proxy tests
* Include readme in Wheel so it's rendered on Pypi

Selenium 4.0 Alpha 7

* BREAKING CHANGE: Dropped support for python < 3.7

* Remove support for XBL in Firefox.
* Correct formatting with JS fragment
* Add debugpy to requirements
* Fix uploading multiple files on remote driver (#7472) (#8734)
* Correct docstring around find_element and find_elements. Fixes #8806
* Add the ability to ignore local proxys that are available
* add script pinning to python bindings
* Deprecate desired_capabilities property in favour of capabilities property
* Update tests to use requirements file
* Allow driver fixtures to be used in Chrome only tests
* Update testing to use the latest pytest
* do not update already set preference (#8692)
* Added new argument creationflags in Service class for common, chrome, and firefox (#8647)
* add se namespacing to file upload endpoint for all bindings (#8588)
* Correct dependency management for code generator
* Update host to connect to get a port. Fixes #8503
* Poll quicker for the driver when starting up. Fixes #8477
* Add support for DevTools APIs
* Improve WebKitGTK and WPEWebKit support
* Fix browserName typo for Edge WebView2
* Fix wheel generation for multiple python versions

Selenium 4.0 Alpha 6 Post 2

* Correct usage of Abstract Base class in some instances
* Correct build step for releasing

Selenium 4.0 Alpha 6

* Add Abstract Base Class to WebElement and WebDriver #7127 (#8348)
* Copy `acceptInsecureCerts` to Options for Firefox. Fixes #8261
* Correct check on DEFAULT_EXECUTABLE_PATH
* Use ProxyManager instead of PoolManager in remote_connection (#8297)
* Check offsets are cast to int. Fixes #7639
* Fixes an issue where IE server port is set '0' by default (#8294)
* Favor Python3 constructs and Python 2.7 compatibility (#8290)
* Remove Unused Arguments from Firefox
* Fixup Firefox deprecations
* Delete support for Blackberry Driver
* Delete PhantomJS capabilities
* Delete Android Driver support
* Remove python crazyfun references
* Enable and update Safari tests
* Use same port in remote executor and service (#8255)
* Update tests and docs to not use deprecated methods
* mark various tests as failing in Firefox
* Use callback functions instead callable objects as expected conditions (#7765)
* Fix error in webelemet not created, verifying if is str or dict. (#3481)
* verify command_executor ssl certificate by default (#6536)
* Correct documentation for ChromiumDriver
* Deprecating find_element(s)_* calls in event firing webdriver
* Fixing path to selenium server for remote tests
* Fixing relative locator constructor
* Changing environment variable we use to check if the tests are running on travis
* Fixing HSL to RGBa color converter
* Deprecate use of AppCache APIs

Selenium 4.0 Alpha 5

* Correct service usage in IE Binding. Fixes  #7749
* Deprecate find_element(s)_by_* calls
* Use a capability to switch engines for Edge (#8096)
* Fix Flake8 errors
* Add WPEWebKit driver (#6375)
* update python_requires to only support python 2.7 and Python3.5+(#8085)
* add the ability to generate a wheel via bazel
* Add in support for page loading strategies for Options
* Add the ability to get and set timeouts against a driver. Fixes #7738
* Correct Docstring import in WebDriverWait example. Fixes #7780
* Explicitly force timeout value to float in WebDriverWait. Fixes #8050
* Add support for relative locators
* Fix clear actions in ActionChains (#7943)
* Automate RemoteConnection subclass selection  (#8010)
* Fix capabilities to support macOS platform (#7980)
* fix: DeprecationWarning of base64.encodestring() (#7446)
* Build python code with Bazel
* Parse python docstring example as code snippet
* correct python_requires in setup
* Fix grammar typo in exceptions.py (#7657)
* Fixed references to chromedriver website

Selenium 4.0 Alpha 3

* Fixing stacktrace parser to handle strings as well as objects
* urllib throws on 404 so let's check the /status endpoint that returns 200
* Changing default command executor address to the address of TNG Grid
* Fixing check of type of a returned element in a test for all_of condition
* Implement logical expected conditions in Python (#7121)
* Explicitly clear PoolManager by using context manager (#6878)
* Fix invisibility_of_element expected condition init function (#7484)
* fix docs build, add chromium and edge to docs
* flake8 fixes
* allow --browser-binary and --browser-args to be used with ChromiumEdge
* Add support for the new MicrosoftEdge (#7459)
* increase async script timeout from 0 as the w3c spec states to start time checking immediately
* fix unit test for firefox options, proxy key should be outside of options
* update to w3c compliant log endpoints
* Remove 'resolve_ip' option from RemoteConnection (#1729,#2509)
* Running python unit tests with bazel
* Pass capabilities rather than options to the proxy object (#6620)
* Adding full page screenshot feature for Firefox (#7182)
* Added EventFiringWebElement to the isinstance check in the move_to method.(#6604)
* Added socksVersion field in proxy class (#6983)
* also clear w3c actions in ActionChains#reset_actions
* fix edge webdriver init by deprecating edge_service in favor of service also fix warnings import in edge/webdriver
* Removes old exception and dead code from py lib.(#7134)
* Raise error for unsupported method for set_window_rect

Selenium 4.0 Alpha 1

* 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.

Selenium 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

Selenium 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

Selenium 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)

Selenium 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

Selenium 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`

Selenium 3.11.0

No changes just keeping python version in step with the rest of the project.

Selenium 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.

Selenium 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)

Selenium 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)

Selenium 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

Selenium 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)

Selenium 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

Selenium 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)

Selenium 3.4.3

* Fix EventFiringWebdriver and WebElement to raise AttributeError on missing attributes. (#4107)
* unwrap WebElements inside dicts

Selenium 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.

Selenium 3.4.1

* Add back the ability to set profile when using Firefox 45ESR. Fixes #3897

Selenium 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 alert#sendKeys 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

Selenium 3.3.3

* make w3c execute_script commands unique

Selenium 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.

Selenium 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)

Selenium 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

Selenium 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

Selenium 3.0.1

* Fix regressions with python 3
* Add support for Safari Technology Preview

Selenium 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

Selenium 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

Selenium 3.0.0.b2

* Updated Marionette port argument to match other drivers.

Selenium 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

Selenium 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>

Selenium 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

Selenium 2.51.1

* correcting bundling issue missing README.rst file

Selenium 2.51.0

* Firefox updates (see java changelog)

Selenium 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

Selenium 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

Selenium 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

Selenium 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

Selenium 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

Selenium 2.47.3

* Bring back py 3 support

Selenium 2.47.2

* Fix running Edge driver locally on win10
* adding repr to WebDriver and WebElement

Selenium 2.47.1

* Fix the issue of deleting the profile when shutting down Firefox
* WebElement **eq** compares against more types
* Issues fixed: 850

Selenium 2.47.0

* Add in support for when communicating with a Spec compliant browsers
* Initial support for Edge using EdgeDriver
* Issues fixed: 818

Selenium 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

Selenium 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

Selenium 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

Selenium 2.44.0

* (previous release person forgot to add release notes! DAVID!)

Selenium 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

Selenium 2.42.1

* Fixed Py3 issues
* Make firefox_binary.py and firefox_profile.py not executable
* Make exceptions Python 3 compatible

Selenium 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.

Selenium 2.41

* Support for Firefox 28
* deprecating switch_to_* in favour of driver.switch_to.*

Selenium 2.40

* Support for Firefox 27
* Fixes related to http connection
* Fix for phantomjs running on windows #6736

Selenium 2.39

* Support for Firefox 26

Selenium 2.38.4

* keep-alive can't be used for phantomjs / IE, fix for that and tested for py3 :)

Selenium 2.38.3

* really supporting py3 :)

Selenium 2.38.2

* py3 support (once again)

Selenium 2.38.1

* fix packaging problem where firefox/webdriver_prefs.json was missing

Selenium 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

Selenium 2.37.2

* fix regression added with unicode fix
* Bug fix #6360

Selenium 2.37.1

* fix find_elements on webelement using unicode locators and py 2.7

Selenium 2.37

* repackage with fix for Firefox native events on Linux
* fix issue with unicode By locators w/ python 2.7 #6430

Selenium 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

Selenium 2.35

* Remove duplicate 'get screenshot as file' methods.  Add method 'get_screenshot_as_png'
* fixing UnicodeEncodeError on get attribute of webelement

Selenium 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

Selenium 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

Selenium 2.32

* Support for FF20 Native Events
* Python 3 support
* Misc Python 3 patches
* Allow easy FirefoxBinary subclassing

Selenium 2.31

* Support for FF19 native events
* web element equality is now in conformance with other language bindings

Selenium 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

Selenium 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

Selenium 2.28

* "null" can now be passed to executeScript
* Add transparent and extended colour keywords to color support module. Fixes issue 4866

Selenium 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

Selenium 2.26

* Added location_when_scrolled_into_view - Bug 4357
* Added new expected_conditions support module to be used with WebDriverWait

Selenium 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

Selenium 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>

Selenium 2.23

* Support for FF13 native events

Selenium 2.22

* Moving IEDriver to be able to use IEDriverServer

Selenium 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

Selenium 2.21.2

* Fix typing to file input when not using Selenium Server. Bug 3736

Selenium 2.21.1

* focusmanager.testmode messes with native events, removing it.

Selenium 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

Selenium 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

Selenium 2.19

* WebDriverBackedSelenium is now available to all languages
* Addon installation fixes

Selenium 2.18

* Proxy capabilities passing

Selenium 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

Selenium 2.16

* bug fixes

Selenium 2.15

* bug fixes

Selenium 2.14

* Fix for LD_PRELOAD being polluted by WebDriver
* Added Orientation API
* A fix for Error Handling

Selenium 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

Selenium 2.12

* Added Select as a support package
* Added Beta window size / position api's
* Bug Fixes

Selenium 2.11.0 2.11.1

* no changes just packaging

Selenum 2.10

* "Choose which apps" dialog has been disabled
* Bug Fixes

Selenium 2.9

* Bug Fixes
* Documentation

Selenium 2.8

* Actions updates
* Bug Fixes

Selenium 2.6

* Documentation fixes

Selenium 2.5

* Fixed x64 IE Support
* Bug Fixes

Selenium 2.4

* Bug Fixes
* x64 IE Support
* Added WebDriverWait as a support package

Selenium 2.3

* Bug Fixes

Selenium 2.2

* Ability to get screenshots from Exceptions if they are given
* Access to Remote StackTrace on error

Selenium 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
