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