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