This project versioning adheres to Semantic Versioning.
- Connection and request timeouts could be specified also when creating RemoteWebDriver from existing session ID.
- Drop PHP 5.5 support, the minimal required version of PHP is now PHP 5.6.
- Allow installation of Symfony 4 components.
- Add a
visibilityOfAnyElementsLocated()
method toWebDriverExpectedCondition
.
- Do not throw notice
Constant CURLOPT_CONNECTTIMEOUT_MS already defined
.
- 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
.
- Do not throw fatal error when
null
is passed tosendKeys()
.
- 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 valueurlContains
- current URL contains given texturlMatches
- current URL matches regular expressiontitleMatches
- current page title matches regular expressionelementTextIs
- text in element exactly equals given textelementTextContains
(as an alias fortextToBePresentInElement
) - text in element contains given textelementTextMatches
- text in element matches regular expressionnumberOfWindowsToBe
- 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.
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.
- XPath escaping in
select*()
anddeselect*()
methods ofWebDriverSelect
.
- 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.
- Fixed FirefoxProfile to support installation of extensions with custom namespace prefix in their manifest file.
- Comply codestyle with PSR-2.
- Added ext-curl to composer.json.
- Added CHANGELOG.md.
- Added CONTRIBUTING.md with information and rules for contributors.
- 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.
- FirefoxProfile improved - added possibility to set RDF file and to add datas for extensions.
- Fixed setting 0 second timeout of
WebDriverWait
.