selenium-webdriver 4.0.0.alpha7 → 4.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +25 -0
  3. data/LICENSE +1 -1
  4. data/README.md +4 -5
  5. data/lib/selenium/server.rb +2 -26
  6. data/lib/selenium/webdriver.rb +0 -2
  7. data/lib/selenium/webdriver/atoms/findElements.js +88 -86
  8. data/lib/selenium/webdriver/chrome/driver.rb +6 -0
  9. data/lib/selenium/webdriver/chrome/features.rb +66 -0
  10. data/lib/selenium/webdriver/chrome/options.rb +51 -39
  11. data/lib/selenium/webdriver/chrome/service.rb +1 -1
  12. data/lib/selenium/webdriver/common.rb +2 -1
  13. data/lib/selenium/webdriver/common/driver.rb +11 -5
  14. data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +1 -2
  15. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +5 -8
  16. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +7 -1
  17. data/lib/selenium/webdriver/common/driver_extensions/has_logs.rb +30 -0
  18. data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +4 -27
  19. data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +1 -0
  20. data/lib/selenium/webdriver/{edge_html/driver.rb → common/driver_extensions/prints_page.rb} +7 -13
  21. data/lib/selenium/webdriver/common/manager.rb +6 -1
  22. data/lib/selenium/webdriver/common/options.rb +25 -8
  23. data/lib/selenium/webdriver/common/platform.rb +2 -0
  24. data/lib/selenium/webdriver/common/service.rb +0 -8
  25. data/lib/selenium/webdriver/common/service_manager.rb +1 -1
  26. data/lib/selenium/webdriver/common/target_locator.rb +4 -4
  27. data/lib/selenium/webdriver/devtools.rb +5 -2
  28. data/lib/selenium/webdriver/devtools/v85/memory.rb +1 -1
  29. data/lib/selenium/webdriver/devtools/v85/network.rb +1 -1
  30. data/lib/selenium/webdriver/devtools/v85/page.rb +1 -1
  31. data/lib/selenium/webdriver/devtools/v86/memory.rb +1 -1
  32. data/lib/selenium/webdriver/devtools/v86/network.rb +1 -1
  33. data/lib/selenium/webdriver/devtools/v86/page.rb +1 -1
  34. data/lib/selenium/webdriver/devtools/v87/accessibility.rb +1 -1
  35. data/lib/selenium/webdriver/devtools/v87/animation.rb +2 -2
  36. data/lib/selenium/webdriver/devtools/v87/application_cache.rb +2 -2
  37. data/lib/selenium/webdriver/devtools/v87/audits.rb +2 -2
  38. data/lib/selenium/webdriver/devtools/v87/background_service.rb +2 -2
  39. data/lib/selenium/webdriver/devtools/v87/browser.rb +1 -1
  40. data/lib/selenium/webdriver/devtools/v87/cache_storage.rb +1 -1
  41. data/lib/selenium/webdriver/devtools/v87/cast.rb +2 -2
  42. data/lib/selenium/webdriver/devtools/v87/console.rb +2 -2
  43. data/lib/selenium/webdriver/devtools/v87/css.rb +2 -2
  44. data/lib/selenium/webdriver/devtools/v87/database.rb +2 -2
  45. data/lib/selenium/webdriver/devtools/v87/debugger.rb +2 -2
  46. data/lib/selenium/webdriver/devtools/v87/device_orientation.rb +1 -1
  47. data/lib/selenium/webdriver/devtools/v87/dom.rb +2 -2
  48. data/lib/selenium/webdriver/devtools/v87/dom_debugger.rb +1 -1
  49. data/lib/selenium/webdriver/devtools/v87/dom_snapshot.rb +1 -1
  50. data/lib/selenium/webdriver/devtools/v87/dom_storage.rb +2 -2
  51. data/lib/selenium/webdriver/devtools/v87/emulation.rb +2 -2
  52. data/lib/selenium/webdriver/devtools/v87/fetch.rb +2 -2
  53. data/lib/selenium/webdriver/devtools/v87/headless_experimental.rb +2 -2
  54. data/lib/selenium/webdriver/devtools/v87/heap_profiler.rb +2 -2
  55. data/lib/selenium/webdriver/devtools/v87/indexed_db.rb +1 -1
  56. data/lib/selenium/webdriver/devtools/v87/input.rb +1 -1
  57. data/lib/selenium/webdriver/devtools/v87/inspector.rb +2 -2
  58. data/lib/selenium/webdriver/devtools/v87/io.rb +1 -1
  59. data/lib/selenium/webdriver/devtools/v87/layer_tree.rb +2 -2
  60. data/lib/selenium/webdriver/devtools/v87/log.rb +2 -2
  61. data/lib/selenium/webdriver/devtools/v87/media.rb +2 -2
  62. data/lib/selenium/webdriver/devtools/v87/memory.rb +2 -2
  63. data/lib/selenium/webdriver/devtools/v87/network.rb +3 -3
  64. data/lib/selenium/webdriver/devtools/v87/overlay.rb +2 -2
  65. data/lib/selenium/webdriver/devtools/v87/page.rb +3 -3
  66. data/lib/selenium/webdriver/devtools/v87/performance.rb +2 -2
  67. data/lib/selenium/webdriver/devtools/v87/profiler.rb +2 -2
  68. data/lib/selenium/webdriver/devtools/v87/runtime.rb +2 -2
  69. data/lib/selenium/webdriver/devtools/v87/schema.rb +1 -1
  70. data/lib/selenium/webdriver/devtools/v87/security.rb +2 -2
  71. data/lib/selenium/webdriver/devtools/v87/service_worker.rb +2 -2
  72. data/lib/selenium/webdriver/devtools/v87/storage.rb +2 -2
  73. data/lib/selenium/webdriver/devtools/v87/system_info.rb +1 -1
  74. data/lib/selenium/webdriver/devtools/v87/target.rb +2 -2
  75. data/lib/selenium/webdriver/devtools/v87/tethering.rb +2 -2
  76. data/lib/selenium/webdriver/devtools/v87/tracing.rb +2 -2
  77. data/lib/selenium/webdriver/devtools/v87/web_audio.rb +2 -2
  78. data/lib/selenium/webdriver/devtools/v87/web_authn.rb +1 -1
  79. data/lib/selenium/webdriver/devtools/{v84 → v88}/accessibility.rb +12 -3
  80. data/lib/selenium/webdriver/devtools/{v84 → v88}/animation.rb +3 -3
  81. data/lib/selenium/webdriver/devtools/{v84 → v88}/application_cache.rb +3 -3
  82. data/lib/selenium/webdriver/devtools/{v84 → v88}/audits.rb +3 -3
  83. data/lib/selenium/webdriver/devtools/{v84 → v88}/background_service.rb +3 -3
  84. data/lib/selenium/webdriver/devtools/{v84 → v88}/browser.rb +8 -3
  85. data/lib/selenium/webdriver/devtools/{v84 → v88}/cache_storage.rb +3 -3
  86. data/lib/selenium/webdriver/devtools/{v84 → v88}/cast.rb +3 -3
  87. data/lib/selenium/webdriver/devtools/{v84 → v88}/console.rb +3 -3
  88. data/lib/selenium/webdriver/devtools/{v84 → v88}/css.rb +17 -3
  89. data/lib/selenium/webdriver/devtools/{v84 → v88}/database.rb +3 -3
  90. data/lib/selenium/webdriver/devtools/{v84 → v88}/debugger.rb +9 -7
  91. data/lib/selenium/webdriver/devtools/{v84 → v88}/device_orientation.rb +3 -3
  92. data/lib/selenium/webdriver/devtools/{v84 → v88}/dom.rb +10 -3
  93. data/lib/selenium/webdriver/devtools/{v84 → v88}/dom_debugger.rb +3 -3
  94. data/lib/selenium/webdriver/devtools/{v84 → v88}/dom_snapshot.rb +3 -3
  95. data/lib/selenium/webdriver/devtools/{v84 → v88}/dom_storage.rb +3 -3
  96. data/lib/selenium/webdriver/devtools/{v84 → v88}/emulation.rb +21 -5
  97. data/lib/selenium/webdriver/devtools/{v84 → v88}/fetch.rb +3 -3
  98. data/lib/selenium/webdriver/devtools/{v84 → v88}/headless_experimental.rb +3 -3
  99. data/lib/selenium/webdriver/devtools/{v84 → v88}/heap_profiler.rb +3 -3
  100. data/lib/selenium/webdriver/devtools/{v84 → v88}/indexed_db.rb +3 -3
  101. data/lib/selenium/webdriver/devtools/{v84 → v88}/input.rb +12 -6
  102. data/lib/selenium/webdriver/devtools/{v84 → v88}/inspector.rb +3 -3
  103. data/lib/selenium/webdriver/devtools/{v84 → v88}/io.rb +3 -3
  104. data/lib/selenium/webdriver/devtools/{v84 → v88}/layer_tree.rb +3 -3
  105. data/lib/selenium/webdriver/devtools/{v84 → v88}/log.rb +3 -3
  106. data/lib/selenium/webdriver/devtools/{v84 → v88}/media.rb +3 -3
  107. data/lib/selenium/webdriver/devtools/{v84 → v88}/memory.rb +4 -4
  108. data/lib/selenium/webdriver/devtools/{v84 → v88}/network.rb +21 -4
  109. data/lib/selenium/webdriver/devtools/{v84 → v88}/overlay.rb +29 -5
  110. data/lib/selenium/webdriver/devtools/{v84 → v88}/page.rb +4 -4
  111. data/lib/selenium/webdriver/devtools/{v84 → v88}/performance.rb +3 -3
  112. data/lib/selenium/webdriver/devtools/{v84 → v88}/profiler.rb +15 -3
  113. data/lib/selenium/webdriver/devtools/{v84 → v88}/runtime.rb +9 -7
  114. data/lib/selenium/webdriver/devtools/{v84 → v88}/schema.rb +3 -3
  115. data/lib/selenium/webdriver/devtools/{v84 → v88}/security.rb +3 -3
  116. data/lib/selenium/webdriver/devtools/{v84 → v88}/service_worker.rb +3 -3
  117. data/lib/selenium/webdriver/devtools/{v84 → v88}/storage.rb +9 -3
  118. data/lib/selenium/webdriver/devtools/{v84 → v88}/system_info.rb +3 -3
  119. data/lib/selenium/webdriver/devtools/{v84 → v88}/target.rb +7 -5
  120. data/lib/selenium/webdriver/devtools/{v84 → v88}/tethering.rb +3 -3
  121. data/lib/selenium/webdriver/devtools/{v84 → v88}/tracing.rb +6 -5
  122. data/lib/selenium/webdriver/devtools/{v84 → v88}/web_audio.rb +3 -3
  123. data/lib/selenium/webdriver/devtools/{v84 → v88}/web_authn.rb +9 -3
  124. data/lib/selenium/webdriver/edge.rb +7 -29
  125. data/lib/selenium/webdriver/{edge_chrome → edge}/bridge.rb +2 -2
  126. data/lib/selenium/webdriver/{edge_chrome → edge}/driver.rb +4 -4
  127. data/lib/selenium/webdriver/edge/features.rb +39 -0
  128. data/lib/selenium/webdriver/{edge_chrome → edge}/options.rb +9 -3
  129. data/lib/selenium/webdriver/{edge_chrome → edge}/profile.rb +2 -2
  130. data/lib/selenium/webdriver/{edge_chrome → edge}/service.rb +2 -2
  131. data/lib/selenium/webdriver/firefox/driver.rb +13 -0
  132. data/lib/selenium/webdriver/firefox/features.rb +47 -0
  133. data/lib/selenium/webdriver/firefox/options.rb +20 -21
  134. data/lib/selenium/webdriver/firefox/profile.rb +12 -2
  135. data/lib/selenium/webdriver/firefox/service.rb +1 -1
  136. data/lib/selenium/webdriver/ie/options.rb +0 -10
  137. data/lib/selenium/webdriver/ie/service.rb +1 -1
  138. data/lib/selenium/webdriver/remote/bridge.rb +6 -26
  139. data/lib/selenium/webdriver/remote/capabilities.rb +1 -15
  140. data/lib/selenium/webdriver/remote/commands.rb +1 -0
  141. data/lib/selenium/webdriver/remote/driver.rb +6 -1
  142. data/lib/selenium/webdriver/remote/http/default.rb +2 -2
  143. data/lib/selenium/webdriver/remote/http/persistent.rb +6 -0
  144. data/lib/selenium/webdriver/{common/driver_extensions/rotatable.rb → safari/features.rb} +26 -36
  145. data/lib/selenium/webdriver/safari/options.rb +0 -25
  146. data/lib/selenium/webdriver/support/block_event_listener.rb +1 -1
  147. data/lib/selenium/webdriver/support/event_firing_bridge.rb +1 -1
  148. data/lib/selenium/webdriver/version.rb +1 -1
  149. data/selenium-webdriver.gemspec +4 -2
  150. data/selenium_server_deploy.jar +0 -0
  151. metadata +89 -59
  152. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +0 -65
  153. data/lib/selenium/webdriver/edge_html/options.rb +0 -84
  154. data/lib/selenium/webdriver/edge_html/service.rb +0 -47
