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