selenium-webdriver 4.12.0 → 4.23.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 +135 -1
- data/Gemfile +1 -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 +2 -1
- data/lib/selenium/webdriver/atoms/findElements.js +28 -27
- data/lib/selenium/webdriver/atoms/getAttribute.js +6 -100
- data/lib/selenium/webdriver/atoms/isDisplayed.js +24 -96
- data/lib/selenium/webdriver/atoms.rb +6 -3
- data/lib/selenium/webdriver/bidi/log/javascript_log_entry.rb +1 -1
- data/lib/selenium/webdriver/bidi/log_handler.rb +63 -0
- data/lib/selenium/webdriver/bidi/log_inspector.rb +5 -1
- data/lib/selenium/webdriver/bidi/session.rb +7 -7
- data/lib/selenium/webdriver/bidi/struct.rb +44 -0
- data/lib/selenium/webdriver/bidi.rb +10 -0
- data/lib/selenium/webdriver/chrome/features.rb +5 -1
- data/lib/selenium/webdriver/chrome/service.rb +7 -0
- data/lib/selenium/webdriver/chromium/driver.rb +1 -1
- data/lib/selenium/webdriver/chromium/features.rb +0 -4
- data/lib/selenium/webdriver/common/action_builder.rb +0 -4
- data/lib/selenium/webdriver/common/child_process.rb +8 -2
- data/lib/selenium/webdriver/common/driver.rb +23 -17
- data/lib/selenium/webdriver/common/driver_extensions/has_bidi.rb +1 -1
- data/lib/selenium/webdriver/common/driver_extensions/has_fedcm_dialog.rb +55 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_file_downloads.rb +65 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +1 -1
- data/lib/selenium/webdriver/common/driver_finder.rb +66 -14
- data/lib/selenium/webdriver/common/error.rb +22 -22
- data/lib/selenium/webdriver/common/fedcm/account.rb +50 -0
- data/lib/selenium/webdriver/common/fedcm/dialog.rb +74 -0
- data/lib/selenium/webdriver/common/fedcm.rb +27 -0
- data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +0 -1
- data/lib/selenium/webdriver/common/interactions/pointer_cancel.rb +1 -1
- data/lib/selenium/webdriver/common/interactions/wheel_actions.rb +2 -1
- data/lib/selenium/webdriver/common/interactions/wheel_input.rb +1 -1
- data/lib/selenium/webdriver/common/local_driver.rb +8 -1
- data/lib/selenium/webdriver/common/logger.rb +7 -7
- data/lib/selenium/webdriver/common/manager.rb +1 -1
- data/lib/selenium/webdriver/common/options.rb +6 -2
- data/lib/selenium/webdriver/common/platform.rb +7 -1
- data/lib/selenium/webdriver/common/proxy.rb +2 -2
- data/lib/selenium/webdriver/common/script.rb +45 -0
- data/lib/selenium/webdriver/common/search_context.rb +10 -2
- data/lib/selenium/webdriver/common/selenium_manager.rb +34 -59
- data/lib/selenium/webdriver/common/service.rb +4 -0
- data/lib/selenium/webdriver/common/service_manager.rb +1 -1
- data/lib/selenium/webdriver/common/socket_poller.rb +1 -1
- data/lib/selenium/webdriver/common/takes_screenshot.rb +4 -2
- data/lib/selenium/webdriver/common/websocket_connection.rb +12 -0
- data/lib/selenium/webdriver/common.rb +5 -2
- data/lib/selenium/webdriver/devtools/network_interceptor.rb +1 -1
- data/lib/selenium/webdriver/edge/features.rb +5 -1
- data/lib/selenium/webdriver/edge/service.rb +7 -0
- data/lib/selenium/webdriver/firefox/features.rb +5 -1
- data/lib/selenium/webdriver/firefox/options.rb +3 -0
- data/lib/selenium/webdriver/firefox/profile.rb +14 -6
- data/lib/selenium/webdriver/firefox/profiles_ini.rb +1 -1
- data/lib/selenium/webdriver/{common/driver_extensions/has_location.rb → ie/features.rb} +8 -10
- data/lib/selenium/webdriver/ie/options.rb +3 -2
- data/lib/selenium/webdriver/ie.rb +4 -3
- data/lib/selenium/webdriver/{common/driver_extensions/has_network_connection.rb → remote/bidi_bridge.rb} +18 -11
- data/lib/selenium/webdriver/remote/bridge/commands.rb +13 -7
- data/lib/selenium/webdriver/remote/bridge/locator_converter.rb +76 -0
- data/lib/selenium/webdriver/remote/bridge.rb +87 -69
- data/lib/selenium/webdriver/remote/capabilities.rb +2 -2
- data/lib/selenium/webdriver/remote/driver.rb +4 -0
- data/lib/selenium/webdriver/remote/features.rb +75 -0
- data/lib/selenium/webdriver/remote/http/common.rb +21 -3
- data/lib/selenium/webdriver/remote/response.rb +8 -33
- data/lib/selenium/webdriver/remote/server_error.rb +1 -1
- data/lib/selenium/webdriver/remote.rb +2 -0
- data/lib/selenium/webdriver/safari/features.rb +5 -1
- data/lib/selenium/webdriver/support/event_firing_bridge.rb +4 -4
- data/lib/selenium/webdriver/support/guards/guard.rb +14 -12
- data/lib/selenium/webdriver/support/guards.rb +1 -1
- data/lib/selenium/webdriver/version.rb +1 -1
- data/lib/selenium/webdriver.rb +1 -1
- data/selenium-webdriver.gemspec +9 -7
- metadata +84 -6
@@ -113,15 +113,15 @@ module Selenium
|
|
113
113
|
end
|
114
114
|
|
115
115
|
def dispatch(name, *args)
|
116
|
-
@listener.__send__("before_#{name}", *args)
|
116
|
+
@listener.__send__(:"before_#{name}", *args)
|
117
117
|
returned = yield
|
118
|
-
@listener.__send__("after_#{name}", *args)
|
118
|
+
@listener.__send__(:"after_#{name}", *args)
|
119
119
|
|
120
120
|
returned
|
121
121
|
end
|
122
122
|
|
123
|
-
def method_missing(meth,
|
124
|
-
@delegate.__send__(meth,
|
123
|
+
def method_missing(meth, ...) # rubocop:disable Style/MissingRespondToMissing
|
124
|
+
@delegate.__send__(meth, ...)
|
125
125
|
end
|
126
126
|
end # EventFiringBridge
|
127
127
|
end # Support
|
@@ -27,7 +27,7 @@ module Selenium
|
|
27
27
|
#
|
28
28
|
|
29
29
|
class Guard
|
30
|
-
attr_reader :guarded, :type, :messages, :reason
|
30
|
+
attr_reader :guarded, :type, :messages, :reason, :tracker
|
31
31
|
|
32
32
|
def initialize(guarded, type, guards = nil)
|
33
33
|
@guarded = guarded
|
@@ -36,24 +36,25 @@ module Selenium
|
|
36
36
|
@messages[:unknown] = 'TODO: Investigate why this is failing and file a bug report'
|
37
37
|
@type = type
|
38
38
|
|
39
|
-
@reason = @guarded
|
39
|
+
@reason = @guarded[:reason] || 'No reason given'
|
40
|
+
@guarded[:reason] = @reason
|
40
41
|
end
|
41
42
|
|
42
43
|
def message
|
43
|
-
details = case
|
44
|
+
details = case reason
|
44
45
|
when Integer
|
45
|
-
"Bug Filed: #{
|
46
|
+
"Bug Filed: #{tracker}/#{reason}"
|
46
47
|
when Symbol
|
47
|
-
|
48
|
-
when String
|
49
|
-
@reason
|
48
|
+
messages[reason]
|
50
49
|
else
|
51
|
-
|
50
|
+
"Guarded by #{guarded};"
|
52
51
|
end
|
53
52
|
|
54
|
-
case
|
53
|
+
case type
|
55
54
|
when :exclude
|
56
|
-
"Test
|
55
|
+
"Test skipped because it breaks test run; #{details}"
|
56
|
+
when :flaky
|
57
|
+
"Test skipped because it is unreliable in this configuration; #{details}"
|
57
58
|
when :exclusive
|
58
59
|
"Test does not apply to this configuration; #{details}"
|
59
60
|
else
|
@@ -71,9 +72,10 @@ module Selenium
|
|
71
72
|
@type == :only
|
72
73
|
end
|
73
74
|
|
74
|
-
# Bug is present on all configurations specified, but test can not be run because it breaks other tests
|
75
|
+
# Bug is present on all configurations specified, but test can not be run because it breaks other tests,
|
76
|
+
# or it is flaky and unreliable
|
75
77
|
def exclude?
|
76
|
-
@type == :exclude
|
78
|
+
@type == :exclude || @type == :flaky
|
77
79
|
end
|
78
80
|
|
79
81
|
# Test only applies to configurations specified
|
data/lib/selenium/webdriver.rb
CHANGED
data/selenium-webdriver.gemspec
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
root = File.expand_path(File.dirname(__FILE__))
|
4
|
-
raise "cwd must be #{root} when reading gemspec" if root != Dir.pwd
|
5
|
-
|
6
4
|
$LOAD_PATH.push(File.expand_path('lib', root))
|
7
5
|
require 'selenium/webdriver/version'
|
8
6
|
|
@@ -49,17 +47,21 @@ Gem::Specification.new do |s|
|
|
49
47
|
s.bindir = 'bin'
|
50
48
|
s.require_paths = ['lib']
|
51
49
|
|
52
|
-
s.
|
53
|
-
s.
|
54
|
-
s.
|
50
|
+
s.add_dependency 'base64', ['~> 0.2']
|
51
|
+
s.add_dependency 'logger', ['~> 1.4']
|
52
|
+
s.add_dependency 'rexml', ['~> 3.2', '>= 3.2.5']
|
53
|
+
s.add_dependency 'rubyzip', ['>= 1.2.2', '< 3.0']
|
54
|
+
s.add_dependency 'websocket', ['~> 1.0']
|
55
55
|
|
56
|
+
s.add_development_dependency 'git', ['~> 1.19']
|
56
57
|
s.add_development_dependency 'rack', ['~> 2.0']
|
57
58
|
s.add_development_dependency 'rake', ['~> 13.0']
|
58
59
|
s.add_development_dependency 'rspec', ['~> 3.0']
|
59
|
-
s.add_development_dependency 'rubocop', ['~> 1.
|
60
|
+
s.add_development_dependency 'rubocop', ['~> 1.60', '>=1.60.2']
|
60
61
|
s.add_development_dependency 'rubocop-performance', ['~> 1.15']
|
62
|
+
s.add_development_dependency 'rubocop-rake', ['~> 0.6.0']
|
61
63
|
s.add_development_dependency 'rubocop-rspec', ['~> 2.16']
|
62
64
|
s.add_development_dependency 'webmock', ['~> 3.5']
|
63
65
|
s.add_development_dependency 'webrick', ['~> 1.7']
|
64
|
-
s.add_development_dependency 'yard', ['~> 0.9.11']
|
66
|
+
s.add_development_dependency 'yard', ['~> 0.9.11', '>= 0.9.36']
|
65
67
|
end
|
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.
|
4
|
+
version: 4.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Rodionov
|
@@ -10,8 +10,36 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2024-07-18 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: base64
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - "~>"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0.2'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - "~>"
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '0.2'
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: logger
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - "~>"
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '1.4'
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '1.4'
|
15
43
|
- !ruby/object:Gem::Dependency
|
16
44
|
name: rexml
|
17
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +94,20 @@ dependencies:
|
|
66
94
|
- - "~>"
|
67
95
|
- !ruby/object:Gem::Version
|
68
96
|
version: '1.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: git
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.19'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.19'
|
69
111
|
- !ruby/object:Gem::Dependency
|
70
112
|
name: rack
|
71
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,14 +156,20 @@ dependencies:
|
|
114
156
|
requirements:
|
115
157
|
- - "~>"
|
116
158
|
- !ruby/object:Gem::Version
|
117
|
-
version: '1.
|
159
|
+
version: '1.60'
|
160
|
+
- - ">="
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: 1.60.2
|
118
163
|
type: :development
|
119
164
|
prerelease: false
|
120
165
|
version_requirements: !ruby/object:Gem::Requirement
|
121
166
|
requirements:
|
122
167
|
- - "~>"
|
123
168
|
- !ruby/object:Gem::Version
|
124
|
-
version: '1.
|
169
|
+
version: '1.60'
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: 1.60.2
|
125
173
|
- !ruby/object:Gem::Dependency
|
126
174
|
name: rubocop-performance
|
127
175
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,6 +184,20 @@ dependencies:
|
|
136
184
|
- - "~>"
|
137
185
|
- !ruby/object:Gem::Version
|
138
186
|
version: '1.15'
|
187
|
+
- !ruby/object:Gem::Dependency
|
188
|
+
name: rubocop-rake
|
189
|
+
requirement: !ruby/object:Gem::Requirement
|
190
|
+
requirements:
|
191
|
+
- - "~>"
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
version: 0.6.0
|
194
|
+
type: :development
|
195
|
+
prerelease: false
|
196
|
+
version_requirements: !ruby/object:Gem::Requirement
|
197
|
+
requirements:
|
198
|
+
- - "~>"
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: 0.6.0
|
139
201
|
- !ruby/object:Gem::Dependency
|
140
202
|
name: rubocop-rspec
|
141
203
|
requirement: !ruby/object:Gem::Requirement
|
@@ -185,6 +247,9 @@ dependencies:
|
|
185
247
|
- - "~>"
|
186
248
|
- !ruby/object:Gem::Version
|
187
249
|
version: 0.9.11
|
250
|
+
- - ">="
|
251
|
+
- !ruby/object:Gem::Version
|
252
|
+
version: 0.9.36
|
188
253
|
type: :development
|
189
254
|
prerelease: false
|
190
255
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -192,6 +257,9 @@ dependencies:
|
|
192
257
|
- - "~>"
|
193
258
|
- !ruby/object:Gem::Version
|
194
259
|
version: 0.9.11
|
260
|
+
- - ">="
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: 0.9.36
|
195
263
|
description: |2
|
196
264
|
Selenium implements the W3C WebDriver protocol to automate popular browsers.
|
197
265
|
It aims to mimic the behaviour of a real user as it interacts with the application's HTML.
|
@@ -228,9 +296,11 @@ files:
|
|
228
296
|
- lib/selenium/webdriver/bidi/log/filter_by.rb
|
229
297
|
- lib/selenium/webdriver/bidi/log/generic_log_entry.rb
|
230
298
|
- lib/selenium/webdriver/bidi/log/javascript_log_entry.rb
|
299
|
+
- lib/selenium/webdriver/bidi/log_handler.rb
|
231
300
|
- lib/selenium/webdriver/bidi/log_inspector.rb
|
232
301
|
- lib/selenium/webdriver/bidi/navigate_result.rb
|
233
302
|
- lib/selenium/webdriver/bidi/session.rb
|
303
|
+
- lib/selenium/webdriver/bidi/struct.rb
|
234
304
|
- lib/selenium/webdriver/chrome.rb
|
235
305
|
- lib/selenium/webdriver/chrome/driver.rb
|
236
306
|
- lib/selenium/webdriver/chrome/features.rb
|
@@ -258,12 +328,12 @@ files:
|
|
258
328
|
- lib/selenium/webdriver/common/driver_extensions/has_context.rb
|
259
329
|
- lib/selenium/webdriver/common/driver_extensions/has_debugger.rb
|
260
330
|
- lib/selenium/webdriver/common/driver_extensions/has_devtools.rb
|
331
|
+
- lib/selenium/webdriver/common/driver_extensions/has_fedcm_dialog.rb
|
332
|
+
- lib/selenium/webdriver/common/driver_extensions/has_file_downloads.rb
|
261
333
|
- lib/selenium/webdriver/common/driver_extensions/has_launching.rb
|
262
|
-
- lib/selenium/webdriver/common/driver_extensions/has_location.rb
|
263
334
|
- lib/selenium/webdriver/common/driver_extensions/has_log_events.rb
|
264
335
|
- lib/selenium/webdriver/common/driver_extensions/has_logs.rb
|
265
336
|
- lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb
|
266
|
-
- lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb
|
267
337
|
- lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
|
268
338
|
- lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
|
269
339
|
- lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
|
@@ -274,6 +344,9 @@ files:
|
|
274
344
|
- lib/selenium/webdriver/common/driver_finder.rb
|
275
345
|
- lib/selenium/webdriver/common/element.rb
|
276
346
|
- lib/selenium/webdriver/common/error.rb
|
347
|
+
- lib/selenium/webdriver/common/fedcm.rb
|
348
|
+
- lib/selenium/webdriver/common/fedcm/account.rb
|
349
|
+
- lib/selenium/webdriver/common/fedcm/dialog.rb
|
277
350
|
- lib/selenium/webdriver/common/file_reaper.rb
|
278
351
|
- lib/selenium/webdriver/common/html5/local_storage.rb
|
279
352
|
- lib/selenium/webdriver/common/html5/session_storage.rb
|
@@ -308,6 +381,7 @@ files:
|
|
308
381
|
- lib/selenium/webdriver/common/port_prober.rb
|
309
382
|
- lib/selenium/webdriver/common/profile_helper.rb
|
310
383
|
- lib/selenium/webdriver/common/proxy.rb
|
384
|
+
- lib/selenium/webdriver/common/script.rb
|
311
385
|
- lib/selenium/webdriver/common/search_context.rb
|
312
386
|
- lib/selenium/webdriver/common/selenium_manager.rb
|
313
387
|
- lib/selenium/webdriver/common/service.rb
|
@@ -350,13 +424,17 @@ files:
|
|
350
424
|
- lib/selenium/webdriver/firefox/util.rb
|
351
425
|
- lib/selenium/webdriver/ie.rb
|
352
426
|
- lib/selenium/webdriver/ie/driver.rb
|
427
|
+
- lib/selenium/webdriver/ie/features.rb
|
353
428
|
- lib/selenium/webdriver/ie/options.rb
|
354
429
|
- lib/selenium/webdriver/ie/service.rb
|
355
430
|
- lib/selenium/webdriver/remote.rb
|
431
|
+
- lib/selenium/webdriver/remote/bidi_bridge.rb
|
356
432
|
- lib/selenium/webdriver/remote/bridge.rb
|
357
433
|
- lib/selenium/webdriver/remote/bridge/commands.rb
|
434
|
+
- lib/selenium/webdriver/remote/bridge/locator_converter.rb
|
358
435
|
- lib/selenium/webdriver/remote/capabilities.rb
|
359
436
|
- lib/selenium/webdriver/remote/driver.rb
|
437
|
+
- lib/selenium/webdriver/remote/features.rb
|
360
438
|
- lib/selenium/webdriver/remote/http/common.rb
|
361
439
|
- lib/selenium/webdriver/remote/http/curb.rb
|
362
440
|
- lib/selenium/webdriver/remote/http/default.rb
|