selenium-webdriver 4.1.0 → 4.12.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 (159) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +271 -1
  3. data/Gemfile +2 -0
  4. data/LICENSE +1 -1
  5. data/NOTICE +1 -1
  6. data/README.md +2 -2
  7. data/bin/linux/selenium-manager +0 -0
  8. data/bin/macos/selenium-manager +0 -0
  9. data/bin/windows/selenium-manager.exe +0 -0
  10. data/lib/selenium/server.rb +36 -39
  11. data/lib/selenium/webdriver/atoms/findElements.js +4 -5
  12. data/lib/selenium/webdriver/atoms/getAttribute.js +1 -1
  13. data/lib/selenium/webdriver/atoms/isDisplayed.js +1 -1
  14. data/lib/selenium/webdriver/atoms/mutationListener.js +0 -0
  15. data/lib/selenium/webdriver/atoms.rb +2 -3
  16. data/lib/selenium/webdriver/bidi/browsing_context.rb +88 -0
  17. data/lib/selenium/webdriver/bidi/browsing_context_info.rb +35 -0
  18. data/lib/selenium/webdriver/bidi/log/base_log_entry.rb +35 -0
  19. data/lib/selenium/webdriver/bidi/log/console_log_entry.rb +35 -0
  20. data/lib/selenium/webdriver/bidi/log/filter_by.rb +40 -0
  21. data/lib/selenium/webdriver/bidi/log/generic_log_entry.rb +33 -0
  22. data/lib/selenium/webdriver/bidi/log/javascript_log_entry.rb +33 -0
  23. data/lib/selenium/webdriver/bidi/log_inspector.rb +143 -0
  24. data/lib/selenium/webdriver/bidi/navigate_result.rb +33 -0
  25. data/lib/selenium/webdriver/bidi/session.rb +51 -0
  26. data/lib/selenium/webdriver/bidi.rb +56 -0
  27. data/lib/selenium/webdriver/chrome/driver.rb +9 -29
  28. data/lib/selenium/webdriver/chrome/features.rb +6 -68
  29. data/lib/selenium/webdriver/chrome/options.rb +3 -223
  30. data/lib/selenium/webdriver/chrome/profile.rb +3 -83
  31. data/lib/selenium/webdriver/chrome/service.rb +0 -22
  32. data/lib/selenium/webdriver/chrome.rb +0 -16
  33. data/lib/selenium/webdriver/chromium/driver.rb +61 -0
  34. data/lib/selenium/webdriver/chromium/features.rb +103 -0
  35. data/lib/selenium/webdriver/chromium/options.rb +243 -0
  36. data/lib/selenium/webdriver/chromium/profile.rb +113 -0
  37. data/lib/selenium/webdriver/chromium.rb +29 -0
  38. data/lib/selenium/webdriver/common/action_builder.rb +64 -22
  39. data/lib/selenium/webdriver/common/child_process.rb +124 -0
  40. data/lib/selenium/webdriver/common/driver.rb +31 -81
  41. data/lib/selenium/webdriver/common/driver_extensions/downloads_files.rb +0 -2
  42. data/lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb +0 -1
  43. data/lib/selenium/webdriver/common/driver_extensions/has_addons.rb +0 -2
  44. data/lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb +0 -2
  45. data/lib/selenium/webdriver/common/driver_extensions/has_authentication.rb +0 -2
  46. data/lib/selenium/webdriver/common/driver_extensions/{has_remote_status.rb → has_bidi.rb} +10 -5
  47. data/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +10 -1
  48. data/lib/selenium/webdriver/common/driver_extensions/has_cdp.rb +0 -2
  49. data/lib/selenium/webdriver/common/driver_extensions/has_context.rb +1 -4
  50. data/lib/selenium/webdriver/common/driver_extensions/has_debugger.rb +0 -2
  51. data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +0 -2
  52. data/lib/selenium/webdriver/common/driver_extensions/has_launching.rb +0 -2
  53. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +1 -2
  54. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +1 -2
  55. data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +0 -2
  56. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +2 -69
  57. data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +0 -2
  58. data/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +1 -3
  59. data/lib/selenium/webdriver/common/driver_finder.rb +45 -0
  60. data/lib/selenium/webdriver/common/element.rb +8 -8
  61. data/lib/selenium/webdriver/common/error.rb +28 -5
  62. data/lib/selenium/webdriver/common/html5/shared_web_storage.rb +2 -2
  63. data/lib/selenium/webdriver/common/interactions/input_device.rb +10 -4
  64. data/lib/selenium/webdriver/common/interactions/interaction.rb +12 -25
  65. data/lib/selenium/webdriver/common/interactions/interactions.rb +24 -4
  66. data/lib/selenium/webdriver/common/interactions/key_actions.rb +5 -1
  67. data/lib/selenium/webdriver/common/interactions/key_input.rb +11 -27
  68. data/lib/selenium/webdriver/common/interactions/none_input.rb +10 -8
  69. data/lib/selenium/webdriver/common/interactions/pause.rb +49 -0
  70. data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +59 -70
  71. data/lib/selenium/webdriver/common/interactions/pointer_cancel.rb +45 -0
  72. data/lib/selenium/webdriver/common/interactions/pointer_event_properties.rb +63 -0
  73. data/lib/selenium/webdriver/common/interactions/pointer_input.rb +15 -84
  74. data/lib/selenium/webdriver/common/interactions/pointer_move.rb +60 -0
  75. data/lib/selenium/webdriver/common/interactions/pointer_press.rb +85 -0
  76. data/lib/selenium/webdriver/common/interactions/scroll.rb +59 -0
  77. data/lib/selenium/webdriver/common/interactions/scroll_origin.rb +48 -0
  78. data/lib/selenium/webdriver/common/interactions/typing_interaction.rb +54 -0
  79. data/lib/selenium/webdriver/common/interactions/wheel_actions.rb +113 -0
  80. data/lib/selenium/webdriver/common/interactions/wheel_input.rb +42 -0
  81. data/lib/selenium/webdriver/common/keys.rb +1 -0
  82. data/lib/selenium/webdriver/common/local_driver.rb +46 -0
  83. data/lib/selenium/webdriver/common/logger.rb +90 -25
  84. data/lib/selenium/webdriver/common/manager.rb +0 -27
  85. data/lib/selenium/webdriver/common/options.rb +13 -17
  86. data/lib/selenium/webdriver/common/platform.rb +5 -51
  87. data/lib/selenium/webdriver/common/port_prober.rb +1 -1
  88. data/lib/selenium/webdriver/common/profile_helper.rb +1 -1
  89. data/lib/selenium/webdriver/common/proxy.rb +2 -2
  90. data/lib/selenium/webdriver/common/search_context.rb +0 -6
  91. data/lib/selenium/webdriver/common/selenium_manager.rb +129 -0
  92. data/lib/selenium/webdriver/common/service.rb +17 -30
  93. data/lib/selenium/webdriver/common/service_manager.rb +8 -15
  94. data/lib/selenium/webdriver/common/shadow_root.rb +2 -3
  95. data/lib/selenium/webdriver/common/socket_lock.rb +3 -3
  96. data/lib/selenium/webdriver/common/socket_poller.rb +2 -2
  97. data/lib/selenium/webdriver/common/takes_screenshot.rb +2 -3
  98. data/lib/selenium/webdriver/common/target_locator.rb +2 -3
  99. data/lib/selenium/webdriver/common/timeouts.rb +2 -2
  100. data/lib/selenium/webdriver/common/virtual_authenticator/credential.rb +85 -0
  101. data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb +72 -0
  102. data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb +62 -0
  103. data/lib/selenium/webdriver/common/websocket_connection.rb +164 -0
  104. data/lib/selenium/webdriver/common/window.rb +6 -6
  105. data/lib/selenium/webdriver/common/zipper.rb +1 -1
  106. data/lib/selenium/webdriver/common.rb +21 -3
  107. data/lib/selenium/webdriver/devtools/console_event.rb +0 -2
  108. data/lib/selenium/webdriver/devtools/exception_event.rb +0 -2
  109. data/lib/selenium/webdriver/devtools/mutation_event.rb +0 -2
  110. data/lib/selenium/webdriver/devtools/network_interceptor.rb +173 -0
  111. data/lib/selenium/webdriver/devtools/pinned_script.rb +0 -2
  112. data/lib/selenium/webdriver/devtools/request.rb +1 -3
  113. data/lib/selenium/webdriver/devtools/response.rb +1 -3
  114. data/lib/selenium/webdriver/devtools.rb +17 -114
  115. data/lib/selenium/webdriver/edge/driver.rb +9 -3
  116. data/lib/selenium/webdriver/edge/features.rb +4 -4
  117. data/lib/selenium/webdriver/edge/options.rb +17 -5
  118. data/lib/selenium/webdriver/edge/profile.rb +2 -2
  119. data/lib/selenium/webdriver/edge/service.rb +1 -7
  120. data/lib/selenium/webdriver/edge.rb +0 -2
  121. data/lib/selenium/webdriver/firefox/driver.rb +9 -2
  122. data/lib/selenium/webdriver/firefox/features.rb +6 -6
  123. data/lib/selenium/webdriver/firefox/options.rb +7 -16
  124. data/lib/selenium/webdriver/firefox/profile.rb +8 -12
  125. data/lib/selenium/webdriver/firefox/service.rb +0 -18
  126. data/lib/selenium/webdriver/firefox/util.rb +46 -0
  127. data/lib/selenium/webdriver/firefox.rb +1 -14
  128. data/lib/selenium/webdriver/ie/driver.rb +7 -1
  129. data/lib/selenium/webdriver/ie/options.rb +4 -3
  130. data/lib/selenium/webdriver/ie/service.rb +0 -22
  131. data/lib/selenium/webdriver/ie.rb +0 -14
  132. data/lib/selenium/webdriver/remote/{commands.rb → bridge/commands.rb} +15 -8
  133. data/lib/selenium/webdriver/remote/bridge.rb +65 -35
  134. data/lib/selenium/webdriver/remote/capabilities.rb +3 -53
  135. data/lib/selenium/webdriver/remote/driver.rb +31 -14
  136. data/lib/selenium/webdriver/remote/http/common.rb +3 -3
  137. data/lib/selenium/webdriver/remote/http/curb.rb +1 -3
  138. data/lib/selenium/webdriver/remote/http/default.rb +8 -14
  139. data/lib/selenium/webdriver/remote/response.rb +2 -3
  140. data/lib/selenium/webdriver/remote/server_error.rb +1 -1
  141. data/lib/selenium/webdriver/remote.rb +0 -1
  142. data/lib/selenium/webdriver/safari/driver.rb +7 -1
  143. data/lib/selenium/webdriver/safari/features.rb +0 -2
  144. data/lib/selenium/webdriver/safari/options.rb +5 -1
  145. data/lib/selenium/webdriver/safari/service.rb +10 -4
  146. data/lib/selenium/webdriver/safari.rb +1 -15
  147. data/lib/selenium/webdriver/support/color.rb +22 -22
  148. data/lib/selenium/webdriver/support/guards/guard.rb +0 -2
  149. data/lib/selenium/webdriver/support/guards/guard_condition.rb +1 -3
  150. data/lib/selenium/webdriver/support/guards.rb +1 -1
  151. data/lib/selenium/webdriver/support/relative_locator.rb +0 -1
  152. data/lib/selenium/webdriver/support/select.rb +3 -1
  153. data/lib/selenium/webdriver/version.rb +1 -1
  154. data/lib/selenium/webdriver.rb +6 -4
  155. data/selenium-webdriver.gemspec +14 -12
  156. metadata +73 -63
  157. data/lib/selenium/webdriver/remote/http/persistent.rb +0 -65
  158. data/lib/selenium/webdriver/support/cdp/domain.rb.erb +0 -63
  159. 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.1.0
