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