selenium-webdriver 4.1.0 → 4.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +295 -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 +3 -4
  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 +5 -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 +0 -2
  55. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +2 -69
  56. data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +0 -2
  57. data/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +1 -3
  58. data/lib/selenium/webdriver/common/driver_finder.rb +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 +13 -17
  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 +1 -1
  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 +2 -2
  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 +1 -1
  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 -114
  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 +7 -16
  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 +4 -3
  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 +65 -35
  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 +0 -1
  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 +3 -1
  152. data/lib/selenium/webdriver/version.rb +1 -1
  153. data/lib/selenium/webdriver.rb +6 -4
  154. data/selenium-webdriver.gemspec +14 -12
  155. metadata +73 -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
@@ -21,29 +21,29 @@ module Selenium
21
21
  module WebDriver
22
22
  module Support
23
23
  class Color
24
- RGB_PATTERN = %r{^\s*rgb\(\s*(\d{1,3})\s*,
24
+ RGB_PATTERN = /^\s*rgb\(\s*(\d{1,3})\s*,
25
25
  \s*(\d{1,3})\s*,
26
- \s*(\d{1,3})\s*\)\s*$}x.freeze
27
- RGB_PCT_PATTERN = %r{^\s*rgb\(\s*(\d{1,3}|\d{1,2}\.\d+)%\s*,
26
+ \s*(\d{1,3})\s*\)\s*$/x
27
+ RGB_PCT_PATTERN = /^\s*rgb\(\s*(\d{1,3}|\d{1,2}\.\d+)%\s*,
28
28
  \s*(\d{1,3}|\d{1,2}\.\d+)%\s*,
29
- \s*(\d{1,3}|\d{1,2}\.\d+)%\s*\)\s*$}x.freeze
30
- RGBA_PATTERN = %r{^\s*rgba\(\s*(\d{1,3})\s*,
29
+ \s*(\d{1,3}|\d{1,2}\.\d+)%\s*\)\s*$/x
30
+ RGBA_PATTERN = /^\s*rgba\(\s*(\d{1,3})\s*,
31
31
  \s*(\d{1,3})\s*,
32
32
  \s*(\d{1,3})\s*,
33
- \s*(0|1|0\.\d+)\s*\)\s*$}x.freeze
34
- RGBA_PCT_PATTERN = %r{^\s*rgba\(\s*(\d{1,3}|\d{1,2}\.\d+)
33
+ \s*(0|1|0\.\d+)\s*\)\s*$/x
34
+ RGBA_PCT_PATTERN = /^\s*rgba\(\s*(\d{1,3}|\d{1,2}\.\d+)
35
35
  %\s*,\s*(\d{1,3}|\d{1,2}\.\d+)
36
36
  %\s*,\s*(\d{1,3}|\d{1,2}\.\d+)
37
- %\s*,\s*(0|1|0\.\d+)\s*\)\s*$}x.freeze
38
- HEX_PATTERN = /#(\h{2})(\h{2})(\h{2})/.freeze
39
- HEX3_PATTERN = /#(\h)(\h)(\h)/.freeze
40
- HSL_PATTERN = %r{^\s*hsl\(\s*(\d{1,3})\s*,
37
+ %\s*,\s*(0|1|0\.\d+)\s*\)\s*$/x
38
+ HEX_PATTERN = /#(\h{2})(\h{2})(\h{2})/
39
+ HEX3_PATTERN = /#(\h)(\h)(\h)/
40
+ HSL_PATTERN = /^\s*hsl\(\s*(\d{1,3})\s*,
41
41
  \s*(\d{1,3})%\s*,
42
- \s*(\d{1,3})%\s*\)\s*$}x.freeze
43
- HSLA_PATTERN = %r{^\s*hsla\(\s*(\d{1,3})\s*,
42
+ \s*(\d{1,3})%\s*\)\s*$/x
43
+ HSLA_PATTERN = /^\s*hsla\(\s*(\d{1,3})\s*,
44
44
  \s*(\d{1,3})%\s*,
45
45
  \s*(\d{1,3})%\s*,
46
- \s*(0|1|0\.\d+)\s*\)\s*$}x.freeze
46
+ \s*(0|1|0\.\d+)\s*\)\s*$/x
47
47
 
