selenium-webdriver 4.1.0 → 4.4.0

Sign up to get free protection for your applications and to get access to all the features.
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