diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-05-27 17:36:13 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-05-27 17:36:13 +0200 |
commit | 5f466137ad6ac596600e3ff53c9b786815398445 (patch) | |
tree | f914c221874f0b16bf3def7ac01d59d1a99a3b0b /node_modules/selenium-webdriver/CHANGES.md | |
parent | c9f5ac8e763eda19aa0564179300cfff76785435 (diff) |
node_modules, clean up package.json
Diffstat (limited to 'node_modules/selenium-webdriver/CHANGES.md')
-rw-r--r-- | node_modules/selenium-webdriver/CHANGES.md | 784 |
1 files changed, 0 insertions, 784 deletions
diff --git a/node_modules/selenium-webdriver/CHANGES.md b/node_modules/selenium-webdriver/CHANGES.md deleted file mode 100644 index 0260b0604..000000000 --- a/node_modules/selenium-webdriver/CHANGES.md +++ /dev/null @@ -1,784 +0,0 @@ -## v3.4.0 - -### Notice - -This release requires [geckodriver 0.15.0](https://github.com/mozilla/geckodriver/releases/tag/v0.15.0) or newer. - -### API Changes - -* Added `Options#getTimeouts()` for retrieving the currently configured session - timeouts (i.e. implicit wait). This method will only work with W3C compatible - WebDriver implementations. -* Deprecated the `Timeouts` class in favor of `Options#setTimeouts()`, which - supports setting multiple timeouts at once. -* Added support for emulating different network conditions (e.g., offline, 2G, WiFi) on Chrome. - -### Changes for W3C WebDriver Spec Compliance - -* Fixed W3C response parsing, which expects response data to always be a JSON - object with a `value` key. -* Added W3C endpoints for interacting with various types of - [user prompts](https://w3c.github.io/webdriver/webdriver-spec.html#user-prompts). -* Added W3C endpoints for remotely executing scripts. -* Added W3C endpoints to get current window handle and all windows handles. - - -## v3.3.0 - -* Added warning log messages when the user creates new managed promises, or - schedules unchained tasks. Users may opt in to printing these log messages - with - - ```js - const {logging} = require('selenium-webdriver'); - logging.installConsoleHandler(); - logging.getLogger('promise.ControlFlow').setLevel(logging.Level.WARNING); - ``` -* If the `JAVA_HOME` environment variable is set, use it to locate java.exe. - - -## v3.2.0 - -* Release skipped to stay in sync with the main Selenium project. - - -## v3.1.0 - -* The `lib` package is once again platform agnostic (excluding `lib/devmode`). -* Deprecated `promise.when(value, callback, errback)`. - Use `promise.fulfilled(value).then(callback, errback)` -* Changed `promise.fulfilled(value)`, `promise.rejected(reason)` and - `promise.defer()` to all use native promises when the promise manager is - disabled. -* Properly handle W3C error responses to new session commands. -* Updated `selenium-webdriver/testing` to export `describe.only` along with - `describe.skip`. -* Fixed `selenium-webdriver/lib/until.ableToSwitchToFrame`. It was previously - dropping arguments and would never work. -* Added the ability to use Firefox Nightly -* If Firefox cannot be found in the default location, look for it on the PATH -* Allow SafariDriver to use Safari Technology Preview. -* Use the proper wire command for WebElement.getLocation() and - WebElement.getSize() for W3C compliant drivers. - - -## v3.0.1 - -* More API adjustments to align with native Promises - - Deprecated `promise.fulfilled(value)`, use `promise.Promise#resolve(value)` - - Deprecated `promise.rejected(reason)`, use `promise.Promise#reject(reason)` -* When a `wait()` condition times out, the returned promise will now be - rejected with an `error.TimeoutError` instead of a generic `Error` object. -* `WebDriver#wait()` will now throw a TypeError if an invalid wait condition is - provided. -* Properly catch unhandled promise rejections with an action sequence (only - impacts when the promise manager is disabled). - - -## v3.0.0 - -* (__NOTICE__) The minimum supported version of Node is now 6.9.0 LTS -* Removed support for the SafariDriver browser extension. This has been - replaced by Apple's safaridriver, which is included wtih Safari 10 - (available on OS X El Capitan and macOS Sierra). - - To use Safari 9 or older, users will have to use an older version of Selenium. - -* geckodriver v0.11.0 or newer is now required for Firefox. -* Fixed potential reference errors in `selenium-webdriver/testing` when users - create a cycle with mocha by running with mocha's `--hook` flag. -* Fixed `WebDriver.switchTo().activeElement()` to use the correct HTTP method - for compatibility with the W3C spec. -* Update the `selenium-webdriver/firefox` module to use geckodriver's - "moz:firefoxOptions" dictionary for Firefox-specific configuration values. -* Extending the `selenium-webdriver/testing` module to support tests defined - using generator functions. -* The promise manager can be disabled by setting an enviornment variable: - `SELENIUM_PROMISE_MANAGER=0`. This is part of a larger plan to remove the - promise manager, as documented at - <https://github.com/SeleniumHQ/selenium/issues/2969> -* When communicating with a W3C-compliant remote end, use the atoms library for - the `WebElement.getAttribute()` and `WebElement.isDisplayed()` commands. This - behavior is consistent with the java, .net, python, and ruby clients. - - -### API Changes - - * Removed `safari.Options#useLegacyDriver()` - * Reduced the API on `promise.Thenable` for compatibility with native promises: - - Removed `#isPending()` - - Removed `#cancel()` - - Removed `#finally()` - * Changed all subclasses of `webdriver.WebDriver` to overload the static - function `WebDriver.createSession()` instead of doing work in the - constructor. All constructors now inherit the base class' function signature. - Users are still encouraged to use the `Builder` class instead of creating - drivers directly. - * `Builder#build()` now returns a "thenable" WebDriver instance, allowing users - to immediately schedule commands (as before), or issue them through standard - promise callbacks. This is the same pattern already employed for WebElements. - * Removed `Builder#buildAsync()` as it was redundant with the new semantics of - `build()`. - - - -## v3.0.0-beta-3 - -* Fixed a bug where the promise manager would silently drop callbacks after - recovering from an unhandled promise rejection. -* Added the `firefox.ServiceBuilder` class, which may be used to customize the - geckodriver used for `firefox.Driver` instances. -* Added support for Safari 10 safaridriver. safaridriver may be disabled - via tha API, `safari.Options#useLegacyDriver`, to use the safari - extension driver. -* Updated the `lib/proxy` module to support configuring a SOCKS proxy. -* For the `promise.ControlFlow`, fire the "uncaughtException" event in a new - turn of the JS event loop. As a result of this change, any errors thrown by - an event listener will propagate to the global error handler. Previously, - this event was fired with in the context of a (native) promise callback, - causing errors to be silently suppressed in the promise chain. - -### API Changes - -* Added `remote.DriverService.Builder` as a base class for configuring - DriverService instances that run in a child-process. The - `chrome.ServiceBuilder`, `edge.ServiceBuilder`, and `opera.ServiceBuilder` - classes now all extend this base class with browser-specific options. -* For each of the ServiceBuilder clases, renamed `usingPort` and - `withEnvironment` to `setPort` and `setEnvironment`, respectively. -* Renamed `chrome.ServiceBuilder#setUrlBasePath` to `#setPath` -* Changed the signature of the `firefox.Driver` from `(config, flow, executor)` - to `(config, executor, flow)`. -* Exposed the `Condition` and `WebElementCondition` classes from the top-level - `selenium-webdriver` module (these were previously only available from - `lib/webdriver`). - - -### Changes for W3C WebDriver Spec Compliance - -* Updated command mappings for [getting](https://w3c.github.io/webdriver/webdriver-spec.html#get-window-position) - and [setting](https://w3c.github.io/webdriver/webdriver-spec.html#set-window-position) - the window position. - - -## v3.0.0-beta-2 - -### API Changes - -* Moved the `builder.Builder` class into the main module (`selenium-webdriver`). -* Removed the `builder` module. -* Fix `webdriver.WebDriver#setFileDetector` when driving Chrome or Firefox on a - remote machine. - - -## v3.0.0-beta-1 - -* Allow users to set the agent used for HTTP connections through - `builder.Builder#usingHttpAgent()` -* Added new wait conditions: `until.urlIs()`, `until.urlContains()`, - `until.urlMatches()` -* Added work around for [GeckoDriver bug](https://bugzilla.mozilla.org/show_bug.cgi?id=1274924) - raising a type conversion error -* Internal cleanup replacing uses of managed promises with native promises -* Removed the mandatory use of Firefox Dev Edition, when using Marionette driver -* Fixed timeouts' URL -* Properly send HTTP requests when using a WebDriver server proxy -* Properly configure proxies when using the geckodriver -* `http.Executor` now accepts a promised client. The `builder.Builder` class - will now use this instead of a `command.DeferredExecutor` when creating - WebDriver instances. -* For Chrome and Firefox, the `builder.Builder` class will always return an - instanceof `chrome.Driver` and `firefox.Driver`, respectively, even when - configured to use a remote server (from `builder.Builder#usingServer(url)`, - `SELENIUM_REMOTE_URL`, etc). - -### API Changes - -* `promise.Deferred` is no longer a thenable object. -* `Options#addCookie()` now takes a record object instead of 7 individual - parameters. A TypeError will be thrown if addCookie() is called with invalid - arguments. -* When adding cookies, the desired expiry must be provided as a Date or in - _seconds_ since epoch. When retrieving cookies, the expiration is always - returned in seconds. -* Renamed `firefox.Options#useMarionette` to `firefox.Options#useGeckoDriver` -* Removed deprecated modules: - - `selenium-webdriver/error` (use `selenium-webdriver/lib/error`,\ - or the `error` property exported by `selenium-webdriver`) - - `selenium-webdriver/executors` — this was not previously deprecated, but - is no longer used. -* Removed deprecated types: - - `command.DeferredExecutor` — this was not previously deprecated, but is no - longer used. It can be trivially implemented by clients should it be - needed. - - `error.InvalidSessionIdError` (use `error.NoSuchSessionError`) - - `executors.DeferredExecutor` - - `until.Condition` (use `webdriver.Condition`) - - `until.WebElementCondition` (use `webdriver.WebElementCondition`) - - `webdriver.UnhandledAlertError` (use `error.UnexpectedAlertOpenError`) -* Removed deprecated functions: - - `Deferred#cancel()` - - `Deferred#catch()` - - `Deferred#finally()` - - `Deferred#isPending()` - - `Deferred#then()` - - `Promise#thenCatch()` - - `Promise#thenFinally()` - - `WebDriver#isElementPresent()` - - `WebElement#getInnerHtml()` - - `WebElement#getOuterHtml()` - - `WebElement#getRawId()` - - `WebElement#isElementPresent()` -* Removed deprecated properties: - - `WebDriverError#code` - - -## v2.53.2 - -* Changed `io.exists()` to return a rejected promise if the input path is not - a string -* Deprecated `Promise#thenFinally()` - use `Promise#finally()`. The thenFinally - shim added to the promise module in v2.53.0 will be removed in v3.0 - Sorry for the churn! -* FIXED: capabilities serialization now properly handles undefined vs. - false-like values. -* FIXED: properly handle responses from the remote end in - `WebDriver.attachToSession` - -## v2.53.1 - -* FIXED: for consistency with the other language bindings, `remote.FileDetector` - will ignore paths that refer to a directory. - -## v2.53.0 - -### Change Summary - -* Added preliminary support for Marionette, Mozilla's WebDriver implementation - for Firefox. Marionette may be enabled via the API, - `firefox.Options#useMarionette`, or by setting the `SELENIUM_MARIONETTE` - environment variable. -* Moved all logic for parsing and interpreting responses from the remote end - into the individual `command.Executor` implementations. -* For consistency with the other Selenium language bindings, - `WebDriver#isElementPresent()` and `WebElement#isElementPresent()` have - been deprecated. These methods will be removed in v3.0. Use the findElements - command to test for the presence of an element: - - driver.findElements(By.css('.foo')).then(found => !!found.length); -* Added support for W3C-spec compliant servers. -* For consistent naming, deprecating `error.InvalidSessionIdError` in favor of - `error.NoSuchSessionError`. -* Moved the `error` module to `lib/error` so all core modules are co-located. - The top-level `error` module will be removed in v3.0. -* Moved `until.Condition` and `until.WebElementCondition` to the webdriver - module to break a circular dependency. -* Added support for setting the username and password in basic auth pop-up - dialogs (currently IE only). -* Deprecated `WebElement#getInnerHtml()` and `WebEleemnt#getOuterHtml()` -* Deprecated `Promise#thenCatch()` - use `Promise#catch()` instead -* Deprecated `Promise#thenFinally()` - use `promise.thenFinally()` instead -* FIXED: `io.findInPath()` will no longer match against directories that have - the same basename as the target file. -* FIXED: `phantomjs.Driver` now takes a third argument that defines the path to - a log file to use for the phantomjs executable's output. This may be quickly - set at runtime with the `SELENIUM_PHANTOMJS_LOG` environment variable. - -### Changes for W3C WebDriver Spec Compliance - -* Changed `element.sendKeys(...)` to send the key sequence as an array where - each element defines a single key. The legacy wire protocol permits arrays - where each element is a string of arbitrary length. This change is solely - at the protocol level and should have no user-visible effect. - - -## v2.52.0 - -### Notice - -Starting with v2.52.0, each release of selenium-webdriver will support the -latest _minor_ LTS and stable Node releases. All releases between the LTS and -stable release will have best effort support. Further details are available in -the selenium-webdriver package README. - -### Change Summary - -* Add support for Microsoft's Edge web browser -* Added `webdriver.Builder#buildAsync()`, which returns a promise that will be - fulfilled with the newly created WebDriver instance once the associated - browser has been full initialized. This is purely a convenient alternative - to the existing build() method as the WebDriver class will always defer - commands until it has a fully created browser. -* Added `firefox.Profile#setHost()` which may be used to set the host that - the FirefoxDriver's server listens for commands on. The server uses - "localhost" by default. -* Added `promise.Promise#catch()` for API compatibility with native Promises. - `promise.Promise#thenCatch()` is not yet deprecated, but it simply - delegates to `catch`. -* Changed some `io` operations to use native promises. -* Changed `command.Executor#execute()` and `HttpClient#send()` to return - promises instead of using callback passing. -* Replaced the `Serializable` class with an internal, Symbol-defined method. -* Changed the `Capabilities` class to extend the native `Map` type. -* Changed the `Capabilities.has(key)` to only test if a capability has been set - (Map semantics). To check whether the value is true, use `get(key)`. -* Deprecated `executors.DeferredExecutor` in favor of - `lib/command.DeferredExecutor`. -* API documentation is no longer distributed with the npm package, but remains - available at <http://seleniumhq.github.io/selenium/docs/api/javascript/> -* Rewrote the `error` module to export an Error subtype for each type of error - defined in the [W3C WebDriver spec](https://w3c.github.io/webdriver/webdriver-spec.html#handling-errors). -* Changed the `http.Request` and `http.Response` classes to store headers in - maps instead of object literals. -* Updated `ws` dependency to version `1.0.1`. -* Removed fluent predicates "is" and "not" from the experimental - `testing/assert` module. -* Wait conditions that locate an element, or that wait on an element's state, - will return a WebElementPromise. -* Lots of internal clean-up to break selenium-webdriver's long standing - dependency on Google's Closure library. - -### Changes for W3C WebDriver Spec Compliance - -* Updated the `By` locators that are not in the W3C spec to delegated to using - CSS selectors: `By.className`, `By.id`, `By.name`, and `By.tagName`. - - -## v2.49-51 - -* _Releases skipped to stay in sync with the rest of the Selenium project_ - - -## v2.48.2 - -* Added `WebElement#takeScreenshot()`. -* More adjustments to promise callback tracking. - -## v2.48.1 - -* FIXED: Adjusted how the control flow tracks promise callbacks to avoid a - potential deadlock. - -## v2.48.0 - -* Node v0.12.x users must run with --harmony. _This is the last release that - will support v0.12.x_ -* FIXED: (Promise/A+ compliance) When a promise is rejected with a thenable, - the promise adopts the thenable as its rejection reason instead of waiting - for it to settle. The previous (incorrect) behavior was hidden by bugs in - the `promises-aplus-tests` compliance test suite that were fixed in version - `2.1.1`. -* FIXED: the `webdriver.promise.ControlFlow` now has a consistent execution - order for tasks/callbacks scheduled in different turns of the JS event loop. - Refer to the `webdriver.promise` documentation for more details. -* FIXED: do not drop user auth from the WebDriver server URL. -* FIXED: a single `firefox.Binary` instance may be used to configure and - launch multiple FirefoxDriver sessions. - - var binary = new firefox.Binary(); - var options = new firefox.Options().setBinary(binary); - var builder = new Builder().setFirefoxOptions(options); - - var driver1 = builder.build(); - var driver2 = builder.build(); - -* FIXED: zip files created for transfer to a remote WebDriver server are no - longer compressed. If the zip contained a file that was already compressed, - the server would return an "invalid code lengths set" error. -* FIXED: Surfaced the `loopback` option to `remote/SeleniumServer`. When set, - the server will be accessed using the current host's loopback address. - -## v2.47.0 - -### Notice - -This is the last release for `selenium-webdriver` that will support ES5. -Subsequent releases will depend on ES6 features that are enabled by -[default](https://nodejs.org/en/docs/es6/) in Node v4.0.0. Node v0.12.x will -continue to be supported, but will require setting the `--harmony` flag. - -### Change Summary - -* Add support for [Node v4.0.0](https://nodejs.org/en/blog/release/v4.0.0/) - * Updated `ws` dependency from `0.7.1` to `0.8.0` -* Bumped the minimum supported version of Node from `0.10.x` to `0.12.x`. This - is in accordance with the Node support policy established in `v2.45.0`. - -## v2.46.1 - -* Fixed internal module loading on Windows. -* Fixed error message format on timeouts for `until.elementLocated()` - and `until.elementsLocated()`. - -## v2.46.0 - -* Exposed a new logging API via the `webdriver.logging` module. For usage, see - `example/logging.js`. -* Added support for using a proxy server for WebDriver commands. - See `Builder#usingWebDriverProxy()` for more info. -* Removed deprecated functions: - * Capabilities#toJSON() - * UnhandledAlertError#getAlert() - * chrome.createDriver() - * phantomjs.createDriver() - * promise.ControlFlow#annotateError() - * promise.ControlFlow#await() - * promise.ControlFlow#clearHistory() - * promise.ControlFlow#getHistory() -* Removed deprecated enum values: `ErrorCode.NO_MODAL_DIALOG_OPEN` and - `ErrorCode.MODAL_DIALOG_OPENED`. Use `ErrorCode.NO_SUCH_ALERT` and - `ErrorCode.UNEXPECTED_ALERT_OPEN`, respectively. -* FIXED: The `promise.ControlFlow` will maintain state for promise chains - generated in a loop. -* FIXED: Correct serialize target elements used in an action sequence. -* FIXED: `promise.ControlFlow#wait()` now has consistent semantics for an - omitted or 0-timeout: it will wait indefinitely. -* FIXED: `remote.DriverService#start()` will now fail if the child process dies - while waiting for the server to start accepting requests. Previously, start - would continue to poll the server address until the timeout expired. -* FIXED: Skip launching Firefox with the `-silent` flag to preheat the profile. - Starting with Firefox 38, this would cause the browser to crash. This step, - which was first introduced for Selenium's java client back with Firefox 2, - no longer appears to be required. -* FIXED: 8564: `firefox.Driver#quit()` will wait for the Firefox process to - terminate before deleting the temporary webdriver profile. This eliminates a - race condition where Firefox would write profile data during shutdown, - causing the `rm -rf` operation on the profile directory to fail. - -## v2.45.1 - -* FIXED: 8548: Task callbacks are once again dropped if the task was cancelled - due to a previously uncaught error within the frame. -* FIXED: 8496: Extended the `chrome.Options` API to cover all configuration - options (e.g. mobile emulation and performance logging) documented on the - ChromeDriver [project site](https://sites.google.com/a/chromium.org/chromedriver/capabilities). - -## v2.45.0 - -### Important Policy Change - -Starting with the 2.45.0 release, selenium-webdriver will support the last -two stable minor releases for Node. For 2.45.0, this means Selenium will -support Node 0.10.x and 0.12.x. Support for the intermediate, un-stable release -(0.11.x) is "best-effort". This policy will be re-evaluated once Node has a -major version release (i.e. 1.0.0). - -### Change Summary - -* Added native browser support for Internet Explorer, Opera 26+, and Safari -* With the release of [Node 0.12.0](http://blog.nodejs.org/2015/02/06/node-v0-12-0-stable/) - (finally!), the minimum supported version of Node is now `0.10.x`. -* The `promise` module is now [Promises/A+](https://promisesaplus.com/) - compliant. The biggest compliance change is that promise callbacks are now - invoked in a future turn of the JS event loop. For example: - - var promise = require('selenium-webdriver').promise; - console.log('start'); - promise.fulfilled().then(function() { - console.log('middle'); - }); - console.log('end'); - - // Output in selenium-webdriver@2.44.0 - // start - // middle - // end - // - // Output in selenium-webdriver@2.45.0 - // start - // end - // middle - - The `promise.ControlFlow` class has been updated to track the asynchronous - breaks required by Promises/A+, so there are no changes to task execution - order. -* Updated how errors are annotated on failures. When a task fails, the - stacktrace from when that task was scheduled is appended to the rejection - reason with a `From: ` prefix (if it is an Error object). For example: - - var driver = new webdriver.Builder().forBrowser('chrome').build(); - driver.get('http://www.google.com/ncr'); - driver.call(function() { - driver.wait(function() { - return driver.isElementPresent(webdriver.By.id('not-there')); - }, 2000, 'element not found'); - }); - - This code will fail an error like: - - Error: element not found - Wait timed out after 2002ms - at <stack trace> - From: Task: element not found - at <stack trace> - From: Task: WebDriver.call(function) - at <stack trace> - -* Changed the format of strings returned by `promise.ControlFlow#getSchedule`. - This function now accepts a boolean to control whether the returned string - should include the stacktraces for when each task was scheduled. -* Deprecating `promise.ControlFlow#getHistory`, - `promise.ControlFlow#clearHistory`, and `promise.ControlFlow#annotateError`. - These functions were all intended for internal use and are no longer - necessary, so they have been made no-ops. -* `WebDriver.wait()` may now be used to wait for a promise to resolve, with - an optional timeout. Refer to the API documentation for more information. -* Added support for copying files to a remote Selenium via `sendKeys` to test - file uploads. Refer to the API documentation for more information. Sample - usage included in `test/upload_test.js` -* Expanded the interactions API to include touch actions. - See `WebDriver.touchActions()`. -* FIXED: 8380: `firefox.Driver` will delete its temporary profile on `quit`. -* FIXED: 8306: Stack overflow in promise callbacks eliminated. -* FIXED: 8221: Added support for defining custom command mappings. Includes - support for PhantomJS's `executePhantomJS` (requires PhantomJS 1.9.7 or - GhostDriver 1.1.0). -* FIXED: 8128: When the FirefoxDriver marshals an object to the page for - `executeScript`, it defines additional properties (required by the driver's - implementation). These properties will no longer be enumerable and should - be omitted (i.e. they won't show up in JSON.stringify output). -* FIXED: 8094: The control flow will no longer deadlock when a task returns - a promise that depends on the completion of sub-tasks. - -## v2.44.0 - -* Added the `until` module, which defines common explicit wait conditions. - Sample usage: - - var firefox = require('selenium-webdriver/firefox'), - until = require('selenium-webdriver/until'); - - var driver = new firefox.Driver(); - driver.get('http://www.google.com/ncr'); - driver.wait(until.titleIs('Google Search'), 1000); - -* FIXED: 8000: `Builder.forBrowser()` now accepts an empty string since some - WebDriver implementations ignore the value. A value must still be specified, - however, since it is a required field in WebDriver's wire protocol. -* FIXED: 7994: The `stacktrace` module will not modify stack traces if the - initial parse fails (e.g. the user defined `Error.prepareStackTrace`) -* FIXED: 5855: Added a module (`until`) that defines several common conditions - for use with explicit waits. See updated examples for usage. - -## v2.43.5 - -* FIXED: 7905: `Builder.usingServer(url)` once again returns `this` for - chaining. - -## v2.43.2-4 - -* No changes; version bumps while attempting to work around an issue with - publishing to npm (a version string may only be used once). - -## v2.43.1 - -* Fixed an issue with flakiness when setting up the Firefox profile that could - prevent the driver from initializing properly. - -## v2.43.0 - -* Added native support for Firefox - the Java Selenium server is no longer - required. -* Added support for generator functions to `ControlFlow#execute` and - `ControlFlow#wait`. For more information, see documentation on - `webdriver.promise.consume`. Requires harmony support (run with - `node --harmony-generators` in `v0.11.x`). -* Various improvements to the `Builder` API. Notably, the `build()` function - will no longer default to attempting to use a server at - `http://localhost:4444/wd/hub` if it cannot start a browser directly - - you must specify the WebDriver server with `usingServer(url)`. You can - also set the target browser and WebDriver server through a pair of - environment variables. See the documentation on the `Builder` constructor - for more information. -* For consistency with the other language bindings, added browser specific - classes that can be used to start a browser without the builder. - - var webdriver = require('selenium-webdriver') - chrome = require('selenium-webdriver/chrome'); - - // The following are equivalent. - var driver1 = new webdriver.Builder().forBrowser('chrome').build(); - var driver2 = new chrome.Driver(); - -* Promise A+ compliance: a promise may no longer resolve to itself. -* For consistency with other language bindings, deprecated - `UnhandledAlertError#getAlert` and added `#getAlertText`. - `getAlert` will be removed in `2.45.0`. -* FIXED: 7641: Deprecated `ErrorCode.NO_MODAL_DIALOG_OPEN` and - `ErrorCode.MODAL_DIALOG_OPENED` in favor of the new - `ErrorCode.NO_SUCH_ALERT` and `ErrorCode.UNEXPECTED_ALERT_OPEN`, - respectively. -* FIXED: 7563: Mocha integration no longer disables timeouts. Default Mocha - timeouts apply (2000 ms) and may be changed using `this.timeout(ms)`. -* FIXED: 7470: Make it easier to create WebDriver instances in custom flows for - parallel execution. - -## v2.42.1 - -* FIXED: 7465: Fixed `net.getLoopbackAddress` on Windows -* FIXED: 7277: Support `done` callback in Mocha's BDD interface -* FIXED: 7156: `Promise#thenFinally` should not suppress original error - -## v2.42.0 - -* Removed deprecated functions `Promise#addCallback()`, - `Promise#addCallbacks()`, `Promise#addErrback()`, and `Promise#addBoth()`. -* Fail with a more descriptive error if the server returns a malformed redirect -* FIXED: 7300: Connect to ChromeDriver using the loopback address since - ChromeDriver 2.10.267517 binds to localhost by default. -* FIXED: 7339: Preserve wrapped test function's string representation for - Mocha's BDD interface. - -## v2.41.0 - -* FIXED: 7138: export logging API from webdriver module. -* FIXED: 7105: beforeEach/it/afterEach properly bind `this` for Mocha tests. - -## v2.40.0 - -* API documentation is now included in the docs directory. -* Added utility functions for working with an array of promises: - `promise.all`, `promise.map`, and `promise.filter` -* Introduced `Promise#thenCatch()` and `Promise#thenFinally()`. -* Deprecated `Promise#addCallback()`, `Promise#addCallbacks()`, - `Promise#addErrback()`, and `Promise#addBoth()`. -* Removed deprecated function `webdriver.WebDriver#getCapability`. -* FIXED: 6826: Added support for custom locators. - -## v2.39.0 - -* Version bump to stay in sync with the Selenium project. - -## v2.38.1 - -* FIXED: 6686: Changed `webdriver.promise.Deferred#cancel()` to silently no-op - if the deferred has already been resolved. - -## v2.38.0 - -* When a promise is rejected, always annotate the stacktrace with the parent - flow state so users can identify the source of an error. -* Updated tests to reflect features not working correctly in the SafariDriver - (cookie management and proxy support; see issues 5051, 5212, and 5503) -* FIXED: 6284: For mouse moves, correctly omit the x/y offsets if not - specified as a function argument (instead of passing (0,0)). -* FIXED: 6471: Updated documentation on `webdriver.WebElement#getAttribute` -* FIXED: 6612: On Unix, use the default IANA ephemeral port range if unable to - retrieve the current system's port range. -* FIXED: 6617: Avoid triggering the node debugger when initializing the - stacktrace module. -* FIXED: 6627: Safely rebuild chrome.Options from a partial JSON spec. - -## v2.37.0 - -* FIXED: 6346: The remote.SeleniumServer class now accepts JVM arguments using - the `jvmArgs` option. - -## v2.36.0 - -* _Release skipped to stay in sync with main Selenium project._ - -## v2.35.2 - -* FIXED: 6200: Pass arguments to the Selenium server instead of to the JVM. - -## v2.35.1 - -* FIXED: 6090: Changed example scripts to use chromedriver. - -## v2.35.0 - -* Version bump to stay in sync with the Selenium project. - -## v2.34.1 - -* FIXED: 6079: The parent process should not wait for spawn driver service - processes (chromedriver, phantomjs, etc.) - -## v2.34.0 - -* Added the `selenium-webdriver/testing/assert` module. This module - simplifies writing assertions against promised values (see - example in module documentation). -* Added the `webdriver.Capabilities` class. -* Added native support for the ChromeDriver. When using the `Builder`, - requesting chrome without specifying a remote server URL will default to - the native ChromeDriver implementation. The - [ChromeDriver server](https://code.google.com/p/chromedriver/downloads/list) - must be downloaded separately. - - // Will start ChromeDriver locally. - var driver = new webdriver.Builder(). - withCapabilities(webdriver.Capabilities.chrome()). - build(); - - // Will start ChromeDriver using the remote server. - var driver = new webdriver.Builder(). - withCapabilities(webdriver.Capabilities.chrome()). - usingServer('http://server:1234/wd/hub'). - build(); - -* Added support for configuring proxies through the builder. For examples, see - `selenium-webdriver/test/proxy_test`. -* Added native support for PhantomJS. -* Changed signature of `SeleniumServer` to `SeleniumServer(jar, options)`. -* Tests are now included in the npm published package. See `README.md` for - execution instructions -* Removed the deprecated `webdriver.Deferred#resolve` and - `webdriver.promise.resolved` functions. -* Removed the ability to connect to an existing session from the Builder. This - feature is intended for use with the browser-based client. - -## v2.33.0 - -* Added support for WebDriver's logging API -* FIXED: 5511: Added webdriver.manage().timeouts().pageLoadTimeout(ms) - -## v2.32.1 - -* FIXED: 5541: Added missing return statement for windows in - `portprober.findFreePort()` - -## v2.32.0 - -* Added the `selenium-webdriver/testing` package, which provides a basic - framework for writing tests using Mocha. See - `selenium-webdriver/example/google_search_test.js` for usage. -* For Promises/A+ compatibility, backing out the change in 2.30.0 that ensured - rejections were always Error objects. Rejection reasons are now left as is. -* Removed deprecated functions originally scheduled for removal in 2.31.0 - * promise.Application.getInstance() - * promise.ControlFlow#schedule() - * promise.ControlFlow#scheduleTimeout() - * promise.ControlFlow#scheduleWait() -* Renamed some functions for consistency with Promises/A+ terminology. The - original functions have been deprecated and will be removed in 2.34.0: - * promise.resolved() -> promise.fulfilled() - * promise.Deferred#resolve() -> promise.Deferred#fulfill() -* FIXED: remote.SeleniumServer#stop now shuts down within the active control - flow, allowing scripts to finish. Use #kill to shutdown immediately. -* FIXED: 5321: cookie deletion commands - -## v2.31.0 - -* Added an example script. -* Added a class for controlling the standalone Selenium server (server -available separately) -* Added a portprober for finding free ports -* FIXED: WebElements now belong to the same flow as their parent driver. - -## v2.30.0 - -* Ensures promise rejections are always Error values. -* Version bump to keep in sync with the Selenium project. - -## v2.29.1 - -* Fixed a bug that could lead to an infinite loop. -* Added a README.md - -## v2.29.0 - -* Initial release for npm: - - npm install selenium-webdriver |