48
48
  attr_reader :red, :green, :blue, :alpha
49
49
 
@@ -83,12 +83,12 @@ module Selenium
83
83
  g = r
84
84
  b = r
85
85
  else
86
- luminocity2 = l < 0.5 ? l * (1 + s) : l + s - l * s
87
- luminocity1 = 2 * l - luminocity2
86
+ luminocity2 = l < 0.5 ? l * (s + 1) : l + s - (l * s)
87
+ luminocity1 = (l * 2) - luminocity2
88
88
 
89
- r = hue_to_rgb(luminocity1, luminocity2, h + 1.0 / 3.0)
89
+ r = hue_to_rgb(luminocity1, luminocity2, h + (1.0 / 3.0))
90
90
  g = hue_to_rgb(luminocity1, luminocity2, h)
91
- b = hue_to_rgb(luminocity1, luminocity2, h - 1.0 / 3.0)
91
+ b = hue_to_rgb(luminocity1, luminocity2, h - (1.0 / 3.0))
92
92
  end
93
93
 
94
94
  new (r * 255).round, (g * 255).round, (b * 255).round, a
@@ -99,11 +99,11 @@ module Selenium
99
99
  hue -= 1 if hue > 1.0
100
100
 
101
101
  if hue < 1.0 / 6.0
102
- (lum1 + (lum2 - lum1) * 6.0 * hue)
102
+ (lum1 + ((lum2 - lum1) * 6.0 * hue))
103
103
  elsif hue < 1.0 / 2.0
104
104
  lum2
105
105
  elsif hue < 2.0 / 3.0
106
- lum1 + (lum2 - lum1) * ((2.0 / 3.0) - hue) * 6.0
106
+ lum1 + ((lum2 - lum1) * ((2.0 / 3.0) - hue) * 6.0)
107
107
  else
108
108
  lum1
109
109
  end
@@ -122,10 +122,10 @@ module Selenium
122
122
 
123
123
  [red, green, blue, alpha] == [other.red, other.green, other.blue, other.alpha]
124
124
  end
125
- alias_method :eql?, :==
125
+ alias eql? ==
126
126
 
127
127
  def hash
128
- [red, green, blue, alpha].hash ^ self.class.hash
128
+ [red, green, blue, alpha, self.class].hash
129
129
  end
130
130
 
131
131
  def rgb
@@ -21,14 +21,12 @@ module Selenium
21
21
  module WebDriver
22
22
  module Support
23
23
  class Guards
24
-
25
24
  #
26
25
  # Guard derived from RSpec example metadata.
27
26
  # @api private
28
27
  #
29
28
 
30
29
  class Guard
31
-
32
30
  attr_reader :guarded, :type, :messages, :reason
33
31
 
34
32
  def initialize(guarded, type, guards = nil)
@@ -21,7 +21,6 @@ module Selenium
21
21
  module WebDriver
22
22
  module Support
23
23
  class Guards
24
-
25
24
  #
26
25
  # Guard derived from RSpec example metadata.
27
26
  # @api private
@@ -32,7 +31,7 @@ module Selenium
32
31
 
33
32
  def initialize(name, condition = nil, &blk)
34
33
  @name = name
35
- @execution = if block_given?
34
+ @execution = if blk
36
35
  proc(&blk)
37
36
  else
38
37
  proc { |guarded| guarded.include?(condition) }
@@ -44,7 +43,6 @@ module Selenium
44
43
 
45
44
  list.empty? || @execution.call(list)
46
45
  end
47
-
48
46
  end # GuardCondition
49
47
  end # Guards
50
48
  end # Support
@@ -48,7 +48,7 @@ module Selenium
48
48
  def disposition
49
49
  if !skipping_guard.nil?
50
50
  [:skip, skipping_guard.message]
51
- elsif !pending_guard.nil? && ENV['SKIP_PENDING']
51
+ elsif !pending_guard.nil? && ENV.fetch('SKIP_PENDING', nil)
52
52
  [:skip, pending_guard.message]
53
53
  elsif !pending_guard.nil?
54
54
  [:pending, pending_guard.message]
@@ -20,7 +20,6 @@
20
20
  module Selenium
21
21
  module WebDriver
