Changelog
This project versioning adheres to Semantic Versioning.
Unreleased
1.7.1 - 2019-06-13
Fixed
- Error
Call to a member function toArray()
if capabilities were already converted to an array. - Temporarily do not send capabilities to disable W3C WebDriver protocol when BrowserStack hub is used.
1.7.0 - 2019-06-10
Added
-
WebDriverCheckboxes
andWebDriverRadios
helper classes to simplify interaction with checkboxes and radio buttons.
Fixed
- Stop sending null values in Cookie object, which is against the protocol and may cause request to remote ends to fail.
Changed
- Force Chrome to not use W3C WebDriver protocol.
- Add workaround for Chromedriver bug 2943 which breaks the protocol in Chromedriver 75.
1.6.0 - 2018-05-16
Added
- Connection and request timeouts could be specified also when creating RemoteWebDriver from existing session ID.
- Update PHPDoc for functions that return static instances of a class.
Changed
- Disable sending 'Expect: 100-Continue' header with POST requests, as they may more easily fail when sending via eg. squid proxy.
1.5.0 - 2017-11-15
Changed
- Drop PHP 5.5 support, the minimal required version of PHP is now PHP 5.6.
- Allow installation of Symfony 4 components.
Added
- Add a
visibilityOfAnyElementsLocated()
method toWebDriverExpectedCondition
.
1.4.1 - 2017-04-28
Fixed
- Do not throw notice
Constant CURLOPT_CONNECTTIMEOUT_MS already defined
.
1.4.0 - 2017-03-22
Changed
- Cookies should now be set using
Cookie
value object instead of an array when passed to toaddCookie()
method ofWebDriverOptions
. - Cookies retrieved using
getCookieNamed()
andgetCookies()
methods ofWebDriverOptions
are now encapsulated inCookie
object instead of an plain array. The object implementsArrayAccess
interface to provide backward compatibility. -
ext-zip
is now specified as required dependency in composer.json (but the extension was already required by the code, though). - Deprecate
WebDriverCapabilities::isJavascriptEnabled()
method. - Deprecate
textToBePresentInElementValue
expected condition in favor ofelementValueContains
.
Fixed
- Do not throw fatal error when
null
is passed tosendKeys()
.
1.3.0 - 2017-01-13
Added
- Added
getCapabilities()
method ofRemoteWebDriver
, to retrieve actual capabilities acknowledged by the remote driver on startup. - Added option to pass required capabilities when creating
RemoteWebDriver
. (So far only desired capabilities were supported.) - Added new expected conditions:
-
urlIs
- current URL exactly equals given value -
urlContains
- current URL contains given text -
urlMatches
- current URL matches regular expression -
titleMatches
- current page title matches regular expression -
elementTextIs
- text in element exactly equals given text -
elementTextContains
(as an alias fortextToBePresentInElement
) - text in element contains given text -
elementTextMatches
- text in element matches regular expression -
numberOfWindowsToBe
- number of opened windows equals given number
-
- Possibility to select option of
<select>
by its partial text (usingselectByVisiblePartialText()
). -
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()
andsetCommandExecutor()
methods ofRemoteWebDriver
class; these values should be immutable and thus passed only via constructor. - Deprecated
WebDriverExpectedCondition::textToBePresentInElement()
in favor ofelementTextContains()
. - 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()
andgetAllSelectedOptions()
methods ofWebDriverSelect
when used with non-multiple select element.
Fixed
- XPath escaping in
select*()
anddeselect*()
methods ofWebDriverSelect
.
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
andDesiredCapabilities
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.
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
andDesiredCapabilities
. - Fixed retrieving temporary path name in
FirefoxDriver
whenopen_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
.