selenium-webdriver 4.0.0.alpha7 → 4.0.0.beta1

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 (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