22
22
  module Support
23
-
24
23
  #
25
24
  # @api private
26
25
  #
@@ -86,7 +86,7 @@ module Selenium
86
86
  #
87
87
  # <option value="foo">Bar</option>
88
88
  #
89
- # When slecting by :value, selects all options that have a value matching the argument. That is, when given "foo" this
89
+ # When selecting by :value, selects all options that have a value matching the argument. That is, when given "foo" this
90
90
  # would select an option like:
91
91
  #
92
92
  # <option value="foo">Bar</option>
@@ -215,6 +215,8 @@ module Selenium
215
215
  end
216
216
 
217
217
  def select_option(option)
218
+ raise Error::UnsupportedOperationError, 'You may not select a disabled option' unless option.enabled?
219
+
218
220
  option.click unless option.selected?
219
221
  end
220
222
 
@@ -19,6 +19,6 @@
19
19
 
20
20
  module Selenium
21
21
  module WebDriver
22
- VERSION = '4.1.0'
22
+ VERSION = '4.14.0'
23
23
  end # WebDriver
24
24
  end # Selenium
@@ -17,13 +17,13 @@
17
17
  # specific language governing permissions and limitations
18
18
  # under the License.
19
19
 
20
- require 'childprocess'
21
20
  require 'tmpdir'
22
21
  require 'fileutils'
23
22
  require 'date'
24
23
  require 'json'
25
24
  require 'set'
26
25
  require 'uri'
26
+ require 'net/http'
27
27
 
28
28
  require 'selenium/webdriver/atoms'
29
29
  require 'selenium/webdriver/common'
@@ -34,8 +34,9 @@ module Selenium
34
34
  Point = Struct.new(:x, :y)
35
35
  Dimension = Struct.new(:width, :height)
36
36
  Rectangle = Struct.new(:x, :y, :width, :height)
37
- Location = Struct.new(:latitude, :longitude, :altitude)
38
37
 
38
+ autoload :BiDi, 'selenium/webdriver/bidi'
39
+ autoload :Chromium, 'selenium/webdriver/chromium'
39
40
  autoload :Chrome, 'selenium/webdriver/chrome'
40
41
  autoload :DevTools, 'selenium/webdriver/devtools'
41
42
  autoload :Edge, 'selenium/webdriver/edge'
@@ -94,8 +95,9 @@ module Selenium
94
95
  # @return [Logger]
95
96
  #
96
97
 
97
- def self.logger
98
- @logger ||= WebDriver::Logger.new
98
+ def self.logger(**opts)
99
+ level = $DEBUG || ENV.key?('DEBUG') ? :debug : :info
100
+ @logger ||= WebDriver::Logger.new('Selenium', default_level: level, **opts)
99
101
  end
100
102
  end # WebDriver
101
103
  end # Selenium
@@ -24,11 +24,13 @@ Gem::Specification.new do |s|
24
24
  s.homepage = 'https://selenium.dev'
25
25
  s.metadata = {
26
26
  'changelog_uri' => 'https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES',
27
- 'source_code_uri' => 'https://github.com/SeleniumHQ/selenium/tree/trunk/rb'
27
+ 'github_repo' => 'ssh://github.com/SeleniumHQ/selenium',
28
+ 'source_code_uri' => 'https://github.com/SeleniumHQ/selenium/tree/trunk/rb',
29
+ 'rubygems_mfa_required' => 'true'
28
30
  }
29
31
 
30
32
  s.required_rubygems_version = Gem::Requirement.new('> 1.3.1') if s.respond_to? :required_rubygems_version=
31
- s.required_ruby_version = Gem::Requirement.new('>= 2.6')
33
+ s.required_ruby_version = Gem::Requirement.new('>= 3.0')
32
34
 
33
35
  s.files = [
34
36
  'CHANGES',
@@ -40,23 +42,23 @@ Gem::Specification.new do |s|
40
42
  'lib/selenium-webdriver.rb',
41
43
  'lib/selenium/server.rb',
42
44
  'lib/selenium/webdriver.rb'
43
- ] + Dir['lib/selenium/webdriver/**/*']
45
+ ]
46
+ s.files += Dir['bin/**/*']
47
+ s.files += Dir['lib/selenium/webdriver/**/*']
44
48
 
