selenium-webdriver 4.35.0 → 4.47.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 +111 -0
- data/Gemfile +1 -4
- data/LICENSE +1 -1
- data/NOTICE +1 -1
- data/README.md +43 -23
- data/bin/linux/selenium-manager +0 -0
- data/bin/macos/selenium-manager +0 -0
- data/bin/selenium-manager-THIRD-PARTY-NOTICES.txt +5971 -0
- data/bin/selenium-manager.cdx.json +11629 -0
- data/bin/windows/selenium-manager.exe +0 -0
- data/lib/selenium/server.rb +30 -5
- data/lib/selenium/webdriver/atoms/findElements.js +272 -54
- data/lib/selenium/webdriver/atoms/getAttribute.js +152 -6
- data/lib/selenium/webdriver/atoms/isDisplayed.js +385 -28
- data/lib/selenium/webdriver/bidi/browser.rb +71 -0
- data/lib/selenium/webdriver/bidi/browsing_context.rb +3 -2
- data/lib/selenium/webdriver/bidi/{log/filter_by.rb → error.rb} +20 -16
- data/lib/selenium/webdriver/bidi/log_handler.rb +5 -0
- data/lib/selenium/webdriver/bidi/network/cookies.rb +13 -9
- data/lib/selenium/webdriver/bidi/network/credentials.rb +4 -0
- data/lib/selenium/webdriver/bidi/network/headers.rb +4 -0
- data/lib/selenium/webdriver/bidi/network/intercepted_auth.rb +4 -0
- data/lib/selenium/webdriver/bidi/network/intercepted_item.rb +4 -0
- data/lib/selenium/webdriver/bidi/network/intercepted_request.rb +20 -4
- data/lib/selenium/webdriver/bidi/network/intercepted_response.rb +24 -6
- data/lib/selenium/webdriver/bidi/network/url_pattern.rb +4 -0
- data/lib/selenium/webdriver/bidi/network.rb +18 -9
- data/lib/selenium/webdriver/bidi/protocol/bluetooth.rb +495 -0
- data/lib/selenium/webdriver/bidi/protocol/browser.rb +250 -0
- data/lib/selenium/webdriver/bidi/protocol/browsing_context.rb +798 -0
- data/lib/selenium/webdriver/bidi/{log/base_log_entry.rb → protocol/domain.rb} +22 -11
- data/lib/selenium/webdriver/bidi/protocol/emulation.rb +448 -0
- data/lib/selenium/webdriver/bidi/protocol/error_code.rb +66 -0
- data/lib/selenium/webdriver/bidi/protocol/input.rb +354 -0
- data/lib/selenium/webdriver/bidi/protocol/log.rb +115 -0
- data/lib/selenium/webdriver/bidi/protocol/network.rb +720 -0
- data/lib/selenium/webdriver/bidi/protocol/permissions.rb +75 -0
- data/lib/selenium/webdriver/bidi/protocol/script.rb +1052 -0
- data/lib/selenium/webdriver/bidi/protocol/session.rb +286 -0
- data/lib/selenium/webdriver/bidi/protocol/speculation.rb +58 -0
- data/lib/selenium/webdriver/bidi/protocol/storage.rb +183 -0
- data/lib/selenium/webdriver/bidi/protocol/user_agent_client_hints.rb +88 -0
- data/lib/selenium/webdriver/bidi/protocol/web_extension.rb +132 -0
- data/lib/selenium/webdriver/bidi/protocol.rb +42 -0
- data/lib/selenium/webdriver/bidi/serialization/record.rb +402 -0
- data/lib/selenium/webdriver/bidi/serialization/union.rb +156 -0
- data/lib/selenium/webdriver/bidi/serialization.rb +90 -0
- data/lib/selenium/webdriver/bidi/session.rb +4 -0
- data/lib/selenium/webdriver/bidi/support/bidi_generate.rb +1420 -0
- data/lib/selenium/webdriver/bidi/support/check_generated.rb +63 -0
- data/lib/selenium/webdriver/bidi/transport.rb +57 -0
- data/lib/selenium/webdriver/bidi.rb +4 -1
- data/lib/selenium/webdriver/chrome/driver.rb +4 -3
- data/lib/selenium/webdriver/chrome/service.rb +13 -0
- data/lib/selenium/webdriver/chromium/driver.rb +0 -1
- data/lib/selenium/webdriver/chromium/options.rb +23 -1
- data/lib/selenium/webdriver/chromium/profile.rb +6 -0
- data/lib/selenium/webdriver/common/child_process.rb +2 -1
- data/lib/selenium/webdriver/common/client_config.rb +97 -0
- data/lib/selenium/webdriver/common/driver.rb +13 -7
- data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +0 -7
- data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +0 -7
- data/lib/selenium/webdriver/common/driver_extensions/{has_bidi.rb → has_session_events.rb} +19 -7
- data/lib/selenium/webdriver/common/driver_finder.rb +35 -25
- data/lib/selenium/webdriver/common/error.rb +10 -3
- data/lib/selenium/webdriver/common/local_driver.rb +29 -12
- data/lib/selenium/webdriver/common/logger.rb +28 -0
- data/lib/selenium/webdriver/common/manager.rb +2 -0
- data/lib/selenium/webdriver/common/options.rb +41 -2
- data/lib/selenium/webdriver/common/platform.rb +1 -3
- data/lib/selenium/webdriver/common/proxy.rb +1 -9
- data/lib/selenium/webdriver/common/selenium_manager.rb +2 -1
- data/lib/selenium/webdriver/common/service.rb +4 -8
- data/lib/selenium/webdriver/common/service_manager.rb +36 -4
- data/lib/selenium/webdriver/common/socket_poller.rb +1 -1
- data/lib/selenium/webdriver/common/takes_screenshot.rb +1 -1
- data/lib/selenium/webdriver/common/virtual_authenticator/credential.rb +1 -1
- data/lib/selenium/webdriver/common/wait.rb +4 -1
- data/lib/selenium/webdriver/common/websocket_connection.rb +73 -37
- data/lib/selenium/webdriver/common.rb +2 -1
- data/lib/selenium/webdriver/devtools/response.rb +3 -3
- data/lib/selenium/webdriver/devtools.rb +1 -1
- data/lib/selenium/webdriver/edge/driver.rb +4 -3
- data/lib/selenium/webdriver/edge/service.rb +14 -0
- data/lib/selenium/webdriver/firefox/driver.rb +4 -6
- data/lib/selenium/webdriver/firefox/options.rb +19 -0
- data/lib/selenium/webdriver/firefox/profile.rb +13 -6
- data/lib/selenium/webdriver/firefox/service.rb +31 -2
- data/lib/selenium/webdriver/ie/driver.rb +4 -3
- data/lib/selenium/webdriver/ie/service.rb +10 -0
- data/lib/selenium/webdriver/remote/bidi_bridge.rb +44 -10
- data/lib/selenium/webdriver/remote/bridge.rb +20 -14
- data/lib/selenium/webdriver/remote/driver.rb +15 -4
- data/lib/selenium/webdriver/remote/features.rb +26 -1
- data/lib/selenium/webdriver/remote/http/common.rb +57 -12
- data/lib/selenium/webdriver/remote/http/curb.rb +6 -8
- data/lib/selenium/webdriver/remote/http/default.rb +56 -39
- data/lib/selenium/webdriver/safari/driver.rb +4 -3
- data/lib/selenium/webdriver/safari/options.rb +23 -4
- data/lib/selenium/webdriver/safari.rb +1 -6
- data/lib/selenium/webdriver/support/block_event_listener.rb +5 -1
- data/lib/selenium/webdriver/support/color.rb +14 -14
- data/lib/selenium/webdriver/support/event_firing_bridge.rb +5 -1
- data/lib/selenium/webdriver/support/guards/guard.rb +30 -14
- data/lib/selenium/webdriver/support/guards.rb +11 -4
- data/lib/selenium/webdriver/version.rb +1 -1
- data/lib/selenium/webdriver.rb +7 -2
- data/selenium-webdriver.gemspec +1 -1
- metadata +33 -11
- data/lib/selenium/webdriver/bidi/log/console_log_entry.rb +0 -35
- data/lib/selenium/webdriver/bidi/log/generic_log_entry.rb +0 -33
- data/lib/selenium/webdriver/bidi/log/javascript_log_entry.rb +0 -33
- data/lib/selenium/webdriver/bidi/log_inspector.rb +0 -147
|
@@ -23,6 +23,10 @@ require_relative 'headers'
|
|
|
23
23
|
module Selenium
|
|
24
24
|
module WebDriver
|
|
25
25
|
class BiDi
|
|
26
|
+
#
|
|
27
|
+
# @api private
|
|
28
|
+
#
|
|
29
|
+
|
|
26
30
|
class InterceptedRequest < InterceptedItem
|
|
27
31
|
attr_accessor :method, :url
|
|
28
32
|
attr_reader :body
|
|
@@ -32,14 +36,18 @@ module Selenium
|
|
|
32
36
|
@method = nil
|
|
33
37
|
@url = nil
|
|
34
38
|
@body = nil
|
|
39
|
+
@headers = nil
|
|
40
|
+
@cookies = nil
|
|
35
41
|
end
|
|
36
42
|
|
|
37
43
|
def continue
|
|
44
|
+
cookies = @cookies&.as_json
|
|
45
|
+
headers = @headers&.as_json
|
|
38
46
|
network.continue_request(
|
|
39
47
|
id: id,
|
|
40
48
|
body: body,
|
|
41
|
-
cookies: cookies
|
|
42
|
-
headers: headers
|
|
49
|
+
cookies: cookies,
|
|
50
|
+
headers: headers,
|
|
43
51
|
method: method,
|
|
44
52
|
url: url
|
|
45
53
|
)
|
|
@@ -56,13 +64,21 @@ module Selenium
|
|
|
56
64
|
}
|
|
57
65
|
end
|
|
58
66
|
|
|
59
|
-
def headers
|
|
60
|
-
@headers
|
|
67
|
+
def headers=(headers = {})
|
|
68
|
+
@headers = Headers.new(headers)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def headers(headers = {})
|
|
72
|
+
@headers ||= Headers.new(headers)
|
|
61
73
|
end
|
|
62
74
|
|
|
63
75
|
def cookies(cookies = {})
|
|
64
76
|
@cookies ||= Cookies.new(cookies)
|
|
65
77
|
end
|
|
78
|
+
|
|
79
|
+
def cookies=(cookies = {})
|
|
80
|
+
@cookies = Cookies.new(cookies)
|
|
81
|
+
end
|
|
66
82
|
end
|
|
67
83
|
end # BiDi
|
|
68
84
|
end # WebDriver
|
|
@@ -24,6 +24,10 @@ require_relative 'cookies'
|
|
|
24
24
|
module Selenium
|
|
25
25
|
module WebDriver
|
|
26
26
|
class BiDi
|
|
27
|
+
#
|
|
28
|
+
# @api private
|
|
29
|
+
#
|
|
30
|
+
|
|
27
31
|
class InterceptedResponse < InterceptedItem
|
|
28
32
|
attr_accessor :reason, :status
|
|
29
33
|
attr_reader :body
|
|
@@ -33,13 +37,17 @@ module Selenium
|
|
|
33
37
|
@reason = nil
|
|
34
38
|
@status = nil
|
|
35
39
|
@body = nil
|
|
40
|
+
@headers = nil
|
|
41
|
+
@cookies = nil
|
|
36
42
|
end
|
|
37
43
|
|
|
38
44
|
def continue
|
|
45
|
+
cookies = @cookies&.as_json
|
|
46
|
+
headers = @headers&.as_json
|
|
39
47
|
network.continue_response(
|
|
40
48
|
id: id,
|
|
41
|
-
cookies: cookies
|
|
42
|
-
headers: headers
|
|
49
|
+
cookies: cookies,
|
|
50
|
+
headers: headers,
|
|
43
51
|
credentials: credentials.as_json,
|
|
44
52
|
reason: reason,
|
|
45
53
|
status: status
|
|
@@ -47,10 +55,12 @@ module Selenium
|
|
|
47
55
|
end
|
|
48
56
|
|
|
49
57
|
def provide_response
|
|
58
|
+
cookies = @cookies&.as_json
|
|
59
|
+
headers = @headers&.as_json
|
|
50
60
|
network.provide_response(
|
|
51
61
|
id: id,
|
|
52
|
-
cookies: cookies
|
|
53
|
-
headers: headers
|
|
62
|
+
cookies: cookies,
|
|
63
|
+
headers: headers,
|
|
54
64
|
body: body,
|
|
55
65
|
reason: reason,
|
|
56
66
|
status: status
|
|
@@ -61,14 +71,22 @@ module Selenium
|
|
|
61
71
|
@credentials ||= Credentials.new(username: username, password: password)
|
|
62
72
|
end
|
|
63
73
|
|
|
64
|
-
def headers
|
|
65
|
-
@headers ||= Headers.new
|
|
74
|
+
def headers(headers = {})
|
|
75
|
+
@headers ||= Headers.new(headers)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def headers=(*headers)
|
|
79
|
+
@headers = Headers.new(headers)
|
|
66
80
|
end
|
|
67
81
|
|
|
68
82
|
def cookies(cookies = {})
|
|
69
83
|
@cookies ||= Cookies.new(cookies)
|
|
70
84
|
end
|
|
71
85
|
|
|
86
|
+
def cookies=(cookies = {})
|
|
87
|
+
@cookies ||= Cookies.new(cookies)
|
|
88
|
+
end
|
|
89
|
+
|
|
72
90
|
def body=(value)
|
|
73
91
|
@body = {
|
|
74
92
|
type: 'string',
|
|
@@ -21,6 +21,12 @@ require_relative 'network/url_pattern'
|
|
|
21
21
|
module Selenium
|
|
22
22
|
module WebDriver
|
|
23
23
|
class BiDi
|
|
24
|
+
# Implements the Navigation Module of the WebDriver-BiDi specification
|
|
25
|
+
# Continue to use functionality from existing `driver.navigate` method
|
|
26
|
+
#
|
|
27
|
+
# @api private
|
|
28
|
+
#
|
|
29
|
+
|
|
24
30
|
class Network
|
|
25
31
|
EVENTS = {
|
|
26
32
|
before_request: 'network.beforeRequestSent',
|
|
@@ -82,15 +88,16 @@ module Selenium
|
|
|
82
88
|
end
|
|
83
89
|
|
|
84
90
|
def continue_request(**args)
|
|
85
|
-
|
|
86
|
-
'network.continueRequest',
|
|
91
|
+
args = {
|
|
87
92
|
request: args[:id],
|
|
88
93
|
body: args[:body],
|
|
89
94
|
cookies: args[:cookies],
|
|
90
95
|
headers: args[:headers],
|
|
91
96
|
method: args[:method],
|
|
92
97
|
url: args[:url]
|
|
93
|
-
|
|
98
|
+
}.compact
|
|
99
|
+
|
|
100
|
+
@bidi.send_cmd('network.continueRequest', **args)
|
|
94
101
|
end
|
|
95
102
|
|
|
96
103
|
def fail_request(request_id)
|
|
@@ -101,27 +108,29 @@ module Selenium
|
|
|
101
108
|
end
|
|
102
109
|
|
|
103
110
|
def continue_response(**args)
|
|
104
|
-
|
|
105
|
-
'network.continueResponse',
|
|
111
|
+
args = {
|
|
106
112
|
request: args[:id],
|
|
107
113
|
cookies: args[:cookies],
|
|
108
114
|
credentials: args[:credentials],
|
|
109
115
|
headers: args[:headers],
|
|
110
116
|
reasonPhrase: args[:reason],
|
|
111
117
|
statusCode: args[:status]
|
|
112
|
-
|
|
118
|
+
}.compact
|
|
119
|
+
|
|
120
|
+
@bidi.send_cmd('network.continueResponse', **args)
|
|
113
121
|
end
|
|
114
122
|
|
|
115
123
|
def provide_response(**args)
|
|
116
|
-
|
|
117
|
-
'network.provideResponse',
|
|
124
|
+
args = {
|
|
118
125
|
request: args[:id],
|
|
119
126
|
body: args[:body],
|
|
120
127
|
cookies: args[:cookies],
|
|
121
128
|
headers: args[:headers],
|
|
122
129
|
reasonPhrase: args[:reason],
|
|
123
130
|
statusCode: args[:status]
|
|
124
|
-
|
|
131
|
+
}.compact
|
|
132
|
+
|
|
133
|
+
@bidi.send_cmd('network.provideResponse', **args)
|
|
125
134
|
end
|
|
126
135
|
|
|
127
136
|
def set_cache_behavior(behavior, *contexts)
|