selenium-webdriver 4.1.0 → 4.14.0
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 +295 -1
- data/Gemfile +2 -0
- data/LICENSE +1 -1
- data/NOTICE +1 -1
- data/README.md +2 -2
- data/bin/linux/selenium-manager +0 -0
- data/bin/macos/selenium-manager +0 -0
- data/bin/windows/selenium-manager.exe +0 -0
- data/lib/selenium/server.rb +36 -39
- data/lib/selenium/webdriver/atoms/findElements.js +3 -4
- data/lib/selenium/webdriver/atoms/getAttribute.js +0 -0
- data/lib/selenium/webdriver/atoms/isDisplayed.js +0 -0
- data/lib/selenium/webdriver/atoms/mutationListener.js +0 -0
- data/lib/selenium/webdriver/atoms.rb +5 -3
- data/lib/selenium/webdriver/bidi/browsing_context.rb +88 -0
- data/lib/selenium/webdriver/bidi/browsing_context_info.rb +35 -0
- data/lib/selenium/webdriver/bidi/log/base_log_entry.rb +35 -0
- data/lib/selenium/webdriver/bidi/log/console_log_entry.rb +35 -0
- data/lib/selenium/webdriver/{common/driver_extensions/has_location.rb → bidi/log/filter_by.rb} +14 -11
- data/lib/selenium/webdriver/bidi/log/generic_log_entry.rb +33 -0
- data/lib/selenium/webdriver/bidi/log/javascript_log_entry.rb +33 -0
- data/lib/selenium/webdriver/bidi/log_inspector.rb +143 -0
- data/lib/selenium/webdriver/bidi/navigate_result.rb +33 -0
- data/lib/selenium/webdriver/bidi/session.rb +51 -0
- data/lib/selenium/webdriver/bidi.rb +56 -0
- data/lib/selenium/webdriver/chrome/driver.rb +9 -29
- data/lib/selenium/webdriver/chrome/features.rb +6 -68
- data/lib/selenium/webdriver/chrome/options.rb +3 -223
- data/lib/selenium/webdriver/chrome/profile.rb +3 -83
- data/lib/selenium/webdriver/chrome/service.rb +4 -19
- data/lib/selenium/webdriver/chrome.rb +0 -16
- data/lib/selenium/webdriver/chromium/driver.rb +60 -0
- data/lib/selenium/webdriver/chromium/features.rb +103 -0
- data/lib/selenium/webdriver/chromium/options.rb +243 -0
- data/lib/selenium/webdriver/chromium/profile.rb +113 -0
- data/lib/selenium/webdriver/chromium.rb +29 -0
- data/lib/selenium/webdriver/common/action_builder.rb +62 -22
- data/lib/selenium/webdriver/common/child_process.rb +124 -0
- data/lib/selenium/webdriver/common/driver.rb +31 -81
- data/lib/selenium/webdriver/common/driver_extensions/downloads_files.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb +0 -1
- data/lib/selenium/webdriver/common/driver_extensions/has_addons.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_authentication.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/{has_remote_status.rb → has_bidi.rb} +10 -5
- data/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +10 -1
- data/lib/selenium/webdriver/common/driver_extensions/has_cdp.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_context.rb +1 -4
- data/lib/selenium/webdriver/common/driver_extensions/has_debugger.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_launching.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +1 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +2 -69
- data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +0 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +1 -3
- data/lib/selenium/webdriver/common/driver_finder.rb +45 -0
- data/lib/selenium/webdriver/common/element.rb +8 -8
- data/lib/selenium/webdriver/common/error.rb +28 -5
- data/lib/selenium/webdriver/common/html5/shared_web_storage.rb +2 -2
- data/lib/selenium/webdriver/common/interactions/input_device.rb +10 -4
- data/lib/selenium/webdriver/common/interactions/interaction.rb +12 -25
- data/lib/selenium/webdriver/common/interactions/interactions.rb +24 -4
- data/lib/selenium/webdriver/common/interactions/key_actions.rb +5 -1
- data/lib/selenium/webdriver/common/interactions/key_input.rb +11 -27
- data/lib/selenium/webdriver/common/interactions/none_input.rb +10 -8
- data/lib/selenium/webdriver/common/interactions/pause.rb +49 -0
- data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +59 -70
- data/lib/selenium/webdriver/common/{driver_extensions/has_network_connection.rb → interactions/pointer_cancel.rb} +19 -11
- data/lib/selenium/webdriver/common/interactions/pointer_event_properties.rb +63 -0
- data/lib/selenium/webdriver/common/interactions/pointer_input.rb +15 -84
- data/lib/selenium/webdriver/common/interactions/pointer_move.rb +60 -0
- data/lib/selenium/webdriver/common/interactions/pointer_press.rb +85 -0
- data/lib/selenium/webdriver/common/interactions/scroll.rb +59 -0
- data/lib/selenium/webdriver/common/interactions/scroll_origin.rb +48 -0
- data/lib/selenium/webdriver/common/interactions/typing_interaction.rb +54 -0
- data/lib/selenium/webdriver/common/interactions/wheel_actions.rb +113 -0
- data/lib/selenium/webdriver/common/interactions/wheel_input.rb +42 -0
- data/lib/selenium/webdriver/common/keys.rb +1 -0
- data/lib/selenium/webdriver/common/local_driver.rb +46 -0
- data/lib/selenium/webdriver/common/logger.rb +90 -25
- data/lib/selenium/webdriver/common/manager.rb +0 -27
- data/lib/selenium/webdriver/common/options.rb +13 -17
- data/lib/selenium/webdriver/common/platform.rb +5 -51
- data/lib/selenium/webdriver/common/port_prober.rb +1 -1
- data/lib/selenium/webdriver/common/profile_helper.rb +1 -1
- data/lib/selenium/webdriver/common/proxy.rb +2 -2
- data/lib/selenium/webdriver/common/search_context.rb +0 -6
- data/lib/selenium/webdriver/common/selenium_manager.rb +134 -0
- data/lib/selenium/webdriver/common/service.rb +21 -30
- data/lib/selenium/webdriver/common/service_manager.rb +8 -15
- data/lib/selenium/webdriver/common/shadow_root.rb +2 -3
- data/lib/selenium/webdriver/common/socket_lock.rb +3 -3
- data/lib/selenium/webdriver/common/socket_poller.rb +2 -2
- data/lib/selenium/webdriver/common/takes_screenshot.rb +2 -3
- data/lib/selenium/webdriver/common/target_locator.rb +2 -3
- data/lib/selenium/webdriver/common/timeouts.rb +2 -2
- data/lib/selenium/webdriver/common/virtual_authenticator/credential.rb +85 -0
- data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb +72 -0
- data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb +62 -0
- data/lib/selenium/webdriver/common/websocket_connection.rb +164 -0
- data/lib/selenium/webdriver/common/window.rb +6 -6
- data/lib/selenium/webdriver/common/zipper.rb +1 -1
- data/lib/selenium/webdriver/common.rb +21 -5
- data/lib/selenium/webdriver/devtools/console_event.rb +0 -2
- data/lib/selenium/webdriver/devtools/exception_event.rb +0 -2
- data/lib/selenium/webdriver/devtools/mutation_event.rb +0 -2
- data/lib/selenium/webdriver/devtools/network_interceptor.rb +173 -0
- data/lib/selenium/webdriver/devtools/pinned_script.rb +0 -2
- data/lib/selenium/webdriver/devtools/request.rb +1 -3
- data/lib/selenium/webdriver/devtools/response.rb +1 -3
- data/lib/selenium/webdriver/devtools.rb +17 -114
- data/lib/selenium/webdriver/edge/driver.rb +9 -3
- data/lib/selenium/webdriver/edge/features.rb +4 -4
- data/lib/selenium/webdriver/edge/options.rb +17 -5
- data/lib/selenium/webdriver/edge/profile.rb +2 -2
- data/lib/selenium/webdriver/edge/service.rb +8 -7
- data/lib/selenium/webdriver/edge.rb +0 -2
- data/lib/selenium/webdriver/firefox/driver.rb +9 -2
- data/lib/selenium/webdriver/firefox/features.rb +6 -6
- data/lib/selenium/webdriver/firefox/options.rb +7 -16
- data/lib/selenium/webdriver/firefox/profile.rb +8 -12
- data/lib/selenium/webdriver/firefox/service.rb +0 -18
- data/lib/selenium/webdriver/firefox/util.rb +46 -0
- data/lib/selenium/webdriver/firefox.rb +1 -14
- data/lib/selenium/webdriver/ie/driver.rb +7 -1
- data/lib/selenium/webdriver/ie/options.rb +4 -3
- data/lib/selenium/webdriver/ie/service.rb +0 -22
- data/lib/selenium/webdriver/ie.rb +0 -14
- data/lib/selenium/webdriver/remote/{commands.rb → bridge/commands.rb} +15 -8
- data/lib/selenium/webdriver/remote/bridge.rb +65 -35
- data/lib/selenium/webdriver/remote/capabilities.rb +3 -53
- data/lib/selenium/webdriver/remote/driver.rb +31 -14
- data/lib/selenium/webdriver/remote/http/common.rb +3 -3
- data/lib/selenium/webdriver/remote/http/curb.rb +1 -3
- data/lib/selenium/webdriver/remote/http/default.rb +8 -14
- data/lib/selenium/webdriver/remote/response.rb +2 -3
- data/lib/selenium/webdriver/remote/server_error.rb +1 -1
- data/lib/selenium/webdriver/remote.rb +0 -1
- data/lib/selenium/webdriver/safari/driver.rb +7 -1
- data/lib/selenium/webdriver/safari/features.rb +0 -2
- data/lib/selenium/webdriver/safari/options.rb +5 -1
- data/lib/selenium/webdriver/safari/service.rb +10 -4
- data/lib/selenium/webdriver/safari.rb +1 -15
- data/lib/selenium/webdriver/support/color.rb +22 -22
- data/lib/selenium/webdriver/support/guards/guard.rb +0 -2
- data/lib/selenium/webdriver/support/guards/guard_condition.rb +1 -3
- data/lib/selenium/webdriver/support/guards.rb +1 -1
- data/lib/selenium/webdriver/support/relative_locator.rb +0 -1
- data/lib/selenium/webdriver/support/select.rb +3 -1
- data/lib/selenium/webdriver/version.rb +1 -1
- data/lib/selenium/webdriver.rb +6 -4
- data/selenium-webdriver.gemspec +14 -12
- metadata +73 -65
- data/lib/selenium/webdriver/remote/http/persistent.rb +0 -65
- data/lib/selenium/webdriver/support/cdp/domain.rb.erb +0 -63
- data/lib/selenium/webdriver/support/cdp_client_generator.rb +0 -108
|
@@ -21,29 +21,29 @@ module Selenium
|
|
|
21
21
|
module WebDriver
|
|
22
22
|
module Support
|
|
23
23
|
class Color
|
|
24
|
-
RGB_PATTERN =
|
|
24
|
+
RGB_PATTERN = /^\s*rgb\(\s*(\d{1,3})\s*,
|
|
25
25
|
\s*(\d{1,3})\s*,
|
|
26
|
-
\s*(\d{1,3})\s*\)\s
|
|
27
|
-
RGB_PCT_PATTERN =
|
|
26
|
+
\s*(\d{1,3})\s*\)\s*$/x
|
|
27
|
+
RGB_PCT_PATTERN = /^\s*rgb\(\s*(\d{1,3}|\d{1,2}\.\d+)%\s*,
|
|
28
28
|
\s*(\d{1,3}|\d{1,2}\.\d+)%\s*,
|
|
29
|
-
\s*(\d{1,3}|\d{1,2}\.\d+)%\s*\)\s
|
|
30
|
-
RGBA_PATTERN =
|
|
29
|
+
\s*(\d{1,3}|\d{1,2}\.\d+)%\s*\)\s*$/x
|
|
30
|
+
RGBA_PATTERN = /^\s*rgba\(\s*(\d{1,3})\s*,
|
|
31
31
|
\s*(\d{1,3})\s*,
|
|
32
32
|
\s*(\d{1,3})\s*,
|
|
33
|
-
\s*(0|1|0\.\d+)\s*\)\s
|
|
34
|
-
RGBA_PCT_PATTERN =
|
|
33
|
+
\s*(0|1|0\.\d+)\s*\)\s*$/x
|
|
34
|
+
RGBA_PCT_PATTERN = /^\s*rgba\(\s*(\d{1,3}|\d{1,2}\.\d+)
|
|
35
35
|
%\s*,\s*(\d{1,3}|\d{1,2}\.\d+)
|
|
36
36
|
%\s*,\s*(\d{1,3}|\d{1,2}\.\d+)
|
|
37
|
-
%\s*,\s*(0|1|0\.\d+)\s*\)\s
|
|
38
|
-
HEX_PATTERN = /#(\h{2})(\h{2})(\h{2})
|
|
39
|
-
HEX3_PATTERN = /#(\h)(\h)(\h)
|
|
40
|
-
HSL_PATTERN =
|
|
37
|
+
%\s*,\s*(0|1|0\.\d+)\s*\)\s*$/x
|
|
38
|
+
HEX_PATTERN = /#(\h{2})(\h{2})(\h{2})/
|
|
39
|
+
HEX3_PATTERN = /#(\h)(\h)(\h)/
|
|
40
|
+
HSL_PATTERN = /^\s*hsl\(\s*(\d{1,3})\s*,
|
|
41
41
|
\s*(\d{1,3})%\s*,
|
|
42
|
-
\s*(\d{1,3})%\s*\)\s
|
|
43
|
-
HSLA_PATTERN =
|
|
42
|
+
\s*(\d{1,3})%\s*\)\s*$/x
|
|
43
|
+
HSLA_PATTERN = /^\s*hsla\(\s*(\d{1,3})\s*,
|
|
44
44
|
\s*(\d{1,3})%\s*,
|
|
45
45
|
\s*(\d{1,3})%\s*,
|
|
46
|
-
\s*(0|1|0\.\d+)\s*\)\s
|
|
46
|
+
\s*(0|1|0\.\d+)\s*\)\s*$/x
|
|
47
47
|
|
|
48
48
|
attr_reader :red, :green, :blue, :alpha
|
|
49
49
|
|
|
@@ -83,12 +83,12 @@ module Selenium
|
|
|
83
83
|
g = r
|
|
84
84
|
b = r
|
|
85
85
|
else
|
|
86
|
-
luminocity2 = l < 0.5 ? l * (
|
|
87
|
-
luminocity1 =
|
|
86
|
+
luminocity2 = l < 0.5 ? l * (s + 1) : l + s - (l * s)
|
|
87
|
+
luminocity1 = (l * 2) - luminocity2
|
|
88
88
|
|
|
89
|
-
r = hue_to_rgb(luminocity1, luminocity2, h + 1.0 / 3.0)
|
|
89
|
+
r = hue_to_rgb(luminocity1, luminocity2, h + (1.0 / 3.0))
|
|
90
90
|
g = hue_to_rgb(luminocity1, luminocity2, h)
|
|
91
|
-
b = hue_to_rgb(luminocity1, luminocity2, h - 1.0 / 3.0)
|
|
91
|
+
b = hue_to_rgb(luminocity1, luminocity2, h - (1.0 / 3.0))
|
|
92
92
|
end
|
|
93
93
|
|
|
94
94
|
new (r * 255).round, (g * 255).round, (b * 255).round, a
|
|
@@ -99,11 +99,11 @@ module Selenium
|
|
|
99
99
|
hue -= 1 if hue > 1.0
|
|
100
100
|
|
|
101
101
|
if hue < 1.0 / 6.0
|
|
102
|
-
(lum1 + (lum2 - lum1) * 6.0 * hue)
|
|
102
|
+
(lum1 + ((lum2 - lum1) * 6.0 * hue))
|
|
103
103
|
elsif hue < 1.0 / 2.0
|
|
104
104
|
lum2
|
|
105
105
|
elsif hue < 2.0 / 3.0
|
|
106
|
-
lum1 + (lum2 - lum1) * ((2.0 / 3.0) - hue) * 6.0
|
|
106
|
+
lum1 + ((lum2 - lum1) * ((2.0 / 3.0) - hue) * 6.0)
|
|
107
107
|
else
|
|
108
108
|
lum1
|
|
109
109
|
end
|
|
@@ -122,10 +122,10 @@ module Selenium
|
|
|
122
122
|
|
|
123
123
|
[red, green, blue, alpha] == [other.red, other.green, other.blue, other.alpha]
|
|
124
124
|
end
|
|
125
|
-
|
|
125
|
+
alias eql? ==
|
|
126
126
|
|
|
127
127
|
def hash
|
|
128
|
-
[red, green, blue, alpha
|
|
128
|
+
[red, green, blue, alpha, self.class].hash
|
|
129
129
|
end
|
|
130
130
|
|
|
131
131
|
def rgb
|
|
@@ -21,14 +21,12 @@ module Selenium
|
|
|
21
21
|
module WebDriver
|
|
22
22
|
module Support
|
|
23
23
|
class Guards
|
|
24
|
-
|
|
25
24
|
#
|
|
26
25
|
# Guard derived from RSpec example metadata.
|
|
27
26
|
# @api private
|
|
28
27
|
#
|
|
29
28
|
|
|
30
29
|
class Guard
|
|
31
|
-
|
|
32
30
|
attr_reader :guarded, :type, :messages, :reason
|
|
33
31
|
|
|
34
32
|
def initialize(guarded, type, guards = nil)
|
|
@@ -21,7 +21,6 @@ module Selenium
|
|
|
21
21
|
module WebDriver
|
|
22
22
|
module Support
|
|
23
23
|
class Guards
|
|
24
|
-
|
|
25
24
|
#
|
|
26
25
|
# Guard derived from RSpec example metadata.
|
|
27
26
|
# @api private
|
|
@@ -32,7 +31,7 @@ module Selenium
|
|
|
32
31
|
|
|
33
32
|
def initialize(name, condition = nil, &blk)
|
|
34
33
|
@name = name
|
|
35
|
-
@execution = if
|
|
34
|
+
@execution = if blk
|
|
36
35
|
proc(&blk)
|
|
37
36
|
else
|
|
38
37
|
proc { |guarded| guarded.include?(condition) }
|
|
@@ -44,7 +43,6 @@ module Selenium
|
|
|
44
43
|
|
|
45
44
|
list.empty? || @execution.call(list)
|
|
46
45
|
end
|
|
47
|
-
|
|
48
46
|
end # GuardCondition
|
|
49
47
|
end # Guards
|
|
50
48
|
end # Support
|
|
@@ -48,7 +48,7 @@ module Selenium
|
|
|
48
48
|
def disposition
|
|
49
49
|
if !skipping_guard.nil?
|
|
50
50
|
[:skip, skipping_guard.message]
|
|
51
|
-
elsif !pending_guard.nil? && ENV
|
|
51
|
+
elsif !pending_guard.nil? && ENV.fetch('SKIP_PENDING', nil)
|
|
52
52
|
[:skip, pending_guard.message]
|
|
53
53
|
elsif !pending_guard.nil?
|
|
54
54
|
[:pending, pending_guard.message]
|
|
@@ -86,7 +86,7 @@ module Selenium
|
|
|
86
86
|
#
|
|
87
87
|
# <option value="foo">Bar</option>
|
|
88
88
|
#
|
|
89
|
-
# When
|
|
89
|
+
# When selecting by :value, selects all options that have a value matching the argument. That is, when given "foo" this
|
|
90
90
|
# would select an option like:
|
|
91
91
|
#
|
|
92
92
|
# <option value="foo">Bar</option>
|
|
@@ -215,6 +215,8 @@ module Selenium
|
|
|
215
215
|
end
|
|
216
216
|
|
|
217
217
|
def select_option(option)
|
|
218
|
+
raise Error::UnsupportedOperationError, 'You may not select a disabled option' unless option.enabled?
|
|
219
|
+
|
|
218
220
|
option.click unless option.selected?
|
|
219
221
|
end
|
|
220
222
|
|
data/lib/selenium/webdriver.rb
CHANGED
|
@@ -17,13 +17,13 @@
|
|
|
17
17
|
# specific language governing permissions and limitations
|
|
18
18
|
# under the License.
|
|
19
19
|
|
|
20
|
-
require 'childprocess'
|
|
21
20
|
require 'tmpdir'
|
|
22
21
|
require 'fileutils'
|
|
23
22
|
require 'date'
|
|
24
23
|
require 'json'
|
|
25
24
|
require 'set'
|
|
26
25
|
require 'uri'
|
|
26
|
+
require 'net/http'
|
|
27
27
|
|
|
28
28
|
require 'selenium/webdriver/atoms'
|
|
29
29
|
require 'selenium/webdriver/common'
|
|
@@ -34,8 +34,9 @@ module Selenium
|
|
|
34
34
|
Point = Struct.new(:x, :y)
|
|
35
35
|
Dimension = Struct.new(:width, :height)
|
|
36
36
|
Rectangle = Struct.new(:x, :y, :width, :height)
|
|
37
|
-
Location = Struct.new(:latitude, :longitude, :altitude)
|
|
38
37
|
|
|
38
|
+
autoload :BiDi, 'selenium/webdriver/bidi'
|
|
39
|
+
autoload :Chromium, 'selenium/webdriver/chromium'
|
|
39
40
|
autoload :Chrome, 'selenium/webdriver/chrome'
|
|
40
41
|
autoload :DevTools, 'selenium/webdriver/devtools'
|
|
41
42
|
autoload :Edge, 'selenium/webdriver/edge'
|
|
@@ -94,8 +95,9 @@ module Selenium
|
|
|
94
95
|
# @return [Logger]
|
|
95
96
|
#
|
|
96
97
|
|
|
97
|
-
def self.logger
|
|
98
|
-
|
|
98
|
+
def self.logger(**opts)
|
|
99
|
+
level = $DEBUG || ENV.key?('DEBUG') ? :debug : :info
|
|
100
|
+
@logger ||= WebDriver::Logger.new('Selenium', default_level: level, **opts)
|
|
99
101
|
end
|
|
100
102
|
end # WebDriver
|
|
101
103
|
end # Selenium
|
data/selenium-webdriver.gemspec
CHANGED
|
@@ -24,11 +24,13 @@ Gem::Specification.new do |s|
|
|
|
24
24
|
s.homepage = 'https://selenium.dev'
|
|
25
25
|
s.metadata = {
|
|
26
26
|
'changelog_uri' => 'https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES',
|
|
27
|
-
'
|
|
27
|
+
'github_repo' => 'ssh://github.com/SeleniumHQ/selenium',
|
|
28
|
+
'source_code_uri' => 'https://github.com/SeleniumHQ/selenium/tree/trunk/rb',
|
|
29
|
+
'rubygems_mfa_required' => 'true'
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
s.required_rubygems_version = Gem::Requirement.new('> 1.3.1') if s.respond_to? :required_rubygems_version=
|
|
31
|
-
s.required_ruby_version = Gem::Requirement.new('>=
|
|
33
|
+
s.required_ruby_version = Gem::Requirement.new('>= 3.0')
|
|
32
34
|
|
|
33
35
|
s.files = [
|
|
34
36
|
'CHANGES',
|
|
@@ -40,23 +42,23 @@ Gem::Specification.new do |s|
|
|
|
40
42
|
'lib/selenium-webdriver.rb',
|
|
41
43
|
'lib/selenium/server.rb',
|
|
42
44
|
'lib/selenium/webdriver.rb'
|
|
43
|
-
]
|
|
45
|
+
]
|
|
46
|
+
s.files += Dir['bin/**/*']
|
|
47
|
+
s.files += Dir['lib/selenium/webdriver/**/*']
|
|
44
48
|
|
|
49
|
+
s.bindir = 'bin'
|
|
45
50
|
s.require_paths = ['lib']
|
|
46
51
|
|
|
47
|
-
s.add_runtime_dependency 'childprocess', ['>= 0.5', '< 5.0']
|
|
48
52
|
s.add_runtime_dependency 'rexml', ['~> 3.2', '>= 3.2.5']
|
|
49
|
-
s.add_runtime_dependency 'rubyzip', ['>= 1.2.2']
|
|
53
|
+
s.add_runtime_dependency 'rubyzip', ['>= 1.2.2', '< 3.0']
|
|
54
|
+
s.add_runtime_dependency 'websocket', ['~> 1.0']
|
|
50
55
|
|
|
51
|
-
# childprocess requires ffi on windows but doesn't declare it in its dependencies
|
|
52
|
-
s.add_development_dependency 'ffi'
|
|
53
|
-
s.add_development_dependency 'pry', ['~> 0.14']
|
|
54
56
|
s.add_development_dependency 'rack', ['~> 2.0']
|
|
55
|
-
s.add_development_dependency 'rake'
|
|
57
|
+
s.add_development_dependency 'rake', ['~> 13.0']
|
|
56
58
|
s.add_development_dependency 'rspec', ['~> 3.0']
|
|
57
|
-
s.add_development_dependency 'rubocop', ['~> 1.
|
|
58
|
-
s.add_development_dependency 'rubocop-performance'
|
|
59
|
-
s.add_development_dependency 'rubocop-rspec'
|
|
59
|
+
s.add_development_dependency 'rubocop', ['~> 1.42']
|
|
60
|
+
s.add_development_dependency 'rubocop-performance', ['~> 1.15']
|
|
61
|
+
s.add_development_dependency 'rubocop-rspec', ['~> 2.16']
|
|
60
62
|
s.add_development_dependency 'webmock', ['~> 3.5']
|
|
61
63
|
s.add_development_dependency 'webrick', ['~> 1.7']
|
|
62
64
|
s.add_development_dependency 'yard', ['~> 0.9.11']
|
metadata
CHANGED
|
@@ -1,37 +1,17 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: selenium-webdriver
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.14.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alex Rodionov
|
|
8
8
|
- Titus Fortner
|
|
9
9
|
- Thomas Walpole
|
|
10
|
-
autorequire:
|
|
10
|
+
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2023-10-10 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
|
-
- !ruby/object:Gem::Dependency
|
|
16
|
-
name: childprocess
|
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
|
18
|
-
requirements:
|
|
19
|
-
- - ">="
|
|
20
|
-
- !ruby/object:Gem::Version
|
|
21
|
-
version: '0.5'
|
|
22
|
-
- - "<"
|
|
23
|
-
- !ruby/object:Gem::Version
|
|
24
|
-
version: '5.0'
|
|
25
|
-
type: :runtime
|
|
26
|
-
prerelease: false
|
|
27
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
28
|
-
requirements:
|
|
29
|
-
- - ">="
|
|
30
|
-
- !ruby/object:Gem::Version
|
|
31
|
-
version: '0.5'
|
|
32
|
-
- - "<"
|
|
33
|
-
- !ruby/object:Gem::Version
|
|
34
|
-
version: '5.0'
|
|
35
15
|
- !ruby/object:Gem::Dependency
|
|
36
16
|
name: rexml
|
|
37
17
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -59,6 +39,9 @@ dependencies:
|
|
|
59
39
|
- - ">="
|
|
60
40
|
- !ruby/object:Gem::Version
|
|
61
41
|
version: 1.2.2
|
|
42
|
+
- - "<"
|
|
43
|
+
- !ruby/object:Gem::Version
|
|
44
|
+
version: '3.0'
|
|
62
45
|
type: :runtime
|
|
63
46
|
prerelease: false
|
|
64
47
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -66,34 +49,23 @@ dependencies:
|
|
|
66
49
|
- - ">="
|
|
67
50
|
- !ruby/object:Gem::Version
|
|
68
51
|
version: 1.2.2
|
|
69
|
-
-
|
|
70
|
-
name: ffi
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - ">="
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - ">="
|
|
52
|
+
- - "<"
|
|
81
53
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0'
|
|
54
|
+
version: '3.0'
|
|
83
55
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
56
|
+
name: websocket
|
|
85
57
|
requirement: !ruby/object:Gem::Requirement
|
|
86
58
|
requirements:
|
|
87
59
|
- - "~>"
|
|
88
60
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0
|
|
90
|
-
type: :
|
|
61
|
+
version: '1.0'
|
|
62
|
+
type: :runtime
|
|
91
63
|
prerelease: false
|
|
92
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
65
|
requirements:
|
|
94
66
|
- - "~>"
|
|
95
67
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0
|
|
68
|
+
version: '1.0'
|
|
97
69
|
- !ruby/object:Gem::Dependency
|
|
98
70
|
name: rack
|
|
99
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -112,16 +84,16 @@ dependencies:
|
|
|
112
84
|
name: rake
|
|
113
85
|
requirement: !ruby/object:Gem::Requirement
|
|
114
86
|
requirements:
|
|
115
|
-
- - "
|
|
87
|
+
- - "~>"
|
|
116
88
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '0'
|
|
89
|
+
version: '13.0'
|
|
118
90
|
type: :development
|
|
119
91
|
prerelease: false
|
|
120
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
93
|
requirements:
|
|
122
|
-
- - "
|
|
94
|
+
- - "~>"
|
|
123
95
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '0'
|
|
96
|
+
version: '13.0'
|
|
125
97
|
- !ruby/object:Gem::Dependency
|
|
126
98
|
name: rspec
|
|
127
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -142,42 +114,42 @@ dependencies:
|
|
|
142
114
|
requirements:
|
|
143
115
|
- - "~>"
|
|
144
116
|
- !ruby/object:Gem::Version
|
|
145
|
-
version: 1.
|
|
117
|
+
version: '1.42'
|
|
146
118
|
type: :development
|
|
147
119
|
prerelease: false
|
|
148
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
121
|
requirements:
|
|
150
122
|
- - "~>"
|
|
151
123
|
- !ruby/object:Gem::Version
|
|
152
|
-
version: 1.
|
|
124
|
+
version: '1.42'
|
|
153
125
|
- !ruby/object:Gem::Dependency
|
|
154
126
|
name: rubocop-performance
|
|
155
127
|
requirement: !ruby/object:Gem::Requirement
|
|
156
128
|
requirements:
|
|
157
|
-
- - "
|
|
129
|
+
- - "~>"
|
|
158
130
|
- !ruby/object:Gem::Version
|
|
159
|
-
version: '
|
|
131
|
+
version: '1.15'
|
|
160
132
|
type: :development
|
|
161
133
|
prerelease: false
|
|
162
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
163
135
|
requirements:
|
|
164
|
-
- - "
|
|
136
|
+
- - "~>"
|
|
165
137
|
- !ruby/object:Gem::Version
|
|
166
|
-
version: '
|
|
138
|
+
version: '1.15'
|
|
167
139
|
- !ruby/object:Gem::Dependency
|
|
168
140
|
name: rubocop-rspec
|
|
169
141
|
requirement: !ruby/object:Gem::Requirement
|
|
170
142
|
requirements:
|
|
171
|
-
- - "
|
|
143
|
+
- - "~>"
|
|
172
144
|
- !ruby/object:Gem::Version
|
|
173
|
-
version: '
|
|
145
|
+
version: '2.16'
|
|
174
146
|
type: :development
|
|
175
147
|
prerelease: false
|
|
176
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
177
149
|
requirements:
|
|
178
|
-
- - "
|
|
150
|
+
- - "~>"
|
|
179
151
|
- !ruby/object:Gem::Version
|
|
180
|
-
version: '
|
|
152
|
+
version: '2.16'
|
|
181
153
|
- !ruby/object:Gem::Dependency
|
|
182
154
|
name: webmock
|
|
183
155
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -237,6 +209,9 @@ files:
|
|
|
237
209
|
- LICENSE
|
|
238
210
|
- NOTICE
|
|
239
211
|
- README.md
|
|
212
|
+
- bin/linux/selenium-manager
|
|
213
|
+
- bin/macos/selenium-manager
|
|
214
|
+
- bin/windows/selenium-manager.exe
|
|
240
215
|
- lib/selenium-webdriver.rb
|
|
241
216
|
- lib/selenium/server.rb
|
|
242
217
|
- lib/selenium/webdriver.rb
|
|
@@ -245,40 +220,56 @@ files:
|
|
|
245
220
|
- lib/selenium/webdriver/atoms/getAttribute.js
|
|
246
221
|
- lib/selenium/webdriver/atoms/isDisplayed.js
|
|
247
222
|
- lib/selenium/webdriver/atoms/mutationListener.js
|
|
223
|
+
- lib/selenium/webdriver/bidi.rb
|
|
224
|
+
- lib/selenium/webdriver/bidi/browsing_context.rb
|
|
225
|
+
- lib/selenium/webdriver/bidi/browsing_context_info.rb
|
|
226
|
+
- lib/selenium/webdriver/bidi/log/base_log_entry.rb
|
|
227
|
+
- lib/selenium/webdriver/bidi/log/console_log_entry.rb
|
|
228
|
+
- lib/selenium/webdriver/bidi/log/filter_by.rb
|
|
229
|
+
- lib/selenium/webdriver/bidi/log/generic_log_entry.rb
|
|
230
|
+
- lib/selenium/webdriver/bidi/log/javascript_log_entry.rb
|
|
231
|
+
- lib/selenium/webdriver/bidi/log_inspector.rb
|
|
232
|
+
- lib/selenium/webdriver/bidi/navigate_result.rb
|
|
233
|
+
- lib/selenium/webdriver/bidi/session.rb
|
|
248
234
|
- lib/selenium/webdriver/chrome.rb
|
|
249
235
|
- lib/selenium/webdriver/chrome/driver.rb
|
|
250
236
|
- lib/selenium/webdriver/chrome/features.rb
|
|
251
237
|
- lib/selenium/webdriver/chrome/options.rb
|
|
252
238
|
- lib/selenium/webdriver/chrome/profile.rb
|
|
253
239
|
- lib/selenium/webdriver/chrome/service.rb
|
|
240
|
+
- lib/selenium/webdriver/chromium.rb
|
|
241
|
+
- lib/selenium/webdriver/chromium/driver.rb
|
|
242
|
+
- lib/selenium/webdriver/chromium/features.rb
|
|
243
|
+
- lib/selenium/webdriver/chromium/options.rb
|
|
244
|
+
- lib/selenium/webdriver/chromium/profile.rb
|
|
254
245
|
- lib/selenium/webdriver/common.rb
|
|
255
246
|
- lib/selenium/webdriver/common/action_builder.rb
|
|
256
247
|
- lib/selenium/webdriver/common/alert.rb
|
|
248
|
+
- lib/selenium/webdriver/common/child_process.rb
|
|
257
249
|
- lib/selenium/webdriver/common/driver.rb
|
|
258
250
|
- lib/selenium/webdriver/common/driver_extensions/downloads_files.rb
|
|
259
251
|
- lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb
|
|
260
252
|
- lib/selenium/webdriver/common/driver_extensions/has_addons.rb
|
|
261
253
|
- lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb
|
|
262
254
|
- lib/selenium/webdriver/common/driver_extensions/has_authentication.rb
|
|
255
|
+
- lib/selenium/webdriver/common/driver_extensions/has_bidi.rb
|
|
263
256
|
- lib/selenium/webdriver/common/driver_extensions/has_casting.rb
|
|
264
257
|
- lib/selenium/webdriver/common/driver_extensions/has_cdp.rb
|
|
265
258
|
- lib/selenium/webdriver/common/driver_extensions/has_context.rb
|
|
266
259
|
- lib/selenium/webdriver/common/driver_extensions/has_debugger.rb
|
|
267
260
|
- lib/selenium/webdriver/common/driver_extensions/has_devtools.rb
|
|
268
261
|
- lib/selenium/webdriver/common/driver_extensions/has_launching.rb
|
|
269
|
-
- lib/selenium/webdriver/common/driver_extensions/has_location.rb
|
|
270
262
|
- lib/selenium/webdriver/common/driver_extensions/has_log_events.rb
|
|
271
263
|
- lib/selenium/webdriver/common/driver_extensions/has_logs.rb
|
|
272
264
|
- lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb
|
|
273
|
-
- lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb
|
|
274
265
|
- lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
|
|
275
266
|
- lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
|
|
276
267
|
- lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
|
|
277
|
-
- lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
|
|
278
268
|
- lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
|
|
279
269
|
- lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
|
|
280
270
|
- lib/selenium/webdriver/common/driver_extensions/prints_page.rb
|
|
281
271
|
- lib/selenium/webdriver/common/driver_extensions/uploads_files.rb
|
|
272
|
+
- lib/selenium/webdriver/common/driver_finder.rb
|
|
282
273
|
- lib/selenium/webdriver/common/element.rb
|
|
283
274
|
- lib/selenium/webdriver/common/error.rb
|
|
284
275
|
- lib/selenium/webdriver/common/file_reaper.rb
|
|
@@ -291,9 +282,20 @@ files:
|
|
|
291
282
|
- lib/selenium/webdriver/common/interactions/key_actions.rb
|
|
292
283
|
- lib/selenium/webdriver/common/interactions/key_input.rb
|
|
293
284
|
- lib/selenium/webdriver/common/interactions/none_input.rb
|
|
285
|
+
- lib/selenium/webdriver/common/interactions/pause.rb
|
|
294
286
|
- lib/selenium/webdriver/common/interactions/pointer_actions.rb
|
|
287
|
+
- lib/selenium/webdriver/common/interactions/pointer_cancel.rb
|
|
288
|
+
- lib/selenium/webdriver/common/interactions/pointer_event_properties.rb
|
|
295
289
|
- lib/selenium/webdriver/common/interactions/pointer_input.rb
|
|
290
|
+
- lib/selenium/webdriver/common/interactions/pointer_move.rb
|
|
291
|
+
- lib/selenium/webdriver/common/interactions/pointer_press.rb
|
|
292
|
+
- lib/selenium/webdriver/common/interactions/scroll.rb
|
|
293
|
+
- lib/selenium/webdriver/common/interactions/scroll_origin.rb
|
|
294
|
+
- lib/selenium/webdriver/common/interactions/typing_interaction.rb
|
|
295
|
+
- lib/selenium/webdriver/common/interactions/wheel_actions.rb
|
|
296
|
+
- lib/selenium/webdriver/common/interactions/wheel_input.rb
|
|
296
297
|
- lib/selenium/webdriver/common/keys.rb
|
|
298
|
+
- lib/selenium/webdriver/common/local_driver.rb
|
|
297
299
|
- lib/selenium/webdriver/common/log_entry.rb
|
|
298
300
|
- lib/selenium/webdriver/common/logger.rb
|
|
299
301
|
- lib/selenium/webdriver/common/logs.rb
|
|
@@ -305,6 +307,7 @@ files:
|
|
|
305
307
|
- lib/selenium/webdriver/common/profile_helper.rb
|
|
306
308
|
- lib/selenium/webdriver/common/proxy.rb
|
|
307
309
|
- lib/selenium/webdriver/common/search_context.rb
|
|
310
|
+
- lib/selenium/webdriver/common/selenium_manager.rb
|
|
308
311
|
- lib/selenium/webdriver/common/service.rb
|
|
309
312
|
- lib/selenium/webdriver/common/service_manager.rb
|
|
310
313
|
- lib/selenium/webdriver/common/shadow_root.rb
|
|
@@ -313,13 +316,18 @@ files:
|
|
|
313
316
|
- lib/selenium/webdriver/common/takes_screenshot.rb
|
|
314
317
|
- lib/selenium/webdriver/common/target_locator.rb
|
|
315
318
|
- lib/selenium/webdriver/common/timeouts.rb
|
|
319
|
+
- lib/selenium/webdriver/common/virtual_authenticator/credential.rb
|
|
320
|
+
- lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb
|
|
321
|
+
- lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb
|
|
316
322
|
- lib/selenium/webdriver/common/wait.rb
|
|
323
|
+
- lib/selenium/webdriver/common/websocket_connection.rb
|
|
317
324
|
- lib/selenium/webdriver/common/window.rb
|
|
318
325
|
- lib/selenium/webdriver/common/zipper.rb
|
|
319
326
|
- lib/selenium/webdriver/devtools.rb
|
|
320
327
|
- lib/selenium/webdriver/devtools/console_event.rb
|
|
321
328
|
- lib/selenium/webdriver/devtools/exception_event.rb
|
|
322
329
|
- lib/selenium/webdriver/devtools/mutation_event.rb
|
|
330
|
+
- lib/selenium/webdriver/devtools/network_interceptor.rb
|
|
323
331
|
- lib/selenium/webdriver/devtools/pinned_script.rb
|
|
324
332
|
- lib/selenium/webdriver/devtools/request.rb
|
|
325
333
|
- lib/selenium/webdriver/devtools/response.rb
|
|
@@ -337,19 +345,19 @@ files:
|
|
|
337
345
|
- lib/selenium/webdriver/firefox/profile.rb
|
|
338
346
|
- lib/selenium/webdriver/firefox/profiles_ini.rb
|
|
339
347
|
- lib/selenium/webdriver/firefox/service.rb
|
|
348
|
+
- lib/selenium/webdriver/firefox/util.rb
|
|
340
349
|
- lib/selenium/webdriver/ie.rb
|
|
341
350
|
- lib/selenium/webdriver/ie/driver.rb
|
|
342
351
|
- lib/selenium/webdriver/ie/options.rb
|
|
343
352
|
- lib/selenium/webdriver/ie/service.rb
|
|
344
353
|
- lib/selenium/webdriver/remote.rb
|
|
345
354
|
- lib/selenium/webdriver/remote/bridge.rb
|
|
355
|
+
- lib/selenium/webdriver/remote/bridge/commands.rb
|
|
346
356
|
- lib/selenium/webdriver/remote/capabilities.rb
|
|
347
|
-
- lib/selenium/webdriver/remote/commands.rb
|
|
348
357
|
- lib/selenium/webdriver/remote/driver.rb
|
|
349
358
|
- lib/selenium/webdriver/remote/http/common.rb
|
|
350
359
|
- lib/selenium/webdriver/remote/http/curb.rb
|
|
351
360
|
- lib/selenium/webdriver/remote/http/default.rb
|
|
352
|
-
- lib/selenium/webdriver/remote/http/persistent.rb
|
|
353
361
|
- lib/selenium/webdriver/remote/response.rb
|
|
354
362
|
- lib/selenium/webdriver/remote/server_error.rb
|
|
355
363
|
- lib/selenium/webdriver/safari.rb
|
|
@@ -360,8 +368,6 @@ files:
|
|
|
360
368
|
- lib/selenium/webdriver/support.rb
|
|
361
369
|
- lib/selenium/webdriver/support/abstract_event_listener.rb
|
|
362
370
|
- lib/selenium/webdriver/support/block_event_listener.rb
|
|
363
|
-
- lib/selenium/webdriver/support/cdp/domain.rb.erb
|
|
364
|
-
- lib/selenium/webdriver/support/cdp_client_generator.rb
|
|
365
371
|
- lib/selenium/webdriver/support/color.rb
|
|
366
372
|
- lib/selenium/webdriver/support/escaper.rb
|
|
367
373
|
- lib/selenium/webdriver/support/event_firing_bridge.rb
|
|
@@ -377,8 +383,10 @@ licenses:
|
|
|
377
383
|
- Apache-2.0
|
|
378
384
|
metadata:
|
|
379
385
|
changelog_uri: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES
|
|
386
|
+
github_repo: ssh://github.com/SeleniumHQ/selenium
|
|
380
387
|
source_code_uri: https://github.com/SeleniumHQ/selenium/tree/trunk/rb
|
|
381
|
-
|
|
388
|
+
rubygems_mfa_required: 'true'
|
|
389
|
+
post_install_message:
|
|
382
390
|
rdoc_options: []
|
|
383
391
|
require_paths:
|
|
384
392
|
- lib
|
|
@@ -386,15 +394,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
386
394
|
requirements:
|
|
387
395
|
- - ">="
|
|
388
396
|
- !ruby/object:Gem::Version
|
|
389
|
-
version: '
|
|
397
|
+
version: '3.0'
|
|
390
398
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
391
399
|
requirements:
|
|
392
400
|
- - ">"
|
|
393
401
|
- !ruby/object:Gem::Version
|
|
394
402
|
version: 1.3.1
|
|
395
403
|
requirements: []
|
|
396
|
-
rubygems_version: 3.
|
|
397
|
-
signing_key:
|
|
404
|
+
rubygems_version: 3.2.33
|
|
405
|
+
signing_key:
|
|
398
406
|
specification_version: 4
|
|
399
407
|
summary: Selenium is a browser automation tool for automated testing of webapps and
|
|
400
408
|
more
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Licensed to the Software Freedom Conservancy (SFC) under one
|
|
4
|
-
# or more contributor license agreements. See the NOTICE file
|
|
5
|
-
# distributed with this work for additional information
|
|
6
|
-
# regarding copyright ownership. The SFC licenses this file
|
|
7
|
-
# to you under the Apache License, Version 2.0 (the
|
|
8
|
-
# "License"); you may not use this file except in compliance
|
|
9
|
-
# with the License. You may obtain a copy of the License at
|
|
10
|
-
#
|
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
#
|
|
13
|
-
# Unless required by applicable law or agreed to in writing,
|
|
14
|
-
# software distributed under the License is distributed on an
|
|
15
|
-
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
16
|
-
# KIND, either express or implied. See the License for the
|
|
17
|
-
# specific language governing permissions and limitations
|
|
18
|
-
# under the License.
|
|
19
|
-
|
|
20
|
-
require 'net/http/persistent'
|
|
21
|
-
|
|
22
|
-
module Selenium
|
|
23
|
-
module WebDriver
|
|
24
|
-
module Remote
|
|
25
|
-
module Http
|
|
26
|
-
# @api private
|
|
27
|
-
class Persistent < Default
|
|
28
|
-
def initialize(open_timeout: nil, read_timeout: nil)
|
|
29
|
-
WebDriver.logger.deprecate("Selenium::WebDriver::Remote::Http::Persistent",
|
|
30
|
-
id: :http_persistent) { "The default HTTP client now uses persistence." }
|
|
31
|
-
super
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def close
|
|
35
|
-
@http&.shutdown
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
private
|
|
39
|
-
|
|
40
|
-
def start(*)
|
|
41
|
-
# no need to explicitly start connection
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def new_http_client
|
|
45
|
-
proxy = nil
|
|
46
|
-
|
|
47
|
-
if @proxy
|
|
48
|
-
unless @proxy.respond_to?(:http)
|
|
49
|
-
url = @proxy.http
|
|
50
|
-
raise Error::WebDriverError, "expected HTTP proxy, got #{@proxy.inspect}" unless url
|
|
51
|
-
end
|
|
52
|
-
proxy = URI.parse(url)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
Net::HTTP::Persistent.new name: 'webdriver', proxy: proxy
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def response_for(request)
|
|
59
|
-
http.request server_url, request
|
|
60
|
-
end
|
|
61
|
-
end # Persistent
|
|
62
|
-
end # Http
|
|
63
|
-
end # Remote
|
|
64
|
-
end # WebDriver
|
|
65
|
-
end # Selenium
|