selenium-webdriver 4.0.0.rc3 → 4.13.1

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 (158) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +338 -0
  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 +90 -79
  11. data/lib/selenium/webdriver/atoms/findElements.js +5 -6
  12. data/lib/selenium/webdriver/atoms/getAttribute.js +0 -0
  13. data/lib/selenium/webdriver/atoms/isDisplayed.js +0 -0
  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/{common/driver_extensions/has_location.rb → bidi/log/filter_by.rb} +14 -11
  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 +4 -19
  32. data/lib/selenium/webdriver/chrome.rb +0 -16
  33. data/lib/selenium/webdriver/chromium/driver.rb +60 -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 +62 -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_log_events.rb +1 -2
  54. data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +9 -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 +45 -0
  59. data/lib/selenium/webdriver/common/element.rb +8 -8
  60. data/lib/selenium/webdriver/common/error.rb +28 -5
  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/{driver_extensions/has_network_connection.rb → interactions/pointer_cancel.rb} +19 -11
  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 +46 -0
  82. data/lib/selenium/webdriver/common/logger.rb +90 -25
  83. data/lib/selenium/webdriver/common/manager.rb +0 -27
  84. data/lib/selenium/webdriver/common/options.rb +14 -20
  85. data/lib/selenium/webdriver/common/platform.rb +5 -51
  86. data/lib/selenium/webdriver/common/port_prober.rb +1 -1
  87. data/lib/selenium/webdriver/common/profile_helper.rb +2 -8
  88. data/lib/selenium/webdriver/common/proxy.rb +2 -2
  89. data/lib/selenium/webdriver/common/search_context.rb +0 -6
  90. data/lib/selenium/webdriver/common/selenium_manager.rb +134 -0
  91. data/lib/selenium/webdriver/common/service.rb +21 -30
  92. data/lib/selenium/webdriver/common/service_manager.rb +8 -15
  93. data/lib/selenium/webdriver/common/shadow_root.rb +2 -3
  94. data/lib/selenium/webdriver/common/socket_lock.rb +3 -3
  95. data/lib/selenium/webdriver/common/socket_poller.rb +31 -20
  96. data/lib/selenium/webdriver/common/takes_screenshot.rb +2 -3
  97. data/lib/selenium/webdriver/common/target_locator.rb +2 -3
  98. data/lib/selenium/webdriver/common/timeouts.rb +2 -2
  99. data/lib/selenium/webdriver/common/virtual_authenticator/credential.rb +85 -0
  100. data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb +72 -0
  101. data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb +62 -0
  102. data/lib/selenium/webdriver/common/websocket_connection.rb +164 -0
  103. data/lib/selenium/webdriver/common/window.rb +6 -6
  104. data/lib/selenium/webdriver/common/zipper.rb +4 -10
  105. data/lib/selenium/webdriver/common.rb +21 -5
  106. data/lib/selenium/webdriver/devtools/console_event.rb +0 -2
  107. data/lib/selenium/webdriver/devtools/exception_event.rb +0 -2
  108. data/lib/selenium/webdriver/devtools/mutation_event.rb +0 -2
  109. data/lib/selenium/webdriver/devtools/network_interceptor.rb +173 -0
  110. data/lib/selenium/webdriver/devtools/pinned_script.rb +0 -2
  111. data/lib/selenium/webdriver/devtools/request.rb +1 -3
  112. data/lib/selenium/webdriver/devtools/response.rb +1 -3
  113. data/lib/selenium/webdriver/devtools.rb +17 -103
  114. data/lib/selenium/webdriver/edge/driver.rb +9 -3
  115. data/lib/selenium/webdriver/edge/features.rb +4 -4
  116. data/lib/selenium/webdriver/edge/options.rb +17 -5
  117. data/lib/selenium/webdriver/edge/profile.rb +2 -2
  118. data/lib/selenium/webdriver/edge/service.rb +8 -7
  119. data/lib/selenium/webdriver/edge.rb +0 -2
  120. data/lib/selenium/webdriver/firefox/driver.rb +9 -2
  121. data/lib/selenium/webdriver/firefox/features.rb +6 -6
  122. data/lib/selenium/webdriver/firefox/options.rb +9 -14
  123. data/lib/selenium/webdriver/firefox/profile.rb +8 -12
  124. data/lib/selenium/webdriver/firefox/service.rb +0 -18
  125. data/lib/selenium/webdriver/firefox/util.rb +46 -0
  126. data/lib/selenium/webdriver/firefox.rb +1 -14
  127. data/lib/selenium/webdriver/ie/driver.rb +7 -1
  128. data/lib/selenium/webdriver/ie/options.rb +2 -1
  129. data/lib/selenium/webdriver/ie/service.rb +0 -22
  130. data/lib/selenium/webdriver/ie.rb +0 -14
  131. data/lib/selenium/webdriver/remote/{commands.rb → bridge/commands.rb} +15 -8
  132. data/lib/selenium/webdriver/remote/bridge.rb +70 -37
  133. data/lib/selenium/webdriver/remote/capabilities.rb +3 -53
  134. data/lib/selenium/webdriver/remote/driver.rb +31 -14
  135. data/lib/selenium/webdriver/remote/http/common.rb +3 -3
  136. data/lib/selenium/webdriver/remote/http/curb.rb +1 -3
  137. data/lib/selenium/webdriver/remote/http/default.rb +8 -14
  138. data/lib/selenium/webdriver/remote/response.rb +2 -3
  139. data/lib/selenium/webdriver/remote/server_error.rb +1 -1
  140. data/lib/selenium/webdriver/remote.rb +5 -5
  141. data/lib/selenium/webdriver/safari/driver.rb +7 -1
  142. data/lib/selenium/webdriver/safari/features.rb +0 -2
  143. data/lib/selenium/webdriver/safari/options.rb +5 -1
  144. data/lib/selenium/webdriver/safari/service.rb +10 -4
  145. data/lib/selenium/webdriver/safari.rb +1 -15
  146. data/lib/selenium/webdriver/support/color.rb +22 -22
  147. data/lib/selenium/webdriver/support/guards/guard.rb +0 -2
  148. data/lib/selenium/webdriver/support/guards/guard_condition.rb +1 -3
  149. data/lib/selenium/webdriver/support/guards.rb +1 -1
  150. data/lib/selenium/webdriver/support/relative_locator.rb +0 -1
  151. data/lib/selenium/webdriver/support/select.rb +4 -2
  152. data/lib/selenium/webdriver/version.rb +1 -1
  153. data/lib/selenium/webdriver.rb +7 -5
  154. data/selenium-webdriver.gemspec +15 -13
  155. metadata +79 -65
  156. data/lib/selenium/webdriver/remote/http/persistent.rb +0 -65
  157. data/lib/selenium/webdriver/support/cdp/domain.rb.erb +0 -63
  158. 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.0.0.rc3