4
+ version: 4.12.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: 2021-11-22 00:00:00.000000000 Z
13
+ date: 2023-08-31 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
- - !ruby/object:Gem::Dependency
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: pry
56
+ name: websocket
85
57
  requirement: !ruby/object:Gem::Requirement
86
58
  requirements:
87
59
  - - "~>"
88
60
  - !ruby/object:Gem::Version
89
- version: '0.14'
90
- type: :development
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.14'
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.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,39 @@ 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
@@ -274,11 +267,11 @@ files:
274
267
  - lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
275
268
  - lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
276
269
  - lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
277
- - lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
278
270
  - lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
279
271
  - lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
280
272
  - lib/selenium/webdriver/common/driver_extensions/prints_page.rb
281
273
  - lib/selenium/webdriver/common/driver_extensions/uploads_files.rb
274
+ - lib/selenium/webdriver/common/driver_finder.rb
282
275
  - lib/selenium/webdriver/common/element.rb
283
276
  - lib/selenium/webdriver/common/error.rb
284
277
  - lib/selenium/webdriver/common/file_reaper.rb
@@ -291,9 +284,20 @@ files:
291
284
  - lib/selenium/webdriver/common/interactions/key_actions.rb
292
285
  - lib/selenium/webdriver/common/interactions/key_input.rb
