selenium-webdriver 4.1.0 → 4.9.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.
Files changed (153) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +221 -1
  3. data/LICENSE +1 -1
  4. data/NOTICE +1 -1
  5. data/bin/linux/selenium-manager +0 -0
  6. data/bin/macos/selenium-manager +0 -0
  7. data/bin/windows/selenium-manager.exe +0 -0
  8. data/lib/selenium/server.rb +35 -26
  9. data/lib/selenium/webdriver/atoms/findElements.js +0 -0
  10. data/lib/selenium/webdriver/atoms/getAttribute.js +0 -0
  11. data/lib/selenium/webdriver/atoms/isDisplayed.js +0 -0
  12. data/lib/selenium/webdriver/atoms/mutationListener.js +0 -0
  13. data/lib/selenium/webdriver/atoms.rb +2 -3
  14. data/lib/selenium/webdriver/bidi/browsing_context.rb +88 -0
  15. data/lib/selenium/webdriver/bidi/browsing_context_info.rb +35 -0
  16. data/lib/selenium/webdriver/bidi/log/base_log_entry.rb +35 -0
  17. data/lib/selenium/webdriver/bidi/log/console_log_entry.rb +35 -0
  18. data/lib/selenium/webdriver/bidi/log/filter_by.rb +40 -0
  19. data/lib/selenium/webdriver/bidi/log/generic_log_entry.rb +33 -0
  20. data/lib/selenium/webdriver/bidi/log/javascript_log_entry.rb +33 -0
  21. data/lib/selenium/webdriver/bidi/log_inspector.rb +143 -0
  22. data/lib/selenium/webdriver/bidi/navigate_result.rb +33 -0
  23. data/lib/selenium/webdriver/bidi/session.rb +51 -0
  24. data/lib/selenium/webdriver/bidi.rb +56 -0
  25. data/lib/selenium/webdriver/chrome/driver.rb +9 -29
  26. data/lib/selenium/webdriver/chrome/features.rb +6 -68
  27. data/lib/selenium/webdriver/chrome/options.rb +3 -223
  28. data/lib/selenium/webdriver/chrome/profile.rb +3 -83
  29. data/lib/selenium/webdriver/chrome/service.rb +3 -23
  30. data/lib/selenium/webdriver/chrome.rb +0 -14
  31. data/lib/selenium/webdriver/chromium/driver.rb +61 -0
  32. data/lib/selenium/webdriver/chromium/features.rb +103 -0
  33. data/lib/selenium/webdriver/chromium/options.rb +261 -0
  34. data/lib/selenium/webdriver/chromium/profile.rb +113 -0
  35. data/lib/selenium/webdriver/chromium/service.rb +42 -0
  36. data/lib/selenium/webdriver/chromium.rb +32 -0
  37. data/lib/selenium/webdriver/common/action_builder.rb +72 -22
  38. data/lib/selenium/webdriver/common/child_process.rb +124 -0
  39. data/lib/selenium/webdriver/common/driver.rb +36 -74
  40. data/lib/selenium/webdriver/common/driver_extensions/downloads_files.rb +0 -2
  41. data/lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb +0 -1
  42. data/lib/selenium/webdriver/common/driver_extensions/has_addons.rb +0 -2
  43. data/lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb +0 -2
  44. data/lib/selenium/webdriver/common/driver_extensions/has_authentication.rb +0 -2
  45. data/lib/selenium/webdriver/common/driver_extensions/{has_remote_status.rb → has_bidi.rb} +10 -5
  46. data/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +10 -1
  47. data/lib/selenium/webdriver/common/driver_extensions/has_cdp.rb +0 -2
  48. data/lib/selenium/webdriver/common/driver_extensions/has_context.rb +1 -4
  49. data/lib/selenium/webdriver/common/driver_extensions/has_debugger.rb +0 -2
  50. data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +0 -2
  51. data/lib/selenium/webdriver/common/driver_extensions/has_launching.rb +0 -2
  52. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +1 -2
  53. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +1 -2
  54. data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +0 -2
  55. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +2 -69
  56. data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +0 -2
  57. data/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +1 -3
  58. data/lib/selenium/webdriver/common/driver_finder.rb +43 -0
  59. data/lib/selenium/webdriver/common/element.rb +8 -8
  60. data/lib/selenium/webdriver/common/error.rb +1 -3
  61. data/lib/selenium/webdriver/common/html5/shared_web_storage.rb +2 -2
  62. data/lib/selenium/webdriver/common/interactions/input_device.rb +10 -4
  63. data/lib/selenium/webdriver/common/interactions/interaction.rb +12 -25
  64. data/lib/selenium/webdriver/common/interactions/interactions.rb +24 -4
  65. data/lib/selenium/webdriver/common/interactions/key_actions.rb +5 -1
  66. data/lib/selenium/webdriver/common/interactions/key_input.rb +11 -27
  67. data/lib/selenium/webdriver/common/interactions/none_input.rb +10 -8
  68. data/lib/selenium/webdriver/common/interactions/pause.rb +49 -0
  69. data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +59 -70
  70. data/lib/selenium/webdriver/common/interactions/pointer_cancel.rb +45 -0
  71. data/lib/selenium/webdriver/common/interactions/pointer_event_properties.rb +63 -0
  72. data/lib/selenium/webdriver/common/interactions/pointer_input.rb +15 -84
  73. data/lib/selenium/webdriver/common/interactions/pointer_move.rb +60 -0
  74. data/lib/selenium/webdriver/common/interactions/pointer_press.rb +85 -0
  75. data/lib/selenium/webdriver/common/interactions/scroll.rb +59 -0
  76. data/lib/selenium/webdriver/common/interactions/scroll_origin.rb +48 -0
  77. data/lib/selenium/webdriver/common/interactions/typing_interaction.rb +54 -0
  78. data/lib/selenium/webdriver/common/interactions/wheel_actions.rb +113 -0
  79. data/lib/selenium/webdriver/common/interactions/wheel_input.rb +42 -0
  80. data/lib/selenium/webdriver/common/keys.rb +1 -0
  81. data/lib/selenium/webdriver/common/local_driver.rb +55 -0
  82. data/lib/selenium/webdriver/common/logger.rb +10 -2
  83. data/lib/selenium/webdriver/common/manager.rb +0 -27
  84. data/lib/selenium/webdriver/common/options.rb +32 -17
  85. data/lib/selenium/webdriver/common/platform.rb +8 -5
  86. data/lib/selenium/webdriver/common/profile_helper.rb +1 -1
  87. data/lib/selenium/webdriver/common/proxy.rb +1 -1
  88. data/lib/selenium/webdriver/common/search_context.rb +0 -6
  89. data/lib/selenium/webdriver/common/selenium_manager.rb +108 -0
  90. data/lib/selenium/webdriver/common/service.rb +11 -22
  91. data/lib/selenium/webdriver/common/service_manager.rb +5 -14
  92. data/lib/selenium/webdriver/common/shadow_root.rb +2 -3
  93. data/lib/selenium/webdriver/common/socket_lock.rb +2 -2
  94. data/lib/selenium/webdriver/common/socket_poller.rb +1 -1
  95. data/lib/selenium/webdriver/common/takes_screenshot.rb +2 -3
  96. data/lib/selenium/webdriver/common/target_locator.rb +2 -3
  97. data/lib/selenium/webdriver/common/timeouts.rb +2 -2
  98. data/lib/selenium/webdriver/common/virtual_authenticator/credential.rb +85 -0
  99. data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb +72 -0
  100. data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb +62 -0
  101. data/lib/selenium/webdriver/common/websocket_connection.rb +164 -0
  102. data/lib/selenium/webdriver/common/window.rb +6 -6
  103. data/lib/selenium/webdriver/common/zipper.rb +1 -1
  104. data/lib/selenium/webdriver/common.rb +21 -3
  105. data/lib/selenium/webdriver/devtools/console_event.rb +0 -2
  106. data/lib/selenium/webdriver/devtools/exception_event.rb +0 -2
  107. data/lib/selenium/webdriver/devtools/mutation_event.rb +0 -2
  108. data/lib/selenium/webdriver/devtools/network_interceptor.rb +173 -0
  109. data/lib/selenium/webdriver/devtools/pinned_script.rb +0 -2
  110. data/lib/selenium/webdriver/devtools/request.rb +1 -3
  111. data/lib/selenium/webdriver/devtools/response.rb +1 -3
  112. data/lib/selenium/webdriver/devtools.rb +17 -114
  113. data/lib/selenium/webdriver/edge/driver.rb +9 -3
  114. data/lib/selenium/webdriver/edge/features.rb +4 -4
  115. data/lib/selenium/webdriver/edge/options.rb +3 -5
  116. data/lib/selenium/webdriver/edge/profile.rb +2 -2
  117. data/lib/selenium/webdriver/edge/service.rb +2 -6
  118. data/lib/selenium/webdriver/firefox/driver.rb +9 -2
  119. data/lib/selenium/webdriver/firefox/features.rb +6 -6
  120. data/lib/selenium/webdriver/firefox/options.rb +9 -3
  121. data/lib/selenium/webdriver/firefox/profile.rb +7 -11
  122. data/lib/selenium/webdriver/firefox/service.rb +0 -6
  123. data/lib/selenium/webdriver/firefox/util.rb +46 -0
  124. data/lib/selenium/webdriver/firefox.rb +1 -14
  125. data/lib/selenium/webdriver/ie/driver.rb +7 -1
  126. data/lib/selenium/webdriver/ie/service.rb +1 -7
  127. data/lib/selenium/webdriver/ie.rb +0 -14
  128. data/lib/selenium/webdriver/remote/{commands.rb → bridge/commands.rb} +15 -8
  129. data/lib/selenium/webdriver/remote/bridge.rb +59 -30
  130. data/lib/selenium/webdriver/remote/capabilities.rb +34 -12
  131. data/lib/selenium/webdriver/remote/driver.rb +19 -14
  132. data/lib/selenium/webdriver/remote/http/curb.rb +0 -2
  133. data/lib/selenium/webdriver/remote/http/default.rb +7 -12
  134. data/lib/selenium/webdriver/remote/response.rb +2 -3
  135. data/lib/selenium/webdriver/remote.rb +0 -1
  136. data/lib/selenium/webdriver/safari/driver.rb +7 -1
  137. data/lib/selenium/webdriver/safari/features.rb +0 -2
  138. data/lib/selenium/webdriver/safari/options.rb +5 -1
  139. data/lib/selenium/webdriver/safari/service.rb +0 -4
  140. data/lib/selenium/webdriver/safari.rb +1 -15
  141. data/lib/selenium/webdriver/support/color.rb +20 -20
  142. data/lib/selenium/webdriver/support/guards/guard.rb +0 -2
  143. data/lib/selenium/webdriver/support/guards/guard_condition.rb +1 -3
  144. data/lib/selenium/webdriver/support/guards.rb +1 -1
  145. data/lib/selenium/webdriver/support/relative_locator.rb +0 -1
  146. data/lib/selenium/webdriver/support/select.rb +3 -1
  147. data/lib/selenium/webdriver/version.rb +1 -1
  148. data/lib/selenium/webdriver.rb +4 -4
  149. data/selenium-webdriver.gemspec +13 -11
  150. metadata +70 -59
  151. data/lib/selenium/webdriver/remote/http/persistent.rb +0 -65
  152. data/lib/selenium/webdriver/support/cdp/domain.rb.erb +0 -63
  153. data/lib/selenium/webdriver/support/cdp_client_generator.rb +0 -108
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selenium-webdriver
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 4.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Rodionov
@@ -10,28 +10,8 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-11-22 00:00:00.000000000 Z
13
+ date: 2023-04-21 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,20 +49,23 @@ dependencies:
66
49
  - - ">="
