selenium-webdriver 4.1.0 → 4.15.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 +304 -1
- data/Gemfile +2 -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 +36 -39
- data/lib/selenium/webdriver/atoms/findElements.js +3 -4
- data/lib/selenium/webdriver/atoms/getAttribute.js +0 -0
- data/lib/selenium/webdriver/atoms/isDisplayed.js +0 -0
- 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_network_connection.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 +51 -0
- data/lib/selenium/webdriver/bidi.rb +56 -0
- data/lib/selenium/webdriver/chrome/driver.rb +9 -29
- data/lib/selenium/webdriver/chrome/features.rb +9 -67
- data/lib/selenium/webdriver/chrome/options.rb +3 -223
- 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 -16
- 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 +62 -22
- data/lib/selenium/webdriver/common/child_process.rb +124 -0
- data/lib/selenium/webdriver/common/driver.rb +31 -81
- 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_location.rb → has_bidi.rb} +9 -10
- data/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +10 -1
- data/lib/selenium/webdriver/common/driver_extensions/has_cdp.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_context.rb +1 -4
- 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 +1 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +2 -69
- data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +1 -3
- data/lib/selenium/webdriver/common/driver_finder.rb +45 -0
- data/lib/selenium/webdriver/common/element.rb +8 -8
- data/lib/selenium/webdriver/common/error.rb +28 -5
- data/lib/selenium/webdriver/common/html5/shared_web_storage.rb +2 -2
- data/lib/selenium/webdriver/common/interactions/input_device.rb +10 -4
- data/lib/selenium/webdriver/common/interactions/interaction.rb +12 -25
- data/lib/selenium/webdriver/common/interactions/interactions.rb +24 -4
- data/lib/selenium/webdriver/common/interactions/key_actions.rb +5 -1
- data/lib/selenium/webdriver/common/interactions/key_input.rb +11 -27
- data/lib/selenium/webdriver/common/interactions/none_input.rb +10 -8
- data/lib/selenium/webdriver/common/interactions/pause.rb +49 -0
- data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +59 -70
- data/lib/selenium/webdriver/common/interactions/pointer_cancel.rb +45 -0
- data/lib/selenium/webdriver/common/interactions/pointer_event_properties.rb +63 -0
- data/lib/selenium/webdriver/common/interactions/pointer_input.rb +15 -84
- data/lib/selenium/webdriver/common/interactions/pointer_move.rb +60 -0
- data/lib/selenium/webdriver/common/interactions/pointer_press.rb +85 -0
- data/lib/selenium/webdriver/common/interactions/scroll.rb +59 -0
- data/lib/selenium/webdriver/common/interactions/scroll_origin.rb +48 -0
- data/lib/selenium/webdriver/common/interactions/typing_interaction.rb +54 -0
- data/lib/selenium/webdriver/common/interactions/wheel_actions.rb +113 -0
- data/lib/selenium/webdriver/common/interactions/wheel_input.rb +42 -0
- data/lib/selenium/webdriver/common/keys.rb +1 -0
- data/lib/selenium/webdriver/common/local_driver.rb +46 -0
- data/lib/selenium/webdriver/common/logger.rb +90 -25
- data/lib/selenium/webdriver/common/manager.rb +0 -27
- data/lib/selenium/webdriver/common/options.rb +17 -17
- data/lib/selenium/webdriver/common/platform.rb +5 -51
- 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/search_context.rb +0 -6
- data/lib/selenium/webdriver/common/selenium_manager.rb +134 -0
- data/lib/selenium/webdriver/common/service.rb +21 -30
- data/lib/selenium/webdriver/common/service_manager.rb +8 -15
- data/lib/selenium/webdriver/common/shadow_root.rb +2 -3
- data/lib/selenium/webdriver/common/socket_lock.rb +3 -3
- data/lib/selenium/webdriver/common/socket_poller.rb +2 -2
- 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 +85 -0
- data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb +72 -0
- data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb +62 -0
- data/lib/selenium/webdriver/common/websocket_connection.rb +164 -0
- data/lib/selenium/webdriver/common/window.rb +6 -6
- data/lib/selenium/webdriver/common/zipper.rb +1 -1
- data/lib/selenium/webdriver/common.rb +22 -5
- 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 +173 -0
- data/lib/selenium/webdriver/devtools/pinned_script.rb +0 -2
- data/lib/selenium/webdriver/devtools/request.rb +1 -3
- data/lib/selenium/webdriver/devtools/response.rb +1 -3
- data/lib/selenium/webdriver/devtools.rb +17 -114
- data/lib/selenium/webdriver/edge/driver.rb +9 -3
- data/lib/selenium/webdriver/edge/features.rb +8 -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 +9 -2
- data/lib/selenium/webdriver/firefox/features.rb +11 -7
- data/lib/selenium/webdriver/firefox/options.rb +7 -16
- data/lib/selenium/webdriver/firefox/profile.rb +8 -12
- data/lib/selenium/webdriver/firefox/service.rb +0 -18
- data/lib/selenium/webdriver/firefox/util.rb +46 -0
- data/lib/selenium/webdriver/firefox.rb +1 -14
- data/lib/selenium/webdriver/ie/driver.rb +7 -1
- data/lib/selenium/webdriver/{common/driver_extensions/has_remote_status.rb → ie/features.rb} +10 -7
- 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 -17
- data/lib/selenium/webdriver/remote/{commands.rb → bridge/commands.rb} +10 -9
- data/lib/selenium/webdriver/remote/bridge.rb +63 -52
- data/lib/selenium/webdriver/remote/capabilities.rb +3 -53
- data/lib/selenium/webdriver/remote/driver.rb +35 -14
- 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 +8 -14
- data/lib/selenium/webdriver/remote/response.rb +2 -3
- 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 -15
- data/lib/selenium/webdriver/support/color.rb +22 -22
- data/lib/selenium/webdriver/support/guards/guard.rb +6 -5
- data/lib/selenium/webdriver/support/guards/guard_condition.rb +1 -3
- data/lib/selenium/webdriver/support/guards.rb +2 -2
- data/lib/selenium/webdriver/support/relative_locator.rb +0 -1
- data/lib/selenium/webdriver/support/select.rb +3 -1
- data/lib/selenium/webdriver/version.rb +1 -1
- data/lib/selenium/webdriver.rb +6 -4
- data/selenium-webdriver.gemspec +14 -12
- metadata +76 -65
- data/lib/selenium/webdriver/remote/http/persistent.rb +0 -65
- 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.15.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-11-01 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
|
|
@@ -59,6 +39,9 @@ dependencies:
|
|
|
59
39
|
- - ">="
|
|
60
40
|
- !ruby/object:Gem::Version
|
|
61
41
|
version: 1.2.2
|
|
42
|
+
- - "<"
|
|
43
|
+
- !ruby/object:Gem::Version
|
|
44
|
+
version: '3.0'
|
|
62
45
|
type: :runtime
|
|
63
46
|
prerelease: false
|
|
64
47
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -66,34 +49,23 @@ dependencies:
|
|
|
66
49
|
- - ">="
|
|
67
50
|
- !ruby/object:Gem::Version
|
|
68
51
|
version: 1.2.2
|
|
69
|
-
-
|
|
70
|
-
name: ffi
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - ">="
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - ">="
|
|
52
|
+
- - "<"
|
|
81
53
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0'
|
|
54
|
+
version: '3.0'
|
|
83
55
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
56
|
+
name: websocket
|
|
85
57
|
requirement: !ruby/object:Gem::Requirement
|
|
86
58
|
requirements:
|
|
87
59
|
- - "~>"
|
|
88
60
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0
|
|
90
|
-
type: :
|
|
61
|
+
version: '1.0'
|
|
62
|
+
type: :runtime
|
|
91
63
|
prerelease: false
|
|
92
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
65
|
requirements:
|
|
94
66
|
- - "~>"
|
|
95
67
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0
|
|
68
|
+
version: '1.0'
|
|
97
69
|
- !ruby/object:Gem::Dependency
|
|
98
70
|
name: rack
|
|
99
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -112,16 +84,16 @@ dependencies:
|
|
|
112
84
|
name: rake
|
|
113
85
|
requirement: !ruby/object:Gem::Requirement
|
|
114
86
|
requirements:
|
|
115
|
-
- - "
|
|
87
|
+
- - "~>"
|
|
116
88
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '0'
|
|
89
|
+
version: '13.0'
|
|
118
90
|
type: :development
|
|
119
91
|
prerelease: false
|
|
120
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
93
|
requirements:
|
|
122
|
-
- - "
|
|
94
|
+
- - "~>"
|
|
123
95
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '0'
|
|
96
|
+
version: '13.0'
|
|
125
97
|
- !ruby/object:Gem::Dependency
|
|
126
98
|
name: rspec
|
|
127
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -142,42 +114,42 @@ dependencies:
|
|
|
142
114
|
requirements:
|
|
143
115
|
- - "~>"
|
|
144
116
|
- !ruby/object:Gem::Version
|
|
145
|
-
version: 1.
|
|
117
|
+
version: '1.42'
|
|
146
118
|
type: :development
|
|
147
119
|
prerelease: false
|
|
148
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
121
|
requirements:
|
|
150
122
|
- - "~>"
|
|
151
123
|
- !ruby/object:Gem::Version
|
|
152
|
-
version: 1.
|
|
124
|
+
version: '1.42'
|
|
153
125
|
- !ruby/object:Gem::Dependency
|
|
154
126
|
name: rubocop-performance
|
|
155
127
|
requirement: !ruby/object:Gem::Requirement
|
|
156
128
|
requirements:
|
|
157
|
-
- - "
|
|
129
|
+
- - "~>"
|
|
158
130
|
- !ruby/object:Gem::Version
|
|
159
|
-
version: '
|
|
131
|
+
version: '1.15'
|
|
160
132
|
type: :development
|
|
161
133
|
prerelease: false
|
|
162
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
163
135
|
requirements:
|
|
164
|
-
- - "
|
|
136
|
+
- - "~>"
|
|
165
137
|
- !ruby/object:Gem::Version
|
|
166
|
-
version: '
|
|
138
|
+
version: '1.15'
|
|
167
139
|
- !ruby/object:Gem::Dependency
|
|
168
140
|
name: rubocop-rspec
|
|
169
141
|
requirement: !ruby/object:Gem::Requirement
|
|
170
142
|
requirements:
|
|
171
|
-
- - "
|
|
143
|
+
- - "~>"
|
|
172
144
|
- !ruby/object:Gem::Version
|
|
173
|
-
version: '
|
|
145
|
+
version: '2.16'
|
|
174
146
|
type: :development
|
|
175
147
|
prerelease: false
|
|
176
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
177
149
|
requirements:
|
|
178
|
-
- - "
|
|
150
|
+
- - "~>"
|
|
179
151
|
- !ruby/object:Gem::Version
|
|
180
|
-
version: '
|
|
152
|
+
version: '2.16'
|
|
181
153
|
- !ruby/object:Gem::Dependency
|
|
182
154
|
name: webmock
|
|
183
155
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -237,6 +209,9 @@ files:
|
|
|
237
209
|
- LICENSE
|
|
238
210
|
- NOTICE
|
|
239
211
|
- README.md
|
|
212
|
+
- bin/linux/selenium-manager
|
|
213
|
+
- bin/macos/selenium-manager
|
|
214
|
+
- bin/windows/selenium-manager.exe
|
|
240
215
|
- lib/selenium-webdriver.rb
|
|
241
216
|
- lib/selenium/server.rb
|
|
242
217
|
- lib/selenium/webdriver.rb
|
|
@@ -245,40 +220,57 @@ files:
|
|
|
245
220
|
- lib/selenium/webdriver/atoms/getAttribute.js
|
|
246
221
|
- lib/selenium/webdriver/atoms/isDisplayed.js
|
|
247
222
|
- lib/selenium/webdriver/atoms/mutationListener.js
|
|
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
|
|
233
|
+
- lib/selenium/webdriver/bidi/session.rb
|
|
248
234
|
- lib/selenium/webdriver/chrome.rb
|
|
249
235
|
- lib/selenium/webdriver/chrome/driver.rb
|
|
250
236
|
- lib/selenium/webdriver/chrome/features.rb
|
|
251
237
|
- lib/selenium/webdriver/chrome/options.rb
|
|
252
238
|
- lib/selenium/webdriver/chrome/profile.rb
|
|
253
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
|
|
254
245
|
- lib/selenium/webdriver/common.rb
|
|
255
246
|
- lib/selenium/webdriver/common/action_builder.rb
|
|
256
247
|
- lib/selenium/webdriver/common/alert.rb
|
|
248
|
+
- lib/selenium/webdriver/common/child_process.rb
|
|
257
249
|
- lib/selenium/webdriver/common/driver.rb
|
|
258
250
|
- lib/selenium/webdriver/common/driver_extensions/downloads_files.rb
|
|
259
251
|
- lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb
|
|
260
252
|
- lib/selenium/webdriver/common/driver_extensions/has_addons.rb
|
|
261
253
|
- lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb
|
|
262
254
|
- lib/selenium/webdriver/common/driver_extensions/has_authentication.rb
|
|
255
|
+
- lib/selenium/webdriver/common/driver_extensions/has_bidi.rb
|
|
263
256
|
- lib/selenium/webdriver/common/driver_extensions/has_casting.rb
|
|
264
257
|
- lib/selenium/webdriver/common/driver_extensions/has_cdp.rb
|
|
265
258
|
- lib/selenium/webdriver/common/driver_extensions/has_context.rb
|
|
266
259
|
- lib/selenium/webdriver/common/driver_extensions/has_debugger.rb
|
|
267
260
|
- lib/selenium/webdriver/common/driver_extensions/has_devtools.rb
|
|
261
|
+
- lib/selenium/webdriver/common/driver_extensions/has_file_downloads.rb
|
|
268
262
|
- lib/selenium/webdriver/common/driver_extensions/has_launching.rb
|
|
269
|
-
- lib/selenium/webdriver/common/driver_extensions/has_location.rb
|
|
270
263
|
- lib/selenium/webdriver/common/driver_extensions/has_log_events.rb
|
|
271
264
|
- lib/selenium/webdriver/common/driver_extensions/has_logs.rb
|
|
272
265
|
- lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb
|
|
273
|
-
- lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb
|
|
274
266
|
- lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
|
|
275
267
|
- lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
|
|
276
268
|
- lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
|
|
277
|
-
- lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
|
|
278
269
|
- lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
|
|
279
270
|
- lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
|
|
280
271
|
- lib/selenium/webdriver/common/driver_extensions/prints_page.rb
|
|
281
272
|
- lib/selenium/webdriver/common/driver_extensions/uploads_files.rb
|
|
273
|
+
- lib/selenium/webdriver/common/driver_finder.rb
|
|
282
274
|
- lib/selenium/webdriver/common/element.rb
|
|
283
275
|
- lib/selenium/webdriver/common/error.rb
|
|
284
276
|
- lib/selenium/webdriver/common/file_reaper.rb
|
|
@@ -291,9 +283,20 @@ files:
|
|
|
291
283
|
- lib/selenium/webdriver/common/interactions/key_actions.rb
|
|
292
284
|
- lib/selenium/webdriver/common/interactions/key_input.rb
|
|
293
285
|
- lib/selenium/webdriver/common/interactions/none_input.rb
|
|
286
|
+
- lib/selenium/webdriver/common/interactions/pause.rb
|
|
294
287
|
- lib/selenium/webdriver/common/interactions/pointer_actions.rb
|
|
288
|
+
- lib/selenium/webdriver/common/interactions/pointer_cancel.rb
|
|
289
|
+
- lib/selenium/webdriver/common/interactions/pointer_event_properties.rb
|
|
295
290
|
- lib/selenium/webdriver/common/interactions/pointer_input.rb
|
|
291
|
+
- lib/selenium/webdriver/common/interactions/pointer_move.rb
|
|
292
|
+
- lib/selenium/webdriver/common/interactions/pointer_press.rb
|
|
293
|
+
- lib/selenium/webdriver/common/interactions/scroll.rb
|
|
294
|
+
- lib/selenium/webdriver/common/interactions/scroll_origin.rb
|
|
295
|
+
- lib/selenium/webdriver/common/interactions/typing_interaction.rb
|
|
296
|
+
- lib/selenium/webdriver/common/interactions/wheel_actions.rb
|
|
297
|
+
- lib/selenium/webdriver/common/interactions/wheel_input.rb
|
|
296
298
|
- lib/selenium/webdriver/common/keys.rb
|
|
299
|
+
- lib/selenium/webdriver/common/local_driver.rb
|
|
297
300
|
- lib/selenium/webdriver/common/log_entry.rb
|
|
298
301
|
- lib/selenium/webdriver/common/logger.rb
|
|
299
302
|
- lib/selenium/webdriver/common/logs.rb
|
|
@@ -305,6 +308,7 @@ files:
|
|
|
305
308
|
- lib/selenium/webdriver/common/profile_helper.rb
|
|
306
309
|
- lib/selenium/webdriver/common/proxy.rb
|
|
307
310
|
- lib/selenium/webdriver/common/search_context.rb
|
|
311
|
+
- lib/selenium/webdriver/common/selenium_manager.rb
|
|
308
312
|
- lib/selenium/webdriver/common/service.rb
|
|
309
313
|
- lib/selenium/webdriver/common/service_manager.rb
|
|
310
314
|
- lib/selenium/webdriver/common/shadow_root.rb
|
|
@@ -313,13 +317,18 @@ files:
|
|
|
313
317
|
- lib/selenium/webdriver/common/takes_screenshot.rb
|
|
314
318
|
- lib/selenium/webdriver/common/target_locator.rb
|
|
315
319
|
- lib/selenium/webdriver/common/timeouts.rb
|
|
320
|
+
- lib/selenium/webdriver/common/virtual_authenticator/credential.rb
|
|
321
|
+
- lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb
|
|
322
|
+
- lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb
|
|
316
323
|
- lib/selenium/webdriver/common/wait.rb
|
|
324
|
+
- lib/selenium/webdriver/common/websocket_connection.rb
|
|
317
325
|
- lib/selenium/webdriver/common/window.rb
|
|
318
326
|
- lib/selenium/webdriver/common/zipper.rb
|
|
319
327
|
- lib/selenium/webdriver/devtools.rb
|
|
320
328
|
- lib/selenium/webdriver/devtools/console_event.rb
|
|
321
329
|
- lib/selenium/webdriver/devtools/exception_event.rb
|
|
322
330
|
- lib/selenium/webdriver/devtools/mutation_event.rb
|
|
331
|
+
- lib/selenium/webdriver/devtools/network_interceptor.rb
|
|
323
332
|
- lib/selenium/webdriver/devtools/pinned_script.rb
|
|
324
333
|
- lib/selenium/webdriver/devtools/request.rb
|
|
325
334
|
- lib/selenium/webdriver/devtools/response.rb
|
|
@@ -337,19 +346,21 @@ files:
|
|
|
337
346
|
- lib/selenium/webdriver/firefox/profile.rb
|
|
338
347
|
- lib/selenium/webdriver/firefox/profiles_ini.rb
|
|
339
348
|
- lib/selenium/webdriver/firefox/service.rb
|
|
349
|
+
- lib/selenium/webdriver/firefox/util.rb
|
|
340
350
|
- lib/selenium/webdriver/ie.rb
|
|
341
351
|
- lib/selenium/webdriver/ie/driver.rb
|
|
352
|
+
- lib/selenium/webdriver/ie/features.rb
|
|
342
353
|
- lib/selenium/webdriver/ie/options.rb
|
|
343
354
|
- lib/selenium/webdriver/ie/service.rb
|
|
344
355
|
- lib/selenium/webdriver/remote.rb
|
|
345
356
|
- lib/selenium/webdriver/remote/bridge.rb
|
|
357
|
+
- lib/selenium/webdriver/remote/bridge/commands.rb
|
|
346
358
|
- lib/selenium/webdriver/remote/capabilities.rb
|
|
347
|
-
- lib/selenium/webdriver/remote/commands.rb
|
|
348
359
|
- lib/selenium/webdriver/remote/driver.rb
|
|
360
|
+
- lib/selenium/webdriver/remote/features.rb
|
|
349
361
|
- lib/selenium/webdriver/remote/http/common.rb
|
|
350
362
|
- lib/selenium/webdriver/remote/http/curb.rb
|
|
351
363
|
- lib/selenium/webdriver/remote/http/default.rb
|
|
352
|
-
- lib/selenium/webdriver/remote/http/persistent.rb
|
|
353
364
|
- lib/selenium/webdriver/remote/response.rb
|
|
354
365
|
- lib/selenium/webdriver/remote/server_error.rb
|
|
355
366
|
- lib/selenium/webdriver/safari.rb
|
|
@@ -360,8 +371,6 @@ files:
|
|
|
360
371
|
- lib/selenium/webdriver/support.rb
|
|
361
372
|
- lib/selenium/webdriver/support/abstract_event_listener.rb
|
|
362
373
|
- lib/selenium/webdriver/support/block_event_listener.rb
|
|
363
|
-
- lib/selenium/webdriver/support/cdp/domain.rb.erb
|
|
364
|
-
- lib/selenium/webdriver/support/cdp_client_generator.rb
|
|
365
374
|
- lib/selenium/webdriver/support/color.rb
|
|
366
375
|
- lib/selenium/webdriver/support/escaper.rb
|
|
367
376
|
- lib/selenium/webdriver/support/event_firing_bridge.rb
|
|
@@ -377,8 +386,10 @@ licenses:
|
|
|
377
386
|
- Apache-2.0
|
|
378
387
|
metadata:
|
|
379
388
|
changelog_uri: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES
|
|
389
|
+
github_repo: ssh://github.com/SeleniumHQ/selenium
|
|
380
390
|
source_code_uri: https://github.com/SeleniumHQ/selenium/tree/trunk/rb
|
|
381
|
-
|
|
391
|
+
rubygems_mfa_required: 'true'
|
|
392
|
+
post_install_message:
|
|
382
393
|
rdoc_options: []
|
|
383
394
|
require_paths:
|
|
384
395
|
- lib
|
|
@@ -386,15 +397,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
386
397
|
requirements:
|
|
387
398
|
- - ">="
|
|
388
399
|
- !ruby/object:Gem::Version
|
|
389
|
-
version: '
|
|
400
|
+
version: '3.0'
|
|
390
401
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
391
402
|
requirements:
|
|
392
403
|
- - ">"
|
|
393
404
|
- !ruby/object:Gem::Version
|
|
394
405
|
version: 1.3.1
|
|
395
406
|
requirements: []
|
|
396
|
-
rubygems_version: 3.
|
|
397
|
-
signing_key:
|
|
407
|
+
rubygems_version: 3.2.33
|
|
408
|
+
signing_key:
|
|
398
409
|
specification_version: 4
|
|
399
410
|
summary: Selenium is a browser automation tool for automated testing of webapps and
|
|
400
411
|
more
|
|
@@ -1,65 +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 'net/http/persistent'
|
|
21
|
-
|
|
22
|
-
module Selenium
|
|
23
|
-
module WebDriver
|
|
24
|
-
module Remote
|
|
25
|
-
module Http
|
|
26
|
-
# @api private
|
|
27
|
-
class Persistent < Default
|
|
28
|
-
def initialize(open_timeout: nil, read_timeout: nil)
|
|
29
|
-
WebDriver.logger.deprecate("Selenium::WebDriver::Remote::Http::Persistent",
|
|
30
|
-
id: :http_persistent) { "The default HTTP client now uses persistence." }
|
|
31
|
-
super
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def close
|
|
35
|
-
@http&.shutdown
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
private
|
|
39
|
-
|
|
40
|
-
def start(*)
|
|
41
|
-
# no need to explicitly start connection
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def new_http_client
|
|
45
|
-
proxy = nil
|
|
46
|
-
|
|
47
|
-
if @proxy
|
|
48
|
-
unless @proxy.respond_to?(:http)
|
|
49
|
-
url = @proxy.http
|
|
50
|
-
raise Error::WebDriverError, "expected HTTP proxy, got #{@proxy.inspect}" unless url
|
|
51
|
-
end
|
|
52
|
-
proxy = URI.parse(url)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
Net::HTTP::Persistent.new name: 'webdriver', proxy: proxy
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def response_for(request)
|
|
59
|
-
http.request server_url, request
|
|
60
|
-
end
|
|
61
|
-
end # Persistent
|
|
62
|
-
end # Http
|
|
63
|
-
end # Remote
|
|
64
|
-
end # WebDriver
|
|
65
|
-
end # Selenium
|
|
@@ -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(&method(:process_domain))
|
|
48
|
-
js_protocol[:domains].each(&method(:process_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").reject { |l| l =~ /^\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.open(@loader_path, 'w') { |file| file.write(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
|