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 +207 -206
- package/chrome.js +10 -36
- package/chromium.js +4 -2
- package/devtools/CDPConnection.js +1 -1
- package/edge.js +8 -32
- package/firefox.js +1 -1
- package/ie.js +3 -3
- package/index.js +1 -47
- package/lib/capabilities.js +0 -8
- package/lib/command.js +9 -0
- package/lib/http.js +40 -0
- package/lib/input.js +76 -23
- package/lib/virtual_authenticator.js +230 -0
- package/lib/webdriver.js +137 -14
- package/net/index.js +9 -2
- package/package.json +10 -10
- package/testing/index.js +11 -15
- package/opera.js +0 -403
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
|
|
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
|
-
|
|
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
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
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
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
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
|
-
|
|
241
|
-
|
|
242
|
-
|
|
259
|
+
* Added setChromeService, setEdgeService, & setFirefoxService
|
|
260
|
+
* Removed setEnableNativeEvents
|
|
261
|
+
* Removed setScrollBehavior
|
|
243
262
|
* Changes to `chrome.Driver`
|
|
244
|
-
|
|
245
|
-
|
|
263
|
+
* Added sendDevToolsCommand
|
|
264
|
+
* Added setDownloadPath
|
|
246
265
|
* Changes to `chrome.Options`
|
|
247
|
-
|
|
248
|
-
|
|
266
|
+
* Now extends the `Capabilities` class
|
|
267
|
+
* Removed from/toCapabilities
|
|
249
268
|
* Changes to `edge.Options`
|
|
250
|
-
|
|
251
|
-
|
|
269
|
+
* Now extends the `Capabilities` class
|
|
270
|
+
* Removed from/toCapabilities
|
|
252
271
|
* Changes to `ie.Options`
|
|
253
|
-
|
|
254
|
-
|
|
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
|
-
|
|
260
|
-
|
|
277
|
+
* Added installAddon(path)
|
|
278
|
+
* Added uninstallAddon(id)
|
|
261
279
|
* Changes to `firefox.Options`
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
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
|
-
|
|
274
|
-
|
|
275
|
-
|
|
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
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
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
|
-
|
|
286
|
-
|
|
287
|
-
|
|
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
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
306
|
+
* Added
|
|
307
|
+
* ElementClickInterceptedError
|
|
308
|
+
* InsecureCertificateError
|
|
309
|
+
* InvalidCoordinatesError
|
|
310
|
+
* NoSuchCookieError
|
|
311
|
+
* Removed
|
|
312
|
+
* ElementNotVisibleError
|
|
313
|
+
* InvalidElementCoordinatesError
|
|
297
314
|
* Changes to `lib/webdriver.WebDriver`:
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
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
|
-
|
|
325
|
+
* Replaced getSize & getLocation with getRect
|
|
310
326
|
* Changes to `lib/webdriver.Alert`:
|
|
311
|
-
|
|
327
|
+
* Removed authenticateAs
|
|
312
328
|
* Changes to `lib/webdriver.Options` (`driver.manage()`):
|
|
313
|
-
|
|
329
|
+
* Removed timeouts (use get/setTimeouts)
|
|
314
330
|
* Changes to `lib/webdriver.Window` (`driver.manage().window()`):
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
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
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
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
|
-
|
|
353
|
-
|
|
354
|
-
|
|
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
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
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
|
-
|
|
386
|
-
|
|
387
|
-
|
|
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
|
-
|
|
461
|
-
|
|
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
|
-
|
|
499
|
-
|
|
500
|
-
|
|
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
|
-
|
|
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
|
-
|
|
584
|
-
|
|
585
|
-
|
|
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
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
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
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
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
|
|
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
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
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
|
-
|
|
1101
|
-
|
|
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
|