selenium-webdriver 4.18.1 → 4.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGES.md CHANGED
@@ -1,190 +1,204 @@
1
+ ## 4.19.0
2
+
3
+ - Add CDP for Chrome 123 and remove 120
4
+ - [bidi] Add browser module (#13677)
5
+ - [bidi] Add storage module (#13684)
6
+ - [bidi] Add fail request command
7
+ - [bidi] Add error handling to check BytesValue instance
8
+ - [bidi] Add continueRequest and continueResponse command (#13704)
9
+ - [bidi] Add provide response command (#13708)
10
+ - [bidi] Add setFiles command of the Input Module (#13711)
11
+ - [atoms] use css locators in dom.js (#13430)
12
+
1
13
  ## 4.18.1
2
14
 
3
- * Add CDP for Chrome 122 and remove 119
15
+ - Add CDP for Chrome 122 and remove 119
4
16
 
5
17
  ## 4.18.0
6
18
 
7
- * Fix running the casting related methods in chromium (#13479)
8
- * [bidi] Add browsing context destroyed event
9
- * [bidi] Add realm destroyed event
10
- * [bidi] Add locate node command (#13489)
11
- * [bidi] Deprecate NetworkInspector in favor of Network
12
- * Make `npm run lint` pass for javascript/node/selenium-webdriver (#13560)
13
- * [bidi] Add "addintercept" and "removeintercept" commands (#13564)
14
- * [bidi] Add auth related commands (#13572)
15
- * [bidi] Add 'continueWithAuth' command
16
- * [bidi] Add 'fetchError' command
19
+ - Fix running the casting related methods in chromium (#13479)
20
+ - [bidi] Add browsing context destroyed event
21
+ - [bidi] Add realm destroyed event
22
+ - [bidi] Add locate node command (#13489)
23
+ - [bidi] Deprecate NetworkInspector in favor of Network
24
+ - Make `npm run lint` pass for javascript/node/selenium-webdriver (#13560)
25
+ - [bidi] Add "addintercept" and "removeintercept" commands (#13564)
26
+ - [bidi] Add auth related commands (#13572)
27
+ - [bidi] Add 'continueWithAuth' command
28
+ - [bidi] Add 'fetchError' command
17
29
 
18
30
  ## 4.17.0
19
31
 
20
- * Add javascript to Selenium Manager input for tracking (see #13288)
21
- * remove deprecated headless methods and associated references
22
- * Add script message event (#13153)
23
- * Update channel name from Aurora to Dev
24
- * Remove firefox_channels.js example as Channels is deprecated
25
- * Add Input module command (#13360)
26
- * remove all references to firefox-bin
27
- * download files from remote server (#13102)
28
- * Add auth required event
29
- * Add traverse history command
30
- * Add test to get iframe's browsing context
31
- * Add Input module JS command
32
- * Add test for node properties in
33
- * Add CDP for Chrome 121 and remove 118
32
+ - Add javascript to Selenium Manager input for tracking (see #13288)
33
+ - remove deprecated headless methods and associated references
34
+ - Add script message event (#13153)
35
+ - Update channel name from Aurora to Dev
36
+ - Remove firefox_channels.js example as Channels is deprecated
37
+ - Add Input module command (#13360)
38
+ - remove all references to firefox-bin
39
+ - download files from remote server (#13102)
40
+ - Add auth required event
41
+ - Add traverse history command
42
+ - Add test to get iframe's browsing context
43
+ - Add Input module JS command
44
+ - Add test for node properties in
45
+ - Add CDP for Chrome 121 and remove 118
34
46
 
35
47
  ## 4.16.0
36
48
 
37
49
  #### :bug: Bug fix
38
50
 
39
- * Fix logging levels in http.js and webdriver.js (#13098)
40
- * Remove unused targets from the JS tree (#13129)
51
+ - Fix logging levels in http.js and webdriver.js (#13098)
52
+ - Remove unused targets from the JS tree (#13129)
41
53
 
42
- * #### :nail_care: Polish
54
+ - #### :nail_care: Polish
43
55
 
44
- * Add CDP v120 and remove v117
56
+ - Add CDP v120 and remove v117
45
57
 
46
58
  ## 4.15.0
47
59
 
48
60
  #### :bug: Bug fix
49
61
 
50
- * Replace calls to console.log with managed loggers (#12909)
62
+ - Replace calls to console.log with managed loggers (#12909)
51
63
 
52
64
  #### :nail_care: Polish
53
65
 
54
- * Add CDP v119 and remove v116
66
+ - Add CDP v119 and remove v116
55
67
 
56
68
  #### :rocket: New Feature
57
69
 
58
- * Add BiDi captureScreenshot command (#12510)
59
- * Add BiDi browsing context activate command, handle user prompt command and reload command
60
- * Add BiDi browsing context commands and events (#13078)
70
+ - Add BiDi captureScreenshot command (#12510)
71
+ - Add BiDi browsing context activate command, handle user prompt command and
72
+ reload command
73
+ - Add BiDi browsing context commands and events (#13078)
61
74
 
62
75
  ## 4.14.0
63
76
 
64
77
  #### :nail_care: Polish
65
78
 
66
- * Adding CDP v118 and removing v115
79
+ - Adding CDP v118 and removing v115
67
80
 
68
81
  ## 4.13.0
69
82
 
70
83
  #### :nail_care: Polish
71
84
 
72
- * Adding CDP v117 and removing v114
73
- * Added file location to exception message for Selenium Manager
85
+ - Adding CDP v117 and removing v114
86
+ - Added file location to exception message for Selenium Manager
74
87
 
75
88
  #### :rocket: New Feature
76
89
 
77
- * Allow users to set Selenium Manager path by environment variable (#12752)
90
+ - Allow users to set Selenium Manager path by environment variable (#12752)
78
91
 
79
92
  ## 4.12.0
80
93
 
81
94
  #### :bug: Bug fix
82
95
 
83
- * Adding browsers when they are present on the host (#12456)
84
- * Create absolute path for browser binary (#12479)
85
- * Fix how browsers and drivers are discovered (#12456)
96
+ - Adding browsers when they are present on the host (#12456)
97
+ - Create absolute path for browser binary (#12479)
98
+ - Fix how browsers and drivers are discovered (#12456)
86
99
 
87
100
  #### :nail_care: Polish
88
101
 
89
- * Add support for Chrome 116 and remove support for Chrome 113
90
- * Remove browserVersion from options in Selenium Manager (#12641)
102
+ - Add support for Chrome 116 and remove support for Chrome 113
103
+ - Remove browserVersion from options in Selenium Manager (#12641)
91
104
 
92
105
  ## 4.11.1
93
106
 
94
107
  #### :bug: Bug fix
95
108
 
96
- * Update testing/index.js code snippet to fix function call (#12456)
109
+ - Update testing/index.js code snippet to fix function call (#12456)
97
110
 
98
111
  ## v4.11.0
99
112
 
100
113
  #### :nail_care: Polish
101
114
 
102
- * [BiDi] fix addPreloadScript failing tests (#12182)
103
- * Print debug message once for each browser when selenium manager used
104
- * Add forgotten RelativeBy in check options (#12289)
105
- * SM supports all browsers in Selenium since a while ago
106
- * Using SM to check drivers on the PATH
107
- * Display info about SM activity
108
- * Removing logic to find drivers, delegating to Selenium Manager
109
- * Removing service parameter from getPath
110
- * add support for Chrome 115 and remove support for Chrome 112
111
- * Update webdriver-bootstrap.js (#12276)
115
+ - [BiDi] fix addPreloadScript failing tests (#12182)
116
+ - Print debug message once for each browser when selenium manager used
117
+ - Add forgotten RelativeBy in check options (#12289)
118
+ - SM supports all browsers in Selenium since a while ago
119
+ - Using SM to check drivers on the PATH
120
+ - Display info about SM activity
121
+ - Removing logic to find drivers, delegating to Selenium Manager
122
+ - Removing service parameter from getPath
123
+ - add support for Chrome 115 and remove support for Chrome 112
124
+ - Update webdriver-bootstrap.js (#12276)
112
125
 
113
126
  #### :rocket: New Feature
114
127
 
115
- * [BiDi] add Network module events (#12197)
116
- * Adding ignore process match for IE Mode across bindings (#12279)
117
- * Add browser output from Selenium Manager to options (#12411)
128
+ - [BiDi] add Network module events (#12197)
129
+ - Adding ignore process match for IE Mode across bindings (#12279)
130
+ - Add browser output from Selenium Manager to options (#12411)
118
131
 
119
132
  #### :bug: Bug Fix
120
133
 
121
- * fix SeleniumServer.start() crashes on MacOS with nodejs selenium-webdriver (#12158)
122
- * Update by.js: Add forgotten RelativeBy in check options (#12289)
134
+ - fix SeleniumServer.start() crashes on MacOS with nodejs selenium-webdriver (
135
+ #12158)
136
+ - Update by.js: Add forgotten RelativeBy in check options (#12289)
123
137
 
124
138
  ## v4.10.0
125
139
 
126
140
  #### :nail_care: Polish
127
141
 
128
- * Adding CDP v114 and removing v111
142
+ - Adding CDP v114 and removing v111
129
143
 
130
144
  #### :rocket: New Feature
131
145
 
132
- * [Edge] Support webview2 (#11978)
133
- * [BiDi] Add Script module commands to add/remove preloaded scripts (#11847)
134
- * [BiDi] Add printPage command (#12124)
135
- * Add support for proxies with Selenium Manager
146
+ - [Edge] Support webview2 (#11978)
147
+ - [BiDi] Add Script module commands to add/remove preloaded scripts (#11847)
148
+ - [BiDi] Add printPage command (#12124)
149
+ - Add support for proxies with Selenium Manager
136
150
 
137
151
  ## v4.9.2
138
152
 
139
153
  #### :nail_care: Polish
140
154
 
141
- * Handle rejection of the driver if not found
155
+ - Handle rejection of the driver if not found
142
156
 
143
157
  ## v4.9.1
144
158
 
145
159
  #### :nail_care: Polish
146
160
 
147
- * Add CDP files for v113 and remove v110
161
+ - Add CDP files for v113 and remove v110
148
162
 
149
163
  ## v4.9.0
150
164
 
151
165
  #### :nail_care: Polish
152
166
 
153
- * Adding CDP v112 and removing v109
167
+ - Adding CDP v112 and removing v109
154
168
 
155
169
  #### :bug: Bug Fix
156
170
 
157
- * Fix: return statement in submit() (#11883)
158
- * [grid] Refining the UI configuration to allow sub paths work properly.
159
- * Replace `execSync` with `spawnSync` in `seleniumManager.js` (#11649) (#11873)
171
+ - Fix: return statement in submit() (#11883)
172
+ - [grid] Refining the UI configuration to allow sub paths work properly.
173
+ - Replace `execSync` with `spawnSync` in `seleniumManager.js` (#11649) (#11873)
160
174
 
161
175
  #### :rocket: New Feature
162
176
 
163
- * [BiDi] Add Script module commands and types (#11847)
164
- * Selenium Manager get Browser Version from Options classes
165
- * Selenium Manager use binary from Browser Options
177
+ - [BiDi] Add Script module commands and types (#11847)
178
+ - Selenium Manager get Browser Version from Options classes
179
+ - Selenium Manager use binary from Browser Options
166
180
 
167
181
  ## v4.8.2
168
182
 
169
183
  #### :nail_care: Polish
170
184
 
171
- * Add CDP support for v111 and remove v108
172
- * Using json output with Selenium Manager
185
+ - Add CDP support for v111 and remove v108
186
+ - Using json output with Selenium Manager
173
187
 
174
188
  #### :bug: Bug Fix
175
189
 
176
- * fix: Using status from response (#11742)
190
+ - fix: Using status from response (#11742)
177
191
 
178
192
  ## v4.8.1
179
193
 
180
194
  #### :rocket: New Feature
181
195
 
182
- * Add script pinning (#11584)
196
+ - Add script pinning (#11584)
183
197
 
184
198
  #### :nail_care: Polish
185
199
 
186
- * Add CDP support for v110 and remove v107
187
- * Updating Selenium Manager binaries for 4.8.1 release
200
+ - Add CDP support for v110 and remove v107
201
+ - Updating Selenium Manager binaries for 4.8.1 release
188
202
 
189
203
  #### :bug: Bug Fix
190
204
 
@@ -194,308 +208,318 @@ fix: iedriver download with selenium-manager #11579
194
208
 
195
209
  #### :rocket: New Feature
196
210
 
197
- * Add initial BiDi Support (#11395)
198
- * Add window wrappers getSize and setSize
199
- * Add BiDi browser context commands (#11473)
200
- * Add BiDi methods to listen to js logs and any type of logs
201
- * Add BiDi filtering capability to LogInspector (#11495)
202
- * Add comment with name of large JS executions (#11038)
211
+ - Add initial BiDi Support (#11395)
212
+ - Add window wrappers getSize and setSize
213
+ - Add BiDi browser context commands (#11473)
214
+ - Add BiDi methods to listen to js logs and any type of logs
215
+ - Add BiDi filtering capability to LogInspector (#11495)
216
+ - Add comment with name of large JS executions (#11038)
203
217
 
204
218
  #### :nail_care: Polish
205
219
 
206
- * Add CDP support for v109 and remove v106
207
- * Deprecate setHeadless() in Chrome and Firefox (#11467)
220
+ - Add CDP support for v109 and remove v106
221
+ - Deprecate setHeadless() in Chrome and Firefox (#11467)
208
222
 
209
223
  ## v4.7.1
210
224
 
211
225
  #### :nail_care: Polish
212
226
 
213
- * feat/deprecation message for standalone3x (#11422)
227
+ - feat/deprecation message for standalone3x (#11422)
214
228
 
215
229
  #### :bug: Bug Fix
216
230
 
217
- * feat/fix spawn format for SeleniumServer, issue 11405 (#11412)
231
+ - feat/fix spawn format for SeleniumServer, issue 11405 (#11412)
218
232
 
219
233
  #### Committers: 1
220
234
 
221
- * Potapov Dmitriy ([@potapovDim](https://github.com/potapovDim))
235
+ - Potapov Dmitriy ([@potapovDim](https://github.com/potapovDim))
222
236
 
223
237
  ## v4.7.0
224
238
 
225
239
  #### :rocket: New Feature
226
240
 
227
- * Add support for Selenium Manager to work with IE Driver
241
+ - Add support for Selenium Manager to work with IE Driver
228
242
 
229
243
  #### :nail_care: Polish
230
244
 
231
- * Adding CDP files for v108 and removing v105
232
- * Improve error handling for Selenium Manager
245
+ - Adding CDP files for v108 and removing v105
246
+ - Improve error handling for Selenium Manager
233
247
 
234
248
  ## v4.6.1
235
249
 
236
250
  #### :bug: Bug Fix
237
251
 
238
- * Support Node 17 and above (#11262)
252
+ - Support Node 17 and above (#11262)
239
253
 
240
254
  #### :nail_care: Polish
241
255
 
242
- * Fix typos (#11258)
256
+ - Fix typos (#11258)
243
257
 
244
258
  ## v4.6.0
245
259
 
246
260
  #### :rocket: New Feature
247
261
 
248
- * [grid] Add ability to use Enter key to confirm (#11178)
249
- * [grid][ui] Add search field for running sessions (#11197)
250
- * Add support for selenium manager (#11189)
262
+ - [grid] Add ability to use Enter key to confirm (#11178)
263
+ - [grid][ui] Add search field for running sessions (#11197)
264
+ - Add support for selenium manager (#11189)
251
265
 
252
266
  #### :bug: Bug Fix
253
267
 
254
- * isPromise() thenable fix (#11048)
255
- * Fix: making methods static (#11182)
268
+ - isPromise() thenable fix (#11048)
269
+ - Fix: making methods static (#11182)
256
270
 
257
271
  #### :nail_care: Polish
258
272
 
259
- * fix a tiny typo in chromium.js (#11073)
260
- * Adding CDP files for v107 and removing v104
273
+ - fix a tiny typo in chromium.js (#11073)
274
+ - Adding CDP files for v107 and removing v104
261
275
 
262
276
  ## v4.5.0
263
277
 
264
278
  #### :rocket: New Feature
265
279
 
266
- * Adds 'Select' support package
267
- * selectByIndex
268
- * selectByValue
269
- * selectByVisibleText
270
- * getAllSelectedOptions
271
- * getFirstSelectedOption
272
- * deselectAll
273
- * deselectByVisibleText
274
- * deselectByIndex
275
- * deselectByValue
276
- * Add support for Actions API sendKeys to designated element
277
- * Adds mouse button enum for forward and backward navigation
280
+ - Adds 'Select' support package
281
+ - selectByIndex
282
+ - selectByValue
283
+ - selectByVisibleText
284
+ - getAllSelectedOptions
285
+ - getFirstSelectedOption
286
+ - deselectAll
287
+ - deselectByVisibleText
288
+ - deselectByIndex
289
+ - deselectByValue
290
+ - Add support for Actions API sendKeys to designated element
291
+ - Adds mouse button enum for forward and backward navigation
278
292
 
279
293
  #### :bug: Bug Fix
280
294
 
281
- * Set min node support to 14.x.x (issue 1 in #10970)
282
- * fix: geckodriver session with node 18.x.x (issue 2 in #10970)
283
- * fix: JS firefox driver crashes on setting a profile (fixed
295
+ - Set min node support to 14.x.x (issue 1 in #10970)
296
+ - fix: geckodriver session with node 18.x.x (issue 2 in #10970)
297
+ - fix: JS firefox driver crashes on setting a profile (fixed
284
298
  with [commit](https://github.com/SeleniumHQ/selenium/commit/fa6deeea6bda1e73317157845772e114bd569b7d))
285
- * fix: "SetExperimental" option is not available in webdriverjs (Javascript/Typescript) (#10959)
286
- * fix: Do not allow Select class to select disabled options (#10812)
299
+ - fix: "SetExperimental" option is not available in webdriverjs (
300
+ Javascript/Typescript) (#10959)
301
+ - fix: Do not allow Select class to select disabled options (#10812)
287
302
 
288
303
  #### :nail_care: Polish
289
304
 
290
- * Stop sending desiredCapabilities to local end and remote end
291
- * tests: Quit driver instance after each test
292
- * tests: Adds select by multiple(index,value, text) tests
293
- * chore/code style changes, add util (#10975)
294
- * chore/code style changes to common format (#10964)
295
- * destructuring exports
296
- * Moving from static to const to make js-dossier happy
297
- * Removing circular dependency Between webdriver.js and http.js
298
- * fix some typos in code and documentation
299
- * add cdp v105 remove v102
300
- * add cdp v106 remove v103
305
+ - Stop sending desiredCapabilities to local end and remote end
306
+ - tests: Quit driver instance after each test
307
+ - tests: Adds select by multiple(index,value, text) tests
308
+ - chore/code style changes, add util (#10975)
309
+ - chore/code style changes to common format (#10964)
310
+ - destructuring exports
311
+ - Moving from static to const to make js-dossier happy
312
+ - Removing circular dependency Between webdriver.js and http.js
313
+ - fix some typos in code and documentation
314
+ - add cdp v105 remove v102
315
+ - add cdp v106 remove v103
301
316
 
302
317
  ## v4.4.0
303
318
 
304
- * Add support CDP 104 and remove CDP 101
319
+ - Add support CDP 104 and remove CDP 101
305
320
 
306
321
  ## v4.3.1
307
322
 
308
- * create new default service for every driver instance in chromium (#10796)
309
- * Updated jsdoc for move action (#10816)
323
+ - create new default service for every driver instance in chromium (#10796)
324
+ - Updated jsdoc for move action (#10816)
310
325
 
311
326
  ## v4.3.0
312
327
 
313
- * Fix: using fulfillRequest when intercepting (#10764)
314
- * Add support CDP 103 and remove CDP 100
315
- * Remove unused param in input.js & minor code cleanup
316
- * Fixes lint issues and updates npm packages
317
- * feat: Added virtual authenticator (#10663)
328
+ - Fix: using fulfillRequest when intercepting (#10764)
329
+ - Add support CDP 103 and remove CDP 100
330
+ - Remove unused param in input.js & minor code cleanup
331
+ - Fixes lint issues and updates npm packages
332
+ - feat: Added virtual authenticator (#10663)
318
333
 
319
334
  ## v4.2.0
320
335
 
321
- * Delete old android-driver
322
- * Remove Opera support from JS bindings #10379
323
- * Handle a breaking changes in os.networkInterfaces (#10611)
324
- * Add support to switch frame by id
325
- * Add support to switch frame by name (#10670)
326
- * [cdp] add support Chrome 102 and remove for Chrome 98
327
- * Update implementation for submitting forms
336
+ - Delete old android-driver
337
+ - Remove Opera support from JS bindings #10379
338
+ - Handle a breaking changes in os.networkInterfaces (#10611)
339
+ - Add support to switch frame by id
340
+ - Add support to switch frame by name (#10670)
341
+ - [cdp] add support Chrome 102 and remove for Chrome 98
342
+ - Update implementation for submitting forms
328
343
 
329
344
  ## v4.1.2
330
345
 
331
- * chore/connect to CDP based on ENV selenium address var (#10255)
332
- * Add wheel support to actions
333
- * add support for Chrome 98 and remove support for Chrome 95
334
- * add deleteNetworkConditions for chromium (#10323)
335
- * Add new pointer attributes to actions
336
- * add support Chrome 99 and remove for Chrome 96
337
- * sendKeys error message fixed
338
- * add support Chrome 100 and remove for Chrome 97
339
- * removing onQuit handler for chromedriver (#10499)
340
- * Split String on grapheme pairs in sendKeys command (#10519)
341
- * do not convert tag name to css selector
342
- * docs: use Browser constants for browser name (#10567)
346
+ - chore/connect to CDP based on ENV selenium address var (#10255)
347
+ - Add wheel support to actions
348
+ - add support for Chrome 98 and remove support for Chrome 95
349
+ - add deleteNetworkConditions for chromium (#10323)
350
+ - Add new pointer attributes to actions
351
+ - add support Chrome 99 and remove for Chrome 96
352
+ - sendKeys error message fixed
353
+ - add support Chrome 100 and remove for Chrome 97
354
+ - removing onQuit handler for chromedriver (#10499)
355
+ - Split String on grapheme pairs in sendKeys command (#10519)
356
+ - do not convert tag name to css selector
357
+ - docs: use Browser constants for browser name (#10567)
343
358
 
344
359
  ## v4.1.1
345
360
 
346
- * Add support for installing unpacked addons at runtime in Firefox webdriver (#10216)
347
- * Enables firefox debugger for devtools test
348
- * Sets correct browserName when set via SELENIUM_BROWSER fixes #10218
349
- * add support for Chrome v97
350
- * Adds new desktop cast command for Chromium #10190 (#10191)
351
- * ignore errors arising from trying to use file detector fixes #6343
352
- * Added RelativeBy class on the main api (#10148)
353
- * Code cleanup and minor improvements
354
- * Implements 'getDomAttribute' to get attribute value as defined by w3c spec and removes legacy
361
+ - Add support for installing unpacked addons at runtime in Firefox webdriver (
362
+ #10216)
363
+ - Enables firefox debugger for devtools test
364
+ - Sets correct browserName when set via SELENIUM_BROWSER fixes #10218
365
+ - add support for Chrome v97
366
+ - Adds new desktop cast command for Chromium #10190 (#10191)
367
+ - ignore errors arising from trying to use file detector fixes #6343
368
+ - Added RelativeBy class on the main api (#10148)
369
+ - Code cleanup and minor improvements
370
+ - Implements 'getDomAttribute' to get attribute value as defined by w3c spec and
371
+ removes legacy
355
372
  command usages
356
- * Remove legacy JWP support and w3c<boolean> switch (#10095)
357
- * update map/filter clean up to common format (#10094)
373
+ - Remove legacy JWP support and w3c<boolean> switch (#10095)
374
+ - update map/filter clean up to common format (#10094)
358
375
 
359
376
  ## v4.1.0
360
377
 
361
- * add support for handling Shadow DOM elements
362
- * Capture browser console logs when using BiDi onLogEvent api
363
- * add CDP support for v96 and remove v93
364
- * remove useless package, change io public api import to more common approach (#10037)
365
- * Fix flaky CDP dom mutation (#10029)
366
- * Fix edge test failures (#10012)
367
- * code cleanup second iteration (#9979)
368
- * Ensure correct serialization of extensions in chromium.Options (#6676)
369
- * Remove explicit id passing for CDP commands
370
- * Attach to page target while creating a CDP connection (#10005)
371
- * Add support for form submit in W3C mode (fixes #9916) (#9936)
372
- * Fixes relative locator 'locateWith' export
373
- * update doc string for CDP Commands (#9929)
378
+ - add support for handling Shadow DOM elements
379
+ - Capture browser console logs when using BiDi onLogEvent api
380
+ - add CDP support for v96 and remove v93
381
+ - remove useless package, change io public api import to more common approach (
382
+ #10037)
383
+ - Fix flaky CDP dom mutation (#10029)
384
+ - Fix edge test failures (#10012)
385
+ - code cleanup second iteration (#9979)
386
+ - Ensure correct serialization of extensions in chromium.Options (#6676)
387
+ - Remove explicit id passing for CDP commands
388
+ - Attach to page target while creating a CDP connection (#10005)
389
+ - Add support for form submit in W3C mode (fixes #9916) (#9936)
390
+ - Fixes relative locator 'locateWith' export
391
+ - update doc string for CDP Commands (#9929)
374
392
 
375
393
  ## v4.0.0
376
394
 
377
- * Fixes cdp for Chrome and Firefox (#9909)
378
- * Add cdp 95 to python and JS
379
- * Removing unused target for cdpConnection
395
+ - Fixes cdp for Chrome and Firefox (#9909)
396
+ - Add cdp 95 to python and JS
397
+ - Removing unused target for cdpConnection
380
398
 
381
399
  ## v4.0.0-rc-2
382
400
 
383
- * Fix builder test
384
- * Allow builder to set a single arbitrary capability (#9857)
385
- * Restore withCapabilities() to ensure backward compatibility
386
- * Add new websocketUrl capability
387
- * update ruby, python and JS to add support for v94 and remove support for v92
388
- * Add a check for Grid CDP endpoint
389
- * Implement network request interceptions
390
- * Update connections to devtools so it works in Firefox and Chrome
401
+ - Fix builder test
402
+ - Allow builder to set a single arbitrary capability (#9857)
403
+ - Restore withCapabilities() to ensure backward compatibility
404
+ - Add new websocketUrl capability
405
+ - update ruby, python and JS to add support for v94 and remove support for v92
406
+ - Add a check for Grid CDP endpoint
407
+ - Implement network request interceptions
408
+ - Update connections to devtools so it works in Firefox and Chrome
391
409
 
392
410
  ## v4.0.0-rc-1
393
411
 
394
- * Deprecates withCapabilities method and removes tests (#9701)
395
- * expose `withLocator` method at the top level
396
- * Enables Mobile feature for Firefox (Still need to expand this to chromium based browsers)
412
+ - Deprecates withCapabilities method and removes tests (#9701)
413
+ - expose `withLocator` method at the top level
414
+ - Enables Mobile feature for Firefox (Still need to expand this to chromium
415
+ based browsers)
397
416
 
398
- * Add the ability to do Relative Locators with all By types. Fixes #9559
399
- * Add default Opera capabilities. Fixes #9654
400
- * Add support for ChromeDriver `--enable-chrome-logs` (#9575) [Author: Mark Stacey]
417
+ - Add the ability to do Relative Locators with all By types. Fixes #9559
418
+ - Add default Opera capabilities. Fixes #9654
419
+ - Add support for ChromeDriver `--enable-chrome-logs` (
420
+ #9575) [Author: Mark Stacey]
401
421
 
402
- The `--enable-chrome-logs` ChromeDriver option can now be enabled using the Chromium (or Chrome)
422
+ The `--enable-chrome-logs` ChromeDriver option can now be enabled using the
423
+ Chromium (or Chrome)
403
424
  ServiceBuilder, similarly to the other options provided by ChromeDriver.
404
425
 
405
- * Add the debuggerAddress option to chromium.js (#9561) [Author: Brandon Walderman]
406
- * Adds http client options [#9638](Author: Dharin Shah)
407
- * Updating edge.js to extend chromium.driver (fixes #9626)
426
+ - Add the debuggerAddress option to chromium.js (
427
+ #9561) [Author: Brandon Walderman]
428
+ - Adds http client options [#9638](Author: Dharin Shah)
429
+ - Updating edge.js to extend chromium.driver (fixes #9626)
408
430
 
409
431
  ## v4.0.0-beta.4
410
432
 
411
- * Add windowTypes option support for ChromiumDriver (#7897)
412
- * Allow relativeby with findElement (#9396)
433
+ - Add windowTypes option support for ChromiumDriver (#7897)
434
+ - Allow relativeby with findElement (#9396)
413
435
 
414
436
  ## v4.0.0-beta.3
415
437
 
416
- * Removed support for legacy actions. This will also remove "Bride Mode" support, which was
438
+ - Removed support for legacy actions. This will also remove "Bride Mode"
439
+ support, which was
417
440
  introduced to translate of action class to legacy API.
418
- * Remove devtools support for v86,v87 and adding support for v89, v90, v91
419
- * make isPromise() return boolean value for null and undefined cases (#6785)
420
- * code cleanup (#9158)
421
- * replacing asserts equal with strictEqual and deepEqual with deepStrictEqual
441
+ - Remove devtools support for v86,v87 and adding support for v89, v90, v91
442
+ - make isPromise() return boolean value for null and undefined cases (#6785)
443
+ - code cleanup (#9158)
444
+ - replacing asserts equal with strictEqual and deepEqual with deepStrictEqual
422
445
 
423
446
  ## v4.0.0-beta.2
424
447
 
425
- * Removed support for Edge legacy.
426
- * Make the build silent for WebDriver Bidi generated code
427
- * resolve file path correctly (#9223)
428
- * Update example in edge.js (#9231)
429
- * Use a flat namespace for selenium options for finding WebDriver Bidi endpoint
430
- * Removing duplicate license text updated by update_copyright.js
431
- * Updating copyright text
432
- * Minor code cleanup
433
- * Removing duplicate variable declaration of IE from capabilities
448
+ - Removed support for Edge legacy.
449
+ - Make the build silent for WebDriver Bidi generated code
450
+ - resolve file path correctly (#9223)
451
+ - Update example in edge.js (#9231)
452
+ - Use a flat namespace for selenium options for finding WebDriver Bidi endpoint
453
+ - Removing duplicate license text updated by update_copyright.js
454
+ - Updating copyright text
455
+ - Minor code cleanup
456
+ - Removing duplicate variable declaration of IE from capabilities
434
457
 
435
458
  ## v4.0.0-beta.1
436
459
 
437
- * JS Binding support for WebDriver Bidi in Firefox
438
- * This requires Firefox 87 and Geckodriver 0.29 to be able to work
439
- * Update the supported CDP versions
440
- * Update tmp package version (#9155)
441
- * Adding support for /computedlabel (getAccessibleName) (#9073)
442
- * Adding support for computedrole (#8990)
443
- * Use subfolder for NPM package homepage (#8938)
444
- * Fix typo: tracingCategories -> traceCategories (#8976)
445
- * Package up mutation-listener for node. Fixes #8955
446
- * Adding support for `print` endpoint (#8880)
460
+ - JS Binding support for WebDriver Bidi in Firefox
461
+ - This requires Firefox 87 and Geckodriver 0.29 to be able to work
462
+ - Update the supported CDP versions
463
+ - Update tmp package version (#9155)
464
+ - Adding support for /computedlabel (getAccessibleName) (#9073)
465
+ - Adding support for computedrole (#8990)
466
+ - Use subfolder for NPM package homepage (#8938)
467
+ - Fix typo: tracingCategories -> traceCategories (#8976)
468
+ - Package up mutation-listener for node. Fixes #8955
469
+ - Adding support for `print` endpoint (#8880)
447
470
 
448
471
  ## v4.0.0-alpha.8
449
472
 
450
- * Rolling back native support for Opera Browser
451
- * Added new ieOptions capabilities:
452
- * fileUploadDialogTimeout
453
- * setEdgePath
454
- * setEdgeChromium
455
- * setScrollBehavior
456
- * For consistent naming, deprecating `addArguments(...args)` in favor
457
- of `addBrowserCommandSwitches(...args)`
458
-
459
- * Added relative locators
460
- * Added Chrome DevTools Protocol (CDP) support
461
- * Added support for BASIC authentication.
462
- * Added listener for DOM mutations.
463
- * Added support for listening out for console log events.
464
- * Added support listening js exceptions using CDP
473
+ - Rolling back native support for Opera Browser
474
+ - Added new ieOptions capabilities:
475
+
476
+ - fileUploadDialogTimeout
477
+ - setEdgePath
478
+ - setEdgeChromium
479
+ - setScrollBehavior
480
+ - For consistent naming, deprecating `addArguments(...args)` in favor
481
+ of `addBrowserCommandSwitches(...args)`
482
+
483
+ - Added relative locators
484
+ - Added Chrome DevTools Protocol (CDP) support
485
+ - Added support for BASIC authentication.
486
+ - Added listener for DOM mutations.
487
+ - Added support for listening out for console log events.
488
+ - Added support listening js exceptions using CDP
465
489
 
466
490
  ### API Changes
467
491
 
468
- * Added the 'opera' module
492
+ - Added the 'opera' module
469
493
 
470
494
  ## v4.0.0-alpha.4
471
495
 
472
496
  ### Changes
473
497
 
474
- * Removed BUILD.bazel files from the build artifact
498
+ - Removed BUILD.bazel files from the build artifact
475
499
 
476
500
  ## v4.0.0-alpha.3
477
501
 
478
502
  ### Notice
479
503
 
480
- * The minimum supported version of Node is now 10.15.0 LTS
504
+ - The minimum supported version of Node is now 10.15.0 LTS
481
505
 
482
506
  ### Changes
483
507
 
484
- * add `pollTimeout` argument to the `wait()` method. Default value is `200`ms
485
- * add `switchTo().parentFrame()` for non-W3C compatible drivers
486
- * add support for opening a new window
508
+ - add `pollTimeout` argument to the `wait()` method. Default value is `200`ms
509
+ - add `switchTo().parentFrame()` for non-W3C compatible drivers
510
+ - add support for opening a new window
487
511
 
488
512
  ### API Changes
489
513
 
490
- * Export `lib/input.Origin` from the top level `selenium-webdriver` module.
491
- * HTTP requests from this library will now include a User-Agent of the form
514
+ - Export `lib/input.Origin` from the top level `selenium-webdriver` module.
515
+ - HTTP requests from this library will now include a User-Agent of the form
492
516
  `selenium/${VERSION} (js ${PLATFORM})`.
493
517
 
494
518
  ## v4.0.0-alpha.1
495
519
 
496
520
  ### Notice
497
521
 
498
- * The minimum supported version of Node is now 8.9.0 LTS
522
+ - The minimum supported version of Node is now 8.9.0 LTS
499
523
 
500
524
  ### Changes to Supported Browsers
501
525
 
@@ -509,198 +533,222 @@ mode (see `example/headless.js`)
509
533
 
510
534
  ### Changes for W3C WebDriver Spec Compliance
511
535
 
512
- * Revamped the actions API to conform with the WebDriver Spec:
513
- <https://www.w3.org/TR/webdriver/#actions>. For details, refer to the JS doc on
536
+ - Revamped the actions API to conform with the WebDriver Spec:
537
+ <https://www.w3.org/TR/webdriver/#actions>. For details, refer to the JS doc
538
+ on
514
539
  the `lib/input.Actions` class.
515
540
 
516
- As of January, 2018, only Firefox natively supports this new API. You can put the `Actions` class
517
- into "bridge mode" and it will attempt to translate mouse and keyboard actions to the legacy API (
518
- see class docs). Alternatively, you may continue to use the legacy API directly via
541
+ As of January, 2018, only Firefox natively supports this new API. You can put
542
+ the `Actions` class
543
+ into "bridge mode" and it will attempt to translate mouse and keyboard actions
544
+ to the legacy API (
545
+ see class docs). Alternatively, you may continue to use the legacy API
546
+ directly via
519
547
  the `lib/actions` module.
520
- __NOTE:__ The legacy API is considered strongly deprecated and will be removed in a minor release
548
+ **NOTE:** The legacy API is considered strongly deprecated and will be removed
549
+ in a minor release
521
550
  once Google's Chrome and Microsoft's Edge browsers support the new API.
522
551
 
523
- * All window manipulation commands are now supported.
524
- * Added `driver.switchTo().parentFrame()`
525
- * When a named cookie is requested, attempt to fetch it directly using the W3C
526
- endpoint, `GET /session/{session id}/cookie/{name}`. If this command is not recognized by the
527
- remote end, fallback to fetching all cookies and then searching for the desired name.
528
- * Replaced `WebElement.getSize()` and `WebElement.getLocation()` with a single
552
+ - All window manipulation commands are now supported.
553
+ - Added `driver.switchTo().parentFrame()`
554
+ - When a named cookie is requested, attempt to fetch it directly using the W3C
555
+ endpoint, `GET /session/{session id}/cookie/{name}`. If this command is not
556
+ recognized by the
557
+ remote end, fallback to fetching all cookies and then searching for the
558
+ desired name.
559
+ - Replaced `WebElement.getSize()` and `WebElement.getLocation()` with a single
529
560
  method, `WebElement.getRect()`.
530
561
 
531
562
  ### API Changes
532
563
 
533
- * The core WebDriver API no longer uses promise manager
534
- * Removed `index.Builder#setControlFlow()`
535
- * The following thenable types no longer have a `cancel()` method:
536
- * The dynamically generated thenable WebDrivers created by `index.Builder`
537
- * `lib/webdriver.AlertPromise`
538
- * `lib/webdriver.WebElementPromise`
539
- * Removed `remote/index.DriverService.prototype.stop()` (use `#kill()` instead)
540
- * Removed the `lib/actions` module
541
- * Removed the `lib/events` module
542
- * Removed the `phantomjs` module
543
- * Removed the 'opera' module
544
- * Removed the promise manager from `lib/promise`, which includes the removal of the following
564
+ - The core WebDriver API no longer uses promise manager
565
+ - Removed `index.Builder#setControlFlow()`
566
+ - The following thenable types no longer have a `cancel()` method:
567
+ - The dynamically generated thenable WebDrivers created by `index.Builder`
568
+ - `lib/webdriver.AlertPromise`
569
+ - `lib/webdriver.WebElementPromise`
570
+ - Removed `remote/index.DriverService.prototype.stop()` (use `#kill()` instead)
571
+ - Removed the `lib/actions` module
572
+ - Removed the `lib/events` module
573
+ - Removed the `phantomjs` module
574
+ - Removed the 'opera' module
575
+ - Removed the promise manager from `lib/promise`, which includes the removal of
576
+ the following
545
577
  exported names (replacements, if any, in parentheses):
546
- * CancellableThenable
547
- * CancellationError
548
- * ControlFlow
549
- * Deferred
550
- * LONG_STACK_TRACES
551
- * MultipleUnhandledRejectionError
552
- * Promise (use native Promises)
553
- * Resolver
554
- * Scheduler
555
- * Thenable
556
- * USE_PROMISE_MANAGER
557
- * all (use Promise.all)
558
- * asap (use Promise.resolve)
559
- * captureStackTrace (use Error.captureStackTrace)
560
- * consume (use async functions)
561
- * controlFlow
562
- * createPromise (use new Promise)
563
- * defer
564
- * fulfilled (use Promise.resolve)
565
- * isGenerator
566
- * rejected (use Promise.reject)
567
- * setDefaultFlow
568
- * when (use Promise.resolve)
569
- * Changes to the `Builder` class:
570
- * Added setChromeService, setEdgeService, & setFirefoxService
571
- * Removed setEnableNativeEvents
572
- * Removed setScrollBehavior
573
- * Changes to `chrome.Driver`
574
- * Added sendDevToolsCommand
575
- * Added setDownloadPath
576
- * Changes to `chrome.Options`
577
- * Now extends the `Capabilities` class
578
- * Removed from/toCapabilities
579
- * Changes to `edge.Options`
580
- * Now extends the `Capabilities` class
581
- * Removed from/toCapabilities
582
- * Changes to `ie.Options`
583
- * Now extends the `Capabilities` class
584
- * Removed from/toCapabilities
585
- * Removed the `firefox.Binary` class. Custom binaries can still be selected
586
- using `firefox.Options#setBinary()`. Likewise, custom binary arguments can be specified
578
+ - CancellableThenable
579
+ - CancellationError
580
+ - ControlFlow
581
+ - Deferred
582
+ - LONG_STACK_TRACES
583
+ - MultipleUnhandledRejectionError
584
+ - Promise (use native Promises)
585
+ - Resolver
586
+ - Scheduler
587
+ - Thenable
588
+ - USE_PROMISE_MANAGER
589
+ - all (use Promise.all)
590
+ - asap (use Promise.resolve)
591
+ - captureStackTrace (use Error.captureStackTrace)
592
+ - consume (use async functions)
593
+ - controlFlow
594
+ - createPromise (use new Promise)
595
+ - defer
596
+ - fulfilled (use Promise.resolve)
597
+ - isGenerator
598
+ - rejected (use Promise.reject)
599
+ - setDefaultFlow
600
+ - when (use Promise.resolve)
601
+ - Changes to the `Builder` class:
602
+ - Added setChromeService, setEdgeService, & setFirefoxService
603
+ - Removed setEnableNativeEvents
604
+ - Removed setScrollBehavior
605
+ - Changes to `chrome.Driver`
606
+ - Added sendDevToolsCommand
607
+ - Added setDownloadPath
608
+ - Changes to `chrome.Options`
609
+ - Now extends the `Capabilities` class
610
+ - Removed from/toCapabilities
611
+ - Changes to `edge.Options`
612
+ - Now extends the `Capabilities` class
613
+ - Removed from/toCapabilities
614
+ - Changes to `ie.Options`
615
+ - Now extends the `Capabilities` class
616
+ - Removed from/toCapabilities
617
+ - Removed the `firefox.Binary` class. Custom binaries can still be selected
618
+ using `firefox.Options#setBinary()`. Likewise, custom binary arguments can be
619
+ specified
587
620
  with `firefox.Options#addArguments()`.
588
- * Changes to `firefox.Driver`
589
- * Added installAddon(path)
590
- * Added uninstallAddon(id)
591
- * Changes to `firefox.Options`
592
- * Now extends the `Capabilities` class
593
- * Removed from/toCapabilities
594
- * Removed setLoggingPreferences (was a no-op)
595
- * setProfile now only accepts a path to an existing profile
596
- * Added addExtensions
597
- * Added setPreference
598
- * Removed the `firefox.Profile` class. All of its functionality is now provided directly
621
+ - Changes to `firefox.Driver`
622
+ - Added installAddon(path)
623
+ - Added uninstallAddon(id)
624
+ - Changes to `firefox.Options`
625
+ - Now extends the `Capabilities` class
626
+ - Removed from/toCapabilities
627
+ - Removed setLoggingPreferences (was a no-op)
628
+ - setProfile now only accepts a path to an existing profile
629
+ - Added addExtensions
630
+ - Added setPreference
631
+ - Removed the `firefox.Profile` class. All of its functionality is now provided
632
+ directly
599
633
  by `firefox.Options`
600
- * Removed the `firefox/binary` module
601
- * Removed the `firefox/profile` module
602
- * Changes to `safari.Options`
603
- * Now extends the `Capabilities` class
604
- * Removed from/toCapabilities
605
- * Removed setCleanSession (was a no-op)
606
- * Changes to `lib/capabilities.Browser`:
607
- * Removed several enum values.
608
- * ANDROID (use Chrome for Android; see docs on the chrome module)
609
- * IPAD (no support available)
610
- * IPHONE (no support available)
611
- * OPERA (use Chrome)
612
- * PHANTOM_JS (use Chrome or Firefox in headless mode)
613
- * HTMLUNIT (use Chrome or Firefox in headless mode)
614
- * Changes to `lib/capabilities.Capabilities`:
615
- * Removed static factory methods android(), ipad(), iphone(), opera(), phantomjs(), htmlunit(),
616
- and htmlunitwithjs(). Users can still manually configure capabilities for these, but their use
617
- is not recommended and they will no longer be surfaced in the API.
618
- * Changes to `lib/error`:
619
- * Added
620
- * ElementClickInterceptedError
621
- * InsecureCertificateError
622
- * InvalidCoordinatesError
623
- * NoSuchCookieError
624
- * Removed
625
- * ElementNotVisibleError
626
- * InvalidElementCoordinatesError
627
- * Changes to `lib/webdriver.WebDriver`:
628
- * Dropped support for "requiredCapabilities" from WebDriver.createSession
629
- * actions() now returns the new `lib/input.Actions` class
630
- * Removed touchActions
631
- * Renamed schedule to execute
632
- * Removed the `WebDriver.attachToSession()` factory method. Users can just the `WebDriver`
633
- constructor directly instead.
634
- * Removed the `call()` method. This was used to inject custom function calls into the control
635
- flow. Now that the promise manager is no longer used, this method is no longer necessary.
636
- Users are now responsible for coordinating actions (ideally with async functions) and can just
637
- call functions directly instead of through `driver.call()`.
638
- * Changes to `lib/webdriver.WebElement`:
639
- * Replaced getSize & getLocation with getRect
640
- * Changes to `lib/webdriver.Alert`:
641
- * Removed authenticateAs
642
- * Changes to `lib/webdriver.Options` (`driver.manage()`):
643
- * Removed timeouts (use get/setTimeouts)
644
- * Changes to `lib/webdriver.Window` (`driver.manage().window()`):
645
- * Added
646
- * getRect
647
- * setRect
648
- * fullscreen
649
- * minimize
650
- * Removed (use the getRect/setRect methods)
651
- * getPosition
652
- * setPosition
653
- * getSize
654
- * setSize
655
- * Removed the `testing/assert` module
656
- * Changes to `testing/index`
657
- * Since the promise manager has been removed, it is no longer necessary to wrap the Mocha test
658
- hooks; instead, users can simply use async functions. The following have all been removed:
659
- * describe
660
- * before
661
- * beforeEach
662
- * after
663
- * afterEach
664
- * it
665
- * Added the `suite` function. For details, refer to the jsdoc or
666
- `example/google_search_test.js`
634
+ - Removed the `firefox/binary` module
635
+ - Removed the `firefox/profile` module
636
+ - Changes to `safari.Options`
637
+ - Now extends the `Capabilities` class
638
+ - Removed from/toCapabilities
639
+ - Removed setCleanSession (was a no-op)
640
+ - Changes to `lib/capabilities.Browser`:
641
+ - Removed several enum values.
642
+ - ANDROID (use Chrome for Android; see docs on the chrome module)
643
+ - IPAD (no support available)
644
+ - IPHONE (no support available)
645
+ - OPERA (use Chrome)
646
+ - PHANTOM_JS (use Chrome or Firefox in headless mode)
647
+ - HTMLUNIT (use Chrome or Firefox in headless mode)
648
+ - Changes to `lib/capabilities.Capabilities`:
649
+ - Removed static factory methods android(), ipad(), iphone(), opera(),
650
+ phantomjs(), htmlunit(),
651
+ and htmlunitwithjs(). Users can still manually configure capabilities for
652
+ these, but their use
653
+ is not recommended and they will no longer be surfaced in the API.
654
+ - Changes to `lib/error`:
655
+ - Added
656
+ - ElementClickInterceptedError
657
+ - InsecureCertificateError
658
+ - InvalidCoordinatesError
659
+ - NoSuchCookieError
660
+ - Removed
661
+ - ElementNotVisibleError
662
+ - InvalidElementCoordinatesError
663
+ - Changes to `lib/webdriver.WebDriver`:
664
+ - Dropped support for "requiredCapabilities" from WebDriver.createSession
665
+ - actions() now returns the new `lib/input.Actions` class
666
+ - Removed touchActions
667
+ - Renamed schedule to execute
668
+ - Removed the `WebDriver.attachToSession()` factory method. Users can just
669
+ the `WebDriver`
670
+ constructor directly instead.
671
+ - Removed the `call()` method. This was used to inject custom function calls
672
+ into the control
673
+ flow. Now that the promise manager is no longer used, this method is no
674
+ longer necessary.
675
+ Users are now responsible for coordinating actions (ideally with async
676
+ functions) and can just
677
+ call functions directly instead of through `driver.call()`.
678
+ - Changes to `lib/webdriver.WebElement`:
679
+ - Replaced getSize & getLocation with getRect
680
+ - Changes to `lib/webdriver.Alert`:
681
+ - Removed authenticateAs
682
+ - Changes to `lib/webdriver.Options` (`driver.manage()`):
683
+ - Removed timeouts (use get/setTimeouts)
684
+ - Changes to `lib/webdriver.Window` (`driver.manage().window()`):
685
+ - Added
686
+ - getRect
687
+ - setRect
688
+ - fullscreen
689
+ - minimize
690
+ - Removed (use the getRect/setRect methods)
691
+ - getPosition
692
+ - setPosition
693
+ - getSize
694
+ - setSize
695
+ - Removed the `testing/assert` module
696
+ - Changes to `testing/index`
697
+ - Since the promise manager has been removed, it is no longer necessary to
698
+ wrap the Mocha test
699
+ hooks; instead, users can simply use async functions. The following have all
700
+ been removed:
701
+ - describe
702
+ - before
703
+ - beforeEach
704
+ - after
705
+ - afterEach
706
+ - it
707
+ - Added the `suite` function. For details, refer to the jsdoc or
708
+ `example/google_search_test.js`
667
709
 
668
710
  ## v3.6.0
669
711
 
670
712
  ### Bug Fixes
671
713
 
672
- * The Capabilities factory methods should only specify the name of the browser.
673
- * Protect against the remote end sometimes not returning a list to findElements commands.
674
- * Properly reset state in `remote.DriverService#kill()`
675
- * The firefox module will no longer apply the preferences required by the legacy FirefoxDriver.
676
- These preferences were only required when using the legacy driver, support for which was dropped
714
+ - The Capabilities factory methods should only specify the name of the browser.
715
+ - Protect against the remote end sometimes not returning a list to findElements
716
+ commands.
717
+ - Properly reset state in `remote.DriverService#kill()`
718
+ - The firefox module will no longer apply the preferences required by the legacy
719
+ FirefoxDriver.
720
+ These preferences were only required when using the legacy driver, support for
721
+ which was dropped
677
722
  in v3.5.0.
678
723
 
679
724
  ### API Changes
680
725
 
681
- * Added new methods to `selenium-webdriver/firefox.Options`:
682
- * addArguments()
683
- * headless()
684
- * windowSize()
685
- * Deprecated `selenium-webdriver/firefox/binary.Binary`
686
- * Removed `selenium-webdriver/firefox.Options#useGeckoDriver()`
687
- * Removed the unused `selenium-webdriver/firefox/profile.decode()`
688
- * Removed methods from `selenium-webdriver/firefox/profile.Profile` that had no effect since support
726
+ - Added new methods to `selenium-webdriver/firefox.Options`:
727
+ - addArguments()
728
+ - headless()
729
+ - windowSize()
730
+ - Deprecated `selenium-webdriver/firefox/binary.Binary`
731
+ - Removed `selenium-webdriver/firefox.Options#useGeckoDriver()`
732
+ - Removed the unused `selenium-webdriver/firefox/profile.decode()`
733
+ - Removed methods from `selenium-webdriver/firefox/profile.Profile` that had no
734
+ effect since support
689
735
  for the legacy FirefoxDriver was dropped in 3.5.0:
690
- * setNativeEventsEnabled
691
- * nativeEventsEnabled
692
- * getPort
693
- * setPort
694
- * Removed `selenium-webdriver/firefox.ServiceBuilder#setFirefoxBinary()`; custom binaries should be
736
+ - setNativeEventsEnabled
737
+ - nativeEventsEnabled
738
+ - getPort
739
+ - setPort
740
+ - Removed `selenium-webdriver/firefox.ServiceBuilder#setFirefoxBinary()`; custom
741
+ binaries should be
695
742
  configured through the `firefox.Options` class.
696
- * Removed `selenium-webdriver/firefox.Capability`. These hold overs from the legacy FirefoxDriver
743
+ - Removed `selenium-webdriver/firefox.Capability`. These hold overs from the
744
+ legacy FirefoxDriver
697
745
  are no longer supported.
698
746
 
699
747
  ### Changes for W3C WebDriver Spec Compliance
700
748
 
701
- * Deprecated `error.ElementNotVisibleError` in favor of the more generic
749
+ - Deprecated `error.ElementNotVisibleError` in favor of the more generic
702
750
  `error.ElementNotInteractableError`.
703
- * Support the `httpOnly` option when adding a cookie.
751
+ - Support the `httpOnly` option when adding a cookie.
704
752
 
705
753
  ## v3.5.0
706
754
 
@@ -711,167 +759,203 @@ to a remote Selenium server that supports Firefox 45.
711
759
 
712
760
  ### Changes
713
761
 
714
- * Removed native support for Firefox 46 and older.
715
- * The `SELENIUM_MARIONETTE` enviornment variable no longer has an effect.
716
- * `selenium-webdriver/firefox.Capability.MARIONETTE` is deprecated.
717
- * `selenium-webdriver/firefox.Options#useGeckoDriver()` is deprecated and now a no-op.
718
- * `firefox.Options` will no longer discard the `"moz:firefoxOptions"` set in user provided
719
- capabilities (via `Builder.withCapabilities({})`). When both are used, the settings
762
+ - Removed native support for Firefox 46 and older.
763
+ - The `SELENIUM_MARIONETTE` enviornment variable no longer has an effect.
764
+ - `selenium-webdriver/firefox.Capability.MARIONETTE` is deprecated.
765
+ - `selenium-webdriver/firefox.Options#useGeckoDriver()` is deprecated and now
766
+ a no-op.
767
+ - `firefox.Options` will no longer discard the `"moz:firefoxOptions"` set in
768
+ user provided
769
+ capabilities (via `Builder.withCapabilities({})`). When both are used, the
770
+ settings
720
771
  in `firefox.Options` will be applied _last_.
721
- * Added `chrome.Options#headless()` and `chrome.Options#windowSize()`, which may be used to start
722
- Chrome in headless mode (requires Chrome 59+) and to set the initial window size, respectively.
772
+ - Added `chrome.Options#headless()` and `chrome.Options#windowSize()`, which may
773
+ be used to start
774
+ Chrome in headless mode (requires Chrome 59+) and to set the initial window
775
+ size, respectively.
723
776
 
724
777
  ### Changes for W3C WebDriver Spec Compliance
725
778
 
726
- * Added `error.WebDriverError#remoteStacktrace` to capture the stacktrace reported by a remote
779
+ - Added `error.WebDriverError#remoteStacktrace` to capture the stacktrace
780
+ reported by a remote
727
781
  WebDriver endpoint (if any).
728
- * Fixed `WebElement#sendKeys` to send text as a string instead of an array of strings.
782
+ - Fixed `WebElement#sendKeys` to send text as a string instead of an array of
783
+ strings.
729
784
 
730
785
  ## v3.4.0
731
786
 
732
787
  ### Notice
733
788
 
734
789
  This release
735
- requires [geckodriver 0.15.0](https://github.com/mozilla/geckodriver/releases/tag/v0.15.0) or newer.
790
+ requires [geckodriver 0.15.0](https://github.com/mozilla/geckodriver/releases/tag/v0.15.0)
791
+ or newer.
736
792
 
737
793
  ### API Changes
738
794
 
739
- * Added `Options#getTimeouts()` for retrieving the currently configured session timeouts (i.e.
740
- implicit wait). This method will only work with W3C compatible WebDriver implementations.
741
- * Deprecated the `Timeouts` class in favor of `Options#setTimeouts()`, which supports setting
795
+ - Added `Options#getTimeouts()` for retrieving the currently configured session
796
+ timeouts (i.e.
797
+ implicit wait). This method will only work with W3C compatible WebDriver
798
+ implementations.
799
+ - Deprecated the `Timeouts` class in favor of `Options#setTimeouts()`, which
800
+ supports setting
742
801
  multiple timeouts at once.
743
- * Added support for emulating different network conditions (e.g., offline, 2G, WiFi) on Chrome.
802
+ - Added support for emulating different network conditions (e.g., offline, 2G,
803
+ WiFi) on Chrome.
744
804
 
745
805
  ### Changes for W3C WebDriver Spec Compliance
746
806
 
747
- * Fixed W3C response parsing, which expects response data to always be a JSON object with a `value`
807
+ - Fixed W3C response parsing, which expects response data to always be a JSON
808
+ object with a `value`
748
809
  key.
749
- * Added W3C endpoints for interacting with various types of
810
+ - Added W3C endpoints for interacting with various types of
750
811
  [user prompts](https://w3c.github.io/webdriver/webdriver-spec.html#user-prompts).
751
- * Added W3C endpoints for remotely executing scripts.
752
- * Added W3C endpoints to get current window handle and all windows handles.
812
+ - Added W3C endpoints for remotely executing scripts.
813
+ - Added W3C endpoints to get current window handle and all windows handles.
753
814
 
754
815
  ## v3.3.0
755
816
 
756
- * Added warning log messages when the user creates new managed promises, or schedules unchained
817
+ - Added warning log messages when the user creates new managed promises, or
818
+ schedules unchained
757
819
  tasks. Users may opt in to printing these log messages with
758
820
 
759
821
  ```js
760
- const {logging} = require('selenium-webdriver');
761
- logging.installConsoleHandler();
762
- logging.getLogger('promise.ControlFlow').setLevel(logging.Level.WARNING);
822
+ const { logging } = require('selenium-webdriver')
823
+ logging.installConsoleHandler()
824
+ logging.getLogger('promise.ControlFlow').setLevel(logging.Level.WARNING)
763
825
  ```
764
826
 
765
- * If the `JAVA_HOME` environment variable is set, use it to locate java.exe.
827
+ - If the `JAVA_HOME` environment variable is set, use it to locate java.exe.
766
828
 
767
829
  ## v3.2.0
768
830
 
769
- * Release skipped to stay in sync with the main Selenium project.
831
+ - Release skipped to stay in sync with the main Selenium project.
770
832
 
771
833
  ## v3.1.0
772
834
 
773
- * The `lib` package is once again platform agnostic (excluding `lib/devmode`).
774
- * Deprecated `promise.when(value, callback, errback)`.
835
+ - The `lib` package is once again platform agnostic (excluding `lib/devmode`).
836
+ - Deprecated `promise.when(value, callback, errback)`.
775
837
  Use `promise.fulfilled(value).then(callback, errback)`
776
- * Changed `promise.fulfilled(value)`, `promise.rejected(reason)` and
777
- `promise.defer()` to all use native promises when the promise manager is disabled.
778
- * Properly handle W3C error responses to new session commands.
779
- * Updated `selenium-webdriver/testing` to export `describe.only` along with
838
+ - Changed `promise.fulfilled(value)`, `promise.rejected(reason)` and
839
+ `promise.defer()` to all use native promises when the promise manager is
840
+ disabled.
841
+ - Properly handle W3C error responses to new session commands.
842
+ - Updated `selenium-webdriver/testing` to export `describe.only` along with
780
843
  `describe.skip`.
781
- * Fixed `selenium-webdriver/lib/until.ableToSwitchToFrame`. It was previously dropping arguments and
844
+ - Fixed `selenium-webdriver/lib/until.ableToSwitchToFrame`. It was previously
845
+ dropping arguments and
782
846
  would never work.
783
- * Added the ability to use Firefox Nightly
784
- * If Firefox cannot be found in the default location, look for it on the PATH
785
- * Allow SafariDriver to use Safari Technology Preview.
786
- * Use the proper wire command for WebElement.getLocation() and WebElement.getSize() for W3C
847
+ - Added the ability to use Firefox Nightly
848
+ - If Firefox cannot be found in the default location, look for it on the PATH
849
+ - Allow SafariDriver to use Safari Technology Preview.
850
+ - Use the proper wire command for WebElement.getLocation() and
851
+ WebElement.getSize() for W3C
787
852
  compliant drivers.
788
853
 
789
854
  ## v3.0.1
790
855
 
791
- * More API adjustments to align with native Promises
792
- * Deprecated `promise.fulfilled(value)`, use `promise.Promise#resolve(value)`
793
- * Deprecated `promise.rejected(reason)`, use `promise.Promise#reject(reason)`
794
- * When a `wait()` condition times out, the returned promise will now be rejected with
856
+ - More API adjustments to align with native Promises
857
+ - Deprecated `promise.fulfilled(value)`, use `promise.Promise#resolve(value)`
858
+ - Deprecated `promise.rejected(reason)`, use `promise.Promise#reject(reason)`
859
+ - When a `wait()` condition times out, the returned promise will now be rejected
860
+ with
795
861
  an `error.TimeoutError` instead of a generic `Error` object.
796
- * `WebDriver#wait()` will now throw a TypeError if an invalid wait condition is provided.
797
- * Properly catch unhandled promise rejections with an action sequence (only impacts when the promise
862
+ - `WebDriver#wait()` will now throw a TypeError if an invalid wait condition is
863
+ provided.
864
+ - Properly catch unhandled promise rejections with an action sequence (only
865
+ impacts when the promise
798
866
  manager is disabled).
799
867
 
800
868
  ## v3.0.0
801
869
 
802
- * (__NOTICE__) The minimum supported version of Node is now 6.9.0 LTS
803
- * Removed support for the SafariDriver browser extension. This has been replaced by Apple's
870
+ - (**NOTICE**) The minimum supported version of Node is now 6.9.0 LTS
871
+ - Removed support for the SafariDriver browser extension. This has been replaced
872
+ by Apple's
804
873
  safaridriver, which is included wtih Safari 10
805
874
  (available on OS X El Capitan and macOS Sierra).
806
875
 
807
876
  To use Safari 9 or older, users will have to use an older version of Selenium.
808
877
 
809
- * geckodriver v0.11.0 or newer is now required for Firefox.
810
- * Fixed potential reference errors in `selenium-webdriver/testing` when users create a cycle with
878
+ - geckodriver v0.11.0 or newer is now required for Firefox.
879
+ - Fixed potential reference errors in `selenium-webdriver/testing` when users
880
+ create a cycle with
811
881
  mocha by running with mocha's `--hook` flag.
812
- * Fixed `WebDriver.switchTo().activeElement()` to use the correct HTTP method for compatibility with
882
+ - Fixed `WebDriver.switchTo().activeElement()` to use the correct HTTP method
883
+ for compatibility with
813
884
  the W3C spec.
814
- * Update the `selenium-webdriver/firefox` module to use geckodriver's
885
+ - Update the `selenium-webdriver/firefox` module to use geckodriver's
815
886
  "moz:firefoxOptions" dictionary for Firefox-specific configuration values.
816
- * Extending the `selenium-webdriver/testing` module to support tests defined using generator
887
+ - Extending the `selenium-webdriver/testing` module to support tests defined
888
+ using generator
817
889
  functions.
818
- * The promise manager can be disabled by setting an enviornment variable:
819
- `SELENIUM_PROMISE_MANAGER=0`. This is part of a larger plan to remove the promise manager, as
890
+ - The promise manager can be disabled by setting an enviornment variable:
891
+ `SELENIUM_PROMISE_MANAGER=0`. This is part of a larger plan to remove the
892
+ promise manager, as
820
893
  documented at
821
894
  <https://github.com/SeleniumHQ/selenium/issues/2969>
822
- * When communicating with a W3C-compliant remote end, use the atoms library for
823
- the `WebElement.getAttribute()` and `WebElement.isDisplayed()` commands. This behavior is
895
+ - When communicating with a W3C-compliant remote end, use the atoms library for
896
+ the `WebElement.getAttribute()` and `WebElement.isDisplayed()` commands. This
897
+ behavior is
824
898
  consistent with the java, .net, python, and ruby clients.
825
899
 
826
900
  ### API Changes
827
901
 
828
- * Removed `safari.Options#useLegacyDriver()`
829
- * Reduced the API on `promise.Thenable` for compatibility with native promises:
830
- * Removed `#isPending()`
831
- * Removed `#cancel()`
832
- * Removed `#finally()`
833
- * Changed all subclasses of `webdriver.WebDriver` to overload the static
834
- function `WebDriver.createSession()` instead of doing work in the constructor. All constructors
835
- now inherit the base class' function signature. Users are still encouraged to use the `Builder`
902
+ - Removed `safari.Options#useLegacyDriver()`
903
+ - Reduced the API on `promise.Thenable` for compatibility with native promises:
904
+ - Removed `#isPending()`
905
+ - Removed `#cancel()`
906
+ - Removed `#finally()`
907
+ - Changed all subclasses of `webdriver.WebDriver` to overload the static
908
+ function `WebDriver.createSession()` instead of doing work in the constructor.
909
+ All constructors
910
+ now inherit the base class' function signature. Users are still encouraged to
911
+ use the `Builder`
836
912
  class instead of creating drivers directly.
837
- * `Builder#build()` now returns a "thenable" WebDriver instance, allowing users to immediately
838
- schedule commands (as before), or issue them through standard promise callbacks. This is the same
913
+ - `Builder#build()` now returns a "thenable" WebDriver instance, allowing users
914
+ to immediately
915
+ schedule commands (as before), or issue them through standard promise
916
+ callbacks. This is the same
839
917
  pattern already employed for WebElements.
840
- * Removed `Builder#buildAsync()` as it was redundant with the new semantics of
918
+ - Removed `Builder#buildAsync()` as it was redundant with the new semantics of
841
919
  `build()`.
842
920
 
843
921
  ## v3.0.0-beta-3
844
922
 
845
- * Fixed a bug where the promise manager would silently drop callbacks after recovering from an
923
+ - Fixed a bug where the promise manager would silently drop callbacks after
924
+ recovering from an
846
925
  unhandled promise rejection.
847
- * Added the `firefox.ServiceBuilder` class, which may be used to customize the geckodriver used
926
+ - Added the `firefox.ServiceBuilder` class, which may be used to customize the
927
+ geckodriver used
848
928
  for `firefox.Driver` instances.
849
- * Added support for Safari 10 safaridriver. safaridriver may be disabled via tha
929
+ - Added support for Safari 10 safaridriver. safaridriver may be disabled via tha
850
930
  API, `safari.Options#useLegacyDriver`, to use the safari extension driver.
851
- * Updated the `lib/proxy` module to support configuring a SOCKS proxy.
852
- * For the `promise.ControlFlow`, fire the "uncaughtException" event in a new turn of the JS event
853
- loop. As a result of this change, any errors thrown by an event listener will propagate to the
854
- global error handler. Previously, this event was fired with in the context of a (native) promise
931
+ - Updated the `lib/proxy` module to support configuring a SOCKS proxy.
932
+ - For the `promise.ControlFlow`, fire the "uncaughtException" event in a new
933
+ turn of the JS event
934
+ loop. As a result of this change, any errors thrown by an event listener will
935
+ propagate to the
936
+ global error handler. Previously, this event was fired with in the context of
937
+ a (native) promise
855
938
  callback, causing errors to be silently suppressed in the promise chain.
856
939
 
857
940
  ### API Changes
858
941
 
859
- * Added `remote.DriverService.Builder` as a base class for configuring DriverService instances that
942
+ - Added `remote.DriverService.Builder` as a base class for configuring
943
+ DriverService instances that
860
944
  run in a child-process. The
861
945
  `chrome.ServiceBuilder`, `edge.ServiceBuilder`, and `opera.ServiceBuilder`
862
946
  classes now all extend this base class with browser-specific options.
863
- * For each of the ServiceBuilder classes, renamed `usingPort` and
947
+ - For each of the ServiceBuilder classes, renamed `usingPort` and
864
948
  `withEnvironment` to `setPort` and `setEnvironment`, respectively.
865
- * Renamed `chrome.ServiceBuilder#setUrlBasePath` to `#setPath`
866
- * Changed the signature of the `firefox.Driver` from `(config, flow, executor)`
949
+ - Renamed `chrome.ServiceBuilder#setUrlBasePath` to `#setPath`
950
+ - Changed the signature of the `firefox.Driver` from `(config, flow, executor)`
867
951
  to `(config, executor, flow)`.
868
- * Exposed the `Condition` and `WebElementCondition` classes from the top-level
952
+ - Exposed the `Condition` and `WebElementCondition` classes from the top-level
869
953
  `selenium-webdriver` module (these were previously only available from
870
954
  `lib/webdriver`).
871
955
 
872
956
  ### Changes for W3C WebDriver Spec Compliance
873
957
 
874
- * Updated command mappings
958
+ - Updated command mappings
875
959
  for [getting](https://w3c.github.io/webdriver/webdriver-spec.html#get-window-position)
876
960
  and [setting](https://w3c.github.io/webdriver/webdriver-spec.html#set-window-position)
877
961
  the window position.
@@ -880,119 +964,143 @@ requires [geckodriver 0.15.0](https://github.com/mozilla/geckodriver/releases/ta
880
964
 
881
965
  ### API Changes
882
966
 
883
- * Moved the `builder.Builder` class into the main module (`selenium-webdriver`).
884
- * Removed the `builder` module.
885
- * Fix `webdriver.WebDriver#setFileDetector` when driving Chrome or Firefox on a remote machine.
967
+ - Moved the `builder.Builder` class into the main module (`selenium-webdriver`).
968
+ - Removed the `builder` module.
969
+ - Fix `webdriver.WebDriver#setFileDetector` when driving Chrome or Firefox on a
970
+ remote machine.
886
971
 
887
972
  ## v3.0.0-beta-1
888
973
 
889
- * Allow users to set the agent used for HTTP connections through
974
+ - Allow users to set the agent used for HTTP connections through
890
975
  `builder.Builder#usingHttpAgent()`
891
- * Added new wait conditions: `until.urlIs()`, `until.urlContains()`,
976
+ - Added new wait conditions: `until.urlIs()`, `until.urlContains()`,
892
977
  `until.urlMatches()`
893
- * Added work around for [GeckoDriver bug](https://bugzilla.mozilla.org/show_bug.cgi?id=1274924)
978
+ - Added work around
979
+ for [GeckoDriver bug](https://bugzilla.mozilla.org/show_bug.cgi?id=1274924)
894
980
  raising a type conversion error
895
- * Internal cleanup replacing uses of managed promises with native promises
896
- * Removed the mandatory use of Firefox Dev Edition, when using Marionette driver
897
- * Fixed timeouts' URL
898
- * Properly send HTTP requests when using a WebDriver server proxy
899
- * Properly configure proxies when using the geckodriver
900
- * `http.Executor` now accepts a promised client. The `builder.Builder` class will now use this
981
+ - Internal cleanup replacing uses of managed promises with native promises
982
+ - Removed the mandatory use of Firefox Dev Edition, when using Marionette driver
983
+ - Fixed timeouts' URL
984
+ - Properly send HTTP requests when using a WebDriver server proxy
985
+ - Properly configure proxies when using the geckodriver
986
+ - `http.Executor` now accepts a promised client. The `builder.Builder` class
987
+ will now use this
901
988
  instead of a `command.DeferredExecutor` when creating WebDriver instances.
902
- * For Chrome and Firefox, the `builder.Builder` class will always return an
903
- instanceof `chrome.Driver` and `firefox.Driver`, respectively, even when configured to use a
989
+ - For Chrome and Firefox, the `builder.Builder` class will always return an
990
+ instanceof `chrome.Driver` and `firefox.Driver`, respectively, even when
991
+ configured to use a
904
992
  remote server (from `builder.Builder#usingServer(url)`,
905
993
  `SELENIUM_REMOTE_URL`, etc).
906
994
 
907
995
  ### API Changes
908
996
 
909
- * `promise.Deferred` is no longer a thenable object.
910
- * `Options#addCookie()` now takes a record object instead of 7 individual parameters. A TypeError
997
+ - `promise.Deferred` is no longer a thenable object.
998
+ - `Options#addCookie()` now takes a record object instead of 7 individual
999
+ parameters. A TypeError
911
1000
  will be thrown if addCookie() is called with invalid arguments.
912
- * When adding cookies, the desired expiry must be provided as a Date or in
913
- _seconds_ since epoch. When retrieving cookies, the expiration is always returned in seconds.
914
- * Renamed `firefox.Options#useMarionette` to `firefox.Options#useGeckoDriver`
915
- * Removed deprecated modules:
916
- * `selenium-webdriver/error` (use `selenium-webdriver/lib/error`,\
917
- or the `error` property exported by `selenium-webdriver`)
918
- * `selenium-webdriver/executors` — this was not previously deprecated, but is no longer used.
919
- * Removed deprecated types:
920
- * `command.DeferredExecutor` — this was not previously deprecated, but is no longer used. It can
921
- be trivially implemented by clients should it be needed.
922
- * `error.InvalidSessionIdError` (use `error.NoSuchSessionError`)
923
- * `executors.DeferredExecutor`
924
- * `until.Condition` (use `webdriver.Condition`)
925
- * `until.WebElementCondition` (use `webdriver.WebElementCondition`)
926
- * `webdriver.UnhandledAlertError` (use `error.UnexpectedAlertOpenError`)
927
- * Removed deprecated functions:
928
- * `Deferred#cancel()`
929
- * `Deferred#catch()`
930
- * `Deferred#finally()`
931
- * `Deferred#isPending()`
932
- * `Deferred#then()`
933
- * `Promise#thenCatch()`
934
- * `Promise#thenFinally()`
935
- * `WebDriver#isElementPresent()`
936
- * `WebElement#getInnerHtml()`
937
- * `WebElement#getOuterHtml()`
938
- * `WebElement#getRawId()`
939
- * `WebElement#isElementPresent()`
940
- * Removed deprecated properties:
941
- * `WebDriverError#code`
1001
+ - When adding cookies, the desired expiry must be provided as a Date or in
1002
+ _seconds_ since epoch. When retrieving cookies, the expiration is always
1003
+ returned in seconds.
1004
+ - Renamed `firefox.Options#useMarionette` to `firefox.Options#useGeckoDriver`
1005
+ - Removed deprecated modules:
1006
+ - `selenium-webdriver/error` (use `selenium-webdriver/lib/error`,\
1007
+ or the `error` property exported by `selenium-webdriver`)
1008
+ - `selenium-webdriver/executors` — this was not previously deprecated, but is
1009
+ no longer used.
1010
+ - Removed deprecated types:
1011
+ - `command.DeferredExecutor` — this was not previously deprecated, but is no
1012
+ longer used. It can
1013
+ be trivially implemented by clients should it be needed.
1014
+ - `error.InvalidSessionIdError` (use `error.NoSuchSessionError`)
1015
+ - `executors.DeferredExecutor`
1016
+ - `until.Condition` (use `webdriver.Condition`)
1017
+ - `until.WebElementCondition` (use `webdriver.WebElementCondition`)
1018
+ - `webdriver.UnhandledAlertError` (use `error.UnexpectedAlertOpenError`)
1019
+ - Removed deprecated functions:
1020
+ - `Deferred#cancel()`
1021
+ - `Deferred#catch()`
1022
+ - `Deferred#finally()`
1023
+ - `Deferred#isPending()`
1024
+ - `Deferred#then()`
1025
+ - `Promise#thenCatch()`
1026
+ - `Promise#thenFinally()`
1027
+ - `WebDriver#isElementPresent()`
1028
+ - `WebElement#getInnerHtml()`
1029
+ - `WebElement#getOuterHtml()`
1030
+ - `WebElement#getRawId()`
1031
+ - `WebElement#isElementPresent()`
1032
+ - Removed deprecated properties:
1033
+ - `WebDriverError#code`
942
1034
 
943
1035
  ## v2.53.2
944
1036
 
945
- * Changed `io.exists()` to return a rejected promise if the input path is not a string
946
- * Deprecated `Promise#thenFinally()` - use `Promise#finally()`. The thenFinally shim added to the
1037
+ - Changed `io.exists()` to return a rejected promise if the input path is not a
1038
+ string
1039
+ - Deprecated `Promise#thenFinally()` - use `Promise#finally()`. The thenFinally
1040
+ shim added to the
947
1041
  promise module in v2.53.0 will be removed in v3.0 Sorry for the churn!
948
- * FIXED: capabilities serialization now properly handles undefined vs. false-like values.
949
- * FIXED: properly handle responses from the remote end in
1042
+ - FIXED: capabilities serialization now properly handles undefined vs.
1043
+ false-like values.
1044
+ - FIXED: properly handle responses from the remote end in
950
1045
  `WebDriver.attachToSession`
951
1046
 
952
1047
  ## v2.53.1
953
1048
 
954
- * FIXED: for consistency with the other language bindings, `remote.FileDetector`
1049
+ - FIXED: for consistency with the other language bindings, `remote.FileDetector`
955
1050
  will ignore paths that refer to a directory.
956
1051
 
957
1052
  ## v2.53.0
958
1053
 
959
1054
  ### Change Summary
960
1055
 
961
- * Added preliminary support for Marionette, Mozilla's WebDriver implementation for Firefox.
1056
+ - Added preliminary support for Marionette, Mozilla's WebDriver implementation
1057
+ for Firefox.
962
1058
  Marionette may be enabled via the API,
963
1059
  `firefox.Options#useMarionette`, or by setting the `SELENIUM_MARIONETTE`
964
1060
  environment variable.
965
- * Moved all logic for parsing and interpreting responses from the remote end into the
1061
+ - Moved all logic for parsing and interpreting responses from the remote end
1062
+ into the
966
1063
  individual `command.Executor` implementations.
967
- * For consistency with the other Selenium language bindings,
968
- `WebDriver#isElementPresent()` and `WebElement#isElementPresent()` have been deprecated. These
969
- methods will be removed in v3.0. Use the findElements command to test for the presence of an
1064
+ - For consistency with the other Selenium language bindings,
1065
+ `WebDriver#isElementPresent()` and `WebElement#isElementPresent()` have been
1066
+ deprecated. These
1067
+ methods will be removed in v3.0. Use the findElements command to test for the
1068
+ presence of an
970
1069
  element:
971
1070
 
972
1071
  driver.findElements(By.css('.foo')).then(found => !!found.length);
973
- * Added support for W3C-spec compliant servers.
974
- * For consistent naming, deprecating `error.InvalidSessionIdError` in favor of
1072
+
1073
+ - Added support for W3C-spec compliant servers.
1074
+ - For consistent naming, deprecating `error.InvalidSessionIdError` in favor of
975
1075
  `error.NoSuchSessionError`.
976
- * Moved the `error` module to `lib/error` so all core modules are co-located. The top-level `error`
1076
+ - Moved the `error` module to `lib/error` so all core modules are co-located.
1077
+ The top-level `error`
977
1078
  module will be removed in v3.0.
978
- * Moved `until.Condition` and `until.WebElementCondition` to the webdriver module to break a
1079
+ - Moved `until.Condition` and `until.WebElementCondition` to the webdriver
1080
+ module to break a
979
1081
  circular dependency.
980
- * Added support for setting the username and password in basic auth pop-up dialogs (currently IE
1082
+ - Added support for setting the username and password in basic auth pop-up
1083
+ dialogs (currently IE
981
1084
  only).
982
- * Deprecated `WebElement#getInnerHtml()` and `WebEleemnt#getOuterHtml()`
983
- * Deprecated `Promise#thenCatch()` - use `Promise#catch()` instead
984
- * Deprecated `Promise#thenFinally()` - use `promise.thenFinally()` instead
985
- * FIXED: `io.findInPath()` will no longer match against directories that have the same basename as
1085
+ - Deprecated `WebElement#getInnerHtml()` and `WebEleemnt#getOuterHtml()`
1086
+ - Deprecated `Promise#thenCatch()` - use `Promise#catch()` instead
1087
+ - Deprecated `Promise#thenFinally()` - use `promise.thenFinally()` instead
1088
+ - FIXED: `io.findInPath()` will no longer match against directories that have
1089
+ the same basename as
986
1090
  the target file.
987
- * FIXED: `phantomjs.Driver` now takes a third argument that defines the path to a log file to use
1091
+ - FIXED: `phantomjs.Driver` now takes a third argument that defines the path to
1092
+ a log file to use
988
1093
  for the phantomjs executable's output. This may be quickly set at runtime with
989
1094
  the `SELENIUM_PHANTOMJS_LOG` environment variable.
990
1095
 
991
1096
  ### Changes for W3C WebDriver Spec Compliance
992
1097
 
993
- * Changed `element.sendKeys(...)` to send the key sequence as an array where each element defines a
994
- single key. The legacy wire protocol permits arrays where each element is a string of arbitrary
995
- length. This change is solely at the protocol level and should have no user-visible effect.
1098
+ - Changed `element.sendKeys(...)` to send the key sequence as an array where
1099
+ each element defines a
1100
+ single key. The legacy wire protocol permits arrays where each element is a
1101
+ string of arbitrary
1102
+ length. This change is solely at the protocol level and should have no
1103
+ user-visible effect.
996
1104
 
997
1105
  ## v2.52.0
998
1106
 
@@ -1005,70 +1113,89 @@ the selenium-webdriver package README.
1005
1113
 
1006
1114
  ### Change Summary
1007
1115
 
1008
- * Add support for Microsoft's Edge web browser
1009
- * Added `webdriver.Builder#buildAsync()`, which returns a promise that will be fulfilled with the
1010
- newly created WebDriver instance once the associated browser has been full initialized. This is
1011
- purely a convenient alternative to the existing build() method as the WebDriver class will always
1116
+ - Add support for Microsoft's Edge web browser
1117
+ - Added `webdriver.Builder#buildAsync()`, which returns a promise that will be
1118
+ fulfilled with the
1119
+ newly created WebDriver instance once the associated browser has been full
1120
+ initialized. This is
1121
+ purely a convenient alternative to the existing build() method as the
1122
+ WebDriver class will always
1012
1123
  defer commands until it has a fully created browser.
1013
- * Added `firefox.Profile#setHost()` which may be used to set the host that the FirefoxDriver's
1124
+ - Added `firefox.Profile#setHost()` which may be used to set the host that the
1125
+ FirefoxDriver's
1014
1126
  server listens for commands on. The server uses
1015
1127
  "localhost" by default.
1016
- * Added `promise.Promise#catch()` for API compatibility with native Promises.
1017
- `promise.Promise#thenCatch()` is not yet deprecated, but it simply delegates to `catch`.
1018
- * Changed some `io` operations to use native promises.
1019
- * Changed `command.Executor#execute()` and `HttpClient#send()` to return promises instead of using
1128
+ - Added `promise.Promise#catch()` for API compatibility with native Promises.
1129
+ `promise.Promise#thenCatch()` is not yet deprecated, but it simply delegates
1130
+ to `catch`.
1131
+ - Changed some `io` operations to use native promises.
1132
+ - Changed `command.Executor#execute()` and `HttpClient#send()` to return
1133
+ promises instead of using
1020
1134
  callback passing.
1021
- * Replaced the `Serializable` class with an internal, Symbol-defined method.
1022
- * Changed the `Capabilities` class to extend the native `Map` type.
1023
- * Changed the `Capabilities.has(key)` to only test if a capability has been set
1135
+ - Replaced the `Serializable` class with an internal, Symbol-defined method.
1136
+ - Changed the `Capabilities` class to extend the native `Map` type.
1137
+ - Changed the `Capabilities.has(key)` to only test if a capability has been set
1024
1138
  (Map semantics). To check whether the value is true, use `get(key)`.
1025
- * Deprecated `executors.DeferredExecutor` in favor of
1139
+ - Deprecated `executors.DeferredExecutor` in favor of
1026
1140
  `lib/command.DeferredExecutor`.
1027
- * API documentation is no longer distributed with the npm package, but remains available
1141
+ - API documentation is no longer distributed with the npm package, but remains
1142
+ available
1028
1143
  at <http://seleniumhq.github.io/selenium/docs/api/javascript/>
1029
- * Rewrote the `error` module to export an Error subtype for each type of error defined in
1144
+ - Rewrote the `error` module to export an Error subtype for each type of error
1145
+ defined in
1030
1146
  the [W3C WebDriver spec](https://w3c.github.io/webdriver/webdriver-spec.html#handling-errors).
1031
- * Changed the `http.Request` and `http.Response` classes to store headers in maps instead of object
1147
+ - Changed the `http.Request` and `http.Response` classes to store headers in
1148
+ maps instead of object
1032
1149
  literals.
1033
- * Updated `ws` dependency to version `1.0.1`.
1034
- * Removed fluent predicates "is" and "not" from the experimental
1150
+ - Updated `ws` dependency to version `1.0.1`.
1151
+ - Removed fluent predicates "is" and "not" from the experimental
1035
1152
  `testing/assert` module.
1036
- * Wait conditions that locate an element, or that wait on an element's state, will return a
1153
+ - Wait conditions that locate an element, or that wait on an element's state,
1154
+ will return a
1037
1155
  WebElementPromise.
1038
- * Lots of internal clean-up to break selenium-webdriver's long standing dependency on Google's
1156
+ - Lots of internal clean-up to break selenium-webdriver's long standing
1157
+ dependency on Google's
1039
1158
  Closure library.
1040
1159
 
1041
1160
  ### Changes for W3C WebDriver Spec Compliance
1042
1161
 
1043
- * Updated the `By` locators that are not in the W3C spec to delegated to using CSS
1162
+ - Updated the `By` locators that are not in the W3C spec to delegated to using
1163
+ CSS
1044
1164
  selectors: `By.className`, `By.id`, `By.name`, and `By.tagName`.
1045
1165
 
1046
1166
  ## v2.49-51
1047
1167
 
1048
- * _Releases skipped to stay in sync with the rest of the Selenium project_
1168
+ - _Releases skipped to stay in sync with the rest of the Selenium project_
1049
1169
 
1050
1170
  ## v2.48.2
1051
1171
 
1052
- * Added `WebElement#takeScreenshot()`.
1053
- * More adjustments to promise callback tracking.
1172
+ - Added `WebElement#takeScreenshot()`.
1173
+ - More adjustments to promise callback tracking.
1054
1174
 
1055
1175
  ## v2.48.1
1056
1176
 
1057
- * FIXED: Adjusted how the control flow tracks promise callbacks to avoid a potential deadlock.
1177
+ - FIXED: Adjusted how the control flow tracks promise callbacks to avoid a
1178
+ potential deadlock.
1058
1179
 
1059
1180
  ## v2.48.0
1060
1181
 
1061
- * Node v0.12.x users must run with --harmony. _This is the last release that will support v0.12.x_
1062
- * FIXED: (Promise/A+ compliance) When a promise is rejected with a thenable, the promise adopts the
1063
- thenable as its rejection reason instead of waiting for it to settle. The previous (incorrect)
1064
- behavior was hidden by bugs in the `promises-aplus-tests` compliance test suite that were fixed in
1182
+ - Node v0.12.x users must run with --harmony. _This is the last release that
1183
+ will support v0.12.x_
1184
+ - FIXED: (Promise/A+ compliance) When a promise is rejected with a thenable, the
1185
+ promise adopts the
1186
+ thenable as its rejection reason instead of waiting for it to settle. The
1187
+ previous (incorrect)
1188
+ behavior was hidden by bugs in the `promises-aplus-tests` compliance test
1189
+ suite that were fixed in
1065
1190
  version
1066
1191
  `2.1.1`.
1067
- * FIXED: the `webdriver.promise.ControlFlow` now has a consistent execution order for
1192
+ - FIXED: the `webdriver.promise.ControlFlow` now has a consistent execution
1193
+ order for
1068
1194
  tasks/callbacks scheduled in different turns of the JS event loop. Refer to
1069
1195
  the `webdriver.promise` documentation for more details.
1070
- * FIXED: do not drop user auth from the WebDriver server URL.
1071
- * FIXED: a single `firefox.Binary` instance may be used to configure and launch multiple
1196
+ - FIXED: do not drop user auth from the WebDriver server URL.
1197
+ - FIXED: a single `firefox.Binary` instance may be used to configure and launch
1198
+ multiple
1072
1199
  FirefoxDriver sessions.
1073
1200
 
1074
1201
  var binary = new firefox.Binary();
@@ -1078,10 +1205,13 @@ the selenium-webdriver package README.
1078
1205
  var driver1 = builder.build();
1079
1206
  var driver2 = builder.build();
1080
1207
 
1081
- * FIXED: zip files created for transfer to a remote WebDriver server are no longer compressed. If
1082
- the zip contained a file that was already compressed, the server would return an "invalid code
1208
+ - FIXED: zip files created for transfer to a remote WebDriver server are no
1209
+ longer compressed. If
1210
+ the zip contained a file that was already compressed, the server would return
1211
+ an "invalid code
1083
1212
  lengths set" error.
1084
- * FIXED: Surfaced the `loopback` option to `remote/SeleniumServer`. When set, the server will be
1213
+ - FIXED: Surfaced the `loopback` option to `remote/SeleniumServer`. When set,
1214
+ the server will be
1085
1215
  accessed using the current host's loopback address.
1086
1216
 
1087
1217
  ## v2.47.0
@@ -1095,55 +1225,68 @@ continue to be supported, but will require setting the `--harmony` flag.
1095
1225
 
1096
1226
  ### Change Summary
1097
1227
 
1098
- * Add support for [Node v4.0.0](https://nodejs.org/en/blog/release/v4.0.0/)
1099
- * Updated `ws` dependency from `0.7.1` to `0.8.0`
1100
- * Bumped the minimum supported version of Node from `0.10.x` to `0.12.x`. This is in accordance with
1228
+ - Add support for [Node v4.0.0](https://nodejs.org/en/blog/release/v4.0.0/)
1229
+ - Updated `ws` dependency from `0.7.1` to `0.8.0`
1230
+ - Bumped the minimum supported version of Node from `0.10.x` to `0.12.x`. This
1231
+ is in accordance with
1101
1232
  the Node support policy established in `v2.45.0`.
1102
1233
 
1103
1234
  ## v2.46.1
1104
1235
 
1105
- * Fixed internal module loading on Windows.
1106
- * Fixed error message format on timeouts for `until.elementLocated()`
1236
+ - Fixed internal module loading on Windows.
1237
+ - Fixed error message format on timeouts for `until.elementLocated()`
1107
1238
  and `until.elementsLocated()`.
1108
1239
 
1109
1240
  ## v2.46.0
1110
1241
 
1111
- * Exposed a new logging API via the `webdriver.logging` module. For usage, see
1242
+ - Exposed a new logging API via the `webdriver.logging` module. For usage, see
1112
1243
  `example/logging.js`.
1113
- * Added support for using a proxy server for WebDriver commands. See `Builder#usingWebDriverProxy()`
1244
+ - Added support for using a proxy server for WebDriver commands.
1245
+ See `Builder#usingWebDriverProxy()`
1114
1246
  for more info.
1115
- * Removed deprecated functions:
1116
- * Capabilities#toJSON()
1117
- * UnhandledAlertError#getAlert()
1118
- * chrome.createDriver()
1119
- * phantomjs.createDriver()
1120
- * promise.ControlFlow#annotateError()
1121
- * promise.ControlFlow#await()
1122
- * promise.ControlFlow#clearHistory()
1123
- * promise.ControlFlow#getHistory()
1124
- * Removed deprecated enum values: `ErrorCode.NO_MODAL_DIALOG_OPEN` and
1247
+ - Removed deprecated functions:
1248
+ - Capabilities#toJSON()
1249
+ - UnhandledAlertError#getAlert()
1250
+ - chrome.createDriver()
1251
+ - phantomjs.createDriver()
1252
+ - promise.ControlFlow#annotateError()
1253
+ - promise.ControlFlow#await()
1254
+ - promise.ControlFlow#clearHistory()
1255
+ - promise.ControlFlow#getHistory()
1256
+ - Removed deprecated enum values: `ErrorCode.NO_MODAL_DIALOG_OPEN` and
1125
1257
  `ErrorCode.MODAL_DIALOG_OPENED`. Use `ErrorCode.NO_SUCH_ALERT` and
1126
1258
  `ErrorCode.UNEXPECTED_ALERT_OPEN`, respectively.
1127
- * FIXED: The `promise.ControlFlow` will maintain state for promise chains generated in a loop.
1128
- * FIXED: Correct serialize target elements used in an action sequence.
1129
- * FIXED: `promise.ControlFlow#wait()` now has consistent semantics for an omitted or 0-timeout: it
1259
+ - FIXED: The `promise.ControlFlow` will maintain state for promise chains
1260
+ generated in a loop.
1261
+ - FIXED: Correct serialize target elements used in an action sequence.
1262
+ - FIXED: `promise.ControlFlow#wait()` now has consistent semantics for an
1263
+ omitted or 0-timeout: it
1130
1264
  will wait indefinitely.
1131
- * FIXED: `remote.DriverService#start()` will now fail if the child process dies while waiting for
1132
- the server to start accepting requests. Previously, start would continue to poll the server
1265
+ - FIXED: `remote.DriverService#start()` will now fail if the child process dies
1266
+ while waiting for
1267
+ the server to start accepting requests. Previously, start would continue to
1268
+ poll the server
1133
1269
  address until the timeout expired.
1134
- * FIXED: Skip launching Firefox with the `-silent` flag to preheat the profile. Starting with
1135
- Firefox 38, this would cause the browser to crash. This step, which was first introduced for
1270
+ - FIXED: Skip launching Firefox with the `-silent` flag to preheat the profile.
1271
+ Starting with
1272
+ Firefox 38, this would cause the browser to crash. This step, which was first
1273
+ introduced for
1136
1274
  Selenium's java client back with Firefox 2, no longer appears to be required.
1137
- * FIXED: 8564: `firefox.Driver#quit()` will wait for the Firefox process to terminate before
1138
- deleting the temporary webdriver profile. This eliminates a race condition where Firefox would
1139
- write profile data during shutdown, causing the `rm -rf` operation on the profile directory to
1275
+ - FIXED: 8564: `firefox.Driver#quit()` will wait for the Firefox process to
1276
+ terminate before
1277
+ deleting the temporary webdriver profile. This eliminates a race condition
1278
+ where Firefox would
1279
+ write profile data during shutdown, causing the `rm -rf` operation on the
1280
+ profile directory to
1140
1281
  fail.
1141
1282
 
1142
1283
  ## v2.45.1
1143
1284
 
1144
- * FIXED: 8548: Task callbacks are once again dropped if the task was cancelled due to a previously
1285
+ - FIXED: 8548: Task callbacks are once again dropped if the task was cancelled
1286
+ due to a previously
1145
1287
  uncaught error within the frame.
1146
- * FIXED: 8496: Extended the `chrome.Options` API to cover all configuration options (e.g. mobile
1288
+ - FIXED: 8496: Extended the `chrome.Options` API to cover all configuration
1289
+ options (e.g. mobile
1147
1290
  emulation and performance logging) documented on the
1148
1291
  ChromeDriver [project site](https://chromedriver.chromium.org/capabilities).
1149
1292
 
@@ -1159,11 +1302,13 @@ major version release (i.e. 1.0.0).
1159
1302
 
1160
1303
  ### Change Summary
1161
1304
 
1162
- * Added native browser support for Internet Explorer, Opera 26+, and Safari
1163
- * With the release of [Node 0.12.0](http://blog.nodejs.org/2015/02/06/node-v0-12-0-stable/)
1305
+ - Added native browser support for Internet Explorer, Opera 26+, and Safari
1306
+ - With the release
1307
+ of [Node 0.12.0](http://blog.nodejs.org/2015/02/06/node-v0-12-0-stable/)
1164
1308
  (finally!), the minimum supported version of Node is now `0.10.x`.
1165
- * The `promise` module is now [Promises/A+](https://promisesaplus.com/)
1166
- compliant. The biggest compliance change is that promise callbacks are now invoked in a future
1309
+ - The `promise` module is now [Promises/A+](https://promisesaplus.com/)
1310
+ compliant. The biggest compliance change is that promise callbacks are now
1311
+ invoked in a future
1167
1312
  turn of the JS event loop. For example:
1168
1313
 
1169
1314
  var promise = require('selenium-webdriver').promise;
@@ -1183,10 +1328,14 @@ major version release (i.e. 1.0.0).
1183
1328
  // end
1184
1329
  // middle
1185
1330
 
1186
- The `promise.ControlFlow` class has been updated to track the asynchronous breaks required by
1331
+ The `promise.ControlFlow` class has been updated to track the asynchronous
1332
+ breaks required by
1187
1333
  Promises/A+, so there are no changes to task execution order.
1188
- * Updated how errors are annotated on failures. When a task fails, the stacktrace from when that
1189
- task was scheduled is appended to the rejection reason with a `From:` prefix (if it is an Error
1334
+
1335
+ - Updated how errors are annotated on failures. When a task fails, the
1336
+ stacktrace from when that
1337
+ task was scheduled is appended to the rejection reason with a `From:` prefix (
1338
+ if it is an Error
1190
1339
  object). For example:
1191
1340
 
1192
1341
  var driver = new webdriver.Builder().forBrowser('chrome').build();
@@ -1207,31 +1356,45 @@ major version release (i.e. 1.0.0).
1207
1356
  From: Task: WebDriver.call(function)
1208
1357
  at <stack trace>
1209
1358
 
1210
- * Changed the format of strings returned by `promise.ControlFlow#getSchedule`. This function now
1211
- accepts a boolean to control whether the returned string should include the stacktraces for when
1359
+ - Changed the format of strings returned by `promise.ControlFlow#getSchedule`.
1360
+ This function now
1361
+ accepts a boolean to control whether the returned string should include the
1362
+ stacktraces for when
1212
1363
  each task was scheduled.
1213
- * Deprecating `promise.ControlFlow#getHistory`,
1214
- `promise.ControlFlow#clearHistory`, and `promise.ControlFlow#annotateError`. These functions were
1215
- all intended for internal use and are no longer necessary, so they have been made no-ops.
1216
- * `WebDriver.wait()` may now be used to wait for a promise to resolve, with an optional timeout.
1364
+ - Deprecating `promise.ControlFlow#getHistory`,
1365
+ `promise.ControlFlow#clearHistory`, and `promise.ControlFlow#annotateError`.
1366
+ These functions were
1367
+ all intended for internal use and are no longer necessary, so they have been
1368
+ made no-ops.
1369
+ - `WebDriver.wait()` may now be used to wait for a promise to resolve, with an
1370
+ optional timeout.
1217
1371
  Refer to the API documentation for more information.
1218
- * Added support for copying files to a remote Selenium via `sendKeys` to test file uploads. Refer to
1219
- the API documentation for more information. Sample usage included in `test/upload_test.js`
1220
- * Expanded the interactions API to include touch actions. See `WebDriver.touchActions()`.
1221
- * FIXED: 8380: `firefox.Driver` will delete its temporary profile on `quit`.
1222
- * FIXED: 8306: Stack overflow in promise callbacks eliminated.
1223
- * FIXED: 8221: Added support for defining custom command mappings. Includes support for
1224
- PhantomJS's `executePhantomJS` (requires PhantomJS 1.9.7 or GhostDriver 1.1.0).
1225
- * FIXED: 8128: When the FirefoxDriver marshals an object to the page for
1226
- `executeScript`, it defines additional properties (required by the driver's implementation). These
1227
- properties will no longer be enumerable and should be omitted (i.e. they won't show up in
1372
+ - Added support for copying files to a remote Selenium via `sendKeys` to test
1373
+ file uploads. Refer to
1374
+ the API documentation for more information. Sample usage included
1375
+ in `test/upload_test.js`
1376
+ - Expanded the interactions API to include touch actions.
1377
+ See `WebDriver.touchActions()`.
1378
+ - FIXED: 8380: `firefox.Driver` will delete its temporary profile on `quit`.
1379
+ - FIXED: 8306: Stack overflow in promise callbacks eliminated.
1380
+ - FIXED: 8221: Added support for defining custom command mappings. Includes
1381
+ support for
1382
+ PhantomJS's `executePhantomJS` (requires PhantomJS 1.9.7 or GhostDriver
1383
+ 1.1.0).
1384
+ - FIXED: 8128: When the FirefoxDriver marshals an object to the page for
1385
+ `executeScript`, it defines additional properties (required by the driver's
1386
+ implementation). These
1387
+ properties will no longer be enumerable and should be omitted (i.e. they won't
1388
+ show up in
1228
1389
  JSON.stringify output).
1229
- * FIXED: 8094: The control flow will no longer deadlock when a task returns a promise that depends
1390
+ - FIXED: 8094: The control flow will no longer deadlock when a task returns a
1391
+ promise that depends
1230
1392
  on the completion of sub-tasks.
1231
1393
 
1232
1394
  ## v2.44.0
1233
1395
 
1234
- * Added the `until` module, which defines common explicit wait conditions. Sample usage:
1396
+ - Added the `until` module, which defines common explicit wait conditions.
1397
+ Sample usage:
1235
1398
 
1236
1399
  var firefox = require('selenium-webdriver/firefox'),
1237
1400
  until = require('selenium-webdriver/until');
@@ -1240,42 +1403,55 @@ major version release (i.e. 1.0.0).
1240
1403
  driver.get('http://www.google.com/ncr');
1241
1404
  driver.wait(until.titleIs('Google Search'), 1000);
1242
1405
 
1243
- * FIXED: 8000: `Builder.forBrowser()` now accepts an empty string since some WebDriver
1244
- implementations ignore the value. A value must still be specified, however, since it is a required
1406
+ - FIXED: 8000: `Builder.forBrowser()` now accepts an empty string since some
1407
+ WebDriver
1408
+ implementations ignore the value. A value must still be specified, however,
1409
+ since it is a required
1245
1410
  field in WebDriver's wire protocol.
1246
- * FIXED: 7994: The `stacktrace` module will not modify stack traces if the initial parse fails (e.g.
1411
+ - FIXED: 7994: The `stacktrace` module will not modify stack traces if the
1412
+ initial parse fails (e.g.
1247
1413
  the user defined `Error.prepareStackTrace`)
1248
- * FIXED: 5855: Added a module (`until`) that defines several common conditions for use with explicit
1414
+ - FIXED: 5855: Added a module (`until`) that defines several common conditions
1415
+ for use with explicit
1249
1416
  waits. See updated examples for usage.
1250
1417
 
1251
1418
  ## v2.43.5
1252
1419
 
1253
- * FIXED: 7905: `Builder.usingServer(url)` once again returns `this` for chaining.
1420
+ - FIXED: 7905: `Builder.usingServer(url)` once again returns `this` for
1421
+ chaining.
1254
1422
 
1255
1423
  ## v2.43.2-4
1256
1424
 
1257
- * No changes; version bumps while attempting to work around an issue with publishing to npm (a
1425
+ - No changes; version bumps while attempting to work around an issue with
1426
+ publishing to npm (a
1258
1427
  version string may only be used once).
1259
1428
 
1260
1429
  ## v2.43.1
1261
1430
 
1262
- * Fixed an issue with flakiness when setting up the Firefox profile that could prevent the driver
1431
+ - Fixed an issue with flakiness when setting up the Firefox profile that could
1432
+ prevent the driver
1263
1433
  from initializing properly.
1264
1434
 
1265
1435
  ## v2.43.0
1266
1436
 
1267
- * Added native support for Firefox - the Java Selenium server is no longer required.
1268
- * Added support for generator functions to `ControlFlow#execute` and
1437
+ - Added native support for Firefox - the Java Selenium server is no longer
1438
+ required.
1439
+ - Added support for generator functions to `ControlFlow#execute` and
1269
1440
  `ControlFlow#wait`. For more information, see documentation on
1270
1441
  `webdriver.promise.consume`. Requires harmony support (run with
1271
1442
  `node --harmony-generators` in `v0.11.x`).
1272
- * Various improvements to the `Builder` API. Notably, the `build()` function will no longer default
1443
+ - Various improvements to the `Builder` API. Notably, the `build()` function
1444
+ will no longer default
1273
1445
  to attempting to use a server at
1274
- `http://localhost:4444/wd/hub` if it cannot start a browser directly - you must specify the
1275
- WebDriver server with `usingServer(url)`. You can also set the target browser and WebDriver server
1276
- through a pair of environment variables. See the documentation on the `Builder` constructor for
1446
+ `http://localhost:4444/wd/hub` if it cannot start a browser directly - you
1447
+ must specify the
1448
+ WebDriver server with `usingServer(url)`. You can also set the target browser
1449
+ and WebDriver server
1450
+ through a pair of environment variables. See the documentation on
1451
+ the `Builder` constructor for
1277
1452
  more information.
1278
- * For consistency with the other language bindings, added browser specific classes that can be used
1453
+ - For consistency with the other language bindings, added browser specific
1454
+ classes that can be used
1279
1455
  to start a browser without the builder.
1280
1456
 
1281
1457
  var webdriver = require('selenium-webdriver')
@@ -1285,103 +1461,117 @@ major version release (i.e. 1.0.0).
1285
1461
  var driver1 = new webdriver.Builder().forBrowser('chrome').build();
1286
1462
  var driver2 = new chrome.Driver();
1287
1463
 
1288
- * Promise A+ compliance: a promise may no longer resolve to itself.
1289
- * For consistency with other language bindings, deprecated
1464
+ - Promise A+ compliance: a promise may no longer resolve to itself.
1465
+ - For consistency with other language bindings, deprecated
1290
1466
  `UnhandledAlertError#getAlert` and added `#getAlertText`.
1291
1467
  `getAlert` will be removed in `2.45.0`.
1292
- * FIXED: 7641: Deprecated `ErrorCode.NO_MODAL_DIALOG_OPEN` and
1468
+ - FIXED: 7641: Deprecated `ErrorCode.NO_MODAL_DIALOG_OPEN` and
1293
1469
  `ErrorCode.MODAL_DIALOG_OPENED` in favor of the new
1294
1470
  `ErrorCode.NO_SUCH_ALERT` and `ErrorCode.UNEXPECTED_ALERT_OPEN`, respectively.
1295
- * FIXED: 7563: Mocha integration no longer disables timeouts. Default Mocha timeouts apply (2000 ms)
1471
+ - FIXED: 7563: Mocha integration no longer disables timeouts. Default Mocha
1472
+ timeouts apply (2000 ms)
1296
1473
  and may be changed using `this.timeout(ms)`.
1297
- * FIXED: 7470: Make it easier to create WebDriver instances in custom flows for parallel execution.
1474
+ - FIXED: 7470: Make it easier to create WebDriver instances in custom flows for
1475
+ parallel execution.
1298
1476
 
1299
1477
  ## v2.42.1
1300
1478
 
1301
- * FIXED: 7465: Fixed `net.getLoopbackAddress` on Windows
1302
- * FIXED: 7277: Support `done` callback in Mocha's BDD interface
1303
- * FIXED: 7156: `Promise#thenFinally` should not suppress original error
1479
+ - FIXED: 7465: Fixed `net.getLoopbackAddress` on Windows
1480
+ - FIXED: 7277: Support `done` callback in Mocha's BDD interface
1481
+ - FIXED: 7156: `Promise#thenFinally` should not suppress original error
1304
1482
 
1305
1483
  ## v2.42.0
1306
1484
 
1307
- * Removed deprecated functions `Promise#addCallback()`,
1485
+ - Removed deprecated functions `Promise#addCallback()`,
1308
1486
  `Promise#addCallbacks()`, `Promise#addErrback()`, and `Promise#addBoth()`.
1309
- * Fail with a more descriptive error if the server returns a malformed redirect
1310
- * FIXED: 7300: Connect to ChromeDriver using the loopback address since ChromeDriver 2.10.267517
1487
+ - Fail with a more descriptive error if the server returns a malformed redirect
1488
+ - FIXED: 7300: Connect to ChromeDriver using the loopback address since
1489
+ ChromeDriver 2.10.267517
1311
1490
  binds to localhost by default.
1312
- * FIXED: 7339: Preserve wrapped test function's string representation for Mocha's BDD interface.
1491
+ - FIXED: 7339: Preserve wrapped test function's string representation for Mocha'
1492
+ s BDD interface.
1313
1493
 
1314
1494
  ## v2.41.0
1315
1495
 
1316
- * FIXED: 7138: export logging API from webdriver module.
1317
- * FIXED: 7105: beforeEach/it/afterEach properly bind `this` for Mocha tests.
1496
+ - FIXED: 7138: export logging API from webdriver module.
1497
+ - FIXED: 7105: beforeEach/it/afterEach properly bind `this` for Mocha tests.
1318
1498
 
1319
1499
  ## v2.40.0
1320
1500
 
1321
- * API documentation is now included in the docs directory.
1322
- * Added utility functions for working with an array of promises:
1501
+ - API documentation is now included in the docs directory.
1502
+ - Added utility functions for working with an array of promises:
1323
1503
  `promise.all`, `promise.map`, and `promise.filter`
1324
- * Introduced `Promise#thenCatch()` and `Promise#thenFinally()`.
1325
- * Deprecated `Promise#addCallback()`, `Promise#addCallbacks()`,
1504
+ - Introduced `Promise#thenCatch()` and `Promise#thenFinally()`.
1505
+ - Deprecated `Promise#addCallback()`, `Promise#addCallbacks()`,
1326
1506
  `Promise#addErrback()`, and `Promise#addBoth()`.
1327
- * Removed deprecated function `webdriver.WebDriver#getCapability`.
1328
- * FIXED: 6826: Added support for custom locators.
1507
+ - Removed deprecated function `webdriver.WebDriver#getCapability`.
1508
+ - FIXED: 6826: Added support for custom locators.
1329
1509
 
1330
1510
  ## v2.39.0
1331
1511
 
1332
- * Version bump to stay in sync with the Selenium project.
1512
+ - Version bump to stay in sync with the Selenium project.
1333
1513
 
1334
1514
  ## v2.38.1
1335
1515
 
1336
- * FIXED: 6686: Changed `webdriver.promise.Deferred#cancel()` to silently no-op if the deferred has
1516
+ - FIXED: 6686: Changed `webdriver.promise.Deferred#cancel()` to silently no-op
1517
+ if the deferred has
1337
1518
  already been resolved.
1338
1519
 
1339
1520
  ## v2.38.0
1340
1521
 
1341
- * When a promise is rejected, always annotate the stacktrace with the parent flow state so users can
1522
+ - When a promise is rejected, always annotate the stacktrace with the parent
1523
+ flow state so users can
1342
1524
  identify the source of an error.
1343
- * Updated tests to reflect features not working correctly in the SafariDriver
1525
+ - Updated tests to reflect features not working correctly in the SafariDriver
1344
1526
  (cookie management and proxy support; see issues 5051, 5212, and 5503)
1345
- * FIXED: 6284: For mouse moves, correctly omit the x/y offsets if not specified as a function
1527
+ - FIXED: 6284: For mouse moves, correctly omit the x/y offsets if not specified
1528
+ as a function
1346
1529
  argument (instead of passing (0,0)).
1347
- * FIXED: 6471: Updated documentation on `webdriver.WebElement#getAttribute`
1348
- * FIXED: 6612: On Unix, use the default IANA ephemeral port range if unable to retrieve the current
1530
+ - FIXED: 6471: Updated documentation on `webdriver.WebElement#getAttribute`
1531
+ - FIXED: 6612: On Unix, use the default IANA ephemeral port range if unable to
1532
+ retrieve the current
1349
1533
  system's port range.
1350
- * FIXED: 6617: Avoid triggering the node debugger when initializing the stacktrace module.
1351
- * FIXED: 6627: Safely rebuild chrome.Options from a partial JSON spec.
1534
+ - FIXED: 6617: Avoid triggering the node debugger when initializing the
1535
+ stacktrace module.
1536
+ - FIXED: 6627: Safely rebuild chrome.Options from a partial JSON spec.
1352
1537
 
1353
1538
  ## v2.37.0
1354
1539
 
1355
- * FIXED: 6346: The remote.SeleniumServer class now accepts JVM arguments using the `jvmArgs` option.
1540
+ - FIXED: 6346: The remote.SeleniumServer class now accepts JVM arguments using
1541
+ the `jvmArgs` option.
1356
1542
 
1357
1543
  ## v2.36.0
1358
1544
 
1359
- * _Release skipped to stay in sync with main Selenium project._
1545
+ - _Release skipped to stay in sync with main Selenium project._
1360
1546
 
1361
1547
  ## v2.35.2
1362
1548
 
1363
- * FIXED: 6200: Pass arguments to the Selenium server instead of to the JVM.
1549
+ - FIXED: 6200: Pass arguments to the Selenium server instead of to the JVM.
1364
1550
 
1365
1551
  ## v2.35.1
1366
1552
 
1367
- * FIXED: 6090: Changed example scripts to use chromedriver.
1553
+ - FIXED: 6090: Changed example scripts to use chromedriver.
1368
1554
 
1369
1555
  ## v2.35.0
1370
1556
 
1371
- * Version bump to stay in sync with the Selenium project.
1557
+ - Version bump to stay in sync with the Selenium project.
1372
1558
 
1373
1559
  ## v2.34.1
1374
1560
 
1375
- * FIXED: 6079: The parent process should not wait for spawn driver service processes (chromedriver,
1561
+ - FIXED: 6079: The parent process should not wait for spawn driver service
1562
+ processes (chromedriver,
1376
1563
  phantomjs, etc.)
1377
1564
 
1378
1565
  ## v2.34.0
1379
1566
 
1380
- * Added the `selenium-webdriver/testing/assert` module. This module simplifies writing assertions
1567
+ - Added the `selenium-webdriver/testing/assert` module. This module simplifies
1568
+ writing assertions
1381
1569
  against promised values (see example in module documentation).
1382
- * Added the `webdriver.Capabilities` class.
1383
- * Added native support for the ChromeDriver. When using the `Builder`, requesting chrome without
1384
- specifying a remote server URL will default to the native ChromeDriver implementation. The
1570
+ - Added the `webdriver.Capabilities` class.
1571
+ - Added native support for the ChromeDriver. When using the `Builder`,
1572
+ requesting chrome without
1573
+ specifying a remote server URL will default to the native ChromeDriver
1574
+ implementation. The
1385
1575
  [ChromeDriver server](https://code.google.com/p/chromedriver/downloads/list)
1386
1576
  must be downloaded separately.
1387
1577
 
@@ -1396,74 +1586,72 @@ major version release (i.e. 1.0.0).
1396
1586
  usingServer('http://server:1234/wd/hub').
1397
1587
  build();
1398
1588
 
1399
- * Added support for configuring proxies through the builder. For examples, see
1589
+ - Added support for configuring proxies through the builder. For examples, see
1400
1590
  `selenium-webdriver/test/proxy_test`.
1401
- * Added native support for PhantomJS.
1402
- * Changed signature of `SeleniumServer` to `SeleniumServer(jar, options)`.
1403
- * Tests are now included in the npm published package. See `README.md` for execution instructions
1404
- * Removed the deprecated `webdriver.Deferred#resolve` and
1591
+ - Added native support for PhantomJS.
1592
+ - Changed signature of `SeleniumServer` to `SeleniumServer(jar, options)`.
1593
+ - Tests are now included in the npm published package. See `README.md` for
1594
+ execution instructions
1595
+ - Removed the deprecated `webdriver.Deferred#resolve` and
1405
1596
  `webdriver.promise.resolved` functions.
1406
- * Removed the ability to connect to an existing session from the Builder. This feature is intended
1597
+ - Removed the ability to connect to an existing session from the Builder. This
1598
+ feature is intended
1407
1599
  for use with the browser-based client.
1408
1600
 
1409
1601
  ## v2.33.0
1410
1602
 
1411
- * Added support for WebDriver's logging API
1412
- * FIXED: 5511: Added webdriver.manage().timeouts().pageLoadTimeout(ms)
1603
+ - Added support for WebDriver's logging API
1604
+ - FIXED: 5511: Added webdriver.manage().timeouts().pageLoadTimeout(ms)
1413
1605
 
1414
1606
  ## v2.32.1
1415
1607
 
1416
- * FIXED: 5541: Added missing return statement for windows in
1608
+ - FIXED: 5541: Added missing return statement for windows in
1417
1609
  `portprober.findFreePort()`
1418
1610
 
1419
1611
  ## v2.32.0
1420
1612
 
1421
- * Added the `selenium-webdriver/testing` package, which provides a basic framework for writing tests
1613
+ - Added the `selenium-webdriver/testing` package, which provides a basic
1614
+ framework for writing tests
1422
1615
  using Mocha. See
1423
1616
  `selenium-webdriver/example/google_search_test.js` for usage.
1424
- * For Promises/A+ compatibility, backing out the change in 2.30.0 that ensured rejections were
1617
+ - For Promises/A+ compatibility, backing out the change in 2.30.0 that ensured
1618
+ rejections were
1425
1619
  always Error objects. Rejection reasons are now left as is.
1426
- * Removed deprecated functions originally scheduled for removal in 2.31.0
1427
- * promise.Application.getInstance()
1428
- * promise.ControlFlow#schedule()
1429
- * promise.ControlFlow#scheduleTimeout()
1430
- * promise.ControlFlow#scheduleWait()
1431
- * Renamed some functions for consistency with Promises/A+ terminology. The original functions have
1620
+ - Removed deprecated functions originally scheduled for removal in 2.31.0
1621
+ - promise.Application.getInstance()
1622
+ - promise.ControlFlow#schedule()
1623
+ - promise.ControlFlow#scheduleTimeout()
1624
+ - promise.ControlFlow#scheduleWait()
1625
+ - Renamed some functions for consistency with Promises/A+ terminology. The
1626
+ original functions have
1432
1627
  been deprecated and will be removed in 2.34.0:
1433
- * promise.resolved() -> promise.fulfilled()
1434
- * promise.Deferred#resolve() -> promise.Deferred#fulfill()
1435
- * FIXED: remote.SeleniumServer#stop now shuts down within the active control flow, allowing scripts
1628
+ - promise.resolved() -> promise.fulfilled()
1629
+ - promise.Deferred#resolve() -> promise.Deferred#fulfill()
1630
+ - FIXED: remote.SeleniumServer#stop now shuts down within the active control
1631
+ flow, allowing scripts
1436
1632
  to finish. Use #kill to shutdown immediately.
1437
- * FIXED: 5321: cookie deletion commands
1633
+ - FIXED: 5321: cookie deletion commands
1438
1634
 
1439
1635
  ## v2.31.0
1440
1636
 
1441
- * Added an example script.
1442
- * Added a class for controlling the standalone Selenium server (server available separately)
1443
- * Added a portprober for finding free ports
1444
- * FIXED: WebElements now belong to the same flow as their parent driver.
1637
+ - Added an example script.
1638
+ - Added a class for controlling the standalone Selenium server (server available
1639
+ separately)
1640
+ - Added a portprober for finding free ports
1641
+ - FIXED: WebElements now belong to the same flow as their parent driver.
1445
1642
 
1446
1643
  ## v2.30.0
1447
1644
 
1448
- * Ensures promise rejections are always Error values.
1449
- * Version bump to keep in sync with the Selenium project.
1645
+ - Ensures promise rejections are always Error values.
1646
+ - Version bump to keep in sync with the Selenium project.
1450
1647
 
1451
1648
  ## v2.29.1
1452
1649
 
1453
- * Fixed a bug that could lead to an infinite loop.
1454
- * Added a README.md
1650
+ - Fixed a bug that could lead to an infinite loop.
1651
+ - Added a README.md
1455
1652
 
1456
1653
  ## v2.29.0
1457
1654
 
1458
- * Initial release for npm:
1655
+ - Initial release for npm:
1459
1656
 
1460
1657
  npm install selenium-webdriver
1461
-
1462
-
1463
-
1464
-
1465
-
1466
-
1467
-
1468
-
1469
-