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.
- checksums.yaml +4 -4
- data/CHANGES +25 -0
- data/LICENSE +1 -1
- data/README.md +4 -5
- data/lib/selenium/server.rb +2 -26
- data/lib/selenium/webdriver.rb +0 -2
- data/lib/selenium/webdriver/atoms/findElements.js +88 -86
- data/lib/selenium/webdriver/chrome/driver.rb +6 -0
- data/lib/selenium/webdriver/chrome/features.rb +66 -0
- data/lib/selenium/webdriver/chrome/options.rb +51 -39
- data/lib/selenium/webdriver/chrome/service.rb +1 -1
- data/lib/selenium/webdriver/common.rb +2 -1
- data/lib/selenium/webdriver/common/driver.rb +11 -5
- data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +1 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +5 -8
- data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +7 -1
- data/lib/selenium/webdriver/common/driver_extensions/has_logs.rb +30 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +4 -27
- data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +1 -0
- data/lib/selenium/webdriver/{edge_html/driver.rb → common/driver_extensions/prints_page.rb} +7 -13
- data/lib/selenium/webdriver/common/manager.rb +6 -1
- data/lib/selenium/webdriver/common/options.rb +25 -8
- data/lib/selenium/webdriver/common/platform.rb +2 -0
- data/lib/selenium/webdriver/common/service.rb +0 -8
- data/lib/selenium/webdriver/common/service_manager.rb +1 -1
- data/lib/selenium/webdriver/common/target_locator.rb +4 -4
- data/lib/selenium/webdriver/devtools.rb +5 -2
- data/lib/selenium/webdriver/devtools/v85/memory.rb +1 -1
- data/lib/selenium/webdriver/devtools/v85/network.rb +1 -1
- data/lib/selenium/webdriver/devtools/v85/page.rb +1 -1
- data/lib/selenium/webdriver/devtools/v86/memory.rb +1 -1
- data/lib/selenium/webdriver/devtools/v86/network.rb +1 -1
- data/lib/selenium/webdriver/devtools/v86/page.rb +1 -1
- data/lib/selenium/webdriver/devtools/v87/accessibility.rb +1 -1
- data/lib/selenium/webdriver/devtools/v87/animation.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/application_cache.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/audits.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/background_service.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/browser.rb +1 -1
- data/lib/selenium/webdriver/devtools/v87/cache_storage.rb +1 -1
- data/lib/selenium/webdriver/devtools/v87/cast.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/console.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/css.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/database.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/debugger.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/device_orientation.rb +1 -1
- data/lib/selenium/webdriver/devtools/v87/dom.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/dom_debugger.rb +1 -1
- data/lib/selenium/webdriver/devtools/v87/dom_snapshot.rb +1 -1
- data/lib/selenium/webdriver/devtools/v87/dom_storage.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/emulation.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/fetch.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/headless_experimental.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/heap_profiler.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/indexed_db.rb +1 -1
- data/lib/selenium/webdriver/devtools/v87/input.rb +1 -1
- data/lib/selenium/webdriver/devtools/v87/inspector.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/io.rb +1 -1
- data/lib/selenium/webdriver/devtools/v87/layer_tree.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/log.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/media.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/memory.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/network.rb +3 -3
- data/lib/selenium/webdriver/devtools/v87/overlay.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/page.rb +3 -3
- data/lib/selenium/webdriver/devtools/v87/performance.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/profiler.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/runtime.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/schema.rb +1 -1
- data/lib/selenium/webdriver/devtools/v87/security.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/service_worker.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/storage.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/system_info.rb +1 -1
- data/lib/selenium/webdriver/devtools/v87/target.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/tethering.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/tracing.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/web_audio.rb +2 -2
- data/lib/selenium/webdriver/devtools/v87/web_authn.rb +1 -1
- data/lib/selenium/webdriver/devtools/{v84 → v88}/accessibility.rb +12 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/animation.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/application_cache.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/audits.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/background_service.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/browser.rb +8 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/cache_storage.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/cast.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/console.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/css.rb +17 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/database.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/debugger.rb +9 -7
- data/lib/selenium/webdriver/devtools/{v84 → v88}/device_orientation.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/dom.rb +10 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/dom_debugger.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/dom_snapshot.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/dom_storage.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/emulation.rb +21 -5
- data/lib/selenium/webdriver/devtools/{v84 → v88}/fetch.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/headless_experimental.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/heap_profiler.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/indexed_db.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/input.rb +12 -6
- data/lib/selenium/webdriver/devtools/{v84 → v88}/inspector.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/io.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/layer_tree.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/log.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/media.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/memory.rb +4 -4
- data/lib/selenium/webdriver/devtools/{v84 → v88}/network.rb +21 -4
- data/lib/selenium/webdriver/devtools/{v84 → v88}/overlay.rb +29 -5
- data/lib/selenium/webdriver/devtools/{v84 → v88}/page.rb +4 -4
- data/lib/selenium/webdriver/devtools/{v84 → v88}/performance.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/profiler.rb +15 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/runtime.rb +9 -7
- data/lib/selenium/webdriver/devtools/{v84 → v88}/schema.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/security.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/service_worker.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/storage.rb +9 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/system_info.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/target.rb +7 -5
- data/lib/selenium/webdriver/devtools/{v84 → v88}/tethering.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/tracing.rb +6 -5
- data/lib/selenium/webdriver/devtools/{v84 → v88}/web_audio.rb +3 -3
- data/lib/selenium/webdriver/devtools/{v84 → v88}/web_authn.rb +9 -3
- data/lib/selenium/webdriver/edge.rb +7 -29
- data/lib/selenium/webdriver/{edge_chrome → edge}/bridge.rb +2 -2
- data/lib/selenium/webdriver/{edge_chrome → edge}/driver.rb +4 -4
- data/lib/selenium/webdriver/edge/features.rb +39 -0
- data/lib/selenium/webdriver/{edge_chrome → edge}/options.rb +9 -3
- data/lib/selenium/webdriver/{edge_chrome → edge}/profile.rb +2 -2
- data/lib/selenium/webdriver/{edge_chrome → edge}/service.rb +2 -2
- data/lib/selenium/webdriver/firefox/driver.rb +13 -0
- data/lib/selenium/webdriver/firefox/features.rb +47 -0
- data/lib/selenium/webdriver/firefox/options.rb +20 -21
- data/lib/selenium/webdriver/firefox/profile.rb +12 -2
- data/lib/selenium/webdriver/firefox/service.rb +1 -1
- data/lib/selenium/webdriver/ie/options.rb +0 -10
- data/lib/selenium/webdriver/ie/service.rb +1 -1
- data/lib/selenium/webdriver/remote/bridge.rb +6 -26
- data/lib/selenium/webdriver/remote/capabilities.rb +1 -15
- data/lib/selenium/webdriver/remote/commands.rb +1 -0
- data/lib/selenium/webdriver/remote/driver.rb +6 -1
- data/lib/selenium/webdriver/remote/http/default.rb +2 -2
- data/lib/selenium/webdriver/remote/http/persistent.rb +6 -0
- data/lib/selenium/webdriver/{common/driver_extensions/rotatable.rb → safari/features.rb} +26 -36
- data/lib/selenium/webdriver/safari/options.rb +0 -25
- data/lib/selenium/webdriver/support/block_event_listener.rb +1 -1
- data/lib/selenium/webdriver/support/event_firing_bridge.rb +1 -1
- data/lib/selenium/webdriver/version.rb +1 -1
- data/selenium-webdriver.gemspec +4 -2
- data/selenium_server_deploy.jar +0 -0
- metadata +89 -59
- data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +0 -65
- data/lib/selenium/webdriver/edge_html/options.rb +0 -84
- 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)
|
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']
|
195
|
+
prefs['startup.homepage_welcome_url'] ||= prefs['browser.startup.homepage']
|
186
196
|
|
187
197
|
write_prefs prefs, path
|
188
198
|
end
|
@@ -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
|
#
|
@@ -35,7 +35,7 @@ module Selenium
|
|
35
35
|
# @api private
|
36
36
|
#
|
37
37
|
|
38
|
-
def initialize(http_client: nil
|
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 = /(['"\\#.:;,!?+<>=~*^$|%&@`{}\-\[\]
|
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:
|
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
|
|
@@ -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
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
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
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
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
|
-
|
59
|
-
|
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/
|
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/
|
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
|
data/selenium-webdriver.gemspec
CHANGED
@@ -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
|
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', ['~>
|
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.
|
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:
|
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:
|
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:
|
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/
|
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/
|
460
|
-
- lib/selenium/webdriver/
|
461
|
-
- lib/selenium/webdriver/
|
462
|
-
- lib/selenium/webdriver/
|
463
|
-
- lib/selenium/webdriver/
|
464
|
-
- lib/selenium/webdriver/
|
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
|