@@ -25,6 +25,14 @@ module Selenium
25
25
 
26
26
  VALID_PREFERENCE_TYPES = [TrueClass, FalseClass, Integer, Float, String].freeze
27
27
 
28
+ DEFAULT_PREFERENCES = {
29
+ "browser.newtabpage.enabled" => false,
30
+ "browser.startup.homepage" => "about:blank",
31
+ "browser.usedOnWindows10.introURL" => "about:blank",
32
+ "network.captive-portal-service.enabled" => false,
33
+ "security.csp.enable" => false
34
+ }.freeze
35
+
28
36
  attr_reader :name, :log_file
29
37
  attr_writer :secure_ssl, :load_no_focus_lib
30
38
 
@@ -179,10 +187,12 @@ module Selenium
179
187
 
180
188
  def update_user_prefs_in(directory)
181
189
  path = File.join(directory, 'user.js')
182
- prefs = read_user_prefs(path).merge(@additional_prefs)
190
+ prefs = read_user_prefs(path)
191
+ prefs.merge! self.class::DEFAULT_PREFERENCES
192
+ prefs.merge!(@additional_prefs)
183
193
 
184
194
  # If the user sets the home page, we should also start up there
185
- prefs['startup.homepage_welcome_url'] = prefs['browser.startup.homepage']
195
+ prefs['startup.homepage_welcome_url'] ||= prefs['browser.startup.homepage']
186
196
 