4
+ version: 4.13.1
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-10-08 00:00:00.000000000 Z
13
+ date: 2023-09-26 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
@@ -39,6 +19,9 @@ dependencies:
39
19
  - - "~>"
40
20
  - !ruby/object:Gem::Version
41
21
  version: '3.2'
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 3.2.5
42
25
  type: :runtime
43
26
  prerelease: false
44
27
  version_requirements: !ruby/object:Gem::Requirement
@@ -46,6 +29,9 @@ dependencies:
46
29
  - - "~>"
47
30
  - !ruby/object:Gem::Version
48
31
  version: '3.2'
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 3.2.5
49
35
  - !ruby/object:Gem::Dependency
50
36
  name: rubyzip
51
37
  requirement: !ruby/object:Gem::Requirement
@@ -53,6 +39,9 @@ dependencies:
53
39
  - - ">="
54
40
  - !ruby/object:Gem::Version
55
41
  version: 1.2.2
42
+ - - "<"
43
+ - !ruby/object:Gem::Version
44
+ version: '3.0'
56
45
  type: :runtime
57
46
  prerelease: false
58
47
  version_requirements: !ruby/object:Gem::Requirement
@@ -60,34 +49,23 @@ dependencies:
60
49
  - - ">="
61
50
  - !ruby/object:Gem::Version
62
51
  version: 1.2.2
63
- - !ruby/object:Gem::Dependency
64
- name: ffi
65
- requirement: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- version: '0'
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - ">="
52
+ - - "<"
75
53
  - !ruby/object:Gem::Version
76
- version: '0'
54
+ version: '3.0'
77
55
  - !ruby/object:Gem::Dependency
78
- name: pry
56
+ name: websocket
79
57
  requirement: !ruby/object:Gem::Requirement
80
58
  requirements:
81
59
  - - "~>"
