selenium-webdriver 4.24.0 → 4.26.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES +14 -0
- 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/webdriver/bidi/log_handler.rb +2 -2
- data/lib/selenium/webdriver/chrome/service.rb +1 -0
- data/lib/selenium/webdriver/common/fedcm/account.rb +2 -2
- data/lib/selenium/webdriver/common/logger.rb +1 -1
- data/lib/selenium/webdriver/common/service.rb +11 -4
- data/lib/selenium/webdriver/common/target_locator.rb +1 -2
- data/lib/selenium/webdriver/common/wait.rb +1 -1
- data/lib/selenium/webdriver/edge/service.rb +1 -1
- data/lib/selenium/webdriver/firefox/service.rb +1 -0
- data/lib/selenium/webdriver/ie/service.rb +1 -0
- data/lib/selenium/webdriver/remote/response.rb +18 -0
- data/lib/selenium/webdriver/safari/service.rb +1 -1
- data/lib/selenium/webdriver/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7edc3571bd28b32bf23d755dc8386057ce7ee1072b70a3a2c673b3519acf5ee4
|
4
|
+
data.tar.gz: ab849ea6ba3a5033ab1e33f2c241274cb892cdd33236e52f12ed8be7c6f2623f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c16d56af44cf4aea7a7988b975a8e7f23f04de2c1e81acf2593d6cc391deae93ca8501bb5523fb5b0df0781dc2e72be9667f4fd0b0bb90af52e9605959f2277b
|
7
|
+
data.tar.gz: 16f14b892bb1e9578b7ba61c6fc049e2a27ec3ae8a728fbce2b212e51a0b85b29e741866acd8db6cfcc9e97e401f0d7af3aba78dec66628fab3ba9d3547e278d
|
data/CHANGES
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
4.26.0 (2024-10-28)
|
2
|
+
=========================
|
3
|
+
* Add CDP for Chrome 130 and remove 127
|
4
|
+
* Add missing RBS methods (#14621)
|
5
|
+
* Update Ruby BiDi script structs to match spec
|
6
|
+
* Add RBS type support for BiDi related classes (#14611)
|
7
|
+
|
8
|
+
4.25.0 (2024-09-19)
|
9
|
+
=========================
|
10
|
+
* Add CDP for Chrome 129 and remove 126
|
11
|
+
* Fix add_cause method not being able to process an array of hashes (#14433)
|
12
|
+
* replace `fedcm` links with new ones (#14478)
|
13
|
+
* Allow driver path to be set using ENV variables (#14287)
|
14
|
+
|
1
15
|
4.24.0 (2024-08-23)
|
2
16
|
=========================
|
3
17
|
* Deprecate WebStorage JS methods (#14276)
|
data/bin/linux/selenium-manager
CHANGED
Binary file
|
data/bin/macos/selenium-manager
CHANGED
Binary file
|
Binary file
|
@@ -21,8 +21,8 @@ module Selenium
|
|
21
21
|
module WebDriver
|
22
22
|
class BiDi
|
23
23
|
class LogHandler
|
24
|
-
ConsoleLogEntry = BiDi::Struct.new(:level, :text, :timestamp, :
|
25
|
-
JavaScriptLogEntry = BiDi::Struct.new(:level, :text, :timestamp, :stack_trace, :type)
|
24
|
+
ConsoleLogEntry = BiDi::Struct.new(:level, :text, :timestamp, :stack_trace, :type, :source, :method, :args)
|
25
|
+
JavaScriptLogEntry = BiDi::Struct.new(:level, :text, :timestamp, :stack_trace, :type, :source)
|
26
26
|
|
27
27
|
def initialize(bidi)
|
28
28
|
@bidi = bidi
|
@@ -21,8 +21,8 @@ module Selenium
|
|
21
21
|
module WebDriver
|
22
22
|
module FedCM
|
23
23
|
# Represents an account displayed in a FedCm account list.
|
24
|
-
# See: https://
|
25
|
-
# https://
|
24
|
+
# See: https://w3c-fedid.github.io/FedCM/#dictdef-identityprovideraccount
|
25
|
+
# https://w3c-fedid.github.io/FedCM/#webdriver-accountlist
|
26
26
|
class Account
|
27
27
|
LOGIN_STATE_SIGNIN = 'SignIn'
|
28
28
|
LOGIN_STATE_SIGNUP = 'SignUp'
|
@@ -69,6 +69,7 @@ module Selenium
|
|
69
69
|
def initialize(path: nil, port: nil, log: nil, args: nil)
|
70
70
|
port ||= self.class::DEFAULT_PORT
|
71
71
|
args ||= []
|
72
|
+
path ||= env_path
|
72
73
|
|
73
74
|
@executable_path = path
|
74
75
|
@host = Platform.localhost
|
@@ -87,16 +88,22 @@ module Selenium
|
|
87
88
|
end
|
88
89
|
|
89
90
|
def launch
|
90
|
-
@executable_path ||=
|
91
|
-
default_options = WebDriver.const_get("#{self.class.name&.split('::')&.[](2)}::Options").new
|
92
|
-
DriverFinder.new(default_options, self).driver_path
|
93
|
-
end
|
91
|
+
@executable_path ||= env_path || find_driver_path
|
94
92
|
ServiceManager.new(self).tap(&:start)
|
95
93
|
end
|
96
94
|
|
97
95
|
def shutdown_supported
|
98
96
|
self.class::SHUTDOWN_SUPPORTED
|
99
97
|
end
|
98
|
+
|
99
|
+
def find_driver_path
|
100
|
+
default_options = WebDriver.const_get("#{self.class.name&.split('::')&.[](2)}::Options").new
|
101
|
+
DriverFinder.new(default_options, self).driver_path
|
102
|
+
end
|
103
|
+
|
104
|
+
def env_path
|
105
|
+
ENV.fetch(self.class::DRIVER_PATH_ENV_KEY, nil)
|
106
|
+
end
|
100
107
|
end # Service
|
101
108
|
end # WebDriver
|
102
109
|
end # Selenium
|
@@ -96,12 +96,11 @@ module Selenium
|
|
96
96
|
@bridge.switch_to_window id
|
97
97
|
|
98
98
|
begin
|
99
|
-
|
99
|
+
yield
|
100
100
|
ensure
|
101
101
|
current_handles = @bridge.window_handles
|
102
102
|
original = current_handles.first unless current_handles.include? original
|
103
103
|
@bridge.switch_to_window original
|
104
|
-
returned
|
105
104
|
end
|
106
105
|
else
|
107
106
|
@bridge.switch_to_window id
|
@@ -58,12 +58,30 @@ module Selenium
|
|
58
58
|
|
59
59
|
def add_cause(ex, error, backtrace)
|
60
60
|
cause = Error::WebDriverError.new
|
61
|
+
backtrace = backtrace_from_remote(backtrace) if backtrace.is_a?(Array)
|
61
62
|
cause.set_backtrace(backtrace)
|
62
63
|
raise ex, cause: cause
|
63
64
|
rescue Error.for_error(error)
|
64
65
|
ex
|
65
66
|
end
|
66
67
|
|
68
|
+
def backtrace_from_remote(server_trace)
|
69
|
+
server_trace.filter_map do |frame|
|
70
|
+
next unless frame.is_a?(Hash)
|
71
|
+
|
72
|
+
file = frame['fileName']
|
73
|
+
line = frame['lineNumber']
|
74
|
+
method = frame['methodName']
|
75
|
+
|
76
|
+
class_name = frame['className']
|
77
|
+
file = "#{class_name}(#{file})" if class_name
|
78
|
+
|
79
|
+
method = 'unknown' if method.nil? || method.empty?
|
80
|
+
|
81
|
+
"[remote server] #{file}:#{line}:in `#{method}'"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
67
85
|
def process_error
|
68
86
|
return unless self['value'].is_a?(Hash)
|
69
87
|
|
@@ -24,7 +24,7 @@ module Selenium
|
|
24
24
|
DEFAULT_PORT = 7050
|
25
25
|
EXECUTABLE = 'safaridriver'
|
26
26
|
SHUTDOWN_SUPPORTED = false
|
27
|
-
|
27
|
+
DRIVER_PATH_ENV_KEY = 'SE_SAFARIDRIVER'
|
28
28
|
def initialize(path: nil, port: nil, log: nil, args: nil)
|
29
29
|
raise Error::WebDriverError, 'Safari Service does not support setting log output' if log
|
30
30
|
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: selenium-webdriver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.26.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: 2024-
|
13
|
+
date: 2024-10-30 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: base64
|
@@ -466,7 +466,7 @@ metadata:
|
|
466
466
|
github_repo: ssh://github.com/SeleniumHQ/selenium
|
467
467
|
source_code_uri: https://github.com/SeleniumHQ/selenium/tree/trunk/rb
|
468
468
|
rubygems_mfa_required: 'true'
|
469
|
-
post_install_message:
|
469
|
+
post_install_message:
|
470
470
|
rdoc_options: []
|
471
471
|
require_paths:
|
472
472
|
- lib
|
@@ -482,7 +482,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
482
482
|
version: 1.3.1
|
483
483
|
requirements: []
|
484
484
|
rubygems_version: 3.2.33
|
485
|
-
signing_key:
|
485
|
+
signing_key:
|
486
486
|
specification_version: 4
|
487
487
|
summary: Selenium is a browser automation tool for automated testing of webapps and
|
488
488
|
more
|