187
197
  write_prefs prefs, path
188
198
  end
@@ -32,7 +32,7 @@ module Selenium
32
32
 
33
33
  private
34
34
 
35
- # Note: This processing is deprecated
35
+ # NOTE: This processing is deprecated
36
36
  def extract_service_args(driver_opts)
37
37
  driver_args = super
38
38
  driver_opts = driver_opts.dup
@@ -43,16 +43,6 @@ module Selenium
43
43
  }.freeze
44
44
  BROWSER = 'internet explorer'
45
45
 
46
- CAPABILITIES.each_key do |key|
47
- define_method key do
48
- @options[key]
49
- end
50
-
51
- define_method "#{key}=" do |value|
52
- @options[key] = value
53
- end
54
- end
55
-
56
46
  attr_reader :args
57
47
 
58
48
  #
@@ -32,7 +32,7 @@ module Selenium
32
32
 
33
33
  private
34
34
 
35
- # Note: This processing is deprecated
35
+ # NOTE: This processing is deprecated
36
36
  def extract_service_args(driver_opts)
37
37
  driver_args = super
38
38
  driver_opts = driver_opts.dup
@@ -35,7 +35,7 @@ module Selenium
35
35
  # @api private
36
36
  #
37
37
 
38
- def initialize(http_client: nil, url:)
38
+ def initialize(url:, http_client: nil)
39
39
  uri = url.is_a?(URI) ? url : URI.parse(url)