82
60
  - !ruby/object:Gem::Version
83
- version: '0.14'
84
- type: :development
61
+ version: '1.0'
62
+ type: :runtime
85
63
  prerelease: false
86
64
  version_requirements: !ruby/object:Gem::Requirement
87
65
  requirements:
88
66
  - - "~>"
89
67
  - !ruby/object:Gem::Version
90
- version: '0.14'
68
+ version: '1.0'
91
69
  - !ruby/object:Gem::Dependency
92
70
  name: rack
93
71
  requirement: !ruby/object:Gem::Requirement
@@ -106,16 +84,16 @@ dependencies:
106
84
  name: rake
107
85
  requirement: !ruby/object:Gem::Requirement
108
86
  requirements:
109
- - - ">="
87
+ - - "~>"
110
88
  - !ruby/object:Gem::Version
111
- version: '0'
89
+ version: '13.0'
112
90
  type: :development
113
91
  prerelease: false
114
92
  version_requirements: !ruby/object:Gem::Requirement
115
93
  requirements:
116
- - - ">="
94
+ - - "~>"
117
95
  - !ruby/object:Gem::Version
118
- version: '0'
96
+ version: '13.0'
119
97
  - !ruby/object:Gem::Dependency
120
98
  name: rspec
121
99
  requirement: !ruby/object:Gem::Requirement
@@ -136,42 +114,42 @@ dependencies:
136
114
  requirements:
137
115
  - - "~>"
138
116
  - !ruby/object:Gem::Version
139
- version: 1.8.0
117
+ version: '1.42'
140
118
  type: :development
141
119
  prerelease: false
142
120
  version_requirements: !ruby/object:Gem::Requirement
143
121
  requirements:
144
122
  - - "~>"
145
123
  - !ruby/object:Gem::Version
146
- version: 1.8.0
124
+ version: '1.42'
147
125
  - !ruby/object:Gem::Dependency
148
126
  name: rubocop-performance
149
127
  requirement: !ruby/object:Gem::Requirement
150
128
  requirements:
151
- - - ">="
129
+ - - "~>"
152
130
  - !ruby/object:Gem::Version
153
- version: '0'
131
+ version: '1.15'
154
132
  type: :development
155
133
  prerelease: false
156
134
  version_requirements: !ruby/object:Gem::Requirement
157
135
  requirements:
158
- - - ">="
136
+ - - "~>"
159
137
  - !ruby/object:Gem::Version
160
- version: '0'
138
+ version: '1.15'
161
139
  - !ruby/object:Gem::Dependency
162
140
  name: rubocop-rspec
163
141
  requirement: !ruby/object:Gem::Requirement
164
142
  requirements:
165
- - - ">="
143
+ - - "~>"
166
144
  - !ruby/object:Gem::Version
167
- version: '0'
145
+ version: '2.16'
168
146
  type: :development
169
147
  prerelease: false
170
148
  version_requirements: !ruby/object:Gem::Requirement
171
149
  requirements:
172
- - - ">="
150
+ - - "~>"
173
151
  - !ruby/object:Gem::Version
174
- version: '0'
152
+ version: '2.16'
175
153
  - !ruby/object:Gem::Dependency
176
154
  name: webmock
177
155
  requirement: !ruby/object:Gem::Requirement
@@ -231,6 +209,9 @@ files:
231
209
  - LICENSE
232
210
  - NOTICE
233
211
  - README.md
212
+ - bin/linux/selenium-manager
213
+ - bin/macos/selenium-manager
214
+ - bin/windows/selenium-manager.exe
234
215
  - lib/selenium-webdriver.rb
235
216
  - lib/selenium/server.rb
236
217
  - lib/selenium/webdriver.rb
@@ -239,40 +220,56 @@ files:
239
220
  - lib/selenium/webdriver/atoms/getAttribute.js
240
221
  - lib/selenium/webdriver/atoms/isDisplayed.js
241
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
242
234
  - lib/selenium/webdriver/chrome.rb
243
235
  - lib/selenium/webdriver/chrome/driver.rb
244
236
  - lib/selenium/webdriver/chrome/features.rb
245
237
  - lib/selenium/webdriver/chrome/options.rb
246
238
  - lib/selenium/webdriver/chrome/profile.rb
247
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
248
245
  - lib/selenium/webdriver/common.rb
249
246
  - lib/selenium/webdriver/common/action_builder.rb
