selenium-webdriver 4.1.1 → 4.1.2
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 +492 -553
- package/README.md +4 -4
- package/chromium.js +16 -3
- package/edge.js +2 -2
- package/lib/by.js +1 -1
- package/lib/http.js +8 -7
- package/lib/input.js +70 -4
- package/lib/webdriver.js +39 -39
- package/package.json +2 -2
package/CHANGES.md
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
## v4.1.2
|
|
2
|
+
|
|
3
|
+
* chore/connect to CDP based on ENV selenium address var (#10255)
|
|
4
|
+
* Add wheel support to actions
|
|
5
|
+
* add support for Chrome 98 and remove support for Chrome 95
|
|
6
|
+
* add deleteNetworkConditions for chromium (#10323)
|
|
7
|
+
* Add new pointer attributes to actions
|
|
8
|
+
* add support Chrome 99 and remove for Chrome 96
|
|
9
|
+
* sendKeys error message fixed
|
|
10
|
+
* add support Chrome 100 and remove for Chrome 97
|
|
11
|
+
* removing onQuit handler for chromedriver (#10499)
|
|
12
|
+
* Split String on grapheme pairs in sendKeys command (#10519)
|
|
13
|
+
* do not convert tag name to css selector
|
|
14
|
+
* docs: use Browser constants for browser name (#10567)
|
|
15
|
+
|
|
1
16
|
## v4.1.1
|
|
2
17
|
|
|
3
18
|
* Add support for installing unpacked addons at runtime in Firefox webdriver (#10216)
|
|
@@ -12,7 +27,6 @@
|
|
|
12
27
|
* Remove legacy JWP support and w3c<boolean> switch (#10095)
|
|
13
28
|
* update map/filter clean up to common format (#10094)
|
|
14
29
|
|
|
15
|
-
|
|
16
30
|
## v4.1.0
|
|
17
31
|
|
|
18
32
|
* add support for handling Shadow DOM elements
|
|
@@ -29,14 +43,12 @@
|
|
|
29
43
|
* Fixes relative locator 'locateWith' export
|
|
30
44
|
* update doc string for CDP Commands (#9929)
|
|
31
45
|
|
|
32
|
-
|
|
33
46
|
## v4.0.0
|
|
34
47
|
|
|
35
48
|
* Fixes cdp for Chrome and Firefox (#9909)
|
|
36
49
|
* Add cdp 95 to python and JS
|
|
37
50
|
* Removing unused target for cdpConnection
|
|
38
51
|
|
|
39
|
-
|
|
40
52
|
## v4.0.0-rc-2
|
|
41
53
|
|
|
42
54
|
* Fix builder test
|
|
@@ -58,15 +70,13 @@
|
|
|
58
70
|
* Add default Opera capabilities. Fixes #9654
|
|
59
71
|
* Add support for ChromeDriver `--enable-chrome-logs` (#9575) [Author: Mark Stacey]
|
|
60
72
|
|
|
61
|
-
The `--enable-chrome-logs` ChromeDriver option can now be enabled using
|
|
62
|
-
|
|
63
|
-
provided by ChromeDriver.
|
|
73
|
+
The `--enable-chrome-logs` ChromeDriver option can now be enabled using the Chromium (or Chrome)
|
|
74
|
+
ServiceBuilder, similarly to the other options provided by ChromeDriver.
|
|
64
75
|
|
|
65
76
|
* Add the debuggerAddress option to chromium.js (#9561) [Author: Brandon Walderman]
|
|
66
77
|
* Adds http client options (#9638)[Author: Dharin Shah]
|
|
67
78
|
* Updating edge.js to extend chromium.driver (fixes #9626)
|
|
68
79
|
|
|
69
|
-
|
|
70
80
|
## v4.0.0-beta.4
|
|
71
81
|
|
|
72
82
|
* Add windowTypes option support for ChromiumDriver (#7897)
|
|
@@ -74,14 +84,13 @@
|
|
|
74
84
|
|
|
75
85
|
## v4.0.0-beta.3
|
|
76
86
|
|
|
77
|
-
* Removed support for legacy actions.
|
|
78
|
-
|
|
87
|
+
* Removed support for legacy actions. This will also remove "Bride Mode" support, which was
|
|
88
|
+
introduced to translate of action class to legacy API.
|
|
79
89
|
* Remove devtools support for v86,v87 and adding support for v89, v90, v91
|
|
80
90
|
* make isPromise() return boolean value for null and undefined cases (#6785)
|
|
81
91
|
* code cleanup (#9158)
|
|
82
92
|
* replacing asserts equal with strictEqual and deepEqual with deepStrictEqual
|
|
83
93
|
|
|
84
|
-
|
|
85
94
|
## v4.0.0-beta.2
|
|
86
95
|
|
|
87
96
|
* Removed support for Edge legacy.
|
|
@@ -134,12 +143,11 @@
|
|
|
134
143
|
|
|
135
144
|
* Removed BUILD.bazel files from the build artifact
|
|
136
145
|
|
|
137
|
-
|
|
138
146
|
## v4.0.0-alpha.3
|
|
139
147
|
|
|
140
148
|
### Notice
|
|
141
149
|
|
|
142
|
-
*
|
|
150
|
+
* The minimum supported version of Node is now 10.15.0 LTS
|
|
143
151
|
|
|
144
152
|
### Changes
|
|
145
153
|
|
|
@@ -149,16 +157,15 @@
|
|
|
149
157
|
|
|
150
158
|
### API Changes
|
|
151
159
|
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
|
|
155
|
-
|
|
160
|
+
* Export `lib/input.Origin` from the top level `selenium-webdriver` module.
|
|
161
|
+
* HTTP requests from this library will now include a User-Agent of the form
|
|
162
|
+
`selenium/${VERSION} (js ${PLATFORM})`.
|
|
156
163
|
|
|
157
164
|
## v4.0.0-alpha.1
|
|
158
165
|
|
|
159
166
|
### Notice
|
|
160
167
|
|
|
161
|
-
*
|
|
168
|
+
* The minimum supported version of Node is now 8.9.0 LTS
|
|
162
169
|
|
|
163
170
|
### Changes to Supported Browsers
|
|
164
171
|
|
|
@@ -172,200 +179,192 @@ mode (see `example/headless.js`)
|
|
|
172
179
|
|
|
173
180
|
### Changes for W3C WebDriver Spec Compliance
|
|
174
181
|
|
|
175
|
-
*
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
* Replaced `WebElement.getSize()` and `WebElement.getLocation()` with a single
|
|
194
|
-
method, `WebElement.getRect()`.
|
|
182
|
+
* 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.
|
|
185
|
+
|
|
186
|
+
As of January, 2018, only Firefox natively supports this new API. You can put the `Actions` class
|
|
187
|
+
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.
|
|
190
|
+
__NOTE:__ The legacy API is considered strongly deprecated and will be removed in a minor release
|
|
191
|
+
once Google's Chrome and Microsoft's Edge browsers support the new API.
|
|
192
|
+
|
|
193
|
+
* All window manipulation commands are now supported.
|
|
194
|
+
* 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
|
|
197
|
+
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()`.
|
|
195
200
|
|
|
196
201
|
### API Changes
|
|
197
202
|
|
|
198
|
-
*
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
*
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
*
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
*
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
*
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
*
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
*
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
*
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
*
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
*
|
|
264
|
-
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
*
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
*
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
*
|
|
306
|
-
|
|
307
|
-
*
|
|
308
|
-
|
|
309
|
-
*
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
- afterEach
|
|
332
|
-
- it
|
|
333
|
-
- Added the `suite` function. For details, refer to the jsdoc or
|
|
203
|
+
* 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`
|
|
209
|
+
* Removed `remote/index.DriverService.prototype.stop()` (use `#kill()` instead)
|
|
210
|
+
* Removed the `lib/actions` module
|
|
211
|
+
* Removed the `lib/events` module
|
|
212
|
+
* Removed the `phantomjs` module
|
|
213
|
+
* Removed the 'opera' module
|
|
214
|
+
* Removed the promise manager from `lib/promise`, which includes the removal of the following
|
|
215
|
+
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)
|
|
239
|
+
* Changes to the `Builder` class:
|
|
240
|
+
- Added setChromeService, setEdgeService, & setFirefoxService
|
|
241
|
+
- Removed setEnableNativeEvents
|
|
242
|
+
- Removed setScrollBehavior
|
|
243
|
+
* Changes to `chrome.Driver`
|
|
244
|
+
- Added sendDevToolsCommand
|
|
245
|
+
- Added setDownloadPath
|
|
246
|
+
* Changes to `chrome.Options`
|
|
247
|
+
- Now extends the `Capabilities` class
|
|
248
|
+
- Removed from/toCapabilities
|
|
249
|
+
* Changes to `edge.Options`
|
|
250
|
+
- Now extends the `Capabilities` class
|
|
251
|
+
- Removed from/toCapabilities
|
|
252
|
+
* 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
|
|
257
|
+
with `firefox.Options#addArguments()`.
|
|
258
|
+
* Changes to `firefox.Driver`
|
|
259
|
+
- Added installAddon(path)
|
|
260
|
+
- Added uninstallAddon(id)
|
|
261
|
+
* 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`
|
|
270
|
+
* Removed the `firefox/binary` module
|
|
271
|
+
* Removed the `firefox/profile` module
|
|
272
|
+
* Changes to `safari.Options`
|
|
273
|
+
- Now extends the `Capabilities` class
|
|
274
|
+
- Removed from/toCapabilities
|
|
275
|
+
- Removed setCleanSession (was a no-op)
|
|
276
|
+
* 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)
|
|
284
|
+
* 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.
|
|
288
|
+
* Changes to `lib/error`:
|
|
289
|
+
- Added
|
|
290
|
+
- ElementClickInterceptedError
|
|
291
|
+
- InsecureCertificateError
|
|
292
|
+
- InvalidCoordinatesError
|
|
293
|
+
- NoSuchCookieError
|
|
294
|
+
- Removed
|
|
295
|
+
- ElementNotVisibleError
|
|
296
|
+
- InvalidElementCoordinatesError
|
|
297
|
+
* 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()`.
|
|
308
|
+
* Changes to `lib/webdriver.WebElement`:
|
|
309
|
+
- Replaced getSize & getLocation with getRect
|
|
310
|
+
* Changes to `lib/webdriver.Alert`:
|
|
311
|
+
- Removed authenticateAs
|
|
312
|
+
* Changes to `lib/webdriver.Options` (`driver.manage()`):
|
|
313
|
+
- Removed timeouts (use get/setTimeouts)
|
|
314
|
+
* 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
|
|
325
|
+
* Removed the `testing/assert` module
|
|
326
|
+
* 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
|
|
334
336
|
`example/google_search_test.js`
|
|
335
337
|
|
|
336
|
-
|
|
337
|
-
|
|
338
338
|
## v3.6.0
|
|
339
339
|
|
|
340
340
|
### Bug Fixes
|
|
341
341
|
|
|
342
342
|
* The Capabilities factory methods should only specify the name of the browser.
|
|
343
|
-
* Protect against the remote end sometimes not returning a list to findElements
|
|
344
|
-
commands.
|
|
343
|
+
* Protect against the remote end sometimes not returning a list to findElements commands.
|
|
345
344
|
* Properly reset state in `remote.DriverService#kill()`
|
|
346
|
-
* The firefox module will no longer apply the preferences required by the legacy
|
|
347
|
-
|
|
348
|
-
|
|
345
|
+
* The firefox module will no longer apply the preferences required by the legacy FirefoxDriver.
|
|
346
|
+
These preferences were only required when using the legacy driver, support for which was dropped
|
|
347
|
+
in v3.5.0.
|
|
349
348
|
|
|
350
349
|
### API Changes
|
|
351
350
|
|
|
352
351
|
* Added new methods to `selenium-webdriver/firefox.Options`:
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
352
|
+
- addArguments()
|
|
353
|
+
- headless()
|
|
354
|
+
- windowSize()
|
|
356
355
|
* Deprecated `selenium-webdriver/firefox/binary.Binary`
|
|
357
356
|
* Removed `selenium-webdriver/firefox.Options#useGeckoDriver()`
|
|
358
357
|
* Removed the unused `selenium-webdriver/firefox/profile.decode()`
|
|
359
|
-
* Removed methods from `selenium-webdriver/firefox/profile.Profile` that had
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
* Removed `selenium-webdriver/firefox.ServiceBuilder#setFirefoxBinary()`; custom
|
|
366
|
-
|
|
367
|
-
* Removed `selenium-webdriver/firefox.Capability`. These hold overs from the
|
|
368
|
-
|
|
358
|
+
* Removed methods from `selenium-webdriver/firefox/profile.Profile` that had no effect since support
|
|
359
|
+
for the legacy FirefoxDriver was dropped in 3.5.0:
|
|
360
|
+
- setNativeEventsEnabled
|
|
361
|
+
- nativeEventsEnabled
|
|
362
|
+
- getPort
|
|
363
|
+
- setPort
|
|
364
|
+
* Removed `selenium-webdriver/firefox.ServiceBuilder#setFirefoxBinary()`; custom binaries should be
|
|
365
|
+
configured through the `firefox.Options` class.
|
|
366
|
+
* Removed `selenium-webdriver/firefox.Capability`. These hold overs from the legacy FirefoxDriver
|
|
367
|
+
are no longer supported.
|
|
369
368
|
|
|
370
369
|
### Changes for W3C WebDriver Spec Compliance
|
|
371
370
|
|
|
@@ -373,7 +372,6 @@ mode (see `example/headless.js`)
|
|
|
373
372
|
`error.ElementNotInteractableError`.
|
|
374
373
|
* Support the `httpOnly` option when adding a cookie.
|
|
375
374
|
|
|
376
|
-
|
|
377
375
|
## v3.5.0
|
|
378
376
|
|
|
379
377
|
### Notice
|
|
@@ -384,23 +382,20 @@ to a remote Selenium server that supports Firefox 45.
|
|
|
384
382
|
### Changes
|
|
385
383
|
|
|
386
384
|
* Removed native support for Firefox 46 and older.
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
* `firefox.Options` will no longer discard the `"moz:firefoxOptions"` set in
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
* Added `chrome.Options#headless()` and `chrome.Options#windowSize()`, which
|
|
394
|
-
|
|
395
|
-
the initial window size, respectively.
|
|
396
|
-
|
|
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.
|
|
388
|
+
* `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_.
|
|
391
|
+
* Added `chrome.Options#headless()` and `chrome.Options#windowSize()`, which may be used to start
|
|
392
|
+
Chrome in headless mode (requires Chrome 59+) and to set the initial window size, respectively.
|
|
397
393
|
|
|
398
394
|
### Changes for W3C WebDriver Spec Compliance
|
|
399
395
|
|
|
400
|
-
* Added `error.WebDriverError#remoteStacktrace` to capture the stacktrace
|
|
401
|
-
|
|
402
|
-
* Fixed `WebElement#sendKeys` to send text as a string instead of an array of
|
|
403
|
-
strings.
|
|
396
|
+
* Added `error.WebDriverError#remoteStacktrace` to capture the stacktrace reported by a remote
|
|
397
|
+
WebDriver endpoint (if any).
|
|
398
|
+
* Fixed `WebElement#sendKeys` to send text as a string instead of an array of strings.
|
|
404
399
|
|
|
405
400
|
## v3.4.0
|
|
406
401
|
|
|
@@ -410,28 +405,25 @@ This release requires [geckodriver 0.15.0](https://github.com/mozilla/geckodrive
|
|
|
410
405
|
|
|
411
406
|
### API Changes
|
|
412
407
|
|
|
413
|
-
* Added `Options#getTimeouts()` for retrieving the currently configured session
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
supports setting multiple timeouts at once.
|
|
408
|
+
* Added `Options#getTimeouts()` for retrieving the currently configured session timeouts (i.e.
|
|
409
|
+
implicit wait). This method will only work with W3C compatible WebDriver implementations.
|
|
410
|
+
* Deprecated the `Timeouts` class in favor of `Options#setTimeouts()`, which supports setting
|
|
411
|
+
multiple timeouts at once.
|
|
418
412
|
* Added support for emulating different network conditions (e.g., offline, 2G, WiFi) on Chrome.
|
|
419
413
|
|
|
420
414
|
### Changes for W3C WebDriver Spec Compliance
|
|
421
415
|
|
|
422
|
-
* Fixed W3C response parsing, which expects response data to always be a JSON
|
|
423
|
-
|
|
416
|
+
* Fixed W3C response parsing, which expects response data to always be a JSON object with a `value`
|
|
417
|
+
key.
|
|
424
418
|
* Added W3C endpoints for interacting with various types of
|
|
425
419
|
[user prompts](https://w3c.github.io/webdriver/webdriver-spec.html#user-prompts).
|
|
426
420
|
* Added W3C endpoints for remotely executing scripts.
|
|
427
421
|
* Added W3C endpoints to get current window handle and all windows handles.
|
|
428
422
|
|
|
429
|
-
|
|
430
423
|
## v3.3.0
|
|
431
424
|
|
|
432
|
-
* Added warning log messages when the user creates new managed promises, or
|
|
433
|
-
|
|
434
|
-
with
|
|
425
|
+
* Added warning log messages when the user creates new managed promises, or schedules unchained
|
|
426
|
+
tasks. Users may opt in to printing these log messages with
|
|
435
427
|
|
|
436
428
|
```js
|
|
437
429
|
const {logging} = require('selenium-webdriver');
|
|
@@ -440,112 +432,100 @@ This release requires [geckodriver 0.15.0](https://github.com/mozilla/geckodrive
|
|
|
440
432
|
```
|
|
441
433
|
* If the `JAVA_HOME` environment variable is set, use it to locate java.exe.
|
|
442
434
|
|
|
443
|
-
|
|
444
435
|
## v3.2.0
|
|
445
436
|
|
|
446
437
|
* Release skipped to stay in sync with the main Selenium project.
|
|
447
438
|
|
|
448
|
-
|
|
449
439
|
## v3.1.0
|
|
450
440
|
|
|
451
441
|
* The `lib` package is once again platform agnostic (excluding `lib/devmode`).
|
|
452
442
|
* Deprecated `promise.when(value, callback, errback)`.
|
|
453
443
|
Use `promise.fulfilled(value).then(callback, errback)`
|
|
454
444
|
* Changed `promise.fulfilled(value)`, `promise.rejected(reason)` and
|
|
455
|
-
`promise.defer()` to all use native promises when the promise manager is
|
|
456
|
-
disabled.
|
|
445
|
+
`promise.defer()` to all use native promises when the promise manager is disabled.
|
|
457
446
|
* Properly handle W3C error responses to new session commands.
|
|
458
447
|
* Updated `selenium-webdriver/testing` to export `describe.only` along with
|
|
459
448
|
`describe.skip`.
|
|
460
|
-
* Fixed `selenium-webdriver/lib/until.ableToSwitchToFrame`. It was previously
|
|
461
|
-
|
|
449
|
+
* Fixed `selenium-webdriver/lib/until.ableToSwitchToFrame`. It was previously dropping arguments and
|
|
450
|
+
would never work.
|
|
462
451
|
* Added the ability to use Firefox Nightly
|
|
463
452
|
* If Firefox cannot be found in the default location, look for it on the PATH
|
|
464
453
|
* Allow SafariDriver to use Safari Technology Preview.
|
|
465
|
-
* Use the proper wire command for WebElement.getLocation() and
|
|
466
|
-
|
|
467
|
-
|
|
454
|
+
* Use the proper wire command for WebElement.getLocation() and WebElement.getSize() for W3C
|
|
455
|
+
compliant drivers.
|
|
468
456
|
|
|
469
457
|
## v3.0.1
|
|
470
458
|
|
|
471
459
|
* More API adjustments to align with native Promises
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
* When a `wait()` condition times out, the returned promise will now be
|
|
475
|
-
|
|
476
|
-
* `WebDriver#wait()` will now throw a TypeError if an invalid wait condition is
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
impacts when the promise manager is disabled).
|
|
480
|
-
|
|
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.
|
|
464
|
+
* `WebDriver#wait()` will now throw a TypeError if an invalid wait condition is provided.
|
|
465
|
+
* Properly catch unhandled promise rejections with an action sequence (only impacts when the promise
|
|
466
|
+
manager is disabled).
|
|
481
467
|
|
|
482
468
|
## v3.0.0
|
|
483
469
|
|
|
484
470
|
* (__NOTICE__) The minimum supported version of Node is now 6.9.0 LTS
|
|
485
|
-
* Removed support for the SafariDriver browser extension. This has been
|
|
486
|
-
|
|
471
|
+
* Removed support for the SafariDriver browser extension. This has been replaced by Apple's
|
|
472
|
+
safaridriver, which is included wtih Safari 10
|
|
487
473
|
(available on OS X El Capitan and macOS Sierra).
|
|
488
474
|
|
|
489
475
|
To use Safari 9 or older, users will have to use an older version of Selenium.
|
|
490
476
|
|
|
491
477
|
* geckodriver v0.11.0 or newer is now required for Firefox.
|
|
492
|
-
* Fixed potential reference errors in `selenium-webdriver/testing` when users
|
|
493
|
-
|
|
494
|
-
* Fixed `WebDriver.switchTo().activeElement()` to use the correct HTTP method
|
|
495
|
-
|
|
478
|
+
* Fixed potential reference errors in `selenium-webdriver/testing` when users create a cycle with
|
|
479
|
+
mocha by running with mocha's `--hook` flag.
|
|
480
|
+
* Fixed `WebDriver.switchTo().activeElement()` to use the correct HTTP method for compatibility with
|
|
481
|
+
the W3C spec.
|
|
496
482
|
* Update the `selenium-webdriver/firefox` module to use geckodriver's
|
|
497
483
|
"moz:firefoxOptions" dictionary for Firefox-specific configuration values.
|
|
498
|
-
* Extending the `selenium-webdriver/testing` module to support tests defined
|
|
499
|
-
|
|
484
|
+
* Extending the `selenium-webdriver/testing` module to support tests defined using generator
|
|
485
|
+
functions.
|
|
500
486
|
* The promise manager can be disabled by setting an enviornment variable:
|
|
501
|
-
`SELENIUM_PROMISE_MANAGER=0`. This is part of a larger plan to remove the
|
|
502
|
-
|
|
487
|
+
`SELENIUM_PROMISE_MANAGER=0`. This is part of a larger plan to remove the promise manager, as
|
|
488
|
+
documented at
|
|
503
489
|
<https://github.com/SeleniumHQ/selenium/issues/2969>
|
|
504
490
|
* When communicating with a W3C-compliant remote end, use the atoms library for
|
|
505
|
-
the `WebElement.getAttribute()` and `WebElement.isDisplayed()` commands. This
|
|
506
|
-
|
|
507
|
-
|
|
491
|
+
the `WebElement.getAttribute()` and `WebElement.isDisplayed()` commands. This behavior is
|
|
492
|
+
consistent with the java, .net, python, and ruby clients.
|
|
508
493
|
|
|
509
494
|
### API Changes
|
|
510
495
|
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
`build()`.
|
|
526
|
-
|
|
527
|
-
|
|
496
|
+
* Removed `safari.Options#useLegacyDriver()`
|
|
497
|
+
* 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
|
|
503
|
+
now inherit the base class' function signature. Users are still encouraged to use the `Builder`
|
|
504
|
+
class instead of creating drivers directly.
|
|
505
|
+
* `Builder#build()` now returns a "thenable" WebDriver instance, allowing users to immediately
|
|
506
|
+
schedule commands (as before), or issue them through standard promise callbacks. This is the same
|
|
507
|
+
pattern already employed for WebElements.
|
|
508
|
+
* Removed `Builder#buildAsync()` as it was redundant with the new semantics of
|
|
509
|
+
`build()`.
|
|
528
510
|
|
|
529
511
|
## v3.0.0-beta-3
|
|
530
512
|
|
|
531
|
-
* Fixed a bug where the promise manager would silently drop callbacks after
|
|
532
|
-
|
|
533
|
-
* Added the `firefox.ServiceBuilder` class, which may be used to customize the
|
|
534
|
-
|
|
535
|
-
* Added support for Safari 10 safaridriver. safaridriver may be disabled
|
|
536
|
-
|
|
537
|
-
extension driver.
|
|
513
|
+
* Fixed a bug where the promise manager would silently drop callbacks after recovering from an
|
|
514
|
+
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.
|
|
538
519
|
* Updated the `lib/proxy` module to support configuring a SOCKS proxy.
|
|
539
|
-
* For the `promise.ControlFlow`, fire the "uncaughtException" event in a new
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
causing errors to be silently suppressed in the promise chain.
|
|
520
|
+
* For the `promise.ControlFlow`, fire the "uncaughtException" event in a new turn of the JS event
|
|
521
|
+
loop. As a result of this change, any errors thrown by an event listener will propagate to the
|
|
522
|
+
global error handler. Previously, this event was fired with in the context of a (native) promise
|
|
523
|
+
callback, causing errors to be silently suppressed in the promise chain.
|
|
544
524
|
|
|
545
525
|
### API Changes
|
|
546
526
|
|
|
547
|
-
* Added `remote.DriverService.Builder` as a base class for configuring
|
|
548
|
-
|
|
527
|
+
* Added `remote.DriverService.Builder` as a base class for configuring DriverService instances that
|
|
528
|
+
run in a child-process. The
|
|
549
529
|
`chrome.ServiceBuilder`, `edge.ServiceBuilder`, and `opera.ServiceBuilder`
|
|
550
530
|
classes now all extend this base class with browser-specific options.
|
|
551
531
|
* For each of the ServiceBuilder classes, renamed `usingPort` and
|
|
@@ -557,144 +537,129 @@ This release requires [geckodriver 0.15.0](https://github.com/mozilla/geckodrive
|
|
|
557
537
|
`selenium-webdriver` module (these were previously only available from
|
|
558
538
|
`lib/webdriver`).
|
|
559
539
|
|
|
560
|
-
|
|
561
540
|
### Changes for W3C WebDriver Spec Compliance
|
|
562
541
|
|
|
563
542
|
* Updated command mappings for [getting](https://w3c.github.io/webdriver/webdriver-spec.html#get-window-position)
|
|
564
543
|
and [setting](https://w3c.github.io/webdriver/webdriver-spec.html#set-window-position)
|
|
565
544
|
the window position.
|
|
566
545
|
|
|
567
|
-
|
|
568
546
|
## v3.0.0-beta-2
|
|
569
547
|
|
|
570
548
|
### API Changes
|
|
571
549
|
|
|
572
550
|
* Moved the `builder.Builder` class into the main module (`selenium-webdriver`).
|
|
573
551
|
* Removed the `builder` module.
|
|
574
|
-
* Fix `webdriver.WebDriver#setFileDetector` when driving Chrome or Firefox on a
|
|
575
|
-
remote machine.
|
|
576
|
-
|
|
552
|
+
* Fix `webdriver.WebDriver#setFileDetector` when driving Chrome or Firefox on a remote machine.
|
|
577
553
|
|
|
578
554
|
## v3.0.0-beta-1
|
|
579
555
|
|
|
580
556
|
* Allow users to set the agent used for HTTP connections through
|
|
581
|
-
|
|
557
|
+
`builder.Builder#usingHttpAgent()`
|
|
582
558
|
* Added new wait conditions: `until.urlIs()`, `until.urlContains()`,
|
|
583
|
-
|
|
559
|
+
`until.urlMatches()`
|
|
584
560
|
* Added work around for [GeckoDriver bug](https://bugzilla.mozilla.org/show_bug.cgi?id=1274924)
|
|
585
|
-
|
|
561
|
+
raising a type conversion error
|
|
586
562
|
* Internal cleanup replacing uses of managed promises with native promises
|
|
587
563
|
* Removed the mandatory use of Firefox Dev Edition, when using Marionette driver
|
|
588
564
|
* Fixed timeouts' URL
|
|
589
565
|
* Properly send HTTP requests when using a WebDriver server proxy
|
|
590
566
|
* Properly configure proxies when using the geckodriver
|
|
591
|
-
* `http.Executor` now accepts a promised client. The `builder.Builder` class
|
|
592
|
-
|
|
593
|
-
WebDriver instances.
|
|
567
|
+
* `http.Executor` now accepts a promised client. The `builder.Builder` class will now use this
|
|
568
|
+
instead of a `command.DeferredExecutor` when creating WebDriver instances.
|
|
594
569
|
* For Chrome and Firefox, the `builder.Builder` class will always return an
|
|
595
|
-
instanceof `chrome.Driver` and `firefox.Driver`, respectively, even when
|
|
596
|
-
|
|
570
|
+
instanceof `chrome.Driver` and `firefox.Driver`, respectively, even when configured to use a
|
|
571
|
+
remote server (from `builder.Builder#usingServer(url)`,
|
|
597
572
|
`SELENIUM_REMOTE_URL`, etc).
|
|
598
573
|
|
|
599
574
|
### API Changes
|
|
600
575
|
|
|
601
576
|
* `promise.Deferred` is no longer a thenable object.
|
|
602
|
-
* `Options#addCookie()` now takes a record object instead of 7 individual
|
|
603
|
-
|
|
604
|
-
arguments.
|
|
577
|
+
* `Options#addCookie()` now takes a record object instead of 7 individual parameters. A TypeError
|
|
578
|
+
will be thrown if addCookie() is called with invalid arguments.
|
|
605
579
|
* When adding cookies, the desired expiry must be provided as a Date or in
|
|
606
|
-
_seconds_ since epoch. When retrieving cookies, the expiration is always
|
|
607
|
-
returned in seconds.
|
|
580
|
+
_seconds_ since epoch. When retrieving cookies, the expiration is always returned in seconds.
|
|
608
581
|
* Renamed `firefox.Options#useMarionette` to `firefox.Options#useGeckoDriver`
|
|
609
582
|
* Removed deprecated modules:
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
is no longer used.
|
|
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.
|
|
614
586
|
* Removed deprecated types:
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
- `webdriver.UnhandledAlertError` (use `error.UnexpectedAlertOpenError`)
|
|
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`)
|
|
623
594
|
* Removed deprecated functions:
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
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()`
|
|
636
607
|
* Removed deprecated properties:
|
|
637
|
-
|
|
638
|
-
|
|
608
|
+
- `WebDriverError#code`
|
|
639
609
|
|
|
640
610
|
## v2.53.2
|
|
641
611
|
|
|
642
|
-
* Changed `io.exists()` to return a rejected promise if the input path is not
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
Sorry for the churn!
|
|
647
|
-
* FIXED: capabilities serialization now properly handles undefined vs.
|
|
648
|
-
false-like values.
|
|
612
|
+
* Changed `io.exists()` to return a rejected promise if the input path is not a string
|
|
613
|
+
* Deprecated `Promise#thenFinally()` - use `Promise#finally()`. The thenFinally shim added to the
|
|
614
|
+
promise module in v2.53.0 will be removed in v3.0 Sorry for the churn!
|
|
615
|
+
* FIXED: capabilities serialization now properly handles undefined vs. false-like values.
|
|
649
616
|
* FIXED: properly handle responses from the remote end in
|
|
650
|
-
|
|
617
|
+
`WebDriver.attachToSession`
|
|
651
618
|
|
|
652
619
|
## v2.53.1
|
|
653
620
|
|
|
654
621
|
* FIXED: for consistency with the other language bindings, `remote.FileDetector`
|
|
655
|
-
|
|
622
|
+
will ignore paths that refer to a directory.
|
|
656
623
|
|
|
657
624
|
## v2.53.0
|
|
658
625
|
|
|
659
626
|
### Change Summary
|
|
660
627
|
|
|
661
|
-
* Added preliminary support for Marionette, Mozilla's WebDriver implementation
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
* Moved all logic for parsing and interpreting responses from the remote end
|
|
666
|
-
|
|
628
|
+
* Added preliminary support for Marionette, Mozilla's WebDriver implementation for Firefox.
|
|
629
|
+
Marionette may be enabled via the API,
|
|
630
|
+
`firefox.Options#useMarionette`, or by setting the `SELENIUM_MARIONETTE`
|
|
631
|
+
environment variable.
|
|
632
|
+
* Moved all logic for parsing and interpreting responses from the remote end into the
|
|
633
|
+
individual `command.Executor` implementations.
|
|
667
634
|
* For consistency with the other Selenium language bindings,
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
635
|
+
`WebDriver#isElementPresent()` and `WebElement#isElementPresent()` have been deprecated. These
|
|
636
|
+
methods will be removed in v3.0. Use the findElements command to test for the presence of an
|
|
637
|
+
element:
|
|
671
638
|
|
|
672
639
|
driver.findElements(By.css('.foo')).then(found => !!found.length);
|
|
673
640
|
* Added support for W3C-spec compliant servers.
|
|
674
641
|
* For consistent naming, deprecating `error.InvalidSessionIdError` in favor of
|
|
675
|
-
|
|
676
|
-
* Moved the `error` module to `lib/error` so all core modules are co-located.
|
|
677
|
-
|
|
678
|
-
* Moved `until.Condition` and `until.WebElementCondition` to the webdriver
|
|
679
|
-
|
|
680
|
-
* Added support for setting the username and password in basic auth pop-up
|
|
681
|
-
|
|
642
|
+
`error.NoSuchSessionError`.
|
|
643
|
+
* Moved the `error` module to `lib/error` so all core modules are co-located. The top-level `error`
|
|
644
|
+
module will be removed in v3.0.
|
|
645
|
+
* Moved `until.Condition` and `until.WebElementCondition` to the webdriver module to break a
|
|
646
|
+
circular dependency.
|
|
647
|
+
* Added support for setting the username and password in basic auth pop-up dialogs (currently IE
|
|
648
|
+
only).
|
|
682
649
|
* Deprecated `WebElement#getInnerHtml()` and `WebEleemnt#getOuterHtml()`
|
|
683
650
|
* Deprecated `Promise#thenCatch()` - use `Promise#catch()` instead
|
|
684
651
|
* Deprecated `Promise#thenFinally()` - use `promise.thenFinally()` instead
|
|
685
|
-
* FIXED: `io.findInPath()` will no longer match against directories that have
|
|
686
|
-
|
|
687
|
-
* FIXED: `phantomjs.Driver` now takes a third argument that defines the path to
|
|
688
|
-
|
|
689
|
-
|
|
652
|
+
* FIXED: `io.findInPath()` will no longer match against directories that have the same basename as
|
|
653
|
+
the target file.
|
|
654
|
+
* 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.
|
|
690
657
|
|
|
691
658
|
### Changes for W3C WebDriver Spec Compliance
|
|
692
659
|
|
|
693
|
-
* Changed `element.sendKeys(...)` to send the key sequence as an array where
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
at the protocol level and should have no user-visible effect.
|
|
697
|
-
|
|
660
|
+
* Changed `element.sendKeys(...)` to send the key sequence as an array where each element defines a
|
|
661
|
+
single key. The legacy wire protocol permits arrays where each element is a string of arbitrary
|
|
662
|
+
length. This change is solely at the protocol level and should have no user-visible effect.
|
|
698
663
|
|
|
699
664
|
## v2.52.0
|
|
700
665
|
|
|
@@ -708,51 +673,47 @@ the selenium-webdriver package README.
|
|
|
708
673
|
### Change Summary
|
|
709
674
|
|
|
710
675
|
* Add support for Microsoft's Edge web browser
|
|
711
|
-
* Added `webdriver.Builder#buildAsync()`, which returns a promise that will be
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
"localhost" by default.
|
|
676
|
+
* Added `webdriver.Builder#buildAsync()`, which returns a promise that will be fulfilled with the
|
|
677
|
+
newly created WebDriver instance once the associated browser has been full initialized. This is
|
|
678
|
+
purely a convenient alternative to the existing build() method as the WebDriver class will always
|
|
679
|
+
defer commands until it has a fully created browser.
|
|
680
|
+
* Added `firefox.Profile#setHost()` which may be used to set the host that the FirefoxDriver's
|
|
681
|
+
server listens for commands on. The server uses
|
|
682
|
+
"localhost" by default.
|
|
719
683
|
* Added `promise.Promise#catch()` for API compatibility with native Promises.
|
|
720
|
-
|
|
721
|
-
delegates to `catch`.
|
|
684
|
+
`promise.Promise#thenCatch()` is not yet deprecated, but it simply delegates to `catch`.
|
|
722
685
|
* Changed some `io` operations to use native promises.
|
|
723
|
-
* Changed `command.Executor#execute()` and `HttpClient#send()` to return
|
|
724
|
-
|
|
686
|
+
* Changed `command.Executor#execute()` and `HttpClient#send()` to return promises instead of using
|
|
687
|
+
callback passing.
|
|
725
688
|
* Replaced the `Serializable` class with an internal, Symbol-defined method.
|
|
726
689
|
* Changed the `Capabilities` class to extend the native `Map` type.
|
|
727
690
|
* Changed the `Capabilities.has(key)` to only test if a capability has been set
|
|
728
|
-
|
|
691
|
+
(Map semantics). To check whether the value is true, use `get(key)`.
|
|
729
692
|
* Deprecated `executors.DeferredExecutor` in favor of
|
|
730
|
-
|
|
731
|
-
* API documentation is no longer distributed with the npm package, but remains
|
|
732
|
-
|
|
733
|
-
* Rewrote the `error` module to export an Error subtype for each type of error
|
|
734
|
-
|
|
735
|
-
* Changed the `http.Request` and `http.Response` classes to store headers in
|
|
736
|
-
|
|
693
|
+
`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).
|
|
698
|
+
* Changed the `http.Request` and `http.Response` classes to store headers in maps instead of object
|
|
699
|
+
literals.
|
|
737
700
|
* Updated `ws` dependency to version `1.0.1`.
|
|
738
701
|
* Removed fluent predicates "is" and "not" from the experimental
|
|
739
|
-
|
|
740
|
-
* Wait conditions that locate an element, or that wait on an element's state,
|
|
741
|
-
|
|
742
|
-
* Lots of internal clean-up to break selenium-webdriver's long standing
|
|
743
|
-
|
|
702
|
+
`testing/assert` module.
|
|
703
|
+
* Wait conditions that locate an element, or that wait on an element's state, will return a
|
|
704
|
+
WebElementPromise.
|
|
705
|
+
* Lots of internal clean-up to break selenium-webdriver's long standing dependency on Google's
|
|
706
|
+
Closure library.
|
|
744
707
|
|
|
745
708
|
### Changes for W3C WebDriver Spec Compliance
|
|
746
709
|
|
|
747
|
-
* Updated the `By` locators that are not in the W3C spec to delegated to using
|
|
748
|
-
|
|
749
|
-
|
|
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`.
|
|
750
712
|
|
|
751
713
|
## v2.49-51
|
|
752
714
|
|
|
753
715
|
* _Releases skipped to stay in sync with the rest of the Selenium project_
|
|
754
716
|
|
|
755
|
-
|
|
756
717
|
## v2.48.2
|
|
757
718
|
|
|
758
719
|
* Added `WebElement#takeScreenshot()`.
|
|
@@ -760,24 +721,22 @@ the selenium-webdriver package README.
|
|
|
760
721
|
|
|
761
722
|
## v2.48.1
|
|
762
723
|
|
|
763
|
-
* FIXED: Adjusted how the control flow tracks promise callbacks to avoid a
|
|
764
|
-
potential deadlock.
|
|
724
|
+
* FIXED: Adjusted how the control flow tracks promise callbacks to avoid a potential deadlock.
|
|
765
725
|
|
|
766
726
|
## v2.48.0
|
|
767
727
|
|
|
768
|
-
* Node v0.12.x users must run with --harmony. _This is the last release that
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
Refer to the `webdriver.promise` documentation for more details.
|
|
728
|
+
* Node v0.12.x users must run with --harmony. _This is the last release that will support v0.12.x_
|
|
729
|
+
* FIXED: (Promise/A+ compliance) When a promise is rejected with a thenable, the promise adopts the
|
|
730
|
+
thenable as its rejection reason instead of waiting for it to settle. The previous (incorrect)
|
|
731
|
+
behavior was hidden by bugs in the `promises-aplus-tests` compliance test suite that were fixed in
|
|
732
|
+
version
|
|
733
|
+
`2.1.1`.
|
|
734
|
+
* 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.
|
|
778
737
|
* FIXED: do not drop user auth from the WebDriver server URL.
|
|
779
|
-
* FIXED: a single `firefox.Binary` instance may be used to configure and
|
|
780
|
-
|
|
738
|
+
* FIXED: a single `firefox.Binary` instance may be used to configure and launch multiple
|
|
739
|
+
FirefoxDriver sessions.
|
|
781
740
|
|
|
782
741
|
var binary = new firefox.Binary();
|
|
783
742
|
var options = new firefox.Options().setBinary(binary);
|
|
@@ -786,11 +745,11 @@ the selenium-webdriver package README.
|
|
|
786
745
|
var driver1 = builder.build();
|
|
787
746
|
var driver2 = builder.build();
|
|
788
747
|
|
|
789
|
-
* FIXED: zip files created for transfer to a remote WebDriver server are no
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
* FIXED: Surfaced the `loopback` option to `remote/SeleniumServer`. When set,
|
|
793
|
-
|
|
748
|
+
* FIXED: zip files created for transfer to a remote WebDriver server are no longer compressed. If
|
|
749
|
+
the zip contained a file that was already compressed, the server would return an "invalid code
|
|
750
|
+
lengths set" error.
|
|
751
|
+
* FIXED: Surfaced the `loopback` option to `remote/SeleniumServer`. When set, the server will be
|
|
752
|
+
accessed using the current host's loopback address.
|
|
794
753
|
|
|
795
754
|
## v2.47.0
|
|
796
755
|
|
|
@@ -805,21 +764,21 @@ continue to be supported, but will require setting the `--harmony` flag.
|
|
|
805
764
|
|
|
806
765
|
* Add support for [Node v4.0.0](https://nodejs.org/en/blog/release/v4.0.0/)
|
|
807
766
|
* Updated `ws` dependency from `0.7.1` to `0.8.0`
|
|
808
|
-
* Bumped the minimum supported version of Node from `0.10.x` to `0.12.x`. This
|
|
809
|
-
|
|
767
|
+
* Bumped the minimum supported version of Node from `0.10.x` to `0.12.x`. This is in accordance with
|
|
768
|
+
the Node support policy established in `v2.45.0`.
|
|
810
769
|
|
|
811
770
|
## v2.46.1
|
|
812
771
|
|
|
813
772
|
* Fixed internal module loading on Windows.
|
|
814
773
|
* Fixed error message format on timeouts for `until.elementLocated()`
|
|
815
|
-
|
|
774
|
+
and `until.elementsLocated()`.
|
|
816
775
|
|
|
817
776
|
## v2.46.0
|
|
818
777
|
|
|
819
778
|
* Exposed a new logging API via the `webdriver.logging` module. For usage, see
|
|
820
|
-
|
|
821
|
-
* Added support for using a proxy server for WebDriver commands.
|
|
822
|
-
|
|
779
|
+
`example/logging.js`.
|
|
780
|
+
* Added support for using a proxy server for WebDriver commands. See `Builder#usingWebDriverProxy()`
|
|
781
|
+
for more info.
|
|
823
782
|
* Removed deprecated functions:
|
|
824
783
|
* Capabilities#toJSON()
|
|
825
784
|
* UnhandledAlertError#getAlert()
|
|
@@ -830,32 +789,30 @@ continue to be supported, but will require setting the `--harmony` flag.
|
|
|
830
789
|
* promise.ControlFlow#clearHistory()
|
|
831
790
|
* promise.ControlFlow#getHistory()
|
|
832
791
|
* Removed deprecated enum values: `ErrorCode.NO_MODAL_DIALOG_OPEN` and
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
* FIXED: The `promise.ControlFlow` will maintain state for promise chains
|
|
836
|
-
generated in a loop.
|
|
792
|
+
`ErrorCode.MODAL_DIALOG_OPENED`. Use `ErrorCode.NO_SUCH_ALERT` and
|
|
793
|
+
`ErrorCode.UNEXPECTED_ALERT_OPEN`, respectively.
|
|
794
|
+
* FIXED: The `promise.ControlFlow` will maintain state for promise chains generated in a loop.
|
|
837
795
|
* FIXED: Correct serialize target elements used in an action sequence.
|
|
838
|
-
* FIXED: `promise.ControlFlow#wait()` now has consistent semantics for an
|
|
839
|
-
|
|
840
|
-
* FIXED: `remote.DriverService#start()` will now fail if the child process dies
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
* FIXED: Skip launching Firefox with the `-silent` flag to preheat the profile.
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
causing the `rm -rf` operation on the profile directory to fail.
|
|
796
|
+
* FIXED: `promise.ControlFlow#wait()` now has consistent semantics for an omitted or 0-timeout: it
|
|
797
|
+
will wait indefinitely.
|
|
798
|
+
* FIXED: `remote.DriverService#start()` will now fail if the child process dies while waiting for
|
|
799
|
+
the server to start accepting requests. Previously, start would continue to poll the server
|
|
800
|
+
address until the timeout expired.
|
|
801
|
+
* FIXED: Skip launching Firefox with the `-silent` flag to preheat the profile. Starting with
|
|
802
|
+
Firefox 38, this would cause the browser to crash. This step, which was first introduced for
|
|
803
|
+
Selenium's java client back with Firefox 2, no longer appears to be required.
|
|
804
|
+
* FIXED: 8564: `firefox.Driver#quit()` will wait for the Firefox process to terminate before
|
|
805
|
+
deleting the temporary webdriver profile. This eliminates a race condition where Firefox would
|
|
806
|
+
write profile data during shutdown, causing the `rm -rf` operation on the profile directory to
|
|
807
|
+
fail.
|
|
851
808
|
|
|
852
809
|
## v2.45.1
|
|
853
810
|
|
|
854
|
-
* FIXED: 8548: Task callbacks are once again dropped if the task was cancelled
|
|
855
|
-
|
|
856
|
-
* FIXED: 8496: Extended the `chrome.Options` API to cover all configuration
|
|
857
|
-
|
|
858
|
-
|
|
811
|
+
* FIXED: 8548: Task callbacks are once again dropped if the task was cancelled due to a previously
|
|
812
|
+
uncaught error within the frame.
|
|
813
|
+
* 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).
|
|
859
816
|
|
|
860
817
|
## v2.45.0
|
|
861
818
|
|
|
@@ -871,10 +828,10 @@ major version release (i.e. 1.0.0).
|
|
|
871
828
|
|
|
872
829
|
* Added native browser support for Internet Explorer, Opera 26+, and Safari
|
|
873
830
|
* With the release of [Node 0.12.0](http://blog.nodejs.org/2015/02/06/node-v0-12-0-stable/)
|
|
874
|
-
|
|
831
|
+
(finally!), the minimum supported version of Node is now `0.10.x`.
|
|
875
832
|
* The `promise` module is now [Promises/A+](https://promisesaplus.com/)
|
|
876
|
-
|
|
877
|
-
|
|
833
|
+
compliant. The biggest compliance change is that promise callbacks are now invoked in a future
|
|
834
|
+
turn of the JS event loop. For example:
|
|
878
835
|
|
|
879
836
|
var promise = require('selenium-webdriver').promise;
|
|
880
837
|
console.log('start');
|
|
@@ -893,12 +850,11 @@ major version release (i.e. 1.0.0).
|
|
|
893
850
|
// end
|
|
894
851
|
// middle
|
|
895
852
|
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
reason with a `From: ` prefix (if it is an Error object). For example:
|
|
853
|
+
The `promise.ControlFlow` class has been updated to track the asynchronous breaks required by
|
|
854
|
+
Promises/A+, so there are no changes to task execution order.
|
|
855
|
+
* 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
|
|
857
|
+
object). For example:
|
|
902
858
|
|
|
903
859
|
var driver = new webdriver.Builder().forBrowser('chrome').build();
|
|
904
860
|
driver.get('http://www.google.com/ncr');
|
|
@@ -908,7 +864,7 @@ major version release (i.e. 1.0.0).
|
|
|
908
864
|
}, 2000, 'element not found');
|
|
909
865
|
});
|
|
910
866
|
|
|
911
|
-
|
|
867
|
+
This code will fail an error like:
|
|
912
868
|
|
|
913
869
|
Error: element not found
|
|
914
870
|
Wait timed out after 2002ms
|
|
@@ -918,36 +874,31 @@ major version release (i.e. 1.0.0).
|
|
|
918
874
|
From: Task: WebDriver.call(function)
|
|
919
875
|
at <stack trace>
|
|
920
876
|
|
|
921
|
-
* Changed the format of strings returned by `promise.ControlFlow#getSchedule`.
|
|
922
|
-
|
|
923
|
-
|
|
877
|
+
* Changed the format of strings returned by `promise.ControlFlow#getSchedule`. This function now
|
|
878
|
+
accepts a boolean to control whether the returned string should include the stacktraces for when
|
|
879
|
+
each task was scheduled.
|
|
924
880
|
* Deprecating `promise.ControlFlow#getHistory`,
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
usage included in `test/upload_test.js`
|
|
933
|
-
* Expanded the interactions API to include touch actions.
|
|
934
|
-
See `WebDriver.touchActions()`.
|
|
881
|
+
`promise.ControlFlow#clearHistory`, and `promise.ControlFlow#annotateError`. These functions were
|
|
882
|
+
all intended for internal use and are no longer necessary, so they have been made no-ops.
|
|
883
|
+
* `WebDriver.wait()` may now be used to wait for a promise to resolve, with an optional timeout.
|
|
884
|
+
Refer to the API documentation for more information.
|
|
885
|
+
* Added support for copying files to a remote Selenium via `sendKeys` to test file uploads. Refer to
|
|
886
|
+
the API documentation for more information. Sample usage included in `test/upload_test.js`
|
|
887
|
+
* Expanded the interactions API to include touch actions. See `WebDriver.touchActions()`.
|
|
935
888
|
* FIXED: 8380: `firefox.Driver` will delete its temporary profile on `quit`.
|
|
936
889
|
* FIXED: 8306: Stack overflow in promise callbacks eliminated.
|
|
937
|
-
* FIXED: 8221: Added support for defining custom command mappings. Includes
|
|
938
|
-
|
|
939
|
-
GhostDriver 1.1.0).
|
|
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).
|
|
940
892
|
* FIXED: 8128: When the FirefoxDriver marshals an object to the page for
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
* FIXED: 8094: The control flow will no longer deadlock when a task returns
|
|
945
|
-
|
|
893
|
+
`executeScript`, it defines additional properties (required by the driver's implementation). These
|
|
894
|
+
properties will no longer be enumerable and should be omitted (i.e. they won't show up in
|
|
895
|
+
JSON.stringify output).
|
|
896
|
+
* FIXED: 8094: The control flow will no longer deadlock when a task returns a promise that depends
|
|
897
|
+
on the completion of sub-tasks.
|
|
946
898
|
|
|
947
899
|
## v2.44.0
|
|
948
900
|
|
|
949
|
-
* Added the `until` module, which defines common explicit wait conditions.
|
|
950
|
-
Sample usage:
|
|
901
|
+
* Added the `until` module, which defines common explicit wait conditions. Sample usage:
|
|
951
902
|
|
|
952
903
|
var firefox = require('selenium-webdriver/firefox'),
|
|
953
904
|
until = require('selenium-webdriver/until');
|
|
@@ -956,46 +907,43 @@ major version release (i.e. 1.0.0).
|
|
|
956
907
|
driver.get('http://www.google.com/ncr');
|
|
957
908
|
driver.wait(until.titleIs('Google Search'), 1000);
|
|
958
909
|
|
|
959
|
-
* FIXED: 8000: `Builder.forBrowser()` now accepts an empty string since some
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
* FIXED: 7994: The `stacktrace` module will not modify stack traces if the
|
|
963
|
-
|
|
964
|
-
* FIXED: 5855: Added a module (`until`) that defines several common conditions
|
|
965
|
-
|
|
910
|
+
* FIXED: 8000: `Builder.forBrowser()` now accepts an empty string since some WebDriver
|
|
911
|
+
implementations ignore the value. A value must still be specified, however, since it is a required
|
|
912
|
+
field in WebDriver's wire protocol.
|
|
913
|
+
* FIXED: 7994: The `stacktrace` module will not modify stack traces if the initial parse fails (e.g.
|
|
914
|
+
the user defined `Error.prepareStackTrace`)
|
|
915
|
+
* FIXED: 5855: Added a module (`until`) that defines several common conditions for use with explicit
|
|
916
|
+
waits. See updated examples for usage.
|
|
966
917
|
|
|
967
918
|
## v2.43.5
|
|
968
919
|
|
|
969
|
-
* FIXED: 7905: `Builder.usingServer(url)` once again returns `this` for
|
|
970
|
-
chaining.
|
|
920
|
+
* FIXED: 7905: `Builder.usingServer(url)` once again returns `this` for chaining.
|
|
971
921
|
|
|
972
922
|
## v2.43.2-4
|
|
973
923
|
|
|
974
|
-
* No changes; version bumps while attempting to work around an issue with
|
|
975
|
-
|
|
924
|
+
* No changes; version bumps while attempting to work around an issue with publishing to npm (a
|
|
925
|
+
version string may only be used once).
|
|
976
926
|
|
|
977
927
|
## v2.43.1
|
|
978
928
|
|
|
979
|
-
* Fixed an issue with flakiness when setting up the Firefox profile that could
|
|
980
|
-
|
|
929
|
+
* Fixed an issue with flakiness when setting up the Firefox profile that could prevent the driver
|
|
930
|
+
from initializing properly.
|
|
981
931
|
|
|
982
932
|
## v2.43.0
|
|
983
933
|
|
|
984
|
-
* Added native support for Firefox - the Java Selenium server is no longer
|
|
985
|
-
required.
|
|
934
|
+
* Added native support for Firefox - the Java Selenium server is no longer required.
|
|
986
935
|
* Added support for generator functions to `ControlFlow#execute` and
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
* Various improvements to the `Builder` API. Notably, the `build()` function
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
classes that can be used to start a browser without the builder.
|
|
936
|
+
`ControlFlow#wait`. For more information, see documentation on
|
|
937
|
+
`webdriver.promise.consume`. Requires harmony support (run with
|
|
938
|
+
`node --harmony-generators` in `v0.11.x`).
|
|
939
|
+
* Various improvements to the `Builder` API. Notably, the `build()` function will no longer default
|
|
940
|
+
to attempting to use a server at
|
|
941
|
+
`http://localhost:4444/wd/hub` if it cannot start a browser directly - you must specify the
|
|
942
|
+
WebDriver server with `usingServer(url)`. You can also set the target browser and WebDriver server
|
|
943
|
+
through a pair of environment variables. See the documentation on the `Builder` constructor for
|
|
944
|
+
more information.
|
|
945
|
+
* For consistency with the other language bindings, added browser specific classes that can be used
|
|
946
|
+
to start a browser without the builder.
|
|
999
947
|
|
|
1000
948
|
var webdriver = require('selenium-webdriver')
|
|
1001
949
|
chrome = require('selenium-webdriver/chrome');
|
|
@@ -1006,16 +954,14 @@ major version release (i.e. 1.0.0).
|
|
|
1006
954
|
|
|
1007
955
|
* Promise A+ compliance: a promise may no longer resolve to itself.
|
|
1008
956
|
* For consistency with other language bindings, deprecated
|
|
1009
|
-
|
|
1010
|
-
|
|
957
|
+
`UnhandledAlertError#getAlert` and added `#getAlertText`.
|
|
958
|
+
`getAlert` will be removed in `2.45.0`.
|
|
1011
959
|
* FIXED: 7641: Deprecated `ErrorCode.NO_MODAL_DIALOG_OPEN` and
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
* FIXED: 7470: Make it easier to create WebDriver instances in custom flows for
|
|
1018
|
-
parallel execution.
|
|
960
|
+
`ErrorCode.MODAL_DIALOG_OPENED` in favor of the new
|
|
961
|
+
`ErrorCode.NO_SUCH_ALERT` and `ErrorCode.UNEXPECTED_ALERT_OPEN`, respectively.
|
|
962
|
+
* FIXED: 7563: Mocha integration no longer disables timeouts. Default Mocha timeouts apply (2000 ms)
|
|
963
|
+
and may be changed using `this.timeout(ms)`.
|
|
964
|
+
* FIXED: 7470: Make it easier to create WebDriver instances in custom flows for parallel execution.
|
|
1019
965
|
|
|
1020
966
|
## v2.42.1
|
|
1021
967
|
|
|
@@ -1026,12 +972,11 @@ major version release (i.e. 1.0.0).
|
|
|
1026
972
|
## v2.42.0
|
|
1027
973
|
|
|
1028
974
|
* Removed deprecated functions `Promise#addCallback()`,
|
|
1029
|
-
|
|
975
|
+
`Promise#addCallbacks()`, `Promise#addErrback()`, and `Promise#addBoth()`.
|
|
1030
976
|
* Fail with a more descriptive error if the server returns a malformed redirect
|
|
1031
|
-
* FIXED: 7300: Connect to ChromeDriver using the loopback address since
|
|
1032
|
-
|
|
1033
|
-
* FIXED: 7339: Preserve wrapped test function's string representation for
|
|
1034
|
-
Mocha's BDD interface.
|
|
977
|
+
* FIXED: 7300: Connect to ChromeDriver using the loopback address since ChromeDriver 2.10.267517
|
|
978
|
+
binds to localhost by default.
|
|
979
|
+
* FIXED: 7339: Preserve wrapped test function's string representation for Mocha's BDD interface.
|
|
1035
980
|
|
|
1036
981
|
## v2.41.0
|
|
1037
982
|
|
|
@@ -1042,10 +987,10 @@ major version release (i.e. 1.0.0).
|
|
|
1042
987
|
|
|
1043
988
|
* API documentation is now included in the docs directory.
|
|
1044
989
|
* Added utility functions for working with an array of promises:
|
|
1045
|
-
|
|
990
|
+
`promise.all`, `promise.map`, and `promise.filter`
|
|
1046
991
|
* Introduced `Promise#thenCatch()` and `Promise#thenFinally()`.
|
|
1047
992
|
* Deprecated `Promise#addCallback()`, `Promise#addCallbacks()`,
|
|
1048
|
-
|
|
993
|
+
`Promise#addErrback()`, and `Promise#addBoth()`.
|
|
1049
994
|
* Removed deprecated function `webdriver.WebDriver#getCapability`.
|
|
1050
995
|
* FIXED: 6826: Added support for custom locators.
|
|
1051
996
|
|
|
@@ -1055,28 +1000,26 @@ major version release (i.e. 1.0.0).
|
|
|
1055
1000
|
|
|
1056
1001
|
## v2.38.1
|
|
1057
1002
|
|
|
1058
|
-
* FIXED: 6686: Changed `webdriver.promise.Deferred#cancel()` to silently no-op
|
|
1059
|
-
|
|
1003
|
+
* FIXED: 6686: Changed `webdriver.promise.Deferred#cancel()` to silently no-op if the deferred has
|
|
1004
|
+
already been resolved.
|
|
1060
1005
|
|
|
1061
1006
|
## v2.38.0
|
|
1062
1007
|
|
|
1063
|
-
* When a promise is rejected, always annotate the stacktrace with the parent
|
|
1064
|
-
|
|
1008
|
+
* When a promise is rejected, always annotate the stacktrace with the parent flow state so users can
|
|
1009
|
+
identify the source of an error.
|
|
1065
1010
|
* Updated tests to reflect features not working correctly in the SafariDriver
|
|
1066
|
-
|
|
1067
|
-
* FIXED: 6284: For mouse moves, correctly omit the x/y offsets if not
|
|
1068
|
-
|
|
1011
|
+
(cookie management and proxy support; see issues 5051, 5212, and 5503)
|
|
1012
|
+
* FIXED: 6284: For mouse moves, correctly omit the x/y offsets if not specified as a function
|
|
1013
|
+
argument (instead of passing (0,0)).
|
|
1069
1014
|
* FIXED: 6471: Updated documentation on `webdriver.WebElement#getAttribute`
|
|
1070
|
-
* FIXED: 6612: On Unix, use the default IANA ephemeral port range if unable to
|
|
1071
|
-
|
|
1072
|
-
* FIXED: 6617: Avoid triggering the node debugger when initializing the
|
|
1073
|
-
stacktrace module.
|
|
1015
|
+
* FIXED: 6612: On Unix, use the default IANA ephemeral port range if unable to retrieve the current
|
|
1016
|
+
system's port range.
|
|
1017
|
+
* FIXED: 6617: Avoid triggering the node debugger when initializing the stacktrace module.
|
|
1074
1018
|
* FIXED: 6627: Safely rebuild chrome.Options from a partial JSON spec.
|
|
1075
1019
|
|
|
1076
1020
|
## v2.37.0
|
|
1077
1021
|
|
|
1078
|
-
* FIXED: 6346: The remote.SeleniumServer class now accepts JVM arguments using
|
|
1079
|
-
the `jvmArgs` option.
|
|
1022
|
+
* FIXED: 6346: The remote.SeleniumServer class now accepts JVM arguments using the `jvmArgs` option.
|
|
1080
1023
|
|
|
1081
1024
|
## v2.36.0
|
|
1082
1025
|
|
|
@@ -1096,20 +1039,18 @@ major version release (i.e. 1.0.0).
|
|
|
1096
1039
|
|
|
1097
1040
|
## v2.34.1
|
|
1098
1041
|
|
|
1099
|
-
* FIXED: 6079: The parent process should not wait for spawn driver service
|
|
1100
|
-
|
|
1042
|
+
* FIXED: 6079: The parent process should not wait for spawn driver service processes (chromedriver,
|
|
1043
|
+
phantomjs, etc.)
|
|
1101
1044
|
|
|
1102
1045
|
## v2.34.0
|
|
1103
1046
|
|
|
1104
|
-
* Added the `selenium-webdriver/testing/assert` module. This module
|
|
1105
|
-
|
|
1106
|
-
example in module documentation).
|
|
1047
|
+
* Added the `selenium-webdriver/testing/assert` module. This module simplifies writing assertions
|
|
1048
|
+
against promised values (see example in module documentation).
|
|
1107
1049
|
* Added the `webdriver.Capabilities` class.
|
|
1108
|
-
* Added native support for the ChromeDriver. When using the `Builder`,
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
must be downloaded separately.
|
|
1050
|
+
* Added native support for the ChromeDriver. When using the `Builder`, requesting chrome without
|
|
1051
|
+
specifying a remote server URL will default to the native ChromeDriver implementation. The
|
|
1052
|
+
[ChromeDriver server](https://code.google.com/p/chromedriver/downloads/list)
|
|
1053
|
+
must be downloaded separately.
|
|
1113
1054
|
|
|
1114
1055
|
// Will start ChromeDriver locally.
|
|
1115
1056
|
var driver = new webdriver.Builder().
|
|
@@ -1123,15 +1064,14 @@ major version release (i.e. 1.0.0).
|
|
|
1123
1064
|
build();
|
|
1124
1065
|
|
|
1125
1066
|
* Added support for configuring proxies through the builder. For examples, see
|
|
1126
|
-
|
|
1067
|
+
`selenium-webdriver/test/proxy_test`.
|
|
1127
1068
|
* Added native support for PhantomJS.
|
|
1128
1069
|
* Changed signature of `SeleniumServer` to `SeleniumServer(jar, options)`.
|
|
1129
|
-
* Tests are now included in the npm published package. See `README.md` for
|
|
1130
|
-
execution instructions
|
|
1070
|
+
* Tests are now included in the npm published package. See `README.md` for execution instructions
|
|
1131
1071
|
* Removed the deprecated `webdriver.Deferred#resolve` and
|
|
1132
|
-
|
|
1133
|
-
* Removed the ability to connect to an existing session from the Builder. This
|
|
1134
|
-
|
|
1072
|
+
`webdriver.promise.resolved` functions.
|
|
1073
|
+
* Removed the ability to connect to an existing session from the Builder. This feature is intended
|
|
1074
|
+
for use with the browser-based client.
|
|
1135
1075
|
|
|
1136
1076
|
## v2.33.0
|
|
1137
1077
|
|
|
@@ -1141,33 +1081,32 @@ major version release (i.e. 1.0.0).
|
|
|
1141
1081
|
## v2.32.1
|
|
1142
1082
|
|
|
1143
1083
|
* FIXED: 5541: Added missing return statement for windows in
|
|
1144
|
-
|
|
1084
|
+
`portprober.findFreePort()`
|
|
1145
1085
|
|
|
1146
1086
|
## v2.32.0
|
|
1147
1087
|
|
|
1148
|
-
* Added the `selenium-webdriver/testing` package, which provides a basic
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
* For Promises/A+ compatibility, backing out the change in 2.30.0 that ensured
|
|
1152
|
-
|
|
1088
|
+
* Added the `selenium-webdriver/testing` package, which provides a basic framework for writing tests
|
|
1089
|
+
using Mocha. See
|
|
1090
|
+
`selenium-webdriver/example/google_search_test.js` for usage.
|
|
1091
|
+
* For Promises/A+ compatibility, backing out the change in 2.30.0 that ensured rejections were
|
|
1092
|
+
always Error objects. Rejection reasons are now left as is.
|
|
1153
1093
|
* Removed deprecated functions originally scheduled for removal in 2.31.0
|
|
1154
1094
|
* promise.Application.getInstance()
|
|
1155
1095
|
* promise.ControlFlow#schedule()
|
|
1156
1096
|
* promise.ControlFlow#scheduleTimeout()
|
|
1157
1097
|
* promise.ControlFlow#scheduleWait()
|
|
1158
|
-
* Renamed some functions for consistency with Promises/A+ terminology. The
|
|
1159
|
-
|
|
1098
|
+
* Renamed some functions for consistency with Promises/A+ terminology. The original functions have
|
|
1099
|
+
been deprecated and will be removed in 2.34.0:
|
|
1160
1100
|
* promise.resolved() -> promise.fulfilled()
|
|
1161
1101
|
* promise.Deferred#resolve() -> promise.Deferred#fulfill()
|
|
1162
|
-
* FIXED: remote.SeleniumServer#stop now shuts down within the active control
|
|
1163
|
-
|
|
1102
|
+
* FIXED: remote.SeleniumServer#stop now shuts down within the active control flow, allowing scripts
|
|
1103
|
+
to finish. Use #kill to shutdown immediately.
|
|
1164
1104
|
* FIXED: 5321: cookie deletion commands
|
|
1165
1105
|
|
|
1166
1106
|
## v2.31.0
|
|
1167
1107
|
|
|
1168
1108
|
* Added an example script.
|
|
1169
|
-
* Added a class for controlling the standalone Selenium server (server
|
|
1170
|
-
available separately)
|
|
1109
|
+
* Added a class for controlling the standalone Selenium server (server available separately)
|
|
1171
1110
|
* Added a portprober for finding free ports
|
|
1172
1111
|
* FIXED: WebElements now belong to the same flow as their parent driver.
|
|
1173
1112
|
|