49
+ s.bindir = 'bin'
45
50
  s.require_paths = ['lib']
46
51
 
47
- s.add_runtime_dependency 'childprocess', ['>= 0.5', '< 5.0']
48
52
  s.add_runtime_dependency 'rexml', ['~> 3.2', '>= 3.2.5']
49
- s.add_runtime_dependency 'rubyzip', ['>= 1.2.2']
53
+ s.add_runtime_dependency 'rubyzip', ['>= 1.2.2', '< 3.0']
54
+ s.add_runtime_dependency 'websocket', ['~> 1.0']
50
55
 
51
- # childprocess requires ffi on windows but doesn't declare it in its dependencies
52
- s.add_development_dependency 'ffi'
53
- s.add_development_dependency 'pry', ['~> 0.14']
54
56
  s.add_development_dependency 'rack', ['~> 2.0']
55
- s.add_development_dependency 'rake'
57
+ s.add_development_dependency 'rake', ['~> 13.0']
56
58
  s.add_development_dependency 'rspec', ['~> 3.0']
57
- s.add_development_dependency 'rubocop', ['~> 1.8.0']
58
- s.add_development_dependency 'rubocop-performance'
59
- s.add_development_dependency 'rubocop-rspec'
59
+ s.add_development_dependency 'rubocop', ['~> 1.42']
60
+ s.add_development_dependency 'rubocop-performance', ['~> 1.15']
61
+ s.add_development_dependency 'rubocop-rspec', ['~> 2.16']
60
62
  s.add_development_dependency 'webmock', ['~> 3.5']
61
63
  s.add_development_dependency 'webrick', ['~> 1.7']
62
64
  s.add_development_dependency 'yard', ['~> 0.9.11']
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.14.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-10-10 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,40 +220,56 @@ 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
266
259
  - lib/selenium/webdriver/common/driver_extensions/has_debugger.rb
267
260
  - lib/selenium/webdriver/common/driver_extensions/has_devtools.rb
268
261
  - lib/selenium/webdriver/common/driver_extensions/has_launching.rb
269
- - lib/selenium/webdriver/common/driver_extensions/has_location.rb
270
262
  - lib/selenium/webdriver/common/driver_extensions/has_log_events.rb
271
263
  - lib/selenium/webdriver/common/driver_extensions/has_logs.rb
272
264
  - lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb
273
- - lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb
274
265
  - lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
275
266
  - lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
276
267
  - lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
277
- - lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
278
268
  - lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
279
269
  - lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
280
270
  - lib/selenium/webdriver/common/driver_extensions/prints_page.rb
281
271
  - lib/selenium/webdriver/common/driver_extensions/uploads_files.rb
272
+ - lib/selenium/webdriver/common/driver_finder.rb
282
273
  - lib/selenium/webdriver/common/element.rb
283
274
  - lib/selenium/webdriver/common/error.rb
284
275
  - lib/selenium/webdriver/common/file_reaper.rb
@@ -291,9 +282,20 @@ files:
291
282
  - lib/selenium/webdriver/common/interactions/key_actions.rb
292
283
  - lib/selenium/webdriver/common/interactions/key_input.rb
293
284
  - lib/selenium/webdriver/common/interactions/none_input.rb
285
+ - lib/selenium/webdriver/common/interactions/pause.rb
294
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
295
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
296
297
  - lib/selenium/webdriver/common/keys.rb
298
+ - lib/selenium/webdriver/common/local_driver.rb
297
299
  - lib/selenium/webdriver/common/log_entry.rb
298
300
  - lib/selenium/webdriver/common/logger.rb
299
301
  - lib/selenium/webdriver/common/logs.rb
@@ -305,6 +307,7 @@ files:
305
307
  - lib/selenium/webdriver/common/profile_helper.rb
306
308
  - lib/selenium/webdriver/common/proxy.rb
307
309
  - lib/selenium/webdriver/common/search_context.rb
310
+ - lib/selenium/webdriver/common/selenium_manager.rb
308
311
  - lib/selenium/webdriver/common/service.rb
309
312
  - lib/selenium/webdriver/common/service_manager.rb
310
313
  - lib/selenium/webdriver/common/shadow_root.rb