67
50
  - !ruby/object:Gem::Version
68
51
  version: 1.2.2
52
+ - - "<"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
69
55
  - !ruby/object:Gem::Dependency
70
- name: ffi
56
+ name: websocket
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - ">="
59
+ - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
61
+ version: '1.0'
62
+ type: :runtime
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - ">="
66
+ - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: '0'
68
+ version: '1.0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: pry
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -108,20 +94,6 @@ dependencies:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
96
  version: '2.0'
111
- - !ruby/object:Gem::Dependency
112
- name: rake
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '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.8.0
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.8.0
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: '0'
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: '0'
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: '0'
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: '0'
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,21 +220,40 @@ 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
245
+ - lib/selenium/webdriver/chromium/service.rb
254
246
  - lib/selenium/webdriver/common.rb
255
247
  - lib/selenium/webdriver/common/action_builder.rb
256
248
  - lib/selenium/webdriver/common/alert.rb
249
+ - lib/selenium/webdriver/common/child_process.rb
257
250
  - lib/selenium/webdriver/common/driver.rb
258
251
  - lib/selenium/webdriver/common/driver_extensions/downloads_files.rb
259
252
  - lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb
260
253
  - lib/selenium/webdriver/common/driver_extensions/has_addons.rb
261
254
  - lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb
