selenium-webdriver 4.1.0 → 4.4.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 (81) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +85 -1
  3. data/LICENSE +1 -1
  4. data/NOTICE +1 -1
  5. data/lib/selenium/server.rb +15 -10
  6. data/lib/selenium/webdriver/bidi/session.rb +38 -0
  7. data/lib/selenium/webdriver/bidi.rb +55 -0
  8. data/lib/selenium/webdriver/chrome/features.rb +5 -0
  9. data/lib/selenium/webdriver/chrome/options.rb +33 -19
  10. data/lib/selenium/webdriver/chrome.rb +0 -14
  11. data/lib/selenium/webdriver/common/action_builder.rb +108 -21
  12. data/lib/selenium/webdriver/common/driver.rb +22 -55
  13. data/lib/selenium/webdriver/common/driver_extensions/{has_remote_status.rb → has_bidi.rb} +12 -5
  14. data/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +10 -0
  15. data/lib/selenium/webdriver/common/driver_extensions/has_context.rb +1 -2
  16. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +1 -1
  17. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +2 -67
  18. data/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +1 -1
  19. data/lib/selenium/webdriver/common/element.rb +1 -1
  20. data/lib/selenium/webdriver/common/error.rb +1 -1
  21. data/lib/selenium/webdriver/common/interactions/input_device.rb +10 -4
  22. data/lib/selenium/webdriver/common/interactions/interaction.rb +12 -25
  23. data/lib/selenium/webdriver/common/interactions/interactions.rb +24 -4
  24. data/lib/selenium/webdriver/common/interactions/key_actions.rb +5 -1
  25. data/lib/selenium/webdriver/common/interactions/key_input.rb +11 -27
  26. data/lib/selenium/webdriver/common/interactions/none_input.rb +10 -8
  27. data/lib/selenium/webdriver/common/interactions/pause.rb +49 -0
  28. data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +59 -70
  29. data/lib/selenium/webdriver/common/interactions/pointer_cancel.rb +45 -0
  30. data/lib/selenium/webdriver/common/interactions/pointer_event_properties.rb +63 -0
  31. data/lib/selenium/webdriver/common/interactions/pointer_input.rb +15 -84
  32. data/lib/selenium/webdriver/common/interactions/pointer_move.rb +60 -0
  33. data/lib/selenium/webdriver/common/interactions/pointer_press.rb +85 -0
  34. data/lib/selenium/webdriver/common/interactions/scroll.rb +57 -0
  35. data/lib/selenium/webdriver/common/interactions/scroll_origin.rb +48 -0
  36. data/lib/selenium/webdriver/common/interactions/typing_interaction.rb +54 -0
  37. data/lib/selenium/webdriver/common/interactions/wheel_actions.rb +113 -0
  38. data/lib/selenium/webdriver/common/interactions/wheel_input.rb +42 -0
  39. data/lib/selenium/webdriver/common/keys.rb +1 -0
  40. data/lib/selenium/webdriver/common/manager.rb +0 -27
  41. data/lib/selenium/webdriver/common/options.rb +2 -9
  42. data/lib/selenium/webdriver/common/platform.rb +4 -4
  43. data/lib/selenium/webdriver/common/search_context.rb +0 -6
  44. data/lib/selenium/webdriver/common/service_manager.rb +2 -3
  45. data/lib/selenium/webdriver/common/shadow_root.rb +1 -1
  46. data/lib/selenium/webdriver/common/socket_poller.rb +1 -1
  47. data/lib/selenium/webdriver/common/takes_screenshot.rb +1 -1
  48. data/lib/selenium/webdriver/common/virtual_authenticator/credential.rb +83 -0
  49. data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb +73 -0
  50. data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb +62 -0
  51. data/lib/selenium/webdriver/common/websocket_connection.rb +156 -0
  52. data/lib/selenium/webdriver/common/window.rb +6 -6
  53. data/lib/selenium/webdriver/common/zipper.rb +1 -1
  54. data/lib/selenium/webdriver/common.rb +17 -3
  55. data/lib/selenium/webdriver/devtools/network_interceptor.rb +176 -0
  56. data/lib/selenium/webdriver/devtools/request.rb +1 -1
  57. data/lib/selenium/webdriver/devtools/response.rb +1 -1
  58. data/lib/selenium/webdriver/devtools.rb +6 -112
  59. data/lib/selenium/webdriver/edge/features.rb +1 -0
  60. data/lib/selenium/webdriver/firefox/driver.rb +1 -0
  61. data/lib/selenium/webdriver/firefox/features.rb +2 -5
  62. data/lib/selenium/webdriver/firefox/options.rb +3 -1
  63. data/lib/selenium/webdriver/firefox/profile.rb +1 -5
  64. data/lib/selenium/webdriver/firefox/util.rb +46 -0
  65. data/lib/selenium/webdriver/firefox.rb +1 -14
  66. data/lib/selenium/webdriver/ie.rb +0 -14
  67. data/lib/selenium/webdriver/remote/bridge.rb +54 -19
  68. data/lib/selenium/webdriver/remote/commands.rb +15 -6
  69. data/lib/selenium/webdriver/remote/driver.rb +0 -1
  70. data/lib/selenium/webdriver/remote/http/default.rb +6 -12
  71. data/lib/selenium/webdriver/remote/response.rb +2 -2
  72. data/lib/selenium/webdriver/safari.rb +0 -14
  73. data/lib/selenium/webdriver/support/cdp_client_generator.rb +4 -4
  74. data/lib/selenium/webdriver/support/color.rb +7 -7
  75. data/lib/selenium/webdriver/support/guards/guard_condition.rb +1 -1
  76. data/lib/selenium/webdriver/support/guards.rb +1 -1
  77. data/lib/selenium/webdriver/version.rb +1 -1
  78. data/lib/selenium/webdriver.rb +1 -0
  79. data/selenium-webdriver.gemspec +9 -6
  80. metadata +64 -12
  81. data/lib/selenium/webdriver/remote/http/persistent.rb +0 -65
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.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Rodionov
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-11-22 00:00:00.000000000 Z
13
+ date: 2022-08-09 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: childprocess
@@ -59,6 +59,9 @@ dependencies:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.2.2
62
+ - - "<"
63
+ - !ruby/object:Gem::Version
64
+ version: '3.0'
62
65
  type: :runtime