@@ -313,13 +316,18 @@ files:
313
316
  - lib/selenium/webdriver/common/takes_screenshot.rb
314
317
  - lib/selenium/webdriver/common/target_locator.rb
315
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
316
322
  - lib/selenium/webdriver/common/wait.rb
323
+ - lib/selenium/webdriver/common/websocket_connection.rb
317
324
  - lib/selenium/webdriver/common/window.rb
318
325
  - lib/selenium/webdriver/common/zipper.rb
319
326
  - lib/selenium/webdriver/devtools.rb
320
327
  - lib/selenium/webdriver/devtools/console_event.rb
321
328
  - lib/selenium/webdriver/devtools/exception_event.rb
322
329
  - lib/selenium/webdriver/devtools/mutation_event.rb
330
+ - lib/selenium/webdriver/devtools/network_interceptor.rb
323
331
  - lib/selenium/webdriver/devtools/pinned_script.rb
324
332
  - lib/selenium/webdriver/devtools/request.rb
325
333
  - lib/selenium/webdriver/devtools/response.rb
@@ -337,19 +345,19 @@ files:
337
345
  - lib/selenium/webdriver/firefox/profile.rb
338
346
  - lib/selenium/webdriver/firefox/profiles_ini.rb
339
347
  - lib/selenium/webdriver/firefox/service.rb
348
+ - lib/selenium/webdriver/firefox/util.rb
340
349
  - lib/selenium/webdriver/ie.rb
341
350
  - lib/selenium/webdriver/ie/driver.rb
342
351
  - lib/selenium/webdriver/ie/options.rb
343
352
  - lib/selenium/webdriver/ie/service.rb
344
353
  - lib/selenium/webdriver/remote.rb
345
354
  - lib/selenium/webdriver/remote/bridge.rb
355
+ - lib/selenium/webdriver/remote/bridge/commands.rb
346
356
  - lib/selenium/webdriver/remote/capabilities.rb
347
- - lib/selenium/webdriver/remote/commands.rb
348
357
  - lib/selenium/webdriver/remote/driver.rb
349
358
  - lib/selenium/webdriver/remote/http/common.rb
350
359
  - lib/selenium/webdriver/remote/http/curb.rb
351
360
  - lib/selenium/webdriver/remote/http/default.rb
352
- - lib/selenium/webdriver/remote/http/persistent.rb
353
361
  - lib/selenium/webdriver/remote/response.rb
354
362
  - lib/selenium/webdriver/remote/server_error.rb
355
363
  - lib/selenium/webdriver/safari.rb
@@ -360,8 +368,6 @@ files:
360
368
  - lib/selenium/webdriver/support.rb
361
369
  - lib/selenium/webdriver/support/abstract_event_listener.rb
362
370
  - 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
371
  - lib/selenium/webdriver/support/color.rb
366
372
  - lib/selenium/webdriver/support/escaper.rb
367
373
  - lib/selenium/webdriver/support/event_firing_bridge.rb
@@ -377,8 +383,10 @@ licenses:
377
383
  - Apache-2.0
378
384
  metadata:
379
385
  changelog_uri: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES
386
+ github_repo: ssh://github.com/SeleniumHQ/selenium
380
387
  source_code_uri: https://github.com/SeleniumHQ/selenium/tree/trunk/rb
381
- post_install_message:
388
+ rubygems_mfa_required: 'true'
389
+ post_install_message:
382
390
  rdoc_options: []
383
391
  require_paths:
384
392
  - lib
@@ -386,15 +394,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
386
394
  requirements:
387
395
  - - ">="
388
396
  - !ruby/object:Gem::Version
389
- version: '2.6'
397
+ version: '3.0'
390
398
  required_rubygems_version: !ruby/object:Gem::Requirement
391
399
  requirements:
392
400
  - - ">"
393
401
  - !ruby/object:Gem::Version
394
402
  version: 1.3.1
395
403
  requirements: []
396
- rubygems_version: 3.0.3
397
- signing_key:
404
+ rubygems_version: 3.2.33
405
+ signing_key:
398
406
  specification_version: 4
399
407
  summary: Selenium is a browser automation tool for automated testing of webapps and
400
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