262
255
  - lib/selenium/webdriver/common/driver_extensions/has_authentication.rb
256
+ - lib/selenium/webdriver/common/driver_extensions/has_bidi.rb
263
257
  - lib/selenium/webdriver/common/driver_extensions/has_casting.rb
264
258
  - lib/selenium/webdriver/common/driver_extensions/has_cdp.rb
265
259
  - lib/selenium/webdriver/common/driver_extensions/has_context.rb
@@ -274,11 +268,11 @@ files:
274
268
  - lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
275
269
  - lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
276
270
  - lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
277
- - lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
278
271
  - lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
279
272
  - lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
280
273
  - lib/selenium/webdriver/common/driver_extensions/prints_page.rb
281
274
  - lib/selenium/webdriver/common/driver_extensions/uploads_files.rb
275
+ - lib/selenium/webdriver/common/driver_finder.rb
282
276
  - lib/selenium/webdriver/common/element.rb
283
277
  - lib/selenium/webdriver/common/error.rb
284
278
  - lib/selenium/webdriver/common/file_reaper.rb
@@ -291,9 +285,20 @@ files:
291
285
  - lib/selenium/webdriver/common/interactions/key_actions.rb
292
286
  - lib/selenium/webdriver/common/interactions/key_input.rb
293
287
  - lib/selenium/webdriver/common/interactions/none_input.rb
