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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b1a797ae6892d48e11d3b340425a5965086676ede5aac24f9310a495f436beea
4
- data.tar.gz: 84feade5ab157557839b522749b53c6dd49b4e950bb903d2aee84a0ff225b8c6
3
+ metadata.gz: ec668a5c5955cd9e7cb5043758444d5327fed5d294e2b8d083b697d3c7b1d254
4
+ data.tar.gz: 59d44985b7930295cfcc71cfa64bdcd3428f8580a0e3eb35a98b4ad69080c835
5
5
  SHA512:
6
- metadata.gz: 3e077bca62b47764dac3944c6595a638e849894f5c1a6b38f16994a09151c838d324d5b4efd95d29b59b4c2ebc7be36f140643667aafd1cb624c9f382233f755
7
- data.tar.gz: 54f272b0a56d9ad697e9f7f9c56fd1f954c50d04e2764b79f82cdc02cad1879469055b207b8f088dc8426e62761b5f535b59fdd329d0402a1062ae15a0d41636
6
+ metadata.gz: c1838ed8ff8ea7d33bc5ccc2db54715223f82bfdd9a7a427bae6062fc1a6976e78b721382f4b94a710d1a7814e35842c0bb74e17a7e89b7b14d4760d3488e539
7
+ data.tar.gz: 2161b82493b1c1de27980ede799dec2de1a8ed6fb9ace4f9394004cddee4433a7da86714425cc097ba6c2a9a457369b49e35dccd205424027a9bc26821393893
data/CHANGES CHANGED
@@ -1,8 +1,15 @@
1
- 4.34.0 (2025-06-25)
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::Bianry (#4963)
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' capabilitiy is exposed as :native_events in the Ruby client (mode still experimental).
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 syntesized events)
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 improvments to the IE driver (#2049, #1870)
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 exectuables with {Firefox,Chrome}.path = "/some/path"
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.
Binary file
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")?!1:!!d&&b(d):!0}return ib(a,!1,
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,"SUMMARY")?!1:!!d&&c(d):!0}return U(a,
28
- !!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);}
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 { |entry| zip.extract(entry, "#{target_directory}#{file_name}") }
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 mesage if timed out.
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
- zip.extract(entry, to)
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
- Zip::File.open(zip_path, Zip::File::CREATE, &blk)
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
 
@@ -19,6 +19,6 @@
19
19
 
20
20
  module Selenium
21
21
  module WebDriver
22
- VERSION = '4.34.0'
22
+ VERSION = '4.35.0'
23
23
  end # WebDriver
24
24
  end # Selenium
@@ -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', '< 3.0']
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.34.0
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-06-29 00:00:00.000000000 Z
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: '3.0'
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: '3.0'
82
+ version: '4.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: websocket
85
85
  requirement: !ruby/object:Gem::Requirement