250
247
  - lib/selenium/webdriver/common/alert.rb
248
+ - lib/selenium/webdriver/common/child_process.rb
251
249
  - lib/selenium/webdriver/common/driver.rb
252
250
  - lib/selenium/webdriver/common/driver_extensions/downloads_files.rb
253
251
  - lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb
254
252
  - lib/selenium/webdriver/common/driver_extensions/has_addons.rb
255
253
  - lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb
256
254
  - lib/selenium/webdriver/common/driver_extensions/has_authentication.rb
255
+ - lib/selenium/webdriver/common/driver_extensions/has_bidi.rb
257
256
  - lib/selenium/webdriver/common/driver_extensions/has_casting.rb
258
257
  - lib/selenium/webdriver/common/driver_extensions/has_cdp.rb
259
258
  - lib/selenium/webdriver/common/driver_extensions/has_context.rb
260
259
  - lib/selenium/webdriver/common/driver_extensions/has_debugger.rb
261
260
  - lib/selenium/webdriver/common/driver_extensions/has_devtools.rb
262
261
  - lib/selenium/webdriver/common/driver_extensions/has_launching.rb
263
- - lib/selenium/webdriver/common/driver_extensions/has_location.rb
264
262
  - lib/selenium/webdriver/common/driver_extensions/has_log_events.rb
265
263
  - lib/selenium/webdriver/common/driver_extensions/has_logs.rb
266
264
  - lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb
267
- - lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb
268
265
  - lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
269
266
  - lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
270
267
  - lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
271
- - lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
272
268
  - lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
273
269
  - lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
274
270
  - lib/selenium/webdriver/common/driver_extensions/prints_page.rb
275
271
  - lib/selenium/webdriver/common/driver_extensions/uploads_files.rb
272
+ - lib/selenium/webdriver/common/driver_finder.rb
276
273
  - lib/selenium/webdriver/common/element.rb
277
274
  - lib/selenium/webdriver/common/error.rb
278
275
  - lib/selenium/webdriver/common/file_reaper.rb
@@ -285,9 +282,20 @@ files:
285
282
  - lib/selenium/webdriver/common/interactions/key_actions.rb
286
283
  - lib/selenium/webdriver/common/interactions/key_input.rb
287
284
  - lib/selenium/webdriver/common/interactions/none_input.rb
285
+ - lib/selenium/webdriver/common/interactions/pause.rb
288
286
  - lib/selenium/webdriver/common/interactions/pointer_actions.rb
287
+ - lib/selenium/webdriver/common/interactions/pointer_cancel.rb
288
+ - lib/selenium/webdriver/common/interactions/pointer_event_properties.rb
289
289
  - lib/selenium/webdriver/common/interactions/pointer_input.rb
290
+ - lib/selenium/webdriver/common/interactions/pointer_move.rb
291
+ - lib/selenium/webdriver/common/interactions/pointer_press.rb
292
+ - lib/selenium/webdriver/common/interactions/scroll.rb
293
+ - lib/selenium/webdriver/common/interactions/scroll_origin.rb
294
+ - lib/selenium/webdriver/common/interactions/typing_interaction.rb
295
+ - lib/selenium/webdriver/common/interactions/wheel_actions.rb
296
+ - lib/selenium/webdriver/common/interactions/wheel_input.rb
290
297
  - lib/selenium/webdriver/common/keys.rb
298
+ - lib/selenium/webdriver/common/local_driver.rb
291
299
  - lib/selenium/webdriver/common/log_entry.rb
292
300
  - lib/selenium/webdriver/common/logger.rb
293
301
  - lib/selenium/webdriver/common/logs.rb
@@ -299,6 +307,7 @@ files:
299
307
  - lib/selenium/webdriver/common/profile_helper.rb
300
308
  - lib/selenium/webdriver/common/proxy.rb
301
309
  - lib/selenium/webdriver/common/search_context.rb
310
+ - lib/selenium/webdriver/common/selenium_manager.rb
302
311
  - lib/selenium/webdriver/common/service.rb
303
312
  - lib/selenium/webdriver/common/service_manager.rb
304
313
  - lib/selenium/webdriver/common/shadow_root.rb
@@ -307,13 +316,18 @@ files:
307
316
  - lib/selenium/webdriver/common/takes_screenshot.rb
308
317
  - lib/selenium/webdriver/common/target_locator.rb
