selenium-webdriver 4.1.0 → 4.9.1
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 +234 -1
- data/Gemfile +2 -0
- data/LICENSE +1 -1
- data/NOTICE +1 -1
- data/README.md +1 -1
- 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 -27
- data/lib/selenium/webdriver/atoms/findElements.js +0 -0
- 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 +2 -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/bidi/log/filter_by.rb +40 -0
- 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 +3 -23
- data/lib/selenium/webdriver/chrome.rb +0 -14
- data/lib/selenium/webdriver/chromium/driver.rb +61 -0
- data/lib/selenium/webdriver/chromium/features.rb +103 -0
- data/lib/selenium/webdriver/chromium/options.rb +261 -0
- data/lib/selenium/webdriver/chromium/profile.rb +113 -0
- data/lib/selenium/webdriver/chromium/service.rb +42 -0
- data/lib/selenium/webdriver/chromium.rb +32 -0
- data/lib/selenium/webdriver/common/action_builder.rb +64 -22
- data/lib/selenium/webdriver/common/child_process.rb +124 -0
- data/lib/selenium/webdriver/common/driver.rb +36 -74
- 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_location.rb +1 -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 +44 -0
- data/lib/selenium/webdriver/common/element.rb +8 -8
- data/lib/selenium/webdriver/common/error.rb +1 -3
- 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/interactions/pointer_cancel.rb +45 -0
- 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 +55 -0
- data/lib/selenium/webdriver/common/logger.rb +76 -24
- data/lib/selenium/webdriver/common/manager.rb +0 -27
- data/lib/selenium/webdriver/common/options.rb +32 -17
- data/lib/selenium/webdriver/common/platform.rb +8 -5
- 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 +1 -1
- data/lib/selenium/webdriver/common/search_context.rb +0 -6
- data/lib/selenium/webdriver/common/selenium_manager.rb +108 -0
- data/lib/selenium/webdriver/common/service.rb +20 -23
- 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 -3
- 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 +3 -5
- data/lib/selenium/webdriver/edge/profile.rb +2 -2
- data/lib/selenium/webdriver/edge/service.rb +2 -6
- 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 +9 -3
- data/lib/selenium/webdriver/firefox/profile.rb +8 -12
- data/lib/selenium/webdriver/firefox/service.rb +0 -6
- 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/service.rb +1 -7
- 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 +34 -12
- data/lib/selenium/webdriver/remote/driver.rb +19 -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 +7 -12
- data/lib/selenium/webdriver/remote/response.rb +2 -3
- 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 +0 -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 +5 -4
- data/selenium-webdriver.gemspec +13 -12
- metadata +70 -73
- 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,7 +17,6 @@
|
|
|
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'
|
|
@@ -34,8 +33,9 @@ module Selenium
|
|
|
34
33
|
Point = Struct.new(:x, :y)
|
|
35
34
|
Dimension = Struct.new(:width, :height)
|
|
36
35
|
Rectangle = Struct.new(:x, :y, :width, :height)
|
|
37
|
-
Location = Struct.new(:latitude, :longitude, :altitude)
|
|
38
36
|
|
|
37
|
+
autoload :BiDi, 'selenium/webdriver/bidi'
|
|
38
|
+
autoload :Chromium, 'selenium/webdriver/chromium'
|
|
39
39
|
autoload :Chrome, 'selenium/webdriver/chrome'
|
|
40
40
|
autoload :DevTools, 'selenium/webdriver/devtools'
|
|
41
41
|
autoload :Edge, 'selenium/webdriver/edge'
|
|
@@ -94,8 +94,9 @@ module Selenium
|
|
|
94
94
|
# @return [Logger]
|
|
95
95
|
#
|
|
96
96
|
|
|
97
|
-
def self.logger
|
|
98
|
-
|
|
97
|
+
def self.logger(**opts)
|
|
98
|
+
level = $DEBUG || ENV.key?('DEBUG') ? :debug : :info
|
|
99
|
+
@logger ||= WebDriver::Logger.new('Selenium', default_level: level, **opts)
|
|
99
100
|
end
|
|
100
101
|
end # WebDriver
|
|
101
102
|
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,22 @@ 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'
|
|
56
57
|
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'
|
|
58
|
+
s.add_development_dependency 'rubocop', ['~> 1.42']
|
|
59
|
+
s.add_development_dependency 'rubocop-performance', ['~> 1.15']
|
|
60
|
+
s.add_development_dependency 'rubocop-rspec', ['~> 2.16']
|
|
60
61
|
s.add_development_dependency 'webmock', ['~> 3.5']
|
|
61
62
|
s.add_development_dependency 'webrick', ['~> 1.7']
|
|
62
63
|
s.add_development_dependency 'yard', ['~> 0.9.11']
|
metadata
CHANGED
|
@@ -1,37 +1,17 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: selenium-webdriver
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.1
|
|
4
|
+
version: 4.9.1
|
|
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-05-08 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
|
|
@@ -108,20 +80,6 @@ dependencies:
|
|
|
108
80
|
- - "~>"
|
|
109
81
|
- !ruby/object:Gem::Version
|
|
110
82
|
version: '2.0'
|
|
111
|
-
- !ruby/object:Gem::Dependency
|
|
112
|
-
name: rake
|
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
|
114
|
-
requirements:
|
|
115
|
-
- - ">="
|
|
116
|
-
- !ruby/object:Gem::Version
|
|
117
|
-
version: '0'
|
|
118
|
-
type: :development
|
|
119
|
-
prerelease: false
|
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
requirements:
|
|
122
|
-
- - ">="
|
|
123
|
-
- !ruby/object:Gem::Version
|
|
124
|
-
version: '0'
|
|
125
83
|
- !ruby/object:Gem::Dependency
|
|
126
84
|
name: rspec
|
|
127
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -142,42 +100,42 @@ dependencies:
|
|
|
142
100
|
requirements:
|
|
143
101
|
- - "~>"
|
|
144
102
|
- !ruby/object:Gem::Version
|
|
145
|
-
version: 1.
|
|
103
|
+
version: '1.42'
|
|
146
104
|
type: :development
|
|
147
105
|
prerelease: false
|
|
148
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
107
|
requirements:
|
|
150
108
|
- - "~>"
|
|
151
109
|
- !ruby/object:Gem::Version
|
|
152
|
-
version: 1.
|
|
110
|
+
version: '1.42'
|
|
153
111
|
- !ruby/object:Gem::Dependency
|
|
154
112
|
name: rubocop-performance
|
|
155
113
|
requirement: !ruby/object:Gem::Requirement
|
|
156
114
|
requirements:
|
|
157
|
-
- - "
|
|
115
|
+
- - "~>"
|
|
158
116
|
- !ruby/object:Gem::Version
|
|
159
|
-
version: '
|
|
117
|
+
version: '1.15'
|
|
160
118
|
type: :development
|
|
161
119
|
prerelease: false
|
|
162
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
163
121
|
requirements:
|
|
164
|
-
- - "
|
|
122
|
+
- - "~>"
|
|
165
123
|
- !ruby/object:Gem::Version
|
|
166
|
-
version: '
|
|
124
|
+
version: '1.15'
|
|
167
125
|
- !ruby/object:Gem::Dependency
|
|
168
126
|
name: rubocop-rspec
|
|
169
127
|
requirement: !ruby/object:Gem::Requirement
|
|
170
128
|
requirements:
|
|
171
|
-
- - "
|
|
129
|
+
- - "~>"
|
|
172
130
|
- !ruby/object:Gem::Version
|
|
173
|
-
version: '
|
|
131
|
+
version: '2.16'
|
|
174
132
|
type: :development
|
|
175
133
|
prerelease: false
|
|
176
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
177
135
|
requirements:
|
|
178
|
-
- - "
|
|
136
|
+
- - "~>"
|
|
179
137
|
- !ruby/object:Gem::Version
|
|
180
|
-
version: '
|
|
138
|
+
version: '2.16'
|
|
181
139
|
- !ruby/object:Gem::Dependency
|
|
182
140
|
name: webmock
|
|
183
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -237,6 +195,9 @@ files:
|
|
|
237
195
|
- LICENSE
|
|
238
196
|
- NOTICE
|
|
239
197
|
- README.md
|
|
198
|
+
- bin/linux/selenium-manager
|
|
199
|
+
- bin/macos/selenium-manager
|
|
200
|
+
- bin/windows/selenium-manager.exe
|
|
240
201
|
- lib/selenium-webdriver.rb
|
|
241
202
|
- lib/selenium/server.rb
|
|
242
203
|
- lib/selenium/webdriver.rb
|
|
@@ -245,21 +206,40 @@ files:
|
|
|
245
206
|
- lib/selenium/webdriver/atoms/getAttribute.js
|
|
246
207
|
- lib/selenium/webdriver/atoms/isDisplayed.js
|
|
247
208
|
- lib/selenium/webdriver/atoms/mutationListener.js
|
|
209
|
+
- lib/selenium/webdriver/bidi.rb
|
|
210
|
+
- lib/selenium/webdriver/bidi/browsing_context.rb
|
|
211
|
+
- lib/selenium/webdriver/bidi/browsing_context_info.rb
|
|
212
|
+
- lib/selenium/webdriver/bidi/log/base_log_entry.rb
|
|
213
|
+
- lib/selenium/webdriver/bidi/log/console_log_entry.rb
|
|
214
|
+
- lib/selenium/webdriver/bidi/log/filter_by.rb
|
|
215
|
+
- lib/selenium/webdriver/bidi/log/generic_log_entry.rb
|
|
216
|
+
- lib/selenium/webdriver/bidi/log/javascript_log_entry.rb
|
|
217
|
+
- lib/selenium/webdriver/bidi/log_inspector.rb
|
|
218
|
+
- lib/selenium/webdriver/bidi/navigate_result.rb
|
|
219
|
+
- lib/selenium/webdriver/bidi/session.rb
|
|
248
220
|
- lib/selenium/webdriver/chrome.rb
|
|
249
221
|
- lib/selenium/webdriver/chrome/driver.rb
|
|
250
222
|
- lib/selenium/webdriver/chrome/features.rb
|
|
251
223
|
- lib/selenium/webdriver/chrome/options.rb
|
|
252
224
|
- lib/selenium/webdriver/chrome/profile.rb
|
|
253
225
|
- lib/selenium/webdriver/chrome/service.rb
|
|
226
|
+
- lib/selenium/webdriver/chromium.rb
|
|
227
|
+
- lib/selenium/webdriver/chromium/driver.rb
|
|
228
|
+
- lib/selenium/webdriver/chromium/features.rb
|
|
229
|
+
- lib/selenium/webdriver/chromium/options.rb
|
|
230
|
+
- lib/selenium/webdriver/chromium/profile.rb
|
|
231
|
+
- lib/selenium/webdriver/chromium/service.rb
|
|
254
232
|
- lib/selenium/webdriver/common.rb
|
|
255
233
|
- lib/selenium/webdriver/common/action_builder.rb
|
|
256
234
|
- lib/selenium/webdriver/common/alert.rb
|
|
235
|
+
- lib/selenium/webdriver/common/child_process.rb
|
|
257
236
|
- lib/selenium/webdriver/common/driver.rb
|
|
258
237
|
- lib/selenium/webdriver/common/driver_extensions/downloads_files.rb
|
|
259
238
|
- lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb
|
|
260
239
|
- lib/selenium/webdriver/common/driver_extensions/has_addons.rb
|
|
261
240
|
- lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb
|
|
262
241
|
- lib/selenium/webdriver/common/driver_extensions/has_authentication.rb
|
|
242
|
+
- lib/selenium/webdriver/common/driver_extensions/has_bidi.rb
|
|
263
243
|
- lib/selenium/webdriver/common/driver_extensions/has_casting.rb
|
|
264
244
|
- lib/selenium/webdriver/common/driver_extensions/has_cdp.rb
|
|
265
245
|
- lib/selenium/webdriver/common/driver_extensions/has_context.rb
|
|
@@ -274,11 +254,11 @@ files:
|
|
|
274
254
|
- lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
|
|
275
255
|
- lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
|
|
276
256
|
- lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
|
|
277
|
-
- lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
|
|
278
257
|
- lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
|
|
279
258
|
- lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
|
|
280
259
|
- lib/selenium/webdriver/common/driver_extensions/prints_page.rb
|
|
281
260
|
- lib/selenium/webdriver/common/driver_extensions/uploads_files.rb
|
|
261
|
+
- lib/selenium/webdriver/common/driver_finder.rb
|
|
282
262
|
- lib/selenium/webdriver/common/element.rb
|
|
283
263
|
- lib/selenium/webdriver/common/error.rb
|
|
284
264
|
- lib/selenium/webdriver/common/file_reaper.rb
|
|
@@ -291,9 +271,20 @@ files:
|
|
|
291
271
|
- lib/selenium/webdriver/common/interactions/key_actions.rb
|
|
292
272
|
- lib/selenium/webdriver/common/interactions/key_input.rb
|
|
293
273
|
- lib/selenium/webdriver/common/interactions/none_input.rb
|
|
274
|
+
- lib/selenium/webdriver/common/interactions/pause.rb
|
|
294
275
|
- lib/selenium/webdriver/common/interactions/pointer_actions.rb
|
|
276
|
+
- lib/selenium/webdriver/common/interactions/pointer_cancel.rb
|
|
277
|
+
- lib/selenium/webdriver/common/interactions/pointer_event_properties.rb
|
|
295
278
|
- lib/selenium/webdriver/common/interactions/pointer_input.rb
|
|
279
|
+
- lib/selenium/webdriver/common/interactions/pointer_move.rb
|
|
280
|
+
- lib/selenium/webdriver/common/interactions/pointer_press.rb
|
|
281
|
+
- lib/selenium/webdriver/common/interactions/scroll.rb
|
|
282
|
+
- lib/selenium/webdriver/common/interactions/scroll_origin.rb
|
|
283
|
+
- lib/selenium/webdriver/common/interactions/typing_interaction.rb
|
|
284
|
+
- lib/selenium/webdriver/common/interactions/wheel_actions.rb
|
|
285
|
+
- lib/selenium/webdriver/common/interactions/wheel_input.rb
|
|
296
286
|
- lib/selenium/webdriver/common/keys.rb
|
|
287
|
+
- lib/selenium/webdriver/common/local_driver.rb
|
|
297
288
|
- lib/selenium/webdriver/common/log_entry.rb
|
|
298
289
|
- lib/selenium/webdriver/common/logger.rb
|
|
299
290
|
- lib/selenium/webdriver/common/logs.rb
|
|
@@ -305,6 +296,7 @@ files:
|
|
|
305
296
|
- lib/selenium/webdriver/common/profile_helper.rb
|
|
306
297
|
- lib/selenium/webdriver/common/proxy.rb
|
|
307
298
|
- lib/selenium/webdriver/common/search_context.rb
|
|
299
|
+
- lib/selenium/webdriver/common/selenium_manager.rb
|
|
308
300
|
- lib/selenium/webdriver/common/service.rb
|
|
309
301
|
- lib/selenium/webdriver/common/service_manager.rb
|
|
310
302
|
- lib/selenium/webdriver/common/shadow_root.rb
|
|
@@ -313,13 +305,18 @@ files:
|
|
|
313
305
|
- lib/selenium/webdriver/common/takes_screenshot.rb
|
|
314
306
|
- lib/selenium/webdriver/common/target_locator.rb
|
|
315
307
|
- lib/selenium/webdriver/common/timeouts.rb
|
|
308
|
+
- lib/selenium/webdriver/common/virtual_authenticator/credential.rb
|
|
309
|
+
- lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb
|
|
310
|
+
- lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb
|
|
316
311
|
- lib/selenium/webdriver/common/wait.rb
|
|
312
|
+
- lib/selenium/webdriver/common/websocket_connection.rb
|
|
317
313
|
- lib/selenium/webdriver/common/window.rb
|
|
318
314
|
- lib/selenium/webdriver/common/zipper.rb
|
|
319
315
|
- lib/selenium/webdriver/devtools.rb
|
|
320
316
|
- lib/selenium/webdriver/devtools/console_event.rb
|
|
321
317
|
- lib/selenium/webdriver/devtools/exception_event.rb
|
|
322
318
|
- lib/selenium/webdriver/devtools/mutation_event.rb
|
|
319
|
+
- lib/selenium/webdriver/devtools/network_interceptor.rb
|
|
323
320
|
- lib/selenium/webdriver/devtools/pinned_script.rb
|
|
324
321
|
- lib/selenium/webdriver/devtools/request.rb
|
|
325
322
|
- lib/selenium/webdriver/devtools/response.rb
|
|
@@ -337,19 +334,19 @@ files:
|
|
|
337
334
|
- lib/selenium/webdriver/firefox/profile.rb
|
|
338
335
|
- lib/selenium/webdriver/firefox/profiles_ini.rb
|
|
339
336
|
- lib/selenium/webdriver/firefox/service.rb
|
|
337
|
+
- lib/selenium/webdriver/firefox/util.rb
|
|
340
338
|
- lib/selenium/webdriver/ie.rb
|
|
341
339
|
- lib/selenium/webdriver/ie/driver.rb
|
|
342
340
|
- lib/selenium/webdriver/ie/options.rb
|
|
343
341
|
- lib/selenium/webdriver/ie/service.rb
|
|
344
342
|
- lib/selenium/webdriver/remote.rb
|
|
345
343
|
- lib/selenium/webdriver/remote/bridge.rb
|
|
344
|
+
- lib/selenium/webdriver/remote/bridge/commands.rb
|
|
346
345
|
- lib/selenium/webdriver/remote/capabilities.rb
|
|
347
|
-
- lib/selenium/webdriver/remote/commands.rb
|
|
348
346
|
- lib/selenium/webdriver/remote/driver.rb
|
|
349
347
|
- lib/selenium/webdriver/remote/http/common.rb
|
|
350
348
|
- lib/selenium/webdriver/remote/http/curb.rb
|
|
351
349
|
- lib/selenium/webdriver/remote/http/default.rb
|
|
352
|
-
- lib/selenium/webdriver/remote/http/persistent.rb
|
|
353
350
|
- lib/selenium/webdriver/remote/response.rb
|
|
354
351
|
- lib/selenium/webdriver/remote/server_error.rb
|
|
355
352
|
- lib/selenium/webdriver/safari.rb
|
|
@@ -360,8 +357,6 @@ files:
|
|
|
360
357
|
- lib/selenium/webdriver/support.rb
|
|
361
358
|
- lib/selenium/webdriver/support/abstract_event_listener.rb
|
|
362
359
|
- 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
360
|
- lib/selenium/webdriver/support/color.rb
|
|
366
361
|
- lib/selenium/webdriver/support/escaper.rb
|
|
367
362
|
- lib/selenium/webdriver/support/event_firing_bridge.rb
|
|
@@ -377,8 +372,10 @@ licenses:
|
|
|
377
372
|
- Apache-2.0
|
|
378
373
|
metadata:
|
|
379
374
|
changelog_uri: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES
|
|
375
|
+
github_repo: ssh://github.com/SeleniumHQ/selenium
|
|
380
376
|
source_code_uri: https://github.com/SeleniumHQ/selenium/tree/trunk/rb
|
|
381
|
-
|
|
377
|
+
rubygems_mfa_required: 'true'
|
|
378
|
+
post_install_message:
|
|
382
379
|
rdoc_options: []
|
|
383
380
|
require_paths:
|
|
384
381
|
- lib
|
|
@@ -386,15 +383,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
386
383
|
requirements:
|
|
387
384
|
- - ">="
|
|
388
385
|
- !ruby/object:Gem::Version
|
|
389
|
-
version: '
|
|
386
|
+
version: '3.0'
|
|
390
387
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
391
388
|
requirements:
|
|
392
389
|
- - ">"
|
|
393
390
|
- !ruby/object:Gem::Version
|
|
394
391
|
version: 1.3.1
|
|
395
392
|
requirements: []
|
|
396
|
-
rubygems_version: 3.
|
|
397
|
-
signing_key:
|
|
393
|
+
rubygems_version: 3.2.33
|
|
394
|
+
signing_key:
|
|
398
395
|
specification_version: 4
|
|
399
396
|
summary: Selenium is a browser automation tool for automated testing of webapps and
|
|
400
397
|
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
|