# Changelog This project versioning adheres to [Semantic Versioning](http://semver.org/). ## Unreleased ## 1.15.2 - 2024-11-21 ### Fixed - PHP 8.4 deprecation notices, especially in nullable type-hints. - Docs: Fix static return types in RemoteWebElement phpDoc. - Tests: Disable chrome 127+ search engine pop-up in tests - Tests: Enable Shadow DOM tests in Geckodriver ### Added - Tests: Allow running tests in headfull (not headless) mode using `DISABLE_HEADLESS` environment variable. ### Changed - Docs: Update selenium server host URL in example. ## 1.15.1 - 2023-10-20 - Update `symfony/process` dependency to support upcoming Symfony 7. ## 1.15.0 - 2023-08-29 ### Changed - Capability key `ChromeOptions::CAPABILITY_W3C` used to set ChromeOptions is now deprecated in favor of `ChromeOptions::CAPABILITY`, which now also contains the W3C compatible value (`goog:chromeOptions`). - ChromeOptions are now passed to the driver always as a W3C compatible key `goog:chromeOptions`, even in the deprecated OSS JsonWire payload (as ChromeDriver [supports](https://bugs.chromium.org/p/chromedriver/issues/detail?id=1786) this since 2017). - Improve Safari compatibility for `` by its partial text (using `selectByVisiblePartialText()`). - `XPathEscaper` helper class to quote XPaths containing both single and double quotes. - `WebDriverSelectInterface`, to allow implementation of custom select-like components, eg. those not built around and actual select tag. ### Changed - `Symfony\Process` is used to start local WebDriver processes (when browsers are run directly, without Selenium server) to workaround some PHP bugs and improve portability. - Clarified meaning of selenium server URL variable in methods of `RemoteWebDriver` class. - Deprecated `setSessionID()` and `setCommandExecutor()` methods of `RemoteWebDriver` class; these values should be immutable and thus passed only via constructor. - Deprecated `WebDriverExpectedCondition::textToBePresentInElement()` in favor of `elementTextContains()`. - Throw an exception when attempting to deselect options of non-multiselect (it already didn't have any effect, but was silently ignored). - Optimize performance of `(de)selectByIndex()` and `getAllSelectedOptions()` methods of `WebDriverSelect` when used with non-multiple select element. ### Fixed - XPath escaping in `select*()` and `deselect*()` methods of `WebDriverSelect`. ## 1.2.0 - 2016-10-14 - Added initial support of remote Microsoft Edge browser (but starting local EdgeDriver is still not supported). - Utilize late static binding to make eg. `WebDriverBy` and `DesiredCapabilities` classes easily extensible. - PHP version at least 5.5 is required. - Fixed incompatibility with Appium, caused by redundant params present in requests to Selenium server. ## 1.1.3 - 2016-08-10 - Fixed FirefoxProfile to support installation of extensions with custom namespace prefix in their manifest file. - Comply codestyle with [PSR-2](http://www.php-fig.org/psr/psr-2/). ## 1.1.2 - 2016-06-04 - Added ext-curl to composer.json. - Added CHANGELOG.md. - Added CONTRIBUTING.md with information and rules for contributors. ## 1.1.1 - 2015-12-31 - Fixed strict standards error in `ChromeDriver`. - Added unit tests for `WebDriverCommand` and `DesiredCapabilities`. - Fixed retrieving temporary path name in `FirefoxDriver` when `open_basedir` restriction is in effect. ## 1.1.0 - 2015-12-08 - FirefoxProfile improved - added possibility to set RDF file and to add datas for extensions. - Fixed setting 0 second timeout of `WebDriverWait`.