293
286
  - lib/selenium/webdriver/common/interactions/none_input.rb
287
+ - lib/selenium/webdriver/common/interactions/pause.rb
294
288
  - lib/selenium/webdriver/common/interactions/pointer_actions.rb
289
+ - lib/selenium/webdriver/common/interactions/pointer_cancel.rb
290
+ - lib/selenium/webdriver/common/interactions/pointer_event_properties.rb
295
291
  - lib/selenium/webdriver/common/interactions/pointer_input.rb
292
+ - lib/selenium/webdriver/common/interactions/pointer_move.rb
293
+ - lib/selenium/webdriver/common/interactions/pointer_press.rb
294
+ - lib/selenium/webdriver/common/interactions/scroll.rb
295
+ - lib/selenium/webdriver/common/interactions/scroll_origin.rb
296
+ - lib/selenium/webdriver/common/interactions/typing_interaction.rb
297
+ - lib/selenium/webdriver/common/interactions/wheel_actions.rb
298
+ - lib/selenium/webdriver/common/interactions/wheel_input.rb
296
299
  - lib/selenium/webdriver/common/keys.rb
300
+ - lib/selenium/webdriver/common/local_driver.rb
297
301
  - lib/selenium/webdriver/common/log_entry.rb
298
302
  - lib/selenium/webdriver/common/logger.rb
