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