63
66
  prerelease: false
64
67
  version_requirements: !ruby/object:Gem::Requirement
@@ -66,6 +69,23 @@ dependencies:
66
69
  - - ">="
67
70
  - !ruby/object:Gem::Version
68
71
  version: 1.2.2
72
+ - - "<"
73
+ - !ruby/object:Gem::Version
74
+ version: '3.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: websocket
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.0'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.0'
69
89
  - !ruby/object:Gem::Dependency
70
90
  name: ffi
71
91
  requirement: !ruby/object:Gem::Requirement
@@ -142,16 +162,30 @@ dependencies:
142
162
  requirements:
143
163
  - - "~>"
144
164
  - !ruby/object:Gem::Version
145
- version: 1.8.0
165
+ version: '1.31'
146
166
  type: :development
147
167
  prerelease: false
148
168
  version_requirements: !ruby/object:Gem::Requirement
149
169
  requirements:
150
170
  - - "~>"
151
171
  - !ruby/object:Gem::Version
152
- version: 1.8.0
172
+ version: '1.31'
153
173
  - !ruby/object:Gem::Dependency
154
174
  name: rubocop-performance
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '1.13'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '1.13'
187
+ - !ruby/object:Gem::Dependency
188
+ name: rubocop-rake
155
189
  requirement: !ruby/object:Gem::Requirement
156
190
  requirements:
157
191
  - - ">="
@@ -168,16 +202,16 @@ dependencies:
168
202
  name: rubocop-rspec
169
203
  requirement: !ruby/object:Gem::Requirement
170
204
  requirements:
171
- - - ">="
205
+ - - "~>"
172
206
  - !ruby/object:Gem::Version
173
- version: '0'
207
+ version: '2.12'
174
208
  type: :development
175
209
  prerelease: false
176
210
  version_requirements: !ruby/object:Gem::Requirement
177
211
  requirements:
178
- - - ">="
212
+ - - "~>"
179
213
  - !ruby/object:Gem::Version
180
- version: '0'
214
+ version: '2.12'
181
215
  - !ruby/object:Gem::Dependency
182
216
  name: webmock
183
217
  requirement: !ruby/object:Gem::Requirement
@@ -245,6 +279,8 @@ files:
245
279
  - lib/selenium/webdriver/atoms/getAttribute.js
246
280
  - lib/selenium/webdriver/atoms/isDisplayed.js
247
281
  - lib/selenium/webdriver/atoms/mutationListener.js
282
+ - lib/selenium/webdriver/bidi.rb
283
+ - lib/selenium/webdriver/bidi/session.rb
248
284
  - lib/selenium/webdriver/chrome.rb
249
285
  - lib/selenium/webdriver/chrome/driver.rb
250
286
  - lib/selenium/webdriver/chrome/features.rb
@@ -260,6 +296,7 @@ files:
260
296
  - lib/selenium/webdriver/common/driver_extensions/has_addons.rb
261
297
  - lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb
262
298
  - lib/selenium/webdriver/common/driver_extensions/has_authentication.rb
299
+ - lib/selenium/webdriver/common/driver_extensions/has_bidi.rb
263
300
  - lib/selenium/webdriver/common/driver_extensions/has_casting.rb
264
301
  - lib/selenium/webdriver/common/driver_extensions/has_cdp.rb
265
302
  - lib/selenium/webdriver/common/driver_extensions/has_context.rb
@@ -274,7 +311,6 @@ files:
274
311
  - lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
275
312
  - lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