299
303
  - lib/selenium/webdriver/common/logs.rb
@@ -305,6 +309,7 @@ files:
305
309
  - lib/selenium/webdriver/common/profile_helper.rb
306
310
  - lib/selenium/webdriver/common/proxy.rb
307
311
  - lib/selenium/webdriver/common/search_context.rb
312
+ - lib/selenium/webdriver/common/selenium_manager.rb
308
313
  - lib/selenium/webdriver/common/service.rb
309
314
  - lib/selenium/webdriver/common/service_manager.rb
310
315
  - lib/selenium/webdriver/common/shadow_root.rb
@@ -313,13 +318,18 @@ files:
313
318
  - lib/selenium/webdriver/common/takes_screenshot.rb
314
319
  - lib/selenium/webdriver/common/target_locator.rb
315
320
  - lib/selenium/webdriver/common/timeouts.rb
321
+ - lib/selenium/webdriver/common/virtual_authenticator/credential.rb
322
+ - lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb
323
+ - lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb
316
324
  - lib/selenium/webdriver/common/wait.rb
325
+ - lib/selenium/webdriver/common/websocket_connection.rb
317
326
  - lib/selenium/webdriver/common/window.rb
318
327
  - lib/selenium/webdriver/common/zipper.rb
319
328
  - lib/selenium/webdriver/devtools.rb
320
329
  - lib/selenium/webdriver/devtools/console_event.rb
321
330
  - lib/selenium/webdriver/devtools/exception_event.rb
322
331
  - lib/selenium/webdriver/devtools/mutation_event.rb
332
+ - lib/selenium/webdriver/devtools/network_interceptor.rb
323
333
  - lib/selenium/webdriver/devtools/pinned_script.rb
324
334
  - lib/selenium/webdriver/devtools/request.rb
325
335
  - lib/selenium/webdriver/devtools/response.rb
@@ -337,19 +347,19 @@ files:
337
347
  - lib/selenium/webdriver/firefox/profile.rb
338
348
  - lib/selenium/webdriver/firefox/profiles_ini.rb
339
349
  - lib/selenium/webdriver/firefox/service.rb
350
+ - lib/selenium/webdriver/firefox/util.rb
340
351
  - lib/selenium/webdriver/ie.rb
341
352
  - lib/selenium/webdriver/ie/driver.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
349
360
  - lib/selenium/webdriver/remote/http/common.rb
350
361
  - lib/selenium/webdriver/remote/http/curb.rb
351
362
  - lib/selenium/webdriver/remote/http/default.rb
352
- - lib/selenium/webdriver/remote/http/persistent.rb
353
363
  - lib/selenium/webdriver/remote/response.rb
354
364
  - lib/selenium/webdriver/remote/server_error.rb
355
365
  - lib/selenium/webdriver/safari.rb
@@ -360,8 +370,6 @@ files:
360
370
  - lib/selenium/webdriver/support.rb
361
371
  - lib/selenium/webdriver/support/abstract_event_listener.rb
362
372
  - 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
373
  - lib/selenium/webdriver/support/color.rb
366
374
  - lib/selenium/webdriver/support/escaper.rb
367
375
  - lib/selenium/webdriver/support/event_firing_bridge.rb
@@ -377,8 +385,10 @@ licenses:
377
385
  - Apache-2.0
378
386
  metadata:
379
387
  changelog_uri: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES
388
+ github_repo: ssh://github.com/SeleniumHQ/selenium
380
389
  source_code_uri: https://github.com/SeleniumHQ/selenium/tree/trunk/rb
381
- post_install_message:
390
+ rubygems_mfa_required: 'true'
391
+ post_install_message:
382
392
  rdoc_options: []
383
393
  require_paths:
384
394
  - lib
@@ -386,15 +396,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
386
396
  requirements:
387
397
  - - ">="
388
398
  - !ruby/object:Gem::Version
389
- version: '2.6'
399
+ version: '3.0'
390
400
  required_rubygems_version: !ruby/object:Gem::Requirement
391
401
  requirements:
392
402
  - - ">"
393
403
  - !ruby/object:Gem::Version
394
404
  version: 1.3.1
395
405
  requirements: []
396
- rubygems_version: 3.0.3
397
- signing_key:
406
+ rubygems_version: 3.2.33
407
+ signing_key:
398
408
  specification_version: 4
399
409
  summary: Selenium is a browser automation tool for automated testing of webapps and
400
410
  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