selenium-webdriver 4.1.2 → 4.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGES.md CHANGED
@@ -1,3 +1,26 @@
1
+ ## v4.3.1
2
+
3
+ * create new default service for every driver instance in chromium (#10796)
4
+ * Updated jsdoc for move action (#10816)
5
+
6
+ ## v4.3.0
7
+
8
+ * Fix: using fulfillRequest when intercepting (#10764)
9
+ * Add support CDP 103 and remove CDP 100
10
+ * Remove unused param in input.js & minor code cleanup
11
+ * Fixes lint issues and updates npm packages
12
+ * feat: Added virtual authenticator (#10663)
13
+
14
+ ## v4.2.0
15
+
16
+ * Delete old android-driver
17
+ * Remove Opera support from JS bindings #10379
18
+ * Handle a breaking changes in os.networkInterfaces (#10611)
19
+ * Add support to switch frame by id
20
+ * Add support to switch frame by name (#10670)
21
+ * [cdp] add support Chrome 102 and remove for Chrome 98
22
+ * Update implementation for submitting forms
23
+
1
24
  ## v4.1.2
2
25
 
3
26
  * chore/connect to CDP based on ENV selenium address var (#10255)
@@ -74,7 +97,7 @@
74
97
  ServiceBuilder, similarly to the other options provided by ChromeDriver.
75
98
 
76
99
  * Add the debuggerAddress option to chromium.js (#9561) [Author: Brandon Walderman]
77
- * Adds http client options (#9638)[Author: Dharin Shah]
100
+ * Adds http client options [#9638](Author: Dharin Shah)
78
101
  * Updating edge.js to extend chromium.driver (fixes #9626)
79
102
 
80
103
  ## v4.0.0-beta.4
@@ -106,7 +129,7 @@
106
129
  ## v4.0.0-beta.1
107
130
 
108
131
  * JS Binding support for WebDriver Bidi in Firefox
109
- - This requires Firefox 87 and Geckodriver 0.29 to be able to work
132
+ * This requires Firefox 87 and Geckodriver 0.29 to be able to work
110
133
  * Update the supported CDP versions
111
134
  * Update tmp package version (#9155)
112
135
  * Adding support for /computedlabel (getAccessibleName) (#9073)
@@ -120,11 +143,11 @@
120
143
 
121
144
  * Rolling back native support for Opera Browser
122
145
  * Added new ieOptions capabilities:
123
- - fileUploadDialogTimeout
124
- - setEdgePath
125
- - setEdgeChromium
126
- - setScrollBehavior
127
- - For consistent naming, deprecating `addArguments(...args)` in favor of `addBrowserCommandSwitches(...args)`
146
+ * fileUploadDialogTimeout
147
+ * setEdgePath
148
+ * setEdgeChromium
149
+ * setScrollBehavior
150
+ * For consistent naming, deprecating `addArguments(...args)` in favor of `addBrowserCommandSwitches(...args)`
128
151
 
129
152
  * Added relative locators
130
153
  * Added Chrome DevTools Protocol (CDP) support
@@ -180,32 +203,28 @@ mode (see `example/headless.js`)
180
203
  ### Changes for W3C WebDriver Spec Compliance
181
204
 
182
205
  * Revamped the actions API to conform with the WebDriver Spec:
183
- <https://www.w3.org/TR/webdriver/#actions>. For details, refer to the JS doc on
184
- the `lib/input.Actions` class.
206
+ <https://www.w3.org/TR/webdriver/#actions>. For details, refer to the JS doc on the `lib/input.Actions` class.
185
207
 
186
208
  As of January, 2018, only Firefox natively supports this new API. You can put the `Actions` class
187
209
  into "bridge mode" and it will attempt to translate mouse and keyboard actions to the legacy API (
188
- see class docs). Alternatively, you may continue to use the legacy API directly via
189
- the `lib/actions` module.
210
+ see class docs). Alternatively, you may continue to use the legacy API directly via the `lib/actions` module.
190
211
  __NOTE:__ The legacy API is considered strongly deprecated and will be removed in a minor release
191
212
  once Google's Chrome and Microsoft's Edge browsers support the new API.
192
213
 
193
214
  * All window manipulation commands are now supported.
194
215
  * Added `driver.switchTo().parentFrame()`
195
- * When a named cookie is requested, attempt to fetch it directly using the W3C
196
- endpoint, `GET /session/{session id}/cookie/{name}`. If this command is not recognized by the
216
+ * When a named cookie is requested, attempt to fetch it directly using the W3C endpoint, `GET /session/{session id}/cookie/{name}`. If this command is not recognized by the
197
217
  remote end, fallback to fetching all cookies and then searching for the desired name.
198
- * Replaced `WebElement.getSize()` and `WebElement.getLocation()` with a single
199
- method, `WebElement.getRect()`.
218
+ * Replaced `WebElement.getSize()` and `WebElement.getLocation()` with a single method, `WebElement.getRect()`.
200
219
 
201
220
  ### API Changes
202
221
 
203
222
  * The core WebDriver API no longer uses promise manager
204
- - Removed `index.Builder#setControlFlow()`
205
- - The following thenable types no longer have a `cancel()` method:
206
- - The dynamically generated thenable WebDrivers created by `index.Builder`
207
- - `lib/webdriver.AlertPromise`
208
- - `lib/webdriver.WebElementPromise`
223
+ * Removed `index.Builder#setControlFlow()`
224
+ * The following thenable types no longer have a `cancel()` method:
225
+ * The dynamically generated thenable WebDrivers created by `index.Builder`
226
+ * `lib/webdriver.AlertPromise`
227
+ * `lib/webdriver.WebElementPromise`
209
228
  * Removed `remote/index.DriverService.prototype.stop()` (use `#kill()` instead)
210
229
  * Removed the `lib/actions` module
211
230
  * Removed the `lib/events` module
@@ -213,127 +232,124 @@ mode (see `example/headless.js`)
213
232
  * Removed the 'opera' module
214
233
  * Removed the promise manager from `lib/promise`, which includes the removal of the following
215
234
  exported names (replacements, if any, in parentheses):
216
- - CancellableThenable
217
- - CancellationError
218
- - ControlFlow
219
- - Deferred
220
- - LONG_STACK_TRACES
221
- - MultipleUnhandledRejectionError
222
- - Promise (use native Promises)
223
- - Resolver
224
- - Scheduler
225
- - Thenable
226
- - USE_PROMISE_MANAGER
227
- - all (use Promise.all)
228
- - asap (use Promise.resolve)
229
- - captureStackTrace (use Error.captureStackTrace)
230
- - consume (use async functions)
231
- - controlFlow
232
- - createPromise (use new Promise)
233
- - defer
234
- - fulfilled (use Promise.resolve)
235
- - isGenerator
236
- - rejected (use Promise.reject)
237
- - setDefaultFlow
238
- - when (use Promise.resolve)
235
+ * CancellableThenable
236
+ * CancellationError
237
+ * ControlFlow
238
+ * Deferred
239
+ * LONG_STACK_TRACES
240
+ * MultipleUnhandledRejectionError
241
+ * Promise (use native Promises)
242
+ * Resolver
243
+ * Scheduler
244
+ * Thenable
245
+ * USE_PROMISE_MANAGER
246
+ * all (use Promise.all)
247
+ * asap (use Promise.resolve)
248
+ * captureStackTrace (use Error.captureStackTrace)
249
+ * consume (use async functions)
250
+ * controlFlow
251
+ * createPromise (use new Promise)
252
+ * defer
253
+ * fulfilled (use Promise.resolve)
254
+ * isGenerator
255
+ * rejected (use Promise.reject)
256
+ * setDefaultFlow
257
+ * when (use Promise.resolve)
239
258
  * Changes to the `Builder` class:
240
- - Added setChromeService, setEdgeService, & setFirefoxService
241
- - Removed setEnableNativeEvents
242
- - Removed setScrollBehavior
259
+ * Added setChromeService, setEdgeService, & setFirefoxService
260
+ * Removed setEnableNativeEvents
261
+ * Removed setScrollBehavior
243
262
  * Changes to `chrome.Driver`
244
- - Added sendDevToolsCommand
245
- - Added setDownloadPath
263
+ * Added sendDevToolsCommand
264
+ * Added setDownloadPath
246
265
  * Changes to `chrome.Options`
247
- - Now extends the `Capabilities` class
248
- - Removed from/toCapabilities
266
+ * Now extends the `Capabilities` class
267
+ * Removed from/toCapabilities
249
268
  * Changes to `edge.Options`
250
- - Now extends the `Capabilities` class
251
- - Removed from/toCapabilities
269
+ * Now extends the `Capabilities` class
270
+ * Removed from/toCapabilities
252
271
  * Changes to `ie.Options`
253
- - Now extends the `Capabilities` class
254
- - Removed from/toCapabilities
255
- * Removed the `firefox.Binary` class. Custom binaries can still be selected
256
- using `firefox.Options#setBinary()`. Likewise, custom binary arguments can be specified
272
+ * Now extends the `Capabilities` class
273
+ * Removed from/toCapabilities
274
+ * Removed the `firefox.Binary` class. Custom binaries can still be selected using `firefox.Options#setBinary()`. Likewise, custom binary arguments can be specified
257
275
  with `firefox.Options#addArguments()`.
258
276
  * Changes to `firefox.Driver`
259
- - Added installAddon(path)
260
- - Added uninstallAddon(id)
277
+ * Added installAddon(path)
278
+ * Added uninstallAddon(id)
261
279
  * Changes to `firefox.Options`
262
- - Now extends the `Capabilities` class
263
- - Removed from/toCapabilities
264
- - Removed setLoggingPreferences (was a no-op)
265
- - setProfile now only accepts a path to an existing profile
266
- - Added addExtensions
267
- - Added setPreference
268
- * Removed the `firefox.Profile` class. All of its functionality is now provided directly
269
- by `firefox.Options`
280
+ * Now extends the `Capabilities` class
281
+ * Removed from/toCapabilities
282
+ * Removed setLoggingPreferences (was a no-op)
283
+ * setProfile now only accepts a path to an existing profile
284
+ * Added addExtensions
285
+ * Added setPreference
286
+ * Removed the `firefox.Profile` class. All of its functionality is now provided directly by `firefox.Options`
270
287
  * Removed the `firefox/binary` module
271
288
  * Removed the `firefox/profile` module
272
289
  * Changes to `safari.Options`
273
- - Now extends the `Capabilities` class
274
- - Removed from/toCapabilities
275
- - Removed setCleanSession (was a no-op)
290
+ * Now extends the `Capabilities` class
291
+ * Removed from/toCapabilities
292
+ * Removed setCleanSession (was a no-op)
276
293
  * Changes to `lib/capabilities.Browser`:
277
- - Removed several enum values.
278
- - ANDROID (use Chrome for Android; see docs on the chrome module)
279
- - IPAD (no support available)
280
- - IPHONE (no support available)
281
- - OPERA (use Chrome)
282
- - PHANTOM_JS (use Chrome or Firefox in headless mode)
283
- - HTMLUNIT (use Chrome or Firefox in headless mode)
294
+ * Removed several enum values.
295
+ * ANDROID (use Chrome for Android; see docs on the chrome module)
296
+ * IPAD (no support available)
297
+ * IPHONE (no support available)
298
+ * OPERA (use Chrome)
299
+ * PHANTOM_JS (use Chrome or Firefox in headless mode)
300
+ * HTMLUNIT (use Chrome or Firefox in headless mode)
284
301
  * Changes to `lib/capabilities.Capabilities`:
285
- - Removed static factory methods android(), ipad(), iphone(), opera(), phantomjs(), htmlunit(),
286
- and htmlunitwithjs(). Users can still manually configure capabilities for these, but their use
287
- is not recommended and they will no longer be surfaced in the API.
302
+ * Removed static factory methods android(), ipad(), iphone(), opera(), phantomjs(), htmlunit(),
303
+ and htmlunitwithjs(). Users can still manually configure capabilities for these, but their use
304
+ is not recommended and they will no longer be surfaced in the API.
288
305
  * Changes to `lib/error`:
289
- - Added
290
- - ElementClickInterceptedError
291
- - InsecureCertificateError
292
- - InvalidCoordinatesError
293
- - NoSuchCookieError
294
- - Removed
295
- - ElementNotVisibleError
296
- - InvalidElementCoordinatesError
306
+ * Added
307
+ * ElementClickInterceptedError
308
+ * InsecureCertificateError
309
+ * InvalidCoordinatesError
310
+ * NoSuchCookieError
311
+ * Removed
312
+ * ElementNotVisibleError
313
+ * InvalidElementCoordinatesError
297
314
  * Changes to `lib/webdriver.WebDriver`:
298
- - Dropped support for "requiredCapabilities" from WebDriver.createSession
299
- - actions() now returns the new `lib/input.Actions` class
300
- - Removed touchActions
301
- - Renamed schedule to execute
302
- - Removed the `WebDriver.attachToSession()` factory method. Users can just the `WebDriver`
303
- constructor directly instead.
304
- - Removed the `call()` method. This was used to inject custom function calls into the control
305
- flow. Now that the promise manager is no longer used, this method is no longer necessary.
306
- Users are now responsible for coordinating actions (ideally with async functions) and can just
307
- call functions directly instead of through `driver.call()`.
315
+ * Dropped support for "requiredCapabilities" from WebDriver.createSession
316
+ * actions() now returns the new `lib/input.Actions` class
317
+ * Removed touchActions
318
+ * Renamed schedule to execute
319
+ * Removed the `WebDriver.attachToSession()` factory method. Users can just the `WebDriver`
320
+ constructor directly instead.
321
+ * Removed the `call()` method. This was used to inject custom function calls into the control
322
+ flow. Now that the promise manager is no longer used, this method is no longer necessary. Users are now responsible for coordinating actions (ideally with async functions) and can just
323
+ call functions directly instead of through `driver.call()`.
308
324
  * Changes to `lib/webdriver.WebElement`:
309
- - Replaced getSize & getLocation with getRect
325
+ * Replaced getSize & getLocation with getRect
310
326
  * Changes to `lib/webdriver.Alert`:
311
- - Removed authenticateAs
327
+ * Removed authenticateAs
312
328
  * Changes to `lib/webdriver.Options` (`driver.manage()`):
313
- - Removed timeouts (use get/setTimeouts)
329
+ * Removed timeouts (use get/setTimeouts)
314
330
  * Changes to `lib/webdriver.Window` (`driver.manage().window()`):
315
- - Added
316
- - getRect
317
- - setRect
318
- - fullscreen
319
- - minimize
320
- - Removed (use the getRect/setRect methods)
321
- - getPosition
322
- - setPosition
323
- - getSize
324
- - setSize
331
+ * Added
332
+ * getRect
333
+ * setRect
334
+ * fullscreen
335
+ * minimize
336
+ * Removed (use the getRect/setRect methods)
337
+ * getPosition
338
+ * setPosition
339
+ * getSize
340
+ * setSize
325
341
  * Removed the `testing/assert` module
326
342
  * Changes to `testing/index`
327
- - Since the promise manager has been removed, it is no longer necessary to wrap the Mocha test
328
- hooks; instead, users can simply use async functions. The following have all been removed:
329
- - describe
330
- - before
331
- - beforeEach
332
- - after
333
- - afterEach
334
- - it
335
- - Added the `suite` function. For details, refer to the jsdoc or
336
- `example/google_search_test.js`
343
+ * Since the promise manager has been removed, it is no longer necessary to wrap the Mocha test
344
+ hooks; instead, users can simply use async functions. The following have all been removed:
345
+ * describe
346
+ * before
347
+ * beforeEach
348
+ * after
349
+ * afterEach
350
+ * it
351
+ * Added the `suite` function. For details, refer to the jsdoc or
352
+ `example/google_search_test.js`
337
353
 
338
354
  ## v3.6.0
339
355
 
@@ -349,18 +365,18 @@ mode (see `example/headless.js`)
349
365
  ### API Changes
350
366
 
351
367
  * Added new methods to `selenium-webdriver/firefox.Options`:
352
- - addArguments()
353
- - headless()
354
- - windowSize()
368
+ * addArguments()
369
+ * headless()
370
+ * windowSize()
355
371
  * Deprecated `selenium-webdriver/firefox/binary.Binary`
356
372
  * Removed `selenium-webdriver/firefox.Options#useGeckoDriver()`
357
373
  * Removed the unused `selenium-webdriver/firefox/profile.decode()`
358
374
  * Removed methods from `selenium-webdriver/firefox/profile.Profile` that had no effect since support
359
375
  for the legacy FirefoxDriver was dropped in 3.5.0:
360
- - setNativeEventsEnabled
361
- - nativeEventsEnabled
362
- - getPort
363
- - setPort
376
+ * setNativeEventsEnabled
377
+ * nativeEventsEnabled
378
+ * getPort
379
+ * setPort
364
380
  * Removed `selenium-webdriver/firefox.ServiceBuilder#setFirefoxBinary()`; custom binaries should be
365
381
  configured through the `firefox.Options` class.
366
382
  * Removed `selenium-webdriver/firefox.Capability`. These hold overs from the legacy FirefoxDriver
@@ -382,12 +398,11 @@ to a remote Selenium server that supports Firefox 45.
382
398
  ### Changes
383
399
 
384
400
  * Removed native support for Firefox 46 and older.
385
- - The `SELENIUM_MARIONETTE` enviornment variable no longer has an effect.
386
- - `selenium-webdriver/firefox.Capability.MARIONETTE` is deprecated.
387
- - `selenium-webdriver/firefox.Options#useGeckoDriver()` is deprecated and now a no-op.
401
+ * The `SELENIUM_MARIONETTE` enviornment variable no longer has an effect.
402
+ * `selenium-webdriver/firefox.Capability.MARIONETTE` is deprecated.
403
+ * `selenium-webdriver/firefox.Options#useGeckoDriver()` is deprecated and now a no-op.
388
404
  * `firefox.Options` will no longer discard the `"moz:firefoxOptions"` set in user provided
389
- capabilities (via `Builder.withCapabilities({})`). When both are used, the settings
390
- in `firefox.Options` will be applied _last_.
405
+ capabilities (via `Builder.withCapabilities({})`). When both are used, the settings in `firefox.Options` will be applied _last_.
391
406
  * Added `chrome.Options#headless()` and `chrome.Options#windowSize()`, which may be used to start
392
407
  Chrome in headless mode (requires Chrome 59+) and to set the initial window size, respectively.
393
408
 
@@ -430,6 +445,7 @@ This release requires [geckodriver 0.15.0](https://github.com/mozilla/geckodrive
430
445
  logging.installConsoleHandler();
431
446
  logging.getLogger('promise.ControlFlow').setLevel(logging.Level.WARNING);
432
447
  ```
448
+
433
449
  * If the `JAVA_HOME` environment variable is set, use it to locate java.exe.
434
450
 
435
451
  ## v3.2.0
@@ -439,8 +455,7 @@ This release requires [geckodriver 0.15.0](https://github.com/mozilla/geckodrive
439
455
  ## v3.1.0
440
456
 
441
457
  * The `lib` package is once again platform agnostic (excluding `lib/devmode`).
442
- * Deprecated `promise.when(value, callback, errback)`.
443
- Use `promise.fulfilled(value).then(callback, errback)`
458
+ * Deprecated `promise.when(value, callback, errback)`. Use `promise.fulfilled(value).then(callback, errback)`
444
459
  * Changed `promise.fulfilled(value)`, `promise.rejected(reason)` and
445
460
  `promise.defer()` to all use native promises when the promise manager is disabled.
446
461
  * Properly handle W3C error responses to new session commands.
@@ -457,10 +472,9 @@ This release requires [geckodriver 0.15.0](https://github.com/mozilla/geckodrive
457
472
  ## v3.0.1
458
473
 
459
474
  * More API adjustments to align with native Promises
460
- - Deprecated `promise.fulfilled(value)`, use `promise.Promise#resolve(value)`
461
- - Deprecated `promise.rejected(reason)`, use `promise.Promise#reject(reason)`
462
- * When a `wait()` condition times out, the returned promise will now be rejected with
463
- an `error.TimeoutError` instead of a generic `Error` object.
475
+ * Deprecated `promise.fulfilled(value)`, use `promise.Promise#resolve(value)`
476
+ * Deprecated `promise.rejected(reason)`, use `promise.Promise#reject(reason)`
477
+ * When a `wait()` condition times out, the returned promise will now be rejected with an `error.TimeoutError` instead of a generic `Error` object.
464
478
  * `WebDriver#wait()` will now throw a TypeError if an invalid wait condition is provided.
465
479
  * Properly catch unhandled promise rejections with an action sequence (only impacts when the promise
466
480
  manager is disabled).
@@ -487,19 +501,17 @@ This release requires [geckodriver 0.15.0](https://github.com/mozilla/geckodrive
487
501
  `SELENIUM_PROMISE_MANAGER=0`. This is part of a larger plan to remove the promise manager, as
488
502
  documented at
489
503
  <https://github.com/SeleniumHQ/selenium/issues/2969>
490
- * When communicating with a W3C-compliant remote end, use the atoms library for
491
- the `WebElement.getAttribute()` and `WebElement.isDisplayed()` commands. This behavior is
504
+ * When communicating with a W3C-compliant remote end, use the atoms library for the `WebElement.getAttribute()` and `WebElement.isDisplayed()` commands. This behavior is
492
505
  consistent with the java, .net, python, and ruby clients.
493
506
 
494
507
  ### API Changes
495
508
 
496
509
  * Removed `safari.Options#useLegacyDriver()`
497
510
  * Reduced the API on `promise.Thenable` for compatibility with native promises:
498
- - Removed `#isPending()`
499
- - Removed `#cancel()`
500
- - Removed `#finally()`
501
- * Changed all subclasses of `webdriver.WebDriver` to overload the static
502
- function `WebDriver.createSession()` instead of doing work in the constructor. All constructors
511
+ * Removed `#isPending()`
512
+ * Removed `#cancel()`
513
+ * Removed `#finally()`
514
+ * Changed all subclasses of `webdriver.WebDriver` to overload the static function `WebDriver.createSession()` instead of doing work in the constructor. All constructors
503
515
  now inherit the base class' function signature. Users are still encouraged to use the `Builder`
504
516
  class instead of creating drivers directly.
505
517
  * `Builder#build()` now returns a "thenable" WebDriver instance, allowing users to immediately
@@ -512,10 +524,8 @@ This release requires [geckodriver 0.15.0](https://github.com/mozilla/geckodrive
512
524
 
513
525
  * Fixed a bug where the promise manager would silently drop callbacks after recovering from an
514
526
  unhandled promise rejection.
515
- * Added the `firefox.ServiceBuilder` class, which may be used to customize the geckodriver used
516
- for `firefox.Driver` instances.
517
- * Added support for Safari 10 safaridriver. safaridriver may be disabled via tha
518
- API, `safari.Options#useLegacyDriver`, to use the safari extension driver.
527
+ * Added the `firefox.ServiceBuilder` class, which may be used to customize the geckodriver used for `firefox.Driver` instances.
528
+ * Added support for Safari 10 safaridriver. safaridriver may be disabled via tha API, `safari.Options#useLegacyDriver`, to use the safari extension driver.
519
529
  * Updated the `lib/proxy` module to support configuring a SOCKS proxy.
520
530
  * For the `promise.ControlFlow`, fire the "uncaughtException" event in a new turn of the JS event
521
531
  loop. As a result of this change, any errors thrown by an event listener will propagate to the
@@ -566,8 +576,7 @@ This release requires [geckodriver 0.15.0](https://github.com/mozilla/geckodrive
566
576
  * Properly configure proxies when using the geckodriver
567
577
  * `http.Executor` now accepts a promised client. The `builder.Builder` class will now use this
568
578
  instead of a `command.DeferredExecutor` when creating WebDriver instances.
569
- * For Chrome and Firefox, the `builder.Builder` class will always return an
570
- instanceof `chrome.Driver` and `firefox.Driver`, respectively, even when configured to use a
579
+ * 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
571
580
  remote server (from `builder.Builder#usingServer(url)`,
572
581
  `SELENIUM_REMOTE_URL`, etc).
573
582
 
@@ -580,32 +589,32 @@ This release requires [geckodriver 0.15.0](https://github.com/mozilla/geckodrive
580
589
  _seconds_ since epoch. When retrieving cookies, the expiration is always returned in seconds.
581
590
  * Renamed `firefox.Options#useMarionette` to `firefox.Options#useGeckoDriver`
582
591
  * Removed deprecated modules:
583
- - `selenium-webdriver/error` (use `selenium-webdriver/lib/error`,\
584
- or the `error` property exported by `selenium-webdriver`)
585
- - `selenium-webdriver/executors` — this was not previously deprecated, but is no longer used.
592
+ * `selenium-webdriver/error` (use `selenium-webdriver/lib/error`,\
593
+ or the `error` property exported by `selenium-webdriver`)
594
+ * `selenium-webdriver/executors` — this was not previously deprecated, but is no longer used.
586
595
  * Removed deprecated types:
587
- - `command.DeferredExecutor` — this was not previously deprecated, but is no longer used. It can
588
- be trivially implemented by clients should it be needed.
589
- - `error.InvalidSessionIdError` (use `error.NoSuchSessionError`)
590
- - `executors.DeferredExecutor`
591
- - `until.Condition` (use `webdriver.Condition`)
592
- - `until.WebElementCondition` (use `webdriver.WebElementCondition`)
593
- - `webdriver.UnhandledAlertError` (use `error.UnexpectedAlertOpenError`)
596
+ * `command.DeferredExecutor` — this was not previously deprecated, but is no longer used. It can
597
+ be trivially implemented by clients should it be needed.
598
+ * `error.InvalidSessionIdError` (use `error.NoSuchSessionError`)
599
+ * `executors.DeferredExecutor`
600
+ * `until.Condition` (use `webdriver.Condition`)
601
+ * `until.WebElementCondition` (use `webdriver.WebElementCondition`)
602
+ * `webdriver.UnhandledAlertError` (use `error.UnexpectedAlertOpenError`)
594
603
  * Removed deprecated functions:
595
- - `Deferred#cancel()`
596
- - `Deferred#catch()`
597
- - `Deferred#finally()`
598
- - `Deferred#isPending()`
599
- - `Deferred#then()`
600
- - `Promise#thenCatch()`
601
- - `Promise#thenFinally()`
602
- - `WebDriver#isElementPresent()`
603
- - `WebElement#getInnerHtml()`
604
- - `WebElement#getOuterHtml()`
605
- - `WebElement#getRawId()`
606
- - `WebElement#isElementPresent()`
604
+ * `Deferred#cancel()`
605
+ * `Deferred#catch()`
606
+ * `Deferred#finally()`
607
+ * `Deferred#isPending()`
608
+ * `Deferred#then()`
609
+ * `Promise#thenCatch()`
610
+ * `Promise#thenFinally()`
611
+ * `WebDriver#isElementPresent()`
612
+ * `WebElement#getInnerHtml()`
613
+ * `WebElement#getOuterHtml()`
614
+ * `WebElement#getRawId()`
615
+ * `WebElement#isElementPresent()`
607
616
  * Removed deprecated properties:
608
- - `WebDriverError#code`
617
+ * `WebDriverError#code`
609
618
 
610
619
  ## v2.53.2
611
620
 
@@ -629,8 +638,7 @@ This release requires [geckodriver 0.15.0](https://github.com/mozilla/geckodrive
629
638
  Marionette may be enabled via the API,
630
639
  `firefox.Options#useMarionette`, or by setting the `SELENIUM_MARIONETTE`
631
640
  environment variable.
632
- * Moved all logic for parsing and interpreting responses from the remote end into the
633
- individual `command.Executor` implementations.
641
+ * Moved all logic for parsing and interpreting responses from the remote end into the individual `command.Executor` implementations.
634
642
  * For consistency with the other Selenium language bindings,
635
643
  `WebDriver#isElementPresent()` and `WebElement#isElementPresent()` have been deprecated. These
636
644
  methods will be removed in v3.0. Use the findElements command to test for the presence of an
@@ -652,8 +660,7 @@ This release requires [geckodriver 0.15.0](https://github.com/mozilla/geckodrive
652
660
  * FIXED: `io.findInPath()` will no longer match against directories that have the same basename as
653
661
  the target file.
654
662
  * FIXED: `phantomjs.Driver` now takes a third argument that defines the path to a log file to use
655
- for the phantomjs executable's output. This may be quickly set at runtime with
656
- the `SELENIUM_PHANTOMJS_LOG` environment variable.
663
+ for the phantomjs executable's output. This may be quickly set at runtime with the `SELENIUM_PHANTOMJS_LOG` environment variable.
657
664
 
658
665
  ### Changes for W3C WebDriver Spec Compliance
659
666
 
@@ -691,10 +698,8 @@ the selenium-webdriver package README.
691
698
  (Map semantics). To check whether the value is true, use `get(key)`.
692
699
  * Deprecated `executors.DeferredExecutor` in favor of
693
700
  `lib/command.DeferredExecutor`.
694
- * API documentation is no longer distributed with the npm package, but remains available
695
- at <http://seleniumhq.github.io/selenium/docs/api/javascript/>
696
- * Rewrote the `error` module to export an Error subtype for each type of error defined in
697
- the [W3C WebDriver spec](https://w3c.github.io/webdriver/webdriver-spec.html#handling-errors).
701
+ * API documentation is no longer distributed with the npm package, but remains available at <http://seleniumhq.github.io/selenium/docs/api/javascript/>
702
+ * 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).
698
703
  * Changed the `http.Request` and `http.Response` classes to store headers in maps instead of object
699
704
  literals.
700
705
  * Updated `ws` dependency to version `1.0.1`.
@@ -707,8 +712,7 @@ the selenium-webdriver package README.
707
712
 
708
713
  ### Changes for W3C WebDriver Spec Compliance
709
714
 
710
- * Updated the `By` locators that are not in the W3C spec to delegated to using CSS
711
- selectors: `By.className`, `By.id`, `By.name`, and `By.tagName`.
715
+ * 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`.
712
716
 
713
717
  ## v2.49-51
714
718
 
@@ -732,8 +736,7 @@ the selenium-webdriver package README.
732
736
  version
733
737
  `2.1.1`.
734
738
  * FIXED: the `webdriver.promise.ControlFlow` now has a consistent execution order for
735
- tasks/callbacks scheduled in different turns of the JS event loop. Refer to
736
- the `webdriver.promise` documentation for more details.
739
+ tasks/callbacks scheduled in different turns of the JS event loop. Refer to the `webdriver.promise` documentation for more details.
737
740
  * FIXED: do not drop user auth from the WebDriver server URL.
738
741
  * FIXED: a single `firefox.Binary` instance may be used to configure and launch multiple
739
742
  FirefoxDriver sessions.
@@ -763,7 +766,7 @@ continue to be supported, but will require setting the `--harmony` flag.
763
766
  ### Change Summary
764
767
 
765
768
  * Add support for [Node v4.0.0](https://nodejs.org/en/blog/release/v4.0.0/)
766
- * Updated `ws` dependency from `0.7.1` to `0.8.0`
769
+ * Updated `ws` dependency from `0.7.1` to `0.8.0`
767
770
  * Bumped the minimum supported version of Node from `0.10.x` to `0.12.x`. This is in accordance with
768
771
  the Node support policy established in `v2.45.0`.
769
772
 
@@ -780,14 +783,14 @@ continue to be supported, but will require setting the `--harmony` flag.
780
783
  * Added support for using a proxy server for WebDriver commands. See `Builder#usingWebDriverProxy()`
781
784
  for more info.
782
785
  * Removed deprecated functions:
783
- * Capabilities#toJSON()
784
- * UnhandledAlertError#getAlert()
785
- * chrome.createDriver()
786
- * phantomjs.createDriver()
787
- * promise.ControlFlow#annotateError()
788
- * promise.ControlFlow#await()
789
- * promise.ControlFlow#clearHistory()
790
- * promise.ControlFlow#getHistory()
786
+ * Capabilities#toJSON()
787
+ * UnhandledAlertError#getAlert()
788
+ * chrome.createDriver()
789
+ * phantomjs.createDriver()
790
+ * promise.ControlFlow#annotateError()
791
+ * promise.ControlFlow#await()
792
+ * promise.ControlFlow#clearHistory()
793
+ * promise.ControlFlow#getHistory()
791
794
  * Removed deprecated enum values: `ErrorCode.NO_MODAL_DIALOG_OPEN` and
792
795
  `ErrorCode.MODAL_DIALOG_OPENED`. Use `ErrorCode.NO_SUCH_ALERT` and
793
796
  `ErrorCode.UNEXPECTED_ALERT_OPEN`, respectively.
@@ -811,8 +814,7 @@ continue to be supported, but will require setting the `--harmony` flag.
811
814
  * FIXED: 8548: Task callbacks are once again dropped if the task was cancelled due to a previously
812
815
  uncaught error within the frame.
813
816
  * FIXED: 8496: Extended the `chrome.Options` API to cover all configuration options (e.g. mobile
814
- emulation and performance logging) documented on the
815
- ChromeDriver [project site](https://chromedriver.chromium.org/capabilities).
817
+ emulation and performance logging) documented on the ChromeDriver [project site](https://chromedriver.chromium.org/capabilities).
816
818
 
817
819
  ## v2.45.0
818
820
 
@@ -853,7 +855,7 @@ major version release (i.e. 1.0.0).
853
855
  The `promise.ControlFlow` class has been updated to track the asynchronous breaks required by
854
856
  Promises/A+, so there are no changes to task execution order.
855
857
  * Updated how errors are annotated on failures. When a task fails, the stacktrace from when that
856
- task was scheduled is appended to the rejection reason with a `From: ` prefix (if it is an Error
858
+ task was scheduled is appended to the rejection reason with a `From:` prefix (if it is an Error
857
859
  object). For example:
858
860
 
859
861
  var driver = new webdriver.Builder().forBrowser('chrome').build();
@@ -887,8 +889,7 @@ major version release (i.e. 1.0.0).
887
889
  * Expanded the interactions API to include touch actions. See `WebDriver.touchActions()`.
888
890
  * FIXED: 8380: `firefox.Driver` will delete its temporary profile on `quit`.
889
891
  * FIXED: 8306: Stack overflow in promise callbacks eliminated.
890
- * FIXED: 8221: Added support for defining custom command mappings. Includes support for
891
- PhantomJS's `executePhantomJS` (requires PhantomJS 1.9.7 or GhostDriver 1.1.0).
892
+ * 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).
892
893
  * FIXED: 8128: When the FirefoxDriver marshals an object to the page for
893
894
  `executeScript`, it defines additional properties (required by the driver's implementation). These
894
895
  properties will no longer be enumerable and should be omitted (i.e. they won't show up in
@@ -1091,14 +1092,14 @@ major version release (i.e. 1.0.0).
1091
1092
  * For Promises/A+ compatibility, backing out the change in 2.30.0 that ensured rejections were
1092
1093
  always Error objects. Rejection reasons are now left as is.
1093
1094
  * Removed deprecated functions originally scheduled for removal in 2.31.0
1094
- * promise.Application.getInstance()
1095
- * promise.ControlFlow#schedule()
1096
- * promise.ControlFlow#scheduleTimeout()
1097
- * promise.ControlFlow#scheduleWait()
1095
+ * promise.Application.getInstance()
1096
+ * promise.ControlFlow#schedule()
1097
+ * promise.ControlFlow#scheduleTimeout()
1098
+ * promise.ControlFlow#scheduleWait()
1098
1099
  * Renamed some functions for consistency with Promises/A+ terminology. The original functions have
1099
1100
  been deprecated and will be removed in 2.34.0:
1100
- * promise.resolved() -> promise.fulfilled()
1101
- * promise.Deferred#resolve() -> promise.Deferred#fulfill()
1101
+ * promise.resolved() -> promise.fulfilled()
1102
+ * promise.Deferred#resolve() -> promise.Deferred#fulfill()
1102
1103
  * FIXED: remote.SeleniumServer#stop now shuts down within the active control flow, allowing scripts
1103
1104
  to finish. Use #kill to shutdown immediately.
1104
1105
  * FIXED: 5321: cookie deletion commands