aboutsummaryrefslogtreecommitdiff
path: root/node_modules/selenium-webdriver/CHANGES.md
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-27 17:36:13 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-27 17:36:13 +0200
commit5f466137ad6ac596600e3ff53c9b786815398445 (patch)
treef914c221874f0b16bf3def7ac01d59d1a99a3b0b /node_modules/selenium-webdriver/CHANGES.md
parentc9f5ac8e763eda19aa0564179300cfff76785435 (diff)
node_modules, clean up package.json
Diffstat (limited to 'node_modules/selenium-webdriver/CHANGES.md')
-rw-r--r--node_modules/selenium-webdriver/CHANGES.md784
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