40
40
  uri.path += '/' unless uri.path.end_with?('/')
41
41
 
@@ -307,22 +307,6 @@ module Selenium
307
307
  execute_script('return sessionStorage.length')
308
308
  end
309
309
 
310
- def location
311
- raise Error::UnsupportedOperationError, 'The W3C standard does not currently support getting location'
312
- end
313
-
314
- def set_location(_lat, _lon, _alt)
315
- raise Error::UnsupportedOperationError, 'The W3C standard does not currently support setting location'
316
- end
317
-
318
- def network_connection
319
- raise Error::UnsupportedOperationError, 'The W3C standard does not currently support getting network connection'
320
- end
321
-
322
- def network_connection=(_type)
323
- raise Error::UnsupportedOperationError, 'The W3C standard does not currently support setting network connection'
324
- end
325
-
326
310
  #
327
311
  # javascript execution
328
312
  #
@@ -393,6 +377,10 @@ module Selenium
393
377
  execute :release_actions
394
378
  end
395
379
 
380
+ def print_page(options = {})
381
+ execute :print_page, {}, {options: options}
382
+ end
383
+
396
384
  def click_element(element)
397
385
  execute :element_click, id: element
398
386
  end
@@ -432,14 +420,6 @@ module Selenium
432
420
  'if (arguments[0].dispatchEvent(e)) { arguments[0].submit() }', form.as_json)
433
421
  end
434
422
 
435
- def screen_orientation=(orientation)
436
- execute :set_screen_orientation, {}, {orientation: orientation}
437
- end
438
-
439
- def screen_orientation
440
- execute :get_screen_orientation
441
- end
442
-
443
423
  #
444
424
  # element properties
445
425
  #
@@ -620,7 +600,7 @@ module Selenium
620
600
  [how, what]
621
601
  end
622
602
 