276
313
  - lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
277
- - lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
278
314
  - lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
279
315
  - lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
280
316
  - lib/selenium/webdriver/common/driver_extensions/prints_page.rb
@@ -291,8 +327,18 @@ files:
291
327
  - lib/selenium/webdriver/common/interactions/key_actions.rb
292
328
  - lib/selenium/webdriver/common/interactions/key_input.rb
293
329
  - lib/selenium/webdriver/common/interactions/none_input.rb
330
+ - lib/selenium/webdriver/common/interactions/pause.rb
294
331
  - lib/selenium/webdriver/common/interactions/pointer_actions.rb
332
+ - lib/selenium/webdriver/common/interactions/pointer_cancel.rb
333
+ - lib/selenium/webdriver/common/interactions/pointer_event_properties.rb
295
334
  - lib/selenium/webdriver/common/interactions/pointer_input.rb
335
+ - lib/selenium/webdriver/common/interactions/pointer_move.rb
336
+ - lib/selenium/webdriver/common/interactions/pointer_press.rb
337
+ - lib/selenium/webdriver/common/interactions/scroll.rb
338
+ - lib/selenium/webdriver/common/interactions/scroll_origin.rb
339
+ - lib/selenium/webdriver/common/interactions/typing_interaction.rb
340
+ - lib/selenium/webdriver/common/interactions/wheel_actions.rb
341
+ - lib/selenium/webdriver/common/interactions/wheel_input.rb
296
342
  - lib/selenium/webdriver/common/keys.rb
297
343
  - lib/selenium/webdriver/common/log_entry.rb
298
344
  - lib/selenium/webdriver/common/logger.rb
@@ -313,13 +359,18 @@ files:
313
359
  - lib/selenium/webdriver/common/takes_screenshot.rb
314
360
  - lib/selenium/webdriver/common/target_locator.rb
315
361
  - lib/selenium/webdriver/common/timeouts.rb
362
+ - lib/selenium/webdriver/common/virtual_authenticator/credential.rb
363
+ - lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb
364
+ - lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb
316
365
  - lib/selenium/webdriver/common/wait.rb
366
+ - lib/selenium/webdriver/common/websocket_connection.rb
317
367
  - lib/selenium/webdriver/common/window.rb
318
368
  - lib/selenium/webdriver/common/zipper.rb
319
369
  - lib/selenium/webdriver/devtools.rb
320
370
  - lib/selenium/webdriver/devtools/console_event.rb
321
371
  - lib/selenium/webdriver/devtools/exception_event.rb
322
372
  - lib/selenium/webdriver/devtools/mutation_event.rb
373
+ - lib/selenium/webdriver/devtools/network_interceptor.rb
323
374
  - lib/selenium/webdriver/devtools/pinned_script.rb
324
375
  - lib/selenium/webdriver/devtools/request.rb
325
376
  - lib/selenium/webdriver/devtools/response.rb
@@ -337,6 +388,7 @@ files:
337
388
  - lib/selenium/webdriver/firefox/profile.rb
338
389
  - lib/selenium/webdriver/firefox/profiles_ini.rb
339
390
  - lib/selenium/webdriver/firefox/service.rb
391
+ - lib/selenium/webdriver/firefox/util.rb
340
392
  - lib/selenium/webdriver/ie.rb
341
393
  - lib/selenium/webdriver/ie/driver.rb
342
394
  - lib/selenium/webdriver/ie/options.rb
@@ -349,7 +401,6 @@ files:
349
401
  - lib/selenium/webdriver/remote/http/common.rb
350
402
  - lib/selenium/webdriver/remote/http/curb.rb
351
403
  - lib/selenium/webdriver/remote/http/default.rb
352
- - lib/selenium/webdriver/remote/http/persistent.rb
353
404
  - lib/selenium/webdriver/remote/response.rb
354
405
  - lib/selenium/webdriver/remote/server_error.rb
355
406
  - lib/selenium/webdriver/safari.rb
@@ -378,6 +429,7 @@ licenses:
378
429
  metadata:
379
430
  changelog_uri: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES
380
431
  source_code_uri: https://github.com/SeleniumHQ/selenium/tree/trunk/rb
432
+ rubygems_mfa_required: 'true'
381
433
  post_install_message:
382
434
  rdoc_options: []
383
435
  require_paths:
@@ -386,14 +438,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
386
438
  requirements:
387
439
  - - ">="
388
440
  - !ruby/object:Gem::Version
389
- version: '2.6'
441
+ version: '2.7'
390
442
  required_rubygems_version: !ruby/object:Gem::Requirement
391
443
  requirements:
392
444
  - - ">"
393
445
  - !ruby/object:Gem::Version
394
446
  version: 1.3.1
395
447
  requirements: []
396
- rubygems_version: 3.0.3
448
+ rubygems_version: 3.0.3.1
397
449
  signing_key:
398
450
  specification_version: 4
399
451
  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