Skip to content
This repository was archived by the owner on Mar 22, 2019. It is now read-only.

Version 2.47.0 #7

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules/

188 changes: 180 additions & 8 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,175 @@
## 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 [email protected]
// start
// middle
// end
//
// Output in [email protected]
// 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
Expand Down Expand Up @@ -31,8 +203,8 @@
* 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('browserstack-webdriver')
chrome = require('browserstack-webdriver/chrome');
var webdriver = require('selenium-webdriver')
chrome = require('selenium-webdriver/chrome');

// The following are equivalent.
var driver1 = new webdriver.Builder().forBrowser('chrome').build();
Expand All @@ -45,7 +217,7 @@
* 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`,
respecitvely.
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
Expand Down Expand Up @@ -135,7 +307,7 @@

## v2.34.0

* Added the `browserstack-webdriver/testing/assert` module. This module
* 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.
Expand All @@ -157,7 +329,7 @@
build();

* Added support for configuring proxies through the builder. For examples, see
`browserstack-webdriver/test/proxy_test`.
`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
Expand All @@ -179,9 +351,9 @@

## v2.32.0

* Added the `browserstack-webdriver/testing` package, which provides a basic
* Added the `selenium-webdriver/testing` package, which provides a basic
framework for writing tests using Mocha. See
`browserstack-webdriver/example/google_search_test.js` for usage.
`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
Expand Down Expand Up @@ -219,4 +391,4 @@ available separately)

* Initial release for npm:

npm install browserstack-webdriver
npm install selenium-webdriver
Loading