309
318
  - lib/selenium/webdriver/common/timeouts.rb
319
+ - lib/selenium/webdriver/common/virtual_authenticator/credential.rb
320
+ - lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb
321
+ - lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb
310
322
  - lib/selenium/webdriver/common/wait.rb
323
+ - lib/selenium/webdriver/common/websocket_connection.rb
311
324
  - lib/selenium/webdriver/common/window.rb
312
325
  - lib/selenium/webdriver/common/zipper.rb
313
326
  - lib/selenium/webdriver/devtools.rb
314
327
  - lib/selenium/webdriver/devtools/console_event.rb
315
328
  - lib/selenium/webdriver/devtools/exception_event.rb
316
329
  - lib/selenium/webdriver/devtools/mutation_event.rb
330
+ - lib/selenium/webdriver/devtools/network_interceptor.rb
317
331
  - lib/selenium/webdriver/devtools/pinned_script.rb
318
332
  - lib/selenium/webdriver/devtools/request.rb
319
333
  - lib/selenium/webdriver/devtools/response.rb
@@ -331,19 +345,19 @@ files:
331
345
  - lib/selenium/webdriver/firefox/profile.rb
332
346
  - lib/selenium/webdriver/firefox/profiles_ini.rb
333
347
  - lib/selenium/webdriver/firefox/service.rb
348
+ - lib/selenium/webdriver/firefox/util.rb
334
349
  - lib/selenium/webdriver/ie.rb
335
350
  - lib/selenium/webdriver/ie/driver.rb
336
351
  - lib/selenium/webdriver/ie/options.rb
337
352
  - lib/selenium/webdriver/ie/service.rb
338
353
  - lib/selenium/webdriver/remote.rb
339
354
  - lib/selenium/webdriver/remote/bridge.rb
355
+ - lib/selenium/webdriver/remote/bridge/commands.rb
340
356
  - lib/selenium/webdriver/remote/capabilities.rb
341
- - lib/selenium/webdriver/remote/commands.rb
342
357
  - lib/selenium/webdriver/remote/driver.rb
343
358
  - lib/selenium/webdriver/remote/http/common.rb
344
359
  - lib/selenium/webdriver/remote/http/curb.rb
345
360
  - lib/selenium/webdriver/remote/http/default.rb
346
- - lib/selenium/webdriver/remote/http/persistent.rb
347
361
  - lib/selenium/webdriver/remote/response.rb
348
362
  - lib/selenium/webdriver/remote/server_error.rb
349
363
  - lib/selenium/webdriver/safari.rb
@@ -354,8 +368,6 @@ files:
354
368
  - lib/selenium/webdriver/support.rb
355
369
  - lib/selenium/webdriver/support/abstract_event_listener.rb
356
370
  - lib/selenium/webdriver/support/block_event_listener.rb
357
- - lib/selenium/webdriver/support/cdp/domain.rb.erb
358
- - lib/selenium/webdriver/support/cdp_client_generator.rb
359
371
  - lib/selenium/webdriver/support/color.rb
360
372
  - lib/selenium/webdriver/support/escaper.rb
361
373
  - lib/selenium/webdriver/support/event_firing_bridge.rb
@@ -371,8 +383,10 @@ licenses:
371
383
  - Apache-2.0
372
384
  metadata:
373
385
  changelog_uri: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES
386
+ github_repo: ssh://github.com/SeleniumHQ/selenium
374
387
  source_code_uri: https://github.com/SeleniumHQ/selenium/tree/trunk/rb
375
- post_install_message:
388
+ rubygems_mfa_required: 'true'
389
+ post_install_message:
376
390
  rdoc_options: []
377
391
  require_paths:
378
392
  - lib
@@ -380,15 +394,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
380
394
  requirements:
381
395
  - - ">="
382
396
  - !ruby/object:Gem::Version
383
- version: '2.5'
397
+ version: '3.0'
384
398
  required_rubygems_version: !ruby/object:Gem::Requirement
385
399
  requirements:
386
400
  - - ">"
387
401
  - !ruby/object:Gem::Version
388
402
  version: 1.3.1
389
403
  requirements: []
390
- rubygems_version: 3.0.3
391
- signing_key:
404
+ rubygems_version: 3.2.33
405
+ signing_key:
392
406
  specification_version: 4
393
407
  summary: Selenium is a browser automation tool for automated testing of webapps and
394
408
  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