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