selenium-webdriver 4.34.0 → 4.35.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 +13 -6
- 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/atoms/findElements.js +2 -2
- data/lib/selenium/webdriver/atoms/isDisplayed.js +2 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_file_downloads.rb +7 -1
- data/lib/selenium/webdriver/common/wait.rb +1 -1
- data/lib/selenium/webdriver/common/zipper.rb +12 -2
- data/lib/selenium/webdriver/version.rb +1 -1
- data/selenium-webdriver.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec668a5c5955cd9e7cb5043758444d5327fed5d294e2b8d083b697d3c7b1d254
|
4
|
+
data.tar.gz: 59d44985b7930295cfcc71cfa64bdcd3428f8580a0e3eb35a98b4ad69080c835
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c1838ed8ff8ea7d33bc5ccc2db54715223f82bfdd9a7a427bae6062fc1a6976e78b721382f4b94a710d1a7814e35842c0bb74e17a7e89b7b14d4760d3488e539
|
7
|
+
data.tar.gz: 2161b82493b1c1de27980ede799dec2de1a8ed6fb9ace4f9394004cddee4433a7da86714425cc097ba6c2a9a457369b49e35dccd205424027a9bc26821393893
|
data/CHANGES
CHANGED
@@ -1,8 +1,15 @@
|
|
1
|
-
4.
|
1
|
+
4.35.0 (2025-08-12)
|
2
|
+
=========================
|
3
|
+
* Add CDP for Chrome 139 and remove 136
|
4
|
+
* Fix typos in javascript & rb (#16019)
|
5
|
+
* Allow to use `rubyzip` v3 (#16108)
|
6
|
+
|
7
|
+
4.34.0 (2025-06-29)
|
2
8
|
=========================
|
3
9
|
* Add CDP for Chrome 138 and remove 135
|
4
10
|
* Fix child process terminate method when a process is already terminated (#15789)
|
5
11
|
* Deprecate ftp proxy (#15926)
|
12
|
+
* Add macOS key mappings for Options and Function keys (#15959)
|
6
13
|
|
7
14
|
4.33.0 (2025-05-23)
|
8
15
|
=========================
|
@@ -1854,7 +1861,7 @@ Safari:
|
|
1854
1861
|
* Replace 'libwebsocket' with 'websocket' gem. This should ensure
|
1855
1862
|
support with recent Safari.
|
1856
1863
|
Other:
|
1857
|
-
* Fix Cygwin issue in PortProber/Firefox::
|
1864
|
+
* Fix Cygwin issue in PortProber/Firefox::Binary (#4963)
|
1858
1865
|
|
1859
1866
|
2.27.2 (2012-12-11)
|
1860
1867
|
===================
|
@@ -1944,7 +1951,7 @@ IE:
|
|
1944
1951
|
* Fix conflict with ActiveSupport's Object#load (#3819)
|
1945
1952
|
* IE:
|
1946
1953
|
* Default to standalone server executable, fall back to bundled DLLs.
|
1947
|
-
* The 'nativeEvents'
|
1954
|
+
* The 'nativeEvents' capability is exposed as :native_events in the Ruby client (mode still experimental).
|
1948
1955
|
* Firefox:
|
1949
1956
|
* Native events for Firefox 12.
|
1950
1957
|
* Native events retained for Firefox 3.x, 10 and 11.
|
@@ -2084,7 +2091,7 @@ IE:
|
|
2084
2091
|
===================
|
2085
2092
|
|
2086
2093
|
* Firefox:
|
2087
|
-
* Now supports up to Firefox 11 (for
|
2094
|
+
* Now supports up to Firefox 11 (for synthesized events)
|
2088
2095
|
* Implicit waits now change how long we wait for alerts. This
|
2089
2096
|
functionality will change in 2.16
|
2090
2097
|
* Fix scrolling issue (#2700)
|
@@ -2278,7 +2285,7 @@ IE:
|
|
2278
2285
|
2.1.0 (2011-07-18)
|
2279
2286
|
==================
|
2280
2287
|
|
2281
|
-
* Various
|
2288
|
+
* Various improvements to the IE driver (#2049, #1870)
|
2282
2289
|
* Atoms fixes (#1776, #1972).
|
2283
2290
|
* Synthetic mouse clicks do not propagate errors in onmouseover.
|
2284
2291
|
|
@@ -2428,7 +2435,7 @@ IE:
|
|
2428
2435
|
* Cookie expiration dates are now handled correctly (#730)
|
2429
2436
|
* Make Driver#bridge private, since this seems to be a common cause of confusion.
|
2430
2437
|
* Add {Element,Remote::Capabilities}#as_json for Rails 3 (http://jonathanjulian.com/2010/04/rails-to_json-or-as_json/)
|
2431
|
-
* User can configure path to
|
2438
|
+
* User can configure path to executables with {Firefox,Chrome}.path = "/some/path"
|
2432
2439
|
* Added "chromium" as a possible name for the Chrome binary (#769)
|
2433
2440
|
* Correctly set the HTTP client timeout (#768)
|
2434
2441
|
* switch_to.window with block now handles exceptions and non-local returns.
|
data/bin/linux/selenium-manager
CHANGED
Binary file
|
data/bin/macos/selenium-manager
CHANGED
Binary file
|
Binary file
|
@@ -24,8 +24,8 @@ Number(d[1]),c=Number(d[2]),d=Number(d[3]),0<=b&&255>=b&&0<=c&&255>=c&&0<=d&&255
|
|
24
24
|
function hb(a,b){var c=a.currentStyle||a.style,d=c[b];void 0===d&&k(c.getPropertyValue)&&(d=c.getPropertyValue(b));return"inherit"!=d?void 0!==d?d:null:(a=gb(a))?hb(a,b):null}
|
25
25
|
function ib(a,b,c){function d(g){var l=S(g);return 0<l.height&&0<l.width?!0:P(g,"PATH")&&(0<l.height||0<l.width)?(g=R(g,"stroke-width"),!!g&&0<parseInt(g,10)):"hidden"!=R(g,"overflow")&&ia(g.childNodes,function(z){return 3==z.nodeType||P(z)&&d(z)})}function e(g){return jb(g)==T&&ja(g.childNodes,function(l){return!P(l)||e(l)||!d(l)})}if(!P(a))throw Error("Argument to isShown must be of type Element");if(P(a,"BODY"))return!0;if(P(a,"OPTION")||P(a,"OPTGROUP"))return a=La(a,function(g){return P(g,"SELECT")}),
|
26
26
|
!!a&&ib(a,!0,c);var f=kb(a);if(f)return!!f.image&&0<f.rect.width&&0<f.rect.height&&ib(f.image,b,c);if(P(a,"INPUT")&&"hidden"==a.type.toLowerCase()||P(a,"NOSCRIPT"))return!1;f=R(a,"visibility");return"collapse"!=f&&"hidden"!=f&&c(a)&&(b||0!=lb(a))&&d(a)?!e(a):!1}
|
27
|
-
function mb(a){function b(c){if(P(c)&&"none"==R(c,"display"))return!1;var d;if((d=c.parentNode)&&d.shadowRoot&&void 0!==c.assignedSlot)d=c.assignedSlot?c.assignedSlot.parentNode:null;else if(c.getDestinationInsertionPoints){var e=c.getDestinationInsertionPoints();0<e.length&&(d=e[e.length-1])}if(fb&&d instanceof ShadowRoot){if(d.host.shadowRoot&&d.host.shadowRoot!==d)return!1;d=d.host}return!d||9!=d.nodeType&&11!=d.nodeType?d&&P(d,"DETAILS")&&!d.open&&!P(c,"SUMMARY")
|
28
|
-
b)}var T="hidden";
|
27
|
+
function mb(a){function b(c){if(P(c)&&("none"==R(c,"display")||"hidden"==R(c,"content-visibility")))return!1;var d;if((d=c.parentNode)&&d.shadowRoot&&void 0!==c.assignedSlot)d=c.assignedSlot?c.assignedSlot.parentNode:null;else if(c.getDestinationInsertionPoints){var e=c.getDestinationInsertionPoints();0<e.length&&(d=e[e.length-1])}if(fb&&d instanceof ShadowRoot){if(d.host.shadowRoot&&d.host.shadowRoot!==d)return!1;d=d.host}return!d||9!=d.nodeType&&11!=d.nodeType?d&&P(d,"DETAILS")&&!d.open&&!P(c,"SUMMARY")?
|
28
|
+
!1:!!d&&b(d):!0}return ib(a,!1,b)}var T="hidden";
|
29
29
|
function jb(a){function b(m){function p(wa){if(wa==g)return!0;var Pa=R(wa,"display");return 0==Pa.lastIndexOf("inline",0)||"contents"==Pa||"absolute"==Qa&&"static"==R(wa,"position")?!1:!0}var Qa=R(m,"position");if("fixed"==Qa)return A=!0,m==g?null:g;for(m=gb(m);m&&!p(m);)m=gb(m);return m}function c(m){var p=m;if("visible"==z)if(m==g&&l)p=l;else if(m==l)return{x:"visible",y:"visible"};p={x:R(p,"overflow-x"),y:R(p,"overflow-y")};m==g&&(p.x="visible"==p.x?"auto":p.x,p.y="visible"==p.y?"auto":p.y);return p}
|
30
30
|
function d(m){if(m==g){var p=(new Ia(f)).a;m=p.scrollingElement?p.scrollingElement:Ba||"CSS1Compat"!=p.compatMode?p.body||p.documentElement:p.documentElement;p=p.parentWindow||p.defaultView;m=E&&Ha("10")&&p.pageYOffset!=m.scrollTop?new G(m.scrollLeft,m.scrollTop):new G(p.pageXOffset||m.scrollLeft,p.pageYOffset||m.scrollTop)}else m=new G(m.scrollLeft,m.scrollTop);return m}var e=nb(a),f=J(a),g=f.documentElement,l=f.body,z=R(g,"overflow"),A;for(a=b(a);a;a=b(a)){var t=c(a);if("visible"!=t.x||"visible"!=
|
31
31
|
t.y){var v=S(a);if(0==v.width||0==v.height)return T;var B=e.a<v.a,K=e.b<v.b;if(B&&"hidden"==t.x||K&&"hidden"==t.y)return T;if(B&&"visible"!=t.x||K&&"visible"!=t.y){B=d(a);K=e.b<v.b-B.y;if(e.a<v.a-B.x&&"visible"!=t.x||K&&"visible"!=t.x)return T;e=jb(a);return e==T?T:"scroll"}B=e.h>=v.a+v.width;v=e.j>=v.b+v.height;if(B&&"hidden"==t.x||v&&"hidden"==t.y)return T;if(B&&"visible"!=t.x||v&&"visible"!=t.y){if(A&&(t=d(a),e.h>=g.scrollWidth-t.x||e.a>=g.scrollHeight-t.y))return T;e=jb(a);return e==T?T:"scroll"}}}return"none"}
|
@@ -24,5 +24,5 @@ return b}
|
|
24
24
|
function Oa(a){var b=P(a,"MAP");if(!b&&!P(a,"AREA"))return null;var c=b?a:P(a.parentNode,"MAP")?a.parentNode:null,e=null,d=null;if(c&&c.name){e='*[usemap="#'+c.name+'"]';c=N(c);var f;if(f="function"!=aa(c.querySelector)&&C&&(C?0<=na(I,8):Ba(8))){f=c.querySelector;var h=typeof f;f=!("object"==h&&null!=f||"function"==h)}if(f)throw Error("CSS selection is not supported");if(!e)throw new m(32,"No selector specified");e=u(e);try{var n=c.querySelector(e)}catch(D){throw new m(32,"An invalid or illegal selector was specified");}if(e=
|
25
25
|
n&&1==n.nodeType?n:null)d=V(e),b||"default"==a.shape.toLowerCase()||(a=Ra(a),b=Math.min(Math.max(a.a,0),d.width),n=Math.min(Math.max(a.b,0),d.height),d=new R(b+d.a,n+d.b,Math.min(a.width,d.width-b),Math.min(a.height,d.height-n)))}return{image:e,rect:d||new R(0,0,0,0)}}
|
26
26
|
function Ra(a){var b=a.shape.toLowerCase();a=a.coords.split(",");if("rect"==b&&4==a.length){b=a[0];var c=a[1];return new R(b,c,a[2]-b,a[3]-c)}if("circle"==b&&3==a.length)return b=a[2],new R(a[0]-b,a[1]-b,2*b,2*b);if("poly"==b&&2<a.length){b=a[0];c=a[1];for(var e=b,d=c,f=2;f+1<a.length;f+=2)b=Math.min(b,a[f]),e=Math.max(e,a[f]),c=Math.min(c,a[f+1]),d=Math.max(d,a[f+1]);return new R(b,c,e-b,d-c)}return new R(0,0,0,0)}function Qa(a){a=V(a);return new Q(a.b,a.a+a.width,a.b+a.height,a.a)}
|
27
|
-
function Pa(a){if(Ia){if("relative"==T(a,"position"))return 1;a=T(a,"filter");return(a=a.match(/^alpha\(opacity=(\d*)\)/)||a.match(/^progid:DXImageTransform.Microsoft.Alpha\(Opacity=(\d*)\)/))?Number(a[1])/100:1}return Sa(a)}function Sa(a){var b=1,c=T(a,"opacity");c&&(b=Number(c));(a=S(a))&&(b*=Sa(a));return b};function Ta(a,b){function c(e){if(P(e)&&"none"==T(e,"display"))return!1;var d;if((d=e.parentNode)&&d.shadowRoot&&void 0!==e.assignedSlot)d=e.assignedSlot?e.assignedSlot.parentNode:null;else if(e.getDestinationInsertionPoints){var f=e.getDestinationInsertionPoints();0<f.length&&(d=f[f.length-1])}if(La&&d instanceof ShadowRoot){if(d.host.shadowRoot&&d.host.shadowRoot!==d)return!1;d=d.host}return!d||9!=d.nodeType&&11!=d.nodeType?d&&P(d,"DETAILS")&&!d.open&&!P(e,
|
28
|
-
|
27
|
+
function Pa(a){if(Ia){if("relative"==T(a,"position"))return 1;a=T(a,"filter");return(a=a.match(/^alpha\(opacity=(\d*)\)/)||a.match(/^progid:DXImageTransform.Microsoft.Alpha\(Opacity=(\d*)\)/))?Number(a[1])/100:1}return Sa(a)}function Sa(a){var b=1,c=T(a,"opacity");c&&(b=Number(c));(a=S(a))&&(b*=Sa(a));return b};function Ta(a,b){function c(e){if(P(e)&&("none"==T(e,"display")||"hidden"==T(e,"content-visibility")))return!1;var d;if((d=e.parentNode)&&d.shadowRoot&&void 0!==e.assignedSlot)d=e.assignedSlot?e.assignedSlot.parentNode:null;else if(e.getDestinationInsertionPoints){var f=e.getDestinationInsertionPoints();0<f.length&&(d=f[f.length-1])}if(La&&d instanceof ShadowRoot){if(d.host.shadowRoot&&d.host.shadowRoot!==d)return!1;d=d.host}return!d||9!=d.nodeType&&11!=d.nodeType?d&&P(d,"DETAILS")&&!d.open&&!P(e,
|
28
|
+
"SUMMARY")?!1:!!d&&c(d):!0}return U(a,!!b,c)}var X=["se_exportedFunctionSymbol"],Y=g;X[0]in Y||"undefined"==typeof Y.execScript||Y.execScript("var "+X[0]);for(var Z;X.length&&(Z=X.shift());)X.length||void 0===Ta?Y[Z]&&Y[Z]!==Object.prototype[Z]?Y=Y[Z]:Y=Y[Z]={}:Y[Z]=Ta;; return this.se_exportedFunctionSymbol.apply(null,arguments);}).apply(window, arguments);}
|
@@ -39,7 +39,13 @@ module Selenium
|
|
39
39
|
|
40
40
|
begin
|
41
41
|
Zip::File.open("#{file_name}.zip") do |zip|
|
42
|
-
zip.each
|
42
|
+
zip.each do |entry|
|
43
|
+
if Zipper::RUBYZIP_V3
|
44
|
+
zip.extract(entry, file_name, destination_directory: target_directory)
|
45
|
+
else
|
46
|
+
zip.extract(entry, "#{target_directory}#{file_name}")
|
47
|
+
end
|
48
|
+
end
|
43
49
|
end
|
44
50
|
ensure
|
45
51
|
FileUtils.rm_f("#{file_name}.zip")
|
@@ -29,7 +29,7 @@ module Selenium
|
|
29
29
|
# @param [Hash] opts Options for this instance
|
30
30
|
# @option opts [Numeric] :timeout (5) Seconds to wait before timing out.
|
31
31
|
# @option opts [Numeric] :interval (0.2) Seconds to sleep between polls.
|
32
|
-
# @option opts [String] :message Exception
|
32
|
+
# @option opts [String] :message Exception message if timed out.
|
33
33
|
# @option opts [Array, Exception] :ignore Exceptions to ignore while polling (default: Error::NoSuchElementError)
|
34
34
|
#
|
35
35
|
|
@@ -18,6 +18,7 @@
|
|
18
18
|
# under the License.
|
19
19
|
|
20
20
|
require 'zip'
|
21
|
+
require 'zip/version' # Not required automatically
|
21
22
|
require 'tempfile'
|
22
23
|
require 'find'
|
23
24
|
require 'base64'
|
@@ -30,6 +31,7 @@ module Selenium
|
|
30
31
|
|
31
32
|
module Zipper
|
32
33
|
EXTENSIONS = %w[.zip .xpi].freeze
|
34
|
+
RUBYZIP_V3 = Zip::VERSION >= '3.0.0'
|
33
35
|
|
34
36
|
class << self
|
35
37
|
def unzip(path)
|
@@ -42,7 +44,11 @@ module Selenium
|
|
42
44
|
dirname = File.dirname(to)
|
43
45
|
|
44
46
|
FileUtils.mkdir_p dirname
|
45
|
-
|
47
|
+
if RUBYZIP_V3
|
48
|
+
zip.extract(entry, entry.name, destination_directory: destination)
|
49
|
+
else
|
50
|
+
zip.extract(entry, to)
|
51
|
+
end
|
46
52
|
end
|
47
53
|
end
|
48
54
|
|
@@ -75,7 +81,11 @@ module Selenium
|
|
75
81
|
# Don't use Tempfile since it lacks rb_file_s_rename permission on Windows.
|
76
82
|
Dir.mktmpdir do |tmp_dir|
|
77
83
|
zip_path = File.join(tmp_dir, 'webdriver-zip')
|
78
|
-
|
84
|
+
if RUBYZIP_V3
|
85
|
+
Zip::File.open(zip_path, create: true, &blk)
|
86
|
+
else
|
87
|
+
Zip::File.open(zip_path, Zip::File::CREATE, &blk)
|
88
|
+
end
|
79
89
|
end
|
80
90
|
end
|
81
91
|
|
data/selenium-webdriver.gemspec
CHANGED
@@ -52,7 +52,7 @@ Gem::Specification.new do |s|
|
|
52
52
|
s.add_dependency 'base64', ['~> 0.2']
|
53
53
|
s.add_dependency 'logger', ['~> 1.4']
|
54
54
|
s.add_dependency 'rexml', ['~> 3.2', '>= 3.2.5']
|
55
|
-
s.add_dependency 'rubyzip', ['>= 1.2.2', '<
|
55
|
+
s.add_dependency 'rubyzip', ['>= 1.2.2', '< 4.0']
|
56
56
|
s.add_dependency 'websocket', ['~> 1.0']
|
57
57
|
|
58
58
|
s.add_development_dependency 'git', ['~> 1.19']
|
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.35.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Rodionov
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2025-
|
13
|
+
date: 2025-08-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: base64
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
version: 1.2.2
|
70
70
|
- - "<"
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: '
|
72
|
+
version: '4.0'
|
73
73
|
type: :runtime
|
74
74
|
prerelease: false
|
75
75
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -79,7 +79,7 @@ dependencies:
|
|
79
79
|
version: 1.2.2
|
80
80
|
- - "<"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '4.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: websocket
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|