288
+ - lib/selenium/webdriver/common/interactions/pause.rb
294
289
  - lib/selenium/webdriver/common/interactions/pointer_actions.rb
290
+ - lib/selenium/webdriver/common/interactions/pointer_cancel.rb
291
+ - lib/selenium/webdriver/common/interactions/pointer_event_properties.rb
295
292
  - lib/selenium/webdriver/common/interactions/pointer_input.rb
293
+ - lib/selenium/webdriver/common/interactions/pointer_move.rb
294
+ - lib/selenium/webdriver/common/interactions/pointer_press.rb
295
+ - lib/selenium/webdriver/common/interactions/scroll.rb
296
+ - lib/selenium/webdriver/common/interactions/scroll_origin.rb
297
+ - lib/selenium/webdriver/common/interactions/typing_interaction.rb
298
+ - lib/selenium/webdriver/common/interactions/wheel_actions.rb
299
+ - lib/selenium/webdriver/common/interactions/wheel_input.rb
296
300
  - lib/selenium/webdriver/common/keys.rb
301
+ - lib/selenium/webdriver/common/local_driver.rb
297
302
  - lib/selenium/webdriver/common/log_entry.rb
298
303
  - lib/selenium/webdriver/common/logger.rb
299
304
  - lib/selenium/webdriver/common/logs.rb
@@ -305,6 +310,7 @@ files:
305
310
  - lib/selenium/webdriver/common/profile_helper.rb
306
311
  - lib/selenium/webdriver/common/proxy.rb
307
312
  - lib/selenium/webdriver/common/search_context.rb
313
+ - lib/selenium/webdriver/common/selenium_manager.rb
308
314
  - lib/selenium/webdriver/common/service.rb
309
315
  - lib/selenium/webdriver/common/service_manager.rb
310
316
  - lib/selenium/webdriver/common/shadow_root.rb
@@ -313,13 +319,18 @@ files:
313
319
  - lib/selenium/webdriver/common/takes_screenshot.rb
314
320
  - lib/selenium/webdriver/common/target_locator.rb
315
321
  - lib/selenium/webdriver/common/timeouts.rb
322
+ - lib/selenium/webdriver/common/virtual_authenticator/credential.rb
323
+ - lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb
324
+ - lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb
316
325
  - lib/selenium/webdriver/common/wait.rb
326
+ - lib/selenium/webdriver/common/websocket_connection.rb
317
327
  - lib/selenium/webdriver/common/window.rb
318
328
  - lib/selenium/webdriver/common/zipper.rb
319
329
  - lib/selenium/webdriver/devtools.rb
320
330
  - lib/selenium/webdriver/devtools/console_event.rb
321
331
  - lib/selenium/webdriver/devtools/exception_event.rb
322
332
  - lib/selenium/webdriver/devtools/mutation_event.rb
333
+ - lib/selenium/webdriver/devtools/network_interceptor.rb
323
334
  - lib/selenium/webdriver/devtools/pinned_script.rb
324
335
  - lib/selenium/webdriver/devtools/request.rb
325
336
  - lib/selenium/webdriver/devtools/response.rb
@@ -337,19 +348,19 @@ files:
337
348
  - lib/selenium/webdriver/firefox/profile.rb
338
349
  - lib/selenium/webdriver/firefox/profiles_ini.rb
339
350
  - lib/selenium/webdriver/firefox/service.rb
351
+ - lib/selenium/webdriver/firefox/util.rb
340
352
  - lib/selenium/webdriver/ie.rb
341
353
  - lib/selenium/webdriver/ie/driver.rb
342
354
  - lib/selenium/webdriver/ie/options.rb
343
355
  - lib/selenium/webdriver/ie/service.rb
344
356
  - lib/selenium/webdriver/remote.rb
345
357
  - lib/selenium/webdriver/remote/bridge.rb
358
+ - lib/selenium/webdriver/remote/bridge/commands.rb
346
359
  - lib/selenium/webdriver/remote/capabilities.rb
347
- - lib/selenium/webdriver/remote/commands.rb
348
360
  - lib/selenium/webdriver/remote/driver.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,7 +386,9 @@ 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
391
+ rubygems_mfa_required: 'true'
381
392
  post_install_message:
382
393
  rdoc_options: []
383
394
  require_paths:
@@ -386,14 +397,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
386
397
  requirements:
387
398
  - - ">="
388
399
  - !ruby/object:Gem::Version
389
- version: '2.6'
400
+ version: '2.7'
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.0.3
407
+ rubygems_version: 3.1.6
397
408
  signing_key:
398
409
  specification_version: 4
399
410
  summary: Selenium is a browser automation tool for automated testing of webapps and
@@ -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