selenium-webdriver 4.5.0 → 4.16.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.
- checksums.yaml +4 -4
- data/CHANGES +219 -1
- data/Gemfile +3 -0
- data/LICENSE +1 -1
- data/NOTICE +1 -1
- data/README.md +2 -2
- data/bin/linux/selenium-manager +0 -0
- data/bin/macos/selenium-manager +0 -0
- data/bin/windows/selenium-manager.exe +0 -0
- data/lib/selenium/server.rb +8 -22
- data/lib/selenium/webdriver/atoms/findElements.js +5 -5
- data/lib/selenium/webdriver/atoms/getAttribute.js +0 -0
- data/lib/selenium/webdriver/atoms/isDisplayed.js +2 -1
- data/lib/selenium/webdriver/atoms/mutationListener.js +0 -0
- data/lib/selenium/webdriver/atoms.rb +5 -3
- data/lib/selenium/webdriver/bidi/browsing_context.rb +88 -0
- data/lib/selenium/webdriver/bidi/browsing_context_info.rb +35 -0
- data/lib/selenium/webdriver/bidi/log/base_log_entry.rb +35 -0
- data/lib/selenium/webdriver/bidi/log/console_log_entry.rb +35 -0
- data/lib/selenium/webdriver/{common/driver_extensions/has_location.rb → bidi/log/filter_by.rb} +14 -11
- data/lib/selenium/webdriver/bidi/log/generic_log_entry.rb +33 -0
- data/lib/selenium/webdriver/bidi/log/javascript_log_entry.rb +33 -0
- data/lib/selenium/webdriver/bidi/log_inspector.rb +143 -0
- data/lib/selenium/webdriver/bidi/navigate_result.rb +33 -0
- data/lib/selenium/webdriver/bidi/session.rb +13 -0
- data/lib/selenium/webdriver/bidi.rb +3 -2
- data/lib/selenium/webdriver/chrome/driver.rb +9 -30
- data/lib/selenium/webdriver/chrome/features.rb +8 -71
- data/lib/selenium/webdriver/chrome/options.rb +3 -237
- data/lib/selenium/webdriver/chrome/profile.rb +3 -83
- data/lib/selenium/webdriver/chrome/service.rb +4 -19
- data/lib/selenium/webdriver/chrome.rb +0 -2
- data/lib/selenium/webdriver/chromium/driver.rb +60 -0
- data/lib/selenium/webdriver/chromium/features.rb +99 -0
- data/lib/selenium/webdriver/chromium/options.rb +243 -0
- data/lib/selenium/webdriver/chromium/profile.rb +113 -0
- data/lib/selenium/webdriver/chromium.rb +29 -0
- data/lib/selenium/webdriver/common/action_builder.rb +11 -58
- data/lib/selenium/webdriver/common/child_process.rb +124 -0
- data/lib/selenium/webdriver/common/driver.rb +19 -36
- data/lib/selenium/webdriver/common/driver_extensions/downloads_files.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb +0 -1
- data/lib/selenium/webdriver/common/driver_extensions/has_addons.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_authentication.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_bidi.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +0 -1
- data/lib/selenium/webdriver/common/driver_extensions/has_cdp.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_context.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_debugger.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_file_downloads.rb +65 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_launching.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +0 -1
- data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +0 -2
- data/lib/selenium/webdriver/common/driver_finder.rb +45 -0
- data/lib/selenium/webdriver/common/element.rb +6 -6
- data/lib/selenium/webdriver/common/error.rb +27 -4
- data/lib/selenium/webdriver/common/html5/shared_web_storage.rb +2 -2
- data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +3 -3
- data/lib/selenium/webdriver/common/interactions/pointer_move.rb +2 -2
- data/lib/selenium/webdriver/common/interactions/scroll.rb +7 -5
- data/lib/selenium/webdriver/common/local_driver.rb +46 -0
- data/lib/selenium/webdriver/common/logger.rb +91 -26
- data/lib/selenium/webdriver/common/options.rb +15 -8
- data/lib/selenium/webdriver/common/platform.rb +8 -49
- data/lib/selenium/webdriver/common/port_prober.rb +1 -1
- data/lib/selenium/webdriver/common/profile_helper.rb +1 -1
- data/lib/selenium/webdriver/common/proxy.rb +2 -2
- data/lib/selenium/webdriver/common/selenium_manager.rb +140 -0
- data/lib/selenium/webdriver/common/service.rb +21 -30
- data/lib/selenium/webdriver/common/service_manager.rb +6 -12
- data/lib/selenium/webdriver/common/shadow_root.rb +1 -2
- data/lib/selenium/webdriver/common/socket_lock.rb +3 -3
- data/lib/selenium/webdriver/common/socket_poller.rb +1 -1
- data/lib/selenium/webdriver/common/takes_screenshot.rb +2 -3
- data/lib/selenium/webdriver/common/target_locator.rb +2 -3
- data/lib/selenium/webdriver/common/timeouts.rb +2 -2
- data/lib/selenium/webdriver/common/virtual_authenticator/credential.rb +8 -6
- data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb +0 -1
- data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb +16 -16
- data/lib/selenium/webdriver/common/websocket_connection.rb +12 -4
- data/lib/selenium/webdriver/common.rb +5 -2
- data/lib/selenium/webdriver/devtools/console_event.rb +0 -2
- data/lib/selenium/webdriver/devtools/exception_event.rb +0 -2
- data/lib/selenium/webdriver/devtools/mutation_event.rb +0 -2
- data/lib/selenium/webdriver/devtools/network_interceptor.rb +4 -7
- data/lib/selenium/webdriver/devtools/pinned_script.rb +0 -2
- data/lib/selenium/webdriver/devtools/request.rb +0 -2
- data/lib/selenium/webdriver/devtools/response.rb +0 -2
- data/lib/selenium/webdriver/devtools.rb +11 -2
- data/lib/selenium/webdriver/edge/driver.rb +9 -3
- data/lib/selenium/webdriver/edge/features.rb +7 -4
- data/lib/selenium/webdriver/edge/options.rb +17 -5
- data/lib/selenium/webdriver/edge/profile.rb +2 -2
- data/lib/selenium/webdriver/edge/service.rb +8 -7
- data/lib/selenium/webdriver/edge.rb +0 -2
- data/lib/selenium/webdriver/firefox/driver.rb +8 -2
- data/lib/selenium/webdriver/firefox/features.rb +5 -2
- data/lib/selenium/webdriver/firefox/options.rb +2 -14
- data/lib/selenium/webdriver/firefox/profile.rb +10 -8
- data/lib/selenium/webdriver/firefox/service.rb +0 -18
- data/lib/selenium/webdriver/ie/driver.rb +7 -1
- data/lib/selenium/webdriver/{common/driver_extensions/has_network_connection.rb → ie/features.rb} +8 -11
- data/lib/selenium/webdriver/ie/options.rb +4 -3
- data/lib/selenium/webdriver/ie/service.rb +0 -22
- data/lib/selenium/webdriver/ie.rb +4 -3
- data/lib/selenium/webdriver/remote/{commands.rb → bridge/commands.rb} +0 -8
- data/lib/selenium/webdriver/remote/bridge.rb +13 -37
- data/lib/selenium/webdriver/remote/capabilities.rb +3 -53
- data/lib/selenium/webdriver/remote/driver.rb +35 -13
- data/lib/selenium/webdriver/remote/features.rb +75 -0
- data/lib/selenium/webdriver/remote/http/common.rb +3 -3
- data/lib/selenium/webdriver/remote/http/curb.rb +1 -3
- data/lib/selenium/webdriver/remote/http/default.rb +2 -2
- data/lib/selenium/webdriver/remote/response.rb +0 -1
- data/lib/selenium/webdriver/remote/server_error.rb +1 -1
- data/lib/selenium/webdriver/remote.rb +1 -1
- data/lib/selenium/webdriver/safari/driver.rb +7 -1
- data/lib/selenium/webdriver/safari/features.rb +5 -3
- data/lib/selenium/webdriver/safari/options.rb +5 -1
- data/lib/selenium/webdriver/safari/service.rb +10 -4
- data/lib/selenium/webdriver/safari.rb +1 -1
- data/lib/selenium/webdriver/support/color.rb +17 -17
- data/lib/selenium/webdriver/support/event_firing_bridge.rb +2 -2
- data/lib/selenium/webdriver/support/guards/guard.rb +6 -5
- data/lib/selenium/webdriver/support/guards/guard_condition.rb +0 -2
- data/lib/selenium/webdriver/support/guards.rb +1 -1
- data/lib/selenium/webdriver/support/relative_locator.rb +0 -1
- data/lib/selenium/webdriver/support/select.rb +2 -5
- data/lib/selenium/webdriver/version.rb +1 -1
- data/lib/selenium/webdriver.rb +5 -4
- data/selenium-webdriver.gemspec +10 -11
- metadata +43 -84
- data/lib/selenium/webdriver/support/cdp/domain.rb.erb +0 -63
- data/lib/selenium/webdriver/support/cdp_client_generator.rb +0 -108
metadata
CHANGED
|
@@ -1,37 +1,17 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: selenium-webdriver
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.16.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alex Rodionov
|
|
8
8
|
- Titus Fortner
|
|
9
9
|
- Thomas Walpole
|
|
10
|
-
autorequire:
|
|
10
|
+
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2023-12-06 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
|
-
- !ruby/object:Gem::Dependency
|
|
16
|
-
name: childprocess
|
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
|
18
|
-
requirements:
|
|
19
|
-
- - ">="
|
|
20
|
-
- !ruby/object:Gem::Version
|
|
21
|
-
version: '0.5'
|
|
22
|
-
- - "<"
|
|
23
|
-
- !ruby/object:Gem::Version
|
|
24
|
-
version: '5.0'
|
|
25
|
-
type: :runtime
|
|
26
|
-
prerelease: false
|
|
27
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
28
|
-
requirements:
|
|
29
|
-
- - ">="
|
|
30
|
-
- !ruby/object:Gem::Version
|
|
31
|
-
version: '0.5'
|
|
32
|
-
- - "<"
|
|
33
|
-
- !ruby/object:Gem::Version
|
|
34
|
-
version: '5.0'
|
|
35
15
|
- !ruby/object:Gem::Dependency
|
|
36
16
|
name: rexml
|
|
37
17
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -86,34 +66,6 @@ dependencies:
|
|
|
86
66
|
- - "~>"
|
|
87
67
|
- !ruby/object:Gem::Version
|
|
88
68
|
version: '1.0'
|
|
89
|
-
- !ruby/object:Gem::Dependency
|
|
90
|
-
name: ffi
|
|
91
|
-
requirement: !ruby/object:Gem::Requirement
|
|
92
|
-
requirements:
|
|
93
|
-
- - ">="
|
|
94
|
-
- !ruby/object:Gem::Version
|
|
95
|
-
version: '0'
|
|
96
|
-
type: :development
|
|
97
|
-
prerelease: false
|
|
98
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
99
|
-
requirements:
|
|
100
|
-
- - ">="
|
|
101
|
-
- !ruby/object:Gem::Version
|
|
102
|
-
version: '0'
|
|
103
|
-
- !ruby/object:Gem::Dependency
|
|
104
|
-
name: pry
|
|
105
|
-
requirement: !ruby/object:Gem::Requirement
|
|
106
|
-
requirements:
|
|
107
|
-
- - "~>"
|
|
108
|
-
- !ruby/object:Gem::Version
|
|
109
|
-
version: '0.14'
|
|
110
|
-
type: :development
|
|
111
|
-
prerelease: false
|
|
112
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
113
|
-
requirements:
|
|
114
|
-
- - "~>"
|
|
115
|
-
- !ruby/object:Gem::Version
|
|
116
|
-
version: '0.14'
|
|
117
69
|
- !ruby/object:Gem::Dependency
|
|
118
70
|
name: rack
|
|
119
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -132,16 +84,16 @@ dependencies:
|
|
|
132
84
|
name: rake
|
|
133
85
|
requirement: !ruby/object:Gem::Requirement
|
|
134
86
|
requirements:
|
|
135
|
-
- - "
|
|
87
|
+
- - "~>"
|
|
136
88
|
- !ruby/object:Gem::Version
|
|
137
|
-
version: '0'
|
|
89
|
+
version: '13.0'
|
|
138
90
|
type: :development
|
|
139
91
|
prerelease: false
|
|
140
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
141
93
|
requirements:
|
|
142
|
-
- - "
|
|
94
|
+
- - "~>"
|
|
143
95
|
- !ruby/object:Gem::Version
|
|
144
|
-
version: '0'
|
|
96
|
+
version: '13.0'
|
|
145
97
|
- !ruby/object:Gem::Dependency
|
|
146
98
|
name: rspec
|
|
147
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -162,56 +114,42 @@ dependencies:
|
|
|
162
114
|
requirements:
|
|
163
115
|
- - "~>"
|
|
164
116
|
- !ruby/object:Gem::Version
|
|
165
|
-
version: '1.
|
|
117
|
+
version: '1.42'
|
|
166
118
|
type: :development
|
|
167
119
|
prerelease: false
|
|
168
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
169
121
|
requirements:
|
|
170
122
|
- - "~>"
|
|
171
123
|
- !ruby/object:Gem::Version
|
|
172
|
-
version: '1.
|
|
124
|
+
version: '1.42'
|
|
173
125
|
- !ruby/object:Gem::Dependency
|
|
174
126
|
name: rubocop-performance
|
|
175
127
|
requirement: !ruby/object:Gem::Requirement
|
|
176
128
|
requirements:
|
|
177
129
|
- - "~>"
|
|
178
130
|
- !ruby/object:Gem::Version
|
|
179
|
-
version: '1.
|
|
131
|
+
version: '1.15'
|
|
180
132
|
type: :development
|
|
181
133
|
prerelease: false
|
|
182
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
183
135
|
requirements:
|
|
184
136
|
- - "~>"
|
|
185
137
|
- !ruby/object:Gem::Version
|
|
186
|
-
version: '1.
|
|
187
|
-
- !ruby/object:Gem::Dependency
|
|
188
|
-
name: rubocop-rake
|
|
189
|
-
requirement: !ruby/object:Gem::Requirement
|
|
190
|
-
requirements:
|
|
191
|
-
- - ">="
|
|
192
|
-
- !ruby/object:Gem::Version
|
|
193
|
-
version: '0'
|
|
194
|
-
type: :development
|
|
195
|
-
prerelease: false
|
|
196
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
197
|
-
requirements:
|
|
198
|
-
- - ">="
|
|
199
|
-
- !ruby/object:Gem::Version
|
|
200
|
-
version: '0'
|
|
138
|
+
version: '1.15'
|
|
201
139
|
- !ruby/object:Gem::Dependency
|
|
202
140
|
name: rubocop-rspec
|
|
203
141
|
requirement: !ruby/object:Gem::Requirement
|
|
204
142
|
requirements:
|
|
205
143
|
- - "~>"
|
|
206
144
|
- !ruby/object:Gem::Version
|
|
207
|
-
version: '2.
|
|
145
|
+
version: '2.16'
|
|
208
146
|
type: :development
|
|
209
147
|
prerelease: false
|
|
210
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
211
149
|
requirements:
|
|
212
150
|
- - "~>"
|
|
213
151
|
- !ruby/object:Gem::Version
|
|
214
|
-
version: '2.
|
|
152
|
+
version: '2.16'
|
|
215
153
|
- !ruby/object:Gem::Dependency
|
|
216
154
|
name: webmock
|
|
217
155
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -271,6 +209,9 @@ files:
|
|
|
271
209
|
- LICENSE
|
|
272
210
|
- NOTICE
|
|
273
211
|
- README.md
|
|
212
|
+
- bin/linux/selenium-manager
|
|
213
|
+
- bin/macos/selenium-manager
|
|
214
|
+
- bin/windows/selenium-manager.exe
|
|
274
215
|
- lib/selenium-webdriver.rb
|
|
275
216
|
- lib/selenium/server.rb
|
|
276
217
|
- lib/selenium/webdriver.rb
|
|
@@ -280,6 +221,15 @@ files:
|
|
|
280
221
|
- lib/selenium/webdriver/atoms/isDisplayed.js
|
|
281
222
|
- lib/selenium/webdriver/atoms/mutationListener.js
|
|
282
223
|
- lib/selenium/webdriver/bidi.rb
|
|
224
|
+
- lib/selenium/webdriver/bidi/browsing_context.rb
|
|
225
|
+
- lib/selenium/webdriver/bidi/browsing_context_info.rb
|
|
226
|
+
- lib/selenium/webdriver/bidi/log/base_log_entry.rb
|
|
227
|
+
- lib/selenium/webdriver/bidi/log/console_log_entry.rb
|
|
228
|
+
- lib/selenium/webdriver/bidi/log/filter_by.rb
|
|
229
|
+
- lib/selenium/webdriver/bidi/log/generic_log_entry.rb
|
|
230
|
+
- lib/selenium/webdriver/bidi/log/javascript_log_entry.rb
|
|
231
|
+
- lib/selenium/webdriver/bidi/log_inspector.rb
|
|
232
|
+
- lib/selenium/webdriver/bidi/navigate_result.rb
|
|
283
233
|
- lib/selenium/webdriver/bidi/session.rb
|
|
284
234
|
- lib/selenium/webdriver/chrome.rb
|
|
285
235
|
- lib/selenium/webdriver/chrome/driver.rb
|
|
@@ -287,9 +237,15 @@ files:
|
|
|
287
237
|
- lib/selenium/webdriver/chrome/options.rb
|
|
288
238
|
- lib/selenium/webdriver/chrome/profile.rb
|
|
289
239
|
- lib/selenium/webdriver/chrome/service.rb
|
|
240
|
+
- lib/selenium/webdriver/chromium.rb
|
|
241
|
+
- lib/selenium/webdriver/chromium/driver.rb
|
|
242
|
+
- lib/selenium/webdriver/chromium/features.rb
|
|
243
|
+
- lib/selenium/webdriver/chromium/options.rb
|
|
244
|
+
- lib/selenium/webdriver/chromium/profile.rb
|
|
290
245
|
- lib/selenium/webdriver/common.rb
|
|
291
246
|
- lib/selenium/webdriver/common/action_builder.rb
|
|
292
247
|
- lib/selenium/webdriver/common/alert.rb
|
|
248
|
+
- lib/selenium/webdriver/common/child_process.rb
|
|
293
249
|
- lib/selenium/webdriver/common/driver.rb
|
|
294
250
|
- lib/selenium/webdriver/common/driver_extensions/downloads_files.rb
|
|
295
251
|
- lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb
|
|
@@ -302,12 +258,11 @@ files:
|
|
|
302
258
|
- lib/selenium/webdriver/common/driver_extensions/has_context.rb
|
|
303
259
|
- lib/selenium/webdriver/common/driver_extensions/has_debugger.rb
|
|
304
260
|
- lib/selenium/webdriver/common/driver_extensions/has_devtools.rb
|
|
261
|
+
- lib/selenium/webdriver/common/driver_extensions/has_file_downloads.rb
|
|
305
262
|
- lib/selenium/webdriver/common/driver_extensions/has_launching.rb
|
|
306
|
-
- lib/selenium/webdriver/common/driver_extensions/has_location.rb
|
|
307
263
|
- lib/selenium/webdriver/common/driver_extensions/has_log_events.rb
|
|
308
264
|
- lib/selenium/webdriver/common/driver_extensions/has_logs.rb
|
|
309
265
|
- lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb
|
|
310
|
-
- lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb
|
|
311
266
|
- lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
|
|
312
267
|
- lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
|
|
313
268
|
- lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
|
|
@@ -315,6 +270,7 @@ files:
|
|
|
315
270
|
- lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
|
|
316
271
|
- lib/selenium/webdriver/common/driver_extensions/prints_page.rb
|
|
317
272
|
- lib/selenium/webdriver/common/driver_extensions/uploads_files.rb
|
|
273
|
+
- lib/selenium/webdriver/common/driver_finder.rb
|
|
318
274
|
- lib/selenium/webdriver/common/element.rb
|
|
319
275
|
- lib/selenium/webdriver/common/error.rb
|
|
320
276
|
- lib/selenium/webdriver/common/file_reaper.rb
|
|
@@ -340,6 +296,7 @@ files:
|
|
|
340
296
|
- lib/selenium/webdriver/common/interactions/wheel_actions.rb
|
|
341
297
|
- lib/selenium/webdriver/common/interactions/wheel_input.rb
|
|
342
298
|
- lib/selenium/webdriver/common/keys.rb
|
|
299
|
+
- lib/selenium/webdriver/common/local_driver.rb
|
|
343
300
|
- lib/selenium/webdriver/common/log_entry.rb
|
|
344
301
|
- lib/selenium/webdriver/common/logger.rb
|
|
345
302
|
- lib/selenium/webdriver/common/logs.rb
|
|
@@ -351,6 +308,7 @@ files:
|
|
|
351
308
|
- lib/selenium/webdriver/common/profile_helper.rb
|
|
352
309
|
- lib/selenium/webdriver/common/proxy.rb
|
|
353
310
|
- lib/selenium/webdriver/common/search_context.rb
|
|
311
|
+
- lib/selenium/webdriver/common/selenium_manager.rb
|
|
354
312
|
- lib/selenium/webdriver/common/service.rb
|
|
355
313
|
- lib/selenium/webdriver/common/service_manager.rb
|
|
356
314
|
- lib/selenium/webdriver/common/shadow_root.rb
|
|
@@ -391,13 +349,15 @@ files:
|
|
|
391
349
|
- lib/selenium/webdriver/firefox/util.rb
|
|
392
350
|
- lib/selenium/webdriver/ie.rb
|
|
393
351
|
- lib/selenium/webdriver/ie/driver.rb
|
|
352
|
+
- lib/selenium/webdriver/ie/features.rb
|
|
394
353
|
- lib/selenium/webdriver/ie/options.rb
|
|
395
354
|
- lib/selenium/webdriver/ie/service.rb
|
|
396
355
|
- lib/selenium/webdriver/remote.rb
|
|
397
356
|
- lib/selenium/webdriver/remote/bridge.rb
|
|
357
|
+
- lib/selenium/webdriver/remote/bridge/commands.rb
|
|
398
358
|
- lib/selenium/webdriver/remote/capabilities.rb
|
|
399
|
-
- lib/selenium/webdriver/remote/commands.rb
|
|
400
359
|
- lib/selenium/webdriver/remote/driver.rb
|
|
360
|
+
- lib/selenium/webdriver/remote/features.rb
|
|
401
361
|
- lib/selenium/webdriver/remote/http/common.rb
|
|
402
362
|
- lib/selenium/webdriver/remote/http/curb.rb
|
|
403
363
|
- lib/selenium/webdriver/remote/http/default.rb
|
|
@@ -411,8 +371,6 @@ files:
|
|
|
411
371
|
- lib/selenium/webdriver/support.rb
|
|
412
372
|
- lib/selenium/webdriver/support/abstract_event_listener.rb
|
|
413
373
|
- lib/selenium/webdriver/support/block_event_listener.rb
|
|
414
|
-
- lib/selenium/webdriver/support/cdp/domain.rb.erb
|
|
415
|
-
- lib/selenium/webdriver/support/cdp_client_generator.rb
|
|
416
374
|
- lib/selenium/webdriver/support/color.rb
|
|
417
375
|
- lib/selenium/webdriver/support/escaper.rb
|
|
418
376
|
- lib/selenium/webdriver/support/event_firing_bridge.rb
|
|
@@ -428,9 +386,10 @@ licenses:
|
|
|
428
386
|
- Apache-2.0
|
|
429
387
|
metadata:
|
|
430
388
|
changelog_uri: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES
|
|
389
|
+
github_repo: ssh://github.com/SeleniumHQ/selenium
|
|
431
390
|
source_code_uri: https://github.com/SeleniumHQ/selenium/tree/trunk/rb
|
|
432
391
|
rubygems_mfa_required: 'true'
|
|
433
|
-
post_install_message:
|
|
392
|
+
post_install_message:
|
|
434
393
|
rdoc_options: []
|
|
435
394
|
require_paths:
|
|
436
395
|
- lib
|
|
@@ -438,15 +397,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
438
397
|
requirements:
|
|
439
398
|
- - ">="
|
|
440
399
|
- !ruby/object:Gem::Version
|
|
441
|
-
version: '
|
|
400
|
+
version: '3.0'
|
|
442
401
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
443
402
|
requirements:
|
|
444
403
|
- - ">"
|
|
445
404
|
- !ruby/object:Gem::Version
|
|
446
405
|
version: 1.3.1
|
|
447
406
|
requirements: []
|
|
448
|
-
rubygems_version: 3.
|
|
449
|
-
signing_key:
|
|
407
|
+
rubygems_version: 3.2.33
|
|
408
|
+
signing_key:
|
|
450
409
|
specification_version: 4
|
|
451
410
|
summary: Selenium is a browser automation tool for automated testing of webapps and
|
|
452
411
|
more
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Licensed to the Software Freedom Conservancy (SFC) under one
|
|
4
|
-
# or more contributor license agreements. See the NOTICE file
|
|
5
|
-
# distributed with this work for additional information
|
|
6
|
-
# regarding copyright ownership. The SFC licenses this file
|
|
7
|
-
# to you under the Apache License, Version 2.0 (the
|
|
8
|
-
# "License"); you may not use this file except in compliance
|
|
9
|
-
# with the License. You may obtain a copy of the License at
|
|
10
|
-
#
|
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
#
|
|
13
|
-
# Unless required by applicable law or agreed to in writing,
|
|
14
|
-
# software distributed under the License is distributed on an
|
|
15
|
-
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
16
|
-
# KIND, either express or implied. See the License for the
|
|
17
|
-
# specific language governing permissions and limitations
|
|
18
|
-
# under the License.
|
|
19
|
-
|
|
20
|
-
# This file is automatically generated. Any changes will be lost!
|
|
21
|
-
module Selenium
|
|
22
|
-
module DevTools
|
|
23
|
-
module <%= version %>
|
|
24
|
-
class <%= domain[:domain] %>
|
|
25
|
-
<% if domain[:events] %>
|
|
26
|
-
EVENTS = {
|
|
27
|
-
<% domain[:events].each do |event| %>
|
|
28
|
-
<%= h.snake_case(event[:name]) %>: '<%= event[:name] %>',
|
|
29
|
-
<% end %>
|
|
30
|
-
}.freeze
|
|
31
|
-
<% end %>
|
|
32
|
-
|
|
33
|
-
def initialize(devtools)
|
|
34
|
-
@devtools = devtools
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def on(event, &block)
|
|
38
|
-
event = EVENTS[event] if event.is_a?(Symbol)
|
|
39
|
-
@devtools.callbacks["<%= domain[:domain] %>.#{event}"] << block
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
<% domain[:commands].each do |command| %>
|
|
43
|
-
<% if command[:parameters] %>
|
|
44
|
-
def <%= h.snake_case(command[:name]) %>(<%= h.kwargs(command[:parameters]) %>)
|
|
45
|
-
<% else %>
|
|
46
|
-
def <%= h.snake_case(command[:name]) %>
|
|
47
|
-
<% end %>
|
|
48
|
-
<% if command[:parameters] %>
|
|
49
|
-
@devtools.send_cmd('<%= domain[:domain] %>.<%= command[:name] %>',
|
|
50
|
-
<% until command[:parameters].empty? %>
|
|
51
|
-
<% parameter = command[:parameters].shift %>
|
|
52
|
-
<%= parameter[:name] %>: <%= h.snake_case(parameter[:name]) %><%= command[:parameters].empty? ? ')' : ',' %>
|
|
53
|
-
<% end %>
|
|
54
|
-
<% else %>
|
|
55
|
-
@devtools.send_cmd('<%= domain[:domain] %>.<%= command[:name] %>')
|
|
56
|
-
<% end %>
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
<% end %>
|
|
60
|
-
end # <%= domain[:domain] %>
|
|
61
|
-
end # <%= version %>
|
|
62
|
-
end # DevTools
|
|
63
|
-
end # Selenium
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Licensed to the Software Freedom Conservancy (SFC) under one
|
|
4
|
-
# or more contributor license agreements. See the NOTICE file
|
|
5
|
-
# distributed with this work for additional information
|
|
6
|
-
# regarding copyright ownership. The SFC licenses this file
|
|
7
|
-
# to you under the Apache License, Version 2.0 (the
|
|
8
|
-
# "License"); you may not use this file except in compliance
|
|
9
|
-
# with the License. You may obtain a copy of the License at
|
|
10
|
-
#
|
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
#
|
|
13
|
-
# Unless required by applicable law or agreed to in writing,
|
|
14
|
-
# software distributed under the License is distributed on an
|
|
15
|
-
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
16
|
-
# KIND, either express or implied. See the License for the
|
|
17
|
-
# specific language governing permissions and limitations
|
|
18
|
-
# under the License.
|
|
19
|
-
|
|
20
|
-
require 'erb'
|
|
21
|
-
require 'fileutils'
|
|
22
|
-
require 'json'
|
|
23
|
-
|
|
24
|
-
module Selenium
|
|
25
|
-
module WebDriver
|
|
26
|
-
module Support
|
|
27
|
-
class CDPClientGenerator
|
|
28
|
-
# Input JSON files are generated from PDL tasks.
|
|
29
|
-
TEMPLATE_PATH = File.expand_path('cdp/domain.rb.erb', __dir__)
|
|
30
|
-
|
|
31
|
-
RESERVED_KEYWORDS = %w[end].freeze
|
|
32
|
-
|
|
33
|
-
def call(output_dir:, version:, browser_protocol_path: nil, js_protocol_path: nil, loader_path: nil, **)
|
|
34
|
-
@template = ERB.new(File.read(TEMPLATE_PATH))
|
|
35
|
-
@output_dir = output_dir
|
|
36
|
-
@loader_path = loader_path || "#{@output_dir}.rb"
|
|
37
|
-
@version = version
|
|
38
|
-
|
|
39
|
-
browser_protocol_path ||= File.expand_path('cdp/browser_protocol.json', __dir__)
|
|
40
|
-
js_protocol_path ||= File.expand_path('cdp/js_protocol.json', __dir__)
|
|
41
|
-
|
|
42
|
-
browser_protocol = JSON.parse(File.read(browser_protocol_path), symbolize_names: true)
|
|
43
|
-
js_protocol = JSON.parse(File.read(js_protocol_path), symbolize_names: true)
|
|
44
|
-
|
|
45
|
-
FileUtils.mkdir_p(@output_dir)
|
|
46
|
-
|
|
47
|
-
browser_protocol[:domains].each { |domain| process_domain(domain) }
|
|
48
|
-
js_protocol[:domains].each { |domain| process_domain(domain) }
|
|
49
|
-
require_file
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def process_domain(domain)
|
|
53
|
-
result = @template.result_with_hash(domain: domain, version: @version.upcase, h: self)
|
|
54
|
-
filename = File.join(@output_dir, "#{snake_case(domain[:domain])}.rb")
|
|
55
|
-
File.write(filename, remove_empty_lines(result))
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def snake_case(string)
|
|
59
|
-
name = string.gsub('JavaScript', 'Javascript')
|
|
60
|
-
.gsub(/([A-Z]+)([A-Z][a-z]{2,})/, '\1_\2')
|
|
61
|
-
.gsub(/([a-z\d])([A-Z])/, '\1_\2')
|
|
62
|
-
.downcase
|
|
63
|
-
# Certain CDP parameters conflict with Ruby keywords
|
|
64
|
-
# so we prefix the name with underscore.
|
|
65
|
-
name = "_#{name}" if RESERVED_KEYWORDS.include?(name)
|
|
66
|
-
|
|
67
|
-
name
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
def kwargs(parameters)
|
|
71
|
-
parameters = parameters.map do |parameter|
|
|
72
|
-
if parameter[:optional]
|
|
73
|
-
"#{snake_case(parameter[:name])}: nil"
|
|
74
|
-
else
|
|
75
|
-
"#{snake_case(parameter[:name])}:"
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
parameters.join(', ')
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
def remove_empty_lines(string)
|
|
82
|
-
string.split("\n").grep_v(/^\s+$/).join("\n")
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def require_file
|
|
86
|
-
# rubocop:disable Lint/InterpolationCheck
|
|
87
|
-
dynamic_location = '#{File.dirname(File.absolute_path(__FILE__))}'
|
|
88
|
-
# rubocop:enable Lint/InterpolationCheck
|
|
89
|
-
|
|
90
|
-
require_all = "Dir.glob(\"#{dynamic_location}/#{@version}/*\", &method(:require))"
|
|
91
|
-
File.write(@loader_path, require_all)
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
if $PROGRAM_NAME == __FILE__
|
|
99
|
-
browser_protocol_path, js_protocol_path, output_dir, loader_path, version = *ARGV
|
|
100
|
-
|
|
101
|
-
Selenium::WebDriver::Support::CDPClientGenerator.new.call(
|
|
102
|
-
browser_protocol_path: browser_protocol_path,
|
|
103
|
-
js_protocol_path: js_protocol_path,
|
|
104
|
-
output_dir: output_dir,
|
|
105
|
-
loader_path: loader_path,
|
|
106
|
-
version: version
|
|
107
|
-
)
|
|
108
|
-
end
|