623
- ESCAPE_CSS_REGEXP = /(['"\\#.:;,!?+<>=~*^$|%&@`{}\-\[\]\(\)])/.freeze
603
+ ESCAPE_CSS_REGEXP = /(['"\\#.:;,!?+<>=~*^$|%&@`{}\-\[\]()])/.freeze
624
604
  UNICODE_CODE_POINT = 30
625
605
 
626
606
  # Escapes invalid characters in CSS selector.
@@ -82,17 +82,6 @@ module Selenium
82
82
  end
83
83
 
84
84
  def edge(opts = {})
85
- edge_chrome(opts)
86
- end
87
-
88
- def edge_html(opts = {})
89
- new({
90
- browser_name: 'MicrosoftEdge',
91
- platform_name: :windows
92
- }.merge(opts))
93
- end
94
-
95
- def edge_chrome(opts = {})
96
85
  new({
97
86
  browser_name: 'MicrosoftEdge'
98
87
  }.merge(opts))
@@ -112,11 +101,8 @@ module Selenium
112
101
  alias_method :ff, :firefox
113
102
 
114
103
  def safari(opts = {})
115
- browser = Selenium::WebDriver::Safari.technology_preview? ? "Safari Technology Preview" : 'safari'
116
-
117
104
  new({
118
- browser_name: browser,
119
- platform_name: :mac
105
+ browser_name: Selenium::WebDriver::Safari.technology_preview? ? "Safari Technology Preview" : 'safari'
120
106
  }.merge(opts))
121
107
  end
122
108
 
@@ -117,6 +117,7 @@ module Selenium
117
117
 
118
118
  actions: [:post, 'session/:session_id/actions'],
119
119
  release_actions: [:delete, 'session/:session_id/actions'],
120
+ print_page: [:post, 'session/:session_id/print'],
120
121
 
121
122
  #
122
123
  # Element Operations
@@ -29,7 +29,6 @@ module Selenium
29
29
  class Driver < WebDriver::Driver
30
30
  include DriverExtensions::UploadsFiles
31
31
  include DriverExtensions::HasSessionId
32
- include DriverExtensions::Rotatable
33
32
  include DriverExtensions::HasRemoteStatus
34
33
  include DriverExtensions::HasWebStorage
35
34
 
@@ -45,6 +44,12 @@ module Selenium
45
44
  opts[:url] ||= "http://#{Platform.localhost}:4444/wd/hub"
46
45
  super
47
46
  end
47
+
48
+ def print_page(**options)
49
+ options[:page_ranges] &&= Array(options[:page_ranges])
50
+
51
+ @bridge.print_page(options)
52
+ end
48
53
  end # Driver
49
54
  end # Remote
50
55
  end # WebDriver
@@ -28,8 +28,7 @@ module Selenium
28
28
  class Default < Common
29
29
  attr_writer :proxy
30
30
 
31
- attr_accessor :open_timeout
32
- attr_accessor :read_timeout
31
+ attr_accessor :open_timeout, :read_timeout
33
32
 
34
33
  # Initializes object.
35
34
  # Warning: Setting {#open_timeout} to non-nil values will cause a separate thread to spawn.
@@ -39,6 +38,7 @@ module Selenium
39
38
  def initialize(open_timeout: nil, read_timeout: nil)
40
39
  @open_timeout = open_timeout
41
40
  @read_timeout = read_timeout
41
+ super()
42
42
  end
43
43
 
44
44
  def close
@@ -25,6 +25,12 @@ module Selenium
25
25
  module Http
26
26
  # @api private
27
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
+
28
34
  def close
29
35
  @http&.shutdown
30
36
  end
@@ -19,43 +19,33 @@
19
19
 
20
20
  module Selenium
21
21
  module WebDriver
22
- #
23
- # @api private
24
- #
25
-
26
- module DriverExtensions
27
- module Rotatable
28
- ORIENTATIONS = %i[landscape portrait].freeze
29
-
30
- #
31
- # Change the screen orientation
32
- #
33
- # @param [:landscape, :portrait] orientation
34
- #
35
- # @api public
36
- #
37
-
38
- def rotation=(orientation)
39
- unless ORIENTATIONS.include?(orientation)
40
- raise ArgumentError, "expected #{ORIENTATIONS.inspect}, got #{orientation.inspect}"
41
- end
42
-
43
- bridge.screen_orientation = orientation.to_s.upcase
22
+ module Safari
23
+ module Features
24
+
25
+ # https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/WebDriverEndpointDoc/Commands/Commands.html
26
+ SAFARI_COMMANDS = {
27
+ get_permissions: [:get, 'session/:session_id/apple/permissions'],
28
+ set_permissions: [:post, 'session/:session_id/apple/permissions'],
29
+ attach_debugger: [:post, 'session/:session_id/apple/attach_debugger']
30
+ }.freeze
31
+
32
+ def commands(command)
33
+ SAFARI_COMMANDS[command] || self.class::COMMANDS[command]
44
34
  end
45
- alias_method :rotate, :rotation=
46
-
47
- #
48
- # Get the current screen orientation
49
- #
50
- # @return [:landscape, :portrait] orientation
51
- #
52
- # @api public
53
- #
54
-
55
- def orientation
56
- bridge.screen_orientation.to_sym.downcase
35
+
36
+ def permissions
37
+ execute(:get_permissions)['permissions']
38
+ end
39
+
40
+ def permissions=(permissions)
41
+ execute :set_permissions, {}, {permissions: permissions}
57
42
  end
58
- end # Rotatable
59
- end # DriverExtensions
43
+
44
+ def attach_debugger
45
+ execute :attach_debugger, {}, {}
46
+ end
47
+
48
+ end # Bridge
49
+ end # Safari
60
50
  end # WebDriver
61
51
  end # Selenium
@@ -28,31 +28,6 @@ module Selenium
28
28
  automatic_profiling: 'safari:automaticProfiling'}.freeze
29
29
  BROWSER = 'safari'
30
30
 
31
- CAPABILITIES.each_key do |key|
32
- define_method key do
33
- @options[key]
34
- end
35
-
36
- define_method "#{key}=" do |value|
37
- @options[key] = value
38
- end
39
- end
40
-
41
- #
42
- # Create a new Options instance for W3C-capable versions of Safari.
43
- #
44
- # @example
45
- # options = Selenium::WebDriver::Safari::Options.new(automatic_inspection: true)
46
- # driver = Selenium::WebDriver.for :safari, options: options
47
- #
48
- # @param [Hash] opts the pre-defined options to create the Safari::Options with
49
- # @option opts [Boolean] :automatic_inspection Preloads Web Inspector and JavaScript debugger. Default is false
50
- # @option opts [Boolean] :automatic_profiling Preloads Web Inspector and starts a timeline recording. Default is false
51
- #
52
-
53
- def initialize(**opts)
54
- super
55
- end
56
31
  end # Options
57
32
  end # Safari
58
33
  end # WebDriver
@@ -25,7 +25,7 @@ module Selenium
25
25
  @callback = callback
26
26
  end
27
27
 
28
- def method_missing(meth, *args) # rubocop:disable Style/MethodMissingSuper, Style/MissingRespondToMissing
28
+ def method_missing(meth, *args) # rubocop:disable Style/MissingRespondToMissing
29
29
  @callback.call meth, *args
30
30
  end
31
31
  end # BlockEventListener
@@ -120,7 +120,7 @@ module Selenium
120
120
  returned
121
121
  end
122
122
 
123
- def method_missing(meth, *args, &blk) # rubocop:disable Style/MethodMissingSuper, Style/MissingRespondToMissing
123
+ def method_missing(meth, *args, &blk) # rubocop:disable Style/MissingRespondToMissing
124
124
  @delegate.__send__(meth, *args, &blk)
125
125
  end
126
126
  end # EventFiringBridge
@@ -19,6 +19,6 @@
19
19
 
20
20
  module Selenium
21
21
  module WebDriver
22
- VERSION = '4.0.0.alpha7'
22
+ VERSION = '4.0.0.beta1'
23
23
  end # WebDriver
24
24
  end # Selenium
@@ -28,10 +28,11 @@ Gem::Specification.new do |s|
28
28
  s.required_rubygems_version = Gem::Requirement.new('> 1.3.1') if s.respond_to? :required_rubygems_version=
29
29
  s.required_ruby_version = Gem::Requirement.new('>= 2.5')
30
30
 
31
- s.files = Dir[root + '/**/*'].reject { |e| e =~ /ruby\.iml|build\.desc/ }.map { |e| e.sub(root + '/', '') }
31
+ s.files = Dir["#{root}/**/*"].reject { |e| e =~ /ruby\.iml|build\.desc/ }.map { |e| e.sub("#{root}/", '') }
32
32
  s.require_paths = ['lib']
33
33
 
34
34
  s.add_runtime_dependency 'childprocess', ['>= 0.5', '< 5.0']
35
+ s.add_runtime_dependency 'rexml', ['~> 3.2']
35
36
  s.add_runtime_dependency 'rubyzip', ['>= 1.2.2']
36
37
  s.add_runtime_dependency 'websocket', ['~> 1.0']
37
38
 
@@ -40,9 +41,10 @@ Gem::Specification.new do |s|
40
41
  s.add_development_dependency 'rack', ['~> 2.0']
41
42
  s.add_development_dependency 'rake'
42
43
  s.add_development_dependency 'rspec', ['~> 3.0']
43
- s.add_development_dependency 'rubocop', ['~> 0.84.0']
44
+ s.add_development_dependency 'rubocop', ['~> 1.8.0']
44
45
  s.add_development_dependency 'rubocop-performance'
45
46
  s.add_development_dependency 'rubocop-rspec'
46
47
  s.add_development_dependency 'webmock', ['~> 3.5']
48
+ s.add_development_dependency 'webrick', ['~> 1.7']
47
49
  s.add_development_dependency 'yard', ['~> 0.9.11']
48
50
  end
Binary file
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.0.0.alpha7
4
+ version: 4.0.0.beta1
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: 2020-11-10 00:00:00.000000000 Z
13
+ date: 2021-02-15 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  requirement: !ruby/object:Gem::Requirement
@@ -32,6 +32,20 @@ dependencies:
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
34
  version: '5.0'
35
+ - !ruby/object:Gem::Dependency
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.2'
41
+ name: rexml
42
+ prerelease: false
43
+ type: :runtime
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '3.2'
35
49
  - !ruby/object:Gem::Dependency
36
50
  requirement: !ruby/object:Gem::Requirement
37
51
  requirements:
@@ -121,7 +135,7 @@ dependencies:
121
135
  requirements:
122
136
  - - "~>"
123
137
  - !ruby/object:Gem::Version
124
- version: 0.84.0
138
+ version: 1.8.0
125
139
  name: rubocop
126
140
  prerelease: false
127
141
  type: :development
@@ -129,7 +143,7 @@ dependencies:
129
143
  requirements:
130
144
  - - "~>"
131
145
  - !ruby/object:Gem::Version
132
- version: 0.84.0
146
+ version: 1.8.0
133
147
  - !ruby/object:Gem::Dependency
134
148
  requirement: !ruby/object:Gem::Requirement
135
149
  requirements:
@@ -172,6 +186,20 @@ dependencies:
172
186
  - - "~>"
173
187
  - !ruby/object:Gem::Version
174
188
  version: '3.5'
189
+ - !ruby/object:Gem::Dependency
190
+ requirement: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '1.7'
195
+ name: webrick
196
+ prerelease: false
197
+ type: :development
198
+ version_requirements: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - "~>"
201
+ - !ruby/object:Gem::Version
202
+ version: '1.7'
175
203
  - !ruby/object:Gem::Dependency
176
204
  requirement: !ruby/object:Gem::Requirement
177
205
  requirements:
@@ -212,6 +240,7 @@ files:
212
240
  - lib/selenium/webdriver/chrome.rb
213
241
  - lib/selenium/webdriver/chrome/bridge.rb
214
242
  - lib/selenium/webdriver/chrome/driver.rb
243
+ - lib/selenium/webdriver/chrome/features.rb
215
244
  - lib/selenium/webdriver/chrome/options.rb
216
245
  - lib/selenium/webdriver/chrome/profile.rb
217
246
  - lib/selenium/webdriver/chrome/service.rb
@@ -226,14 +255,14 @@ files:
226
255
  - lib/selenium/webdriver/common/driver_extensions/has_devtools.rb
227
256
  - lib/selenium/webdriver/common/driver_extensions/has_location.rb
228
257
  - lib/selenium/webdriver/common/driver_extensions/has_log_events.rb
258
+ - lib/selenium/webdriver/common/driver_extensions/has_logs.rb
229
259
  - lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb
230
260
  - lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb
231
261
  - lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
232
262
  - lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
233
263
  - lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
234
264
  - lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
235
- - lib/selenium/webdriver/common/driver_extensions/rotatable.rb
236
- - lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb
265
+ - lib/selenium/webdriver/common/driver_extensions/prints_page.rb
237
266
  - lib/selenium/webdriver/common/driver_extensions/uploads_files.rb
238
267
  - lib/selenium/webdriver/common/element.rb
239
268
  - lib/selenium/webdriver/common/error.rb
@@ -275,51 +304,6 @@ files:
275
304
  - lib/selenium/webdriver/devtools/console_event.rb
276
305
  - lib/selenium/webdriver/devtools/exception_event.rb
277
306
  - lib/selenium/webdriver/devtools/mutation_event.rb
278
- - lib/selenium/webdriver/devtools/v84/accessibility.rb
279
- - lib/selenium/webdriver/devtools/v84/animation.rb
280
- - lib/selenium/webdriver/devtools/v84/application_cache.rb
281
- - lib/selenium/webdriver/devtools/v84/audits.rb
282
- - lib/selenium/webdriver/devtools/v84/background_service.rb
283
- - lib/selenium/webdriver/devtools/v84/browser.rb
284
- - lib/selenium/webdriver/devtools/v84/cache_storage.rb
285
- - lib/selenium/webdriver/devtools/v84/cast.rb
286
- - lib/selenium/webdriver/devtools/v84/console.rb
287
- - lib/selenium/webdriver/devtools/v84/css.rb
288
- - lib/selenium/webdriver/devtools/v84/database.rb
289
- - lib/selenium/webdriver/devtools/v84/debugger.rb
290
- - lib/selenium/webdriver/devtools/v84/device_orientation.rb
291
- - lib/selenium/webdriver/devtools/v84/dom.rb
292
- - lib/selenium/webdriver/devtools/v84/dom_debugger.rb
293
- - lib/selenium/webdriver/devtools/v84/dom_snapshot.rb
294
- - lib/selenium/webdriver/devtools/v84/dom_storage.rb
295
- - lib/selenium/webdriver/devtools/v84/emulation.rb
296
- - lib/selenium/webdriver/devtools/v84/fetch.rb
297
- - lib/selenium/webdriver/devtools/v84/headless_experimental.rb
298
- - lib/selenium/webdriver/devtools/v84/heap_profiler.rb
299
- - lib/selenium/webdriver/devtools/v84/indexed_db.rb
300
- - lib/selenium/webdriver/devtools/v84/input.rb
301
- - lib/selenium/webdriver/devtools/v84/inspector.rb
302
- - lib/selenium/webdriver/devtools/v84/io.rb
303
- - lib/selenium/webdriver/devtools/v84/layer_tree.rb
304
- - lib/selenium/webdriver/devtools/v84/log.rb
305
- - lib/selenium/webdriver/devtools/v84/media.rb
306
- - lib/selenium/webdriver/devtools/v84/memory.rb
307
- - lib/selenium/webdriver/devtools/v84/network.rb
308
- - lib/selenium/webdriver/devtools/v84/overlay.rb
309
- - lib/selenium/webdriver/devtools/v84/page.rb
310
- - lib/selenium/webdriver/devtools/v84/performance.rb
311
- - lib/selenium/webdriver/devtools/v84/profiler.rb
312
- - lib/selenium/webdriver/devtools/v84/runtime.rb
313
- - lib/selenium/webdriver/devtools/v84/schema.rb
314
- - lib/selenium/webdriver/devtools/v84/security.rb
315
- - lib/selenium/webdriver/devtools/v84/service_worker.rb
316
- - lib/selenium/webdriver/devtools/v84/storage.rb
317
- - lib/selenium/webdriver/devtools/v84/system_info.rb
318
- - lib/selenium/webdriver/devtools/v84/target.rb
319
- - lib/selenium/webdriver/devtools/v84/tethering.rb
320
- - lib/selenium/webdriver/devtools/v84/tracing.rb
321
- - lib/selenium/webdriver/devtools/v84/web_audio.rb
322
- - lib/selenium/webdriver/devtools/v84/web_authn.rb
323
307
  - lib/selenium/webdriver/devtools/v85/accessibility.rb
324
308
  - lib/selenium/webdriver/devtools/v85/animation.rb
325
309
  - lib/selenium/webdriver/devtools/v85/application_cache.rb
@@ -455,19 +439,63 @@ files:
455
439
  - lib/selenium/webdriver/devtools/v87/tracing.rb
456
440
  - lib/selenium/webdriver/devtools/v87/web_audio.rb
457
441
  - lib/selenium/webdriver/devtools/v87/web_authn.rb
442
+ - lib/selenium/webdriver/devtools/v88/accessibility.rb
443
+ - lib/selenium/webdriver/devtools/v88/animation.rb
444
+ - lib/selenium/webdriver/devtools/v88/application_cache.rb
445
+ - lib/selenium/webdriver/devtools/v88/audits.rb
446
+ - lib/selenium/webdriver/devtools/v88/background_service.rb
447
+ - lib/selenium/webdriver/devtools/v88/browser.rb
448
+ - lib/selenium/webdriver/devtools/v88/cache_storage.rb
449
+ - lib/selenium/webdriver/devtools/v88/cast.rb
450
+ - lib/selenium/webdriver/devtools/v88/console.rb
451
+ - lib/selenium/webdriver/devtools/v88/css.rb
452
+ - lib/selenium/webdriver/devtools/v88/database.rb
453
+ - lib/selenium/webdriver/devtools/v88/debugger.rb
454
+ - lib/selenium/webdriver/devtools/v88/device_orientation.rb
455
+ - lib/selenium/webdriver/devtools/v88/dom.rb
456
+ - lib/selenium/webdriver/devtools/v88/dom_debugger.rb
457
+ - lib/selenium/webdriver/devtools/v88/dom_snapshot.rb
458
+ - lib/selenium/webdriver/devtools/v88/dom_storage.rb
459
+ - lib/selenium/webdriver/devtools/v88/emulation.rb
460
+ - lib/selenium/webdriver/devtools/v88/fetch.rb
461
+ - lib/selenium/webdriver/devtools/v88/headless_experimental.rb
462
+ - lib/selenium/webdriver/devtools/v88/heap_profiler.rb
463
+ - lib/selenium/webdriver/devtools/v88/indexed_db.rb
464
+ - lib/selenium/webdriver/devtools/v88/input.rb
465
+ - lib/selenium/webdriver/devtools/v88/inspector.rb
466
+ - lib/selenium/webdriver/devtools/v88/io.rb
467
+ - lib/selenium/webdriver/devtools/v88/layer_tree.rb
468
+ - lib/selenium/webdriver/devtools/v88/log.rb
469
+ - lib/selenium/webdriver/devtools/v88/media.rb
470
+ - lib/selenium/webdriver/devtools/v88/memory.rb
471
+ - lib/selenium/webdriver/devtools/v88/network.rb
472
+ - lib/selenium/webdriver/devtools/v88/overlay.rb
473
+ - lib/selenium/webdriver/devtools/v88/page.rb
474
+ - lib/selenium/webdriver/devtools/v88/performance.rb
475
+ - lib/selenium/webdriver/devtools/v88/profiler.rb
476
+ - lib/selenium/webdriver/devtools/v88/runtime.rb
477
+ - lib/selenium/webdriver/devtools/v88/schema.rb
478
+ - lib/selenium/webdriver/devtools/v88/security.rb
479
+ - lib/selenium/webdriver/devtools/v88/service_worker.rb
480
+ - lib/selenium/webdriver/devtools/v88/storage.rb
481
+ - lib/selenium/webdriver/devtools/v88/system_info.rb
482
+ - lib/selenium/webdriver/devtools/v88/target.rb
483
+ - lib/selenium/webdriver/devtools/v88/tethering.rb
484
+ - lib/selenium/webdriver/devtools/v88/tracing.rb
485
+ - lib/selenium/webdriver/devtools/v88/web_audio.rb
486
+ - lib/selenium/webdriver/devtools/v88/web_authn.rb
458
487
  - lib/selenium/webdriver/edge.rb
459
- - lib/selenium/webdriver/edge_chrome/bridge.rb
460
- - lib/selenium/webdriver/edge_chrome/driver.rb
461
- - lib/selenium/webdriver/edge_chrome/options.rb
462
- - lib/selenium/webdriver/edge_chrome/profile.rb
463
- - lib/selenium/webdriver/edge_chrome/service.rb
464
- - lib/selenium/webdriver/edge_html/driver.rb
465
- - lib/selenium/webdriver/edge_html/options.rb
466
- - lib/selenium/webdriver/edge_html/service.rb
488
+ - lib/selenium/webdriver/edge/bridge.rb
489
+ - lib/selenium/webdriver/edge/driver.rb
490
+ - lib/selenium/webdriver/edge/features.rb
491
+ - lib/selenium/webdriver/edge/options.rb
492
+ - lib/selenium/webdriver/edge/profile.rb
493
+ - lib/selenium/webdriver/edge/service.rb
467
494
  - lib/selenium/webdriver/firefox.rb
468
495
  - lib/selenium/webdriver/firefox/bridge.rb
469
496
  - lib/selenium/webdriver/firefox/driver.rb
470
497
  - lib/selenium/webdriver/firefox/extension.rb
498
+ - lib/selenium/webdriver/firefox/features.rb
471
499
  - lib/selenium/webdriver/firefox/options.rb
472
500
  - lib/selenium/webdriver/firefox/profile.rb
473
501
  - lib/selenium/webdriver/firefox/profiles_ini.rb
@@ -490,6 +518,7 @@ files:
490
518
  - lib/selenium/webdriver/safari.rb
491
519
  - lib/selenium/webdriver/safari/bridge.rb
492
520
  - lib/selenium/webdriver/safari/driver.rb
521
+ - lib/selenium/webdriver/safari/features.rb
493
522
  - lib/selenium/webdriver/safari/options.rb
494
523
  - lib/selenium/webdriver/safari/service.rb
495
524
  - lib/selenium/webdriver/support.rb
@@ -502,6 +531,7 @@ files:
502
531
  - lib/selenium/webdriver/support/select.rb
503
532
  - lib/selenium/webdriver/version.rb
504
533
  - selenium-webdriver.gemspec
534
+ - selenium_server_deploy.jar
505
535
  homepage: https://github.com/SeleniumHQ/selenium
506
536
  licenses:
507
537
  - Apache-2.0