selenium-webdriver 4.15.0 → 4.16.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: 2005eb5039203a271b3d3bc3bacbe8e184e7bed9d145eaf3a87295456cf1a8e8
4
- data.tar.gz: b94d892de1f0c8b6e19d9ff4831cd075b0d56d765b754d3797b8d2f15468343f
3
+ metadata.gz: 7638be962a9b81fc47c44f342971675991879878eb23c46d7f8108e944adc054
4
+ data.tar.gz: 1b0cdd4f1d70fa58950549d92750d1d2836143418c42a868e7809e496f56726e
5
5
  SHA512:
6
- metadata.gz: d5bb85e63490bbb9f1ecd49bf5fb5a2ebf21b79b5fb4bb41162c43c62d6e73da4142e7b8c13b449ae8909958e9169049d4770b2d3e206337a1645e0a5b002c92
7
- data.tar.gz: 136cd21751e98c3bd737a8f1e954671124a339674221151cd00f992d1067349d42a92dc1d64dc32e0e157a9f52227215be8c76cb1eca9133a46774fc30101426
6
+ metadata.gz: 5247d707dc2b479973da7154b2bf96c9fefa9f134e56de8ed53fa596345c54a4c249debf357d6bcbc07eb000204bf1e8b4e031c02bb10bc110e346afbf0bf3af
7
+ data.tar.gz: af60275e2063f0ac2247b91bb148b45df2164b02893aeb7a2f21bda8def67d3c95ea620c58f04d5e8faa2561326afbe56903f23b4ff02686c80c84bda0b8746c
data/CHANGES CHANGED
@@ -1,4 +1,23 @@
1
- 4.15.0 (unreleased)
1
+ 4.16.0 (unreleased)
2
+ =========================
3
+
4
+ Ruby:
5
+ * Add RBS files to Ruby (#12844)
6
+ * Convert binary locations for cygwin (#12618)
7
+ * Allow Selenium Manager to work with Unix (#13161)
8
+ * Extend RBS support for logger and log entry (#13192)
9
+ * Update rules_ruby to the latest version (#13235)
10
+
11
+ BiDi:
12
+ * Released selenium-devtools 0.120.0 (supports CDP v85, v118, v119, v120)
13
+
14
+ Chrome:
15
+ * Fix http proxy configuration for chrome (#13093)
16
+
17
+ Firefox:
18
+ * Delete 'lock' file in FF profile (#13090)
19
+
20
+ 4.15.0 (2023-11-01)
2
21
  =========================
3
22
 
4
23
  * Do not set browser binary in selenium manager if it is an empty string (#12738)
data/Gemfile CHANGED
@@ -6,3 +6,4 @@ Dir["#{__dir__}/*.gemspec"].each do |spec|
6
6
  end
7
7
 
8
8
  gem 'debug', '~> 1.7', require: false, platforms: %i[mri mingw x64_mingw]
9
+ gem 'steep', '~> 1.5.0', require: false, platforms: %i[mri mingw x64_mingw]
Binary file
Binary file
Binary file
@@ -97,7 +97,8 @@ Number(d[1]),c=Number(d[2]),d=Number(d[3]),0<=b&&255>=b&&0<=c&&255>=c&&0<=d&&255
97
97
  function $c(a,b){var c=a.currentStyle||a.style,d=c[b];void 0===d&&ea(c.getPropertyValue)&&(d=c.getPropertyValue(b));return"inherit"!=d?void 0!==d?d:null:(a=Zc(a))?$c(a,b):null}
98
98
  function ad(a,b,c){function d(g){var h=W(g);return 0<h.height&&0<h.width?!0:S(g,"PATH")&&(0<h.height||0<h.width)?(g=V(g,"stroke-width"),!!g&&0<parseInt(g,10)):"hidden"!=V(g,"overflow")&&sa(g.childNodes,function(n){return 3==n.nodeType||S(n)&&d(n)})}function e(g){return bd(g)==X&&ta(g.childNodes,function(h){return!S(h)||e(h)||!d(h)})}if(!S(a))throw Error("Argument to isShown must be of type Element");if(S(a,"BODY"))return!0;if(S(a,"OPTION")||S(a,"OPTGROUP"))return a=lb(a,function(g){return S(g,"SELECT")}),
99
99
  !!a&&ad(a,!0,c);var f=cd(a);if(f)return!!f.image&&0<f.rect.width&&0<f.rect.height&&ad(f.image,b,c);if(S(a,"INPUT")&&"hidden"==a.type.toLowerCase()||S(a,"NOSCRIPT"))return!1;f=V(a,"visibility");return"collapse"!=f&&"hidden"!=f&&c(a)&&(b||0!=dd(a))&&d(a)?!e(a):!1}
100
- function ed(a){function b(c){if(S(c)&&"none"==V(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(Yc&&d instanceof ShadowRoot){if(d.host.shadowRoot!==d)return!1;d=d.host}return!d||9!=d.nodeType&&11!=d.nodeType?d&&S(d,"DETAILS")&&!d.open&&!S(c,"SUMMARY")?!1:!!d&&b(d):!0}return ad(a,!1,b)}var X="hidden";
100
+ function ed(a){function b(c){if(S(c)&&"none"==V(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(Yc&&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&&S(d,"DETAILS")&&!d.open&&!S(c,"SUMMARY")?!1:!!d&&b(d):!0}return ad(a,!1,
101
+ b)}var X="hidden";
101
102
  function bd(a){function b(m){function v(Ab){if(Ab==g)return!0;var pc=V(Ab,"display");return 0==pc.lastIndexOf("inline",0)||"contents"==pc||"absolute"==qc&&"static"==V(Ab,"position")?!1:!0}var qc=V(m,"position");if("fixed"==qc)return u=!0,m==g?null:g;for(m=Zc(m);m&&!v(m);)m=Zc(m);return m}function c(m){var v=m;if("visible"==n)if(m==g&&h)v=h;else if(m==h)return{x:"visible",y:"visible"};v={x:V(v,"overflow-x"),y:V(v,"overflow-y")};m==g&&(v.x="visible"==v.x?"auto":v.x,v.y="visible"==v.y?"auto":v.y);return v}
102
103
  function d(m){if(m==g){var v=(new fb(f)).a;m=v.scrollingElement?v.scrollingElement:Oa||"CSS1Compat"!=v.compatMode?v.body||v.documentElement:v.documentElement;v=v.parentWindow||v.defaultView;m=t&&Ua("10")&&v.pageYOffset!=m.scrollTop?new cb(m.scrollLeft,m.scrollTop):new cb(v.pageXOffset||m.scrollLeft,v.pageYOffset||m.scrollTop)}else m=new cb(m.scrollLeft,m.scrollTop);return m}var e=fd(a),f=A(a),g=f.documentElement,h=f.body,n=V(g,"overflow"),u;for(a=b(a);a;a=b(a)){var p=c(a);if("visible"!=p.x||"visible"!=
103
104
  p.y){var G=W(a);if(0==G.width||0==G.height)return X;var R=e.a<G.a,fa=e.b<G.b;if(R&&"hidden"==p.x||fa&&"hidden"==p.y)return X;if(R&&"visible"!=p.x||fa&&"visible"!=p.y){R=d(a);fa=e.b<G.b-R.y;if(e.a<G.a-R.x&&"visible"!=p.x||fa&&"visible"!=p.x)return X;e=bd(a);return e==X?X:"scroll"}R=e.f>=G.a+G.width;G=e.c>=G.b+G.height;if(R&&"hidden"==p.x||G&&"hidden"==p.y)return X;if(R&&"visible"!=p.x||G&&"visible"!=p.y){if(u&&(p=d(a),e.f>=g.scrollWidth-p.x||e.a>=g.scrollHeight-p.y))return X;e=bd(a);return e==X?X:
@@ -97,4 +97,5 @@ r.y){var D=Jc(a);if(0==D.width||0==D.height)return Z;var L=e.a<D.a,M=e.b<D.b;if(
97
97
  function Jc(a){var b=Lc(a);if(b)return b.rect;if(W(a,"HTML"))return a=A(a),a=((a?a.parentWindow||a.defaultView:window)||window).document,a="CSS1Compat"==a.compatMode?a.documentElement:a.body,a=new Va(a.clientWidth,a.clientHeight),new X(0,0,a.width,a.height);try{var c=a.getBoundingClientRect()}catch(d){return new X(0,0,0,0)}b=new X(c.left,c.top,c.right-c.left,c.bottom-c.top);v&&a.ownerDocument.body&&(a=A(a),b.a-=a.documentElement.clientLeft+a.body.clientLeft,b.b-=a.documentElement.clientTop+a.body.clientTop);
98
98
  return b}function Lc(a){var b=W(a,"MAP");if(!b&&!W(a,"AREA"))return null;var c=b?a:W(a.parentNode,"MAP")?a.parentNode:null,d=null,e=null;c&&c.name&&(d=Dc('/descendant::*[@usemap = "#'+c.name+'"]',A(c)))&&(e=Jc(d),b||"default"==a.shape.toLowerCase()||(a=Oc(a),b=Math.min(Math.max(a.a,0),e.width),c=Math.min(Math.max(a.b,0),e.height),e=new X(b+e.a,c+e.b,Math.min(a.width,e.width-b),Math.min(a.height,e.height-c))));return{image:d,rect:e||new X(0,0,0,0)}}
99
99
  function Oc(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 X(b,c,a[2]-b,a[3]-c)}if("circle"==b&&3==a.length)return b=a[2],new X(a[0]-b,a[1]-b,2*b,2*b);if("poly"==b&&2<a.length){b=a[0];c=a[1];for(var d=b,e=c,f=2;f+1<a.length;f+=2)b=Math.min(b,a[f]),d=Math.max(d,a[f]),c=Math.min(c,a[f+1]),e=Math.max(e,a[f+1]);return new X(b,c,d-b,e-c)}return new X(0,0,0,0)}function Nc(a){a=Jc(a);return new Ec(a.b,a.a+a.width,a.b+a.height,a.a)}
100
- function Mc(a){if(Ac){if("relative"==Y(a,"position"))return 1;a=Y(a,"filter");return(a=a.match(/^alpha\(opacity=(\d*)\)/)||a.match(/^progid:DXImageTransform.Microsoft.Alpha\(Opacity=(\d*)\)/))?Number(a[1])/100:1}return Pc(a)}function Pc(a){var b=1,c=Y(a,"opacity");c&&(b=Number(c));(a=Gc(a))&&(b*=Pc(a));return b};ba("_",function(a,b){function c(d){if(W(d)&&"none"==Y(d,"display"))return!1;var e;if((e=d.parentNode)&&e.shadowRoot&&void 0!==d.assignedSlot)e=d.assignedSlot?d.assignedSlot.parentNode:null;else if(d.getDestinationInsertionPoints){var f=d.getDestinationInsertionPoints();0<f.length&&(e=f[f.length-1])}if(Fc&&e instanceof ShadowRoot){if(e.host.shadowRoot!==e)return!1;e=e.host}return!e||9!=e.nodeType&&11!=e.nodeType?e&&W(e,"DETAILS")&&!e.open&&!W(d,"SUMMARY")?!1:!!e&&c(e):!0}return Ic(a,!!b,c)});; return this._.apply(null,arguments);}).apply({navigator:typeof window!='undefined'?window.navigator:null,document:typeof window!='undefined'?window.document:null}, arguments);}
100
+ function Mc(a){if(Ac){if("relative"==Y(a,"position"))return 1;a=Y(a,"filter");return(a=a.match(/^alpha\(opacity=(\d*)\)/)||a.match(/^progid:DXImageTransform.Microsoft.Alpha\(Opacity=(\d*)\)/))?Number(a[1])/100:1}return Pc(a)}function Pc(a){var b=1,c=Y(a,"opacity");c&&(b=Number(c));(a=Gc(a))&&(b*=Pc(a));return b};ba("_",function(a,b){function c(d){if(W(d)&&"none"==Y(d,"display"))return!1;var e;if((e=d.parentNode)&&e.shadowRoot&&void 0!==d.assignedSlot)e=d.assignedSlot?d.assignedSlot.parentNode:null;else if(d.getDestinationInsertionPoints){var f=d.getDestinationInsertionPoints();0<f.length&&(e=f[f.length-1])}if(Fc&&e instanceof ShadowRoot){if(e.host.shadowRoot&&e.host.shadowRoot!==e)return!1;e=e.host}return!e||9!=e.nodeType&&11!=e.nodeType?e&&W(e,"DETAILS")&&!e.open&&!W(d,"SUMMARY")?!1:!!e&&c(e):!0}return Ic(a,
101
+ !!b,c)});; return this._.apply(null,arguments);}).apply({navigator:typeof window!='undefined'?window.navigator:null,document:typeof window!='undefined'?window.document:null}, arguments);}
@@ -103,7 +103,7 @@ module Selenium
103
103
  #
104
104
  # @param [Array, Symbol] ids
105
105
  #
106
- def allow(ids)
106
+ def allow(*ids)
107
107
  @allowed += Array(ids).flatten
108
108
  end
109
109
 
@@ -112,7 +112,7 @@ module Selenium
112
112
  # Overrides default #debug to skip ignored messages by provided id
113
113
  #
114
114
  # @param [String] message
115
- # @param [Symbol, Array<Sybmol>] id
115
+ # @param [Symbol, Array<Symbol>] id
116
116
  # @yield see #deprecate
117
117
  #
118
118
  def debug(message, id: [], &block)
@@ -123,7 +123,7 @@ module Selenium
123
123
  # Used to supply information of general interest
124
124
  #
125
125
  # @param [String] message
126
- # @param [Symbol, Array<Sybmol>] id
126
+ # @param [Symbol, Array<Symbol>] id
127
127
  # @yield see #deprecate
128
128
  #
129
129
  def info(message, id: [], &block)
@@ -134,7 +134,7 @@ module Selenium
134
134
  # Used to supply information that suggests an error occurred
135
135
  #
136
136
  # @param [String] message
137
- # @param [Symbol, Array<Sybmol>] id
137
+ # @param [Symbol, Array<Symbol>] id
138
138
  # @yield see #deprecate
139
139
  #
140
140
  def error(message, id: [], &block)
@@ -145,7 +145,7 @@ module Selenium
145
145
  # Used to supply information that suggests action be taken by user
146
146
  #
147
147
  # @param [String] message
148
- # @param [Symbol, Array<Sybmol>] id
148
+ # @param [Symbol, Array<Symbol>] id
149
149
  # @yield see #deprecate
150
150
  #
151
151
  def warn(message, id: [], &block)
@@ -86,6 +86,10 @@ module Selenium
86
86
  os == :linux
87
87
  end
88
88
 
89
+ def unix?
90
+ os == :unix
91
+ end
92
+
89
93
  def wsl?
90
94
  return false unless linux?
91
95
 
@@ -41,8 +41,8 @@ module Selenium
41
41
 
42
42
  output = run(*command)
43
43
 
44
- browser_path = output['browser_path']
45
- driver_path = output['driver_path']
44
+ browser_path = Platform.cygwin? ? Platform.cygwin_path(output['browser_path']) : output['browser_path']
45
+ driver_path = Platform.cygwin? ? Platform.cygwin_path(output['driver_path']) : output['driver_path']
46
46
  Platform.assert_executable driver_path
47
47
 
48
48
  if options.respond_to?(:binary) && browser_path && !browser_path.empty?
@@ -67,7 +67,7 @@ module Selenium
67
67
  end
68
68
  if options.proxy
69
69
  command << '--proxy'
70
- (command << options.proxy.ssl) || options.proxy.http
70
+ command << (options.proxy.ssl || options.proxy.http)
71
71
  end
72
72
  command
73
73
  end
@@ -83,7 +83,13 @@ module Selenium
83
83
  "#{directory}/macos/selenium-manager"
84
84
  elsif Platform.linux?
85
85
  "#{directory}/linux/selenium-manager"
86
+ elsif Platform.unix?
87
+ WebDriver.logger.warn('Selenium Manager binary may not be compatible with Unix; verify settings',
88
+ id: %i[selenium_manager unix_binary])
89
+ "#{directory}/linux/selenium-manager"
86
90
  end
91
+ rescue Error::WebDriverError => e
92
+ raise Error::WebDriverError, "Unable to obtain Selenium Manager binary for #{e.message}"
87
93
  end)
88
94
 
89
95
  validate_location(location)
@@ -33,6 +33,8 @@ module Selenium
33
33
  'security.csp.enable' => false
34
34
  }.freeze
35
35
 
36
+ LOCK_FILES = %w[.parentlock parent.lock lock].freeze
37
+
36
38
  attr_reader :name, :log_file
37
39
  attr_writer :secure_ssl, :load_no_focus_lib
38
40
 
@@ -176,7 +178,7 @@ module Selenium
176
178
  end
177
179
 
178
180
  def delete_lock_files(directory)
179
- %w[.parentlock parent.lock].each do |name|
181
+ LOCK_FILES.each do |name|
180
182
  FileUtils.rm_f File.join(directory, name)
181
183
  end
182
184
  end
@@ -120,8 +120,8 @@ module Selenium
120
120
  returned
121
121
  end
122
122
 
123
- def method_missing(meth, *args, &blk) # rubocop:disable Style/MissingRespondToMissing
124
- @delegate.__send__(meth, *args, &blk)
123
+ def method_missing(meth, ...) # rubocop:disable Style/MissingRespondToMissing
124
+ @delegate.__send__(meth, ...)
125
125
  end
126
126
  end # EventFiringBridge
127
127
  end # Support
@@ -19,6 +19,6 @@
19
19
 
20
20
  module Selenium
21
21
  module WebDriver
22
- VERSION = '4.15.0'
22
+ VERSION = '4.16.0'
23
23
  end # WebDriver
24
24
  end # Selenium
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.15.0
4
+ version: 4.16.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: 2023-11-01 00:00:00.000000000 Z
13
+ date: 2023-12-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rexml