selenium-webdriver 3.142.0 → 3.142.3
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 +26 -0
- data/lib/selenium/webdriver/chrome/bridge.rb +3 -3
- data/lib/selenium/webdriver/common/service.rb +23 -10
- data/lib/selenium/webdriver/remote/response.rb +3 -1
- data/lib/selenium/webdriver/safari/bridge.rb +3 -3
- data/lib/selenium/webdriver/version.rb +1 -1
- metadata +2 -4
- data/lib/selenium/webdriver/common/options.rb +0 -177
- data/lib/selenium/webdriver/common/w3c_options.rb +0 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d3ab72be7aa7d763442528c54d9cfcd5ca5d2b14
|
4
|
+
data.tar.gz: c26d2d6a59e9268990ea74cc32d8302bddad5fdb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bdc0d5a6d9ccf1f66002f0b6536e12c04fa894df838c306b34c951a20e0e66a9df59d8fb22e198bef5fd4d4613e06430ed4809ae5b7be3d651677436a198bd94
|
7
|
+
data.tar.gz: f13990a7b3af740745c75fe362bf1b0ab4118bf8f1471a48e8245da2e39107146fbc9ba83ef419bd92bd04723ecbe9e6ddba31b3d768f6e06a7f495a35a04176
|
data/CHANGES
CHANGED
@@ -1,3 +1,29 @@
|
|
1
|
+
3.142.3 (2019-05-21)
|
2
|
+
====================
|
3
|
+
|
4
|
+
Firefox:
|
5
|
+
* Fixed a regression when Firefox binary path was not sent to GeckoDriver
|
6
|
+
by default and browser could not be located (issue #7219)
|
7
|
+
|
8
|
+
|
9
|
+
3.142.2 (2019-05-11)
|
10
|
+
====================
|
11
|
+
|
12
|
+
Chrome:
|
13
|
+
* Fixed an issue when getting/setting network conditions and sending CDP
|
14
|
+
commands didn't work with Grid (issue #7174)
|
15
|
+
|
16
|
+
Safari:
|
17
|
+
* Fixed an issue when getting/setting permissions and attaching debugger
|
18
|
+
didn't work with Grid (issue #7174)
|
19
|
+
|
20
|
+
3.142.1 (2019-05-07)
|
21
|
+
====================
|
22
|
+
|
23
|
+
Firefox:
|
24
|
+
* Fixed an issue when processing error in legacy driver would result
|
25
|
+
in NoMethodError (issue #7178)
|
26
|
+
|
1
27
|
3.142.0 (2019-04-24)
|
2
28
|
====================
|
3
29
|
|
@@ -23,9 +23,9 @@ module Selenium
|
|
23
23
|
module Bridge
|
24
24
|
|
25
25
|
COMMANDS = {
|
26
|
-
get_network_conditions: [:get, '
|
27
|
-
set_network_conditions: [:post, '
|
28
|
-
send_command: [:post, '
|
26
|
+
get_network_conditions: [:get, 'session/:session_id/chromium/network_conditions'],
|
27
|
+
set_network_conditions: [:post, 'session/:session_id/chromium/network_conditions'],
|
28
|
+
send_command: [:post, 'session/:session_id/goog/cdp/execute']
|
29
29
|
}.freeze
|
30
30
|
|
31
31
|
def commands(command)
|
@@ -37,25 +37,38 @@ module Selenium
|
|
37
37
|
class << self
|
38
38
|
attr_reader :default_port, :driver_path, :executable, :missing_text, :shutdown_supported
|
39
39
|
|
40
|
-
def chrome(
|
41
|
-
Chrome::Service.new(
|
40
|
+
def chrome(**opts)
|
41
|
+
Chrome::Service.new(**opts)
|
42
42
|
end
|
43
43
|
|
44
|
-
def firefox(
|
45
|
-
Firefox::
|
44
|
+
def firefox(**opts)
|
45
|
+
binary_path = Firefox::Binary.path
|
46
|
+
args = opts.delete(:args)
|
47
|
+
case args
|
48
|
+
when Hash
|
49
|
+
args[:binary] ||= binary_path
|
50
|
+
opts[:args] = args
|
51
|
+
when Array
|
52
|
+
opts[:args] = ["--binary=#{binary_path}"]
|
53
|
+
opts[:args] += args
|
54
|
+
else
|
55
|
+
opts[:args] = ["--binary=#{binary_path}"]
|
56
|
+
end
|
57
|
+
|
58
|
+
Firefox::Service.new(**opts)
|
46
59
|
end
|
47
60
|
|
48
|
-
def ie(
|
49
|
-
IE::Service.new(
|
61
|
+
def ie(**opts)
|
62
|
+
IE::Service.new(**opts)
|
50
63
|
end
|
51
64
|
alias_method :internet_explorer, :ie
|
52
65
|
|
53
|
-
def edge(
|
54
|
-
Edge::Service.new(
|
66
|
+
def edge(**opts)
|
67
|
+
Edge::Service.new(**opts)
|
55
68
|
end
|
56
69
|
|
57
|
-
def safari(
|
58
|
-
Safari::Service.new(
|
70
|
+
def safari(**opts)
|
71
|
+
Safari::Service.new(**opts)
|
59
72
|
end
|
60
73
|
|
61
74
|
def driver_path=(path)
|
@@ -79,9 +79,11 @@ module Selenium
|
|
79
79
|
def add_backtrace(ex)
|
80
80
|
return unless error_payload.is_a?(Hash)
|
81
81
|
|
82
|
+
# Legacy Firefox returns String in ['value'], while we expect Hash.
|
83
|
+
# Use #dig when Firefox legacy is removed (4.0).
|
82
84
|
server_trace = error_payload[STACKTRACE_KEY] ||
|
83
85
|
error_payload[STACKTRACE_KEY.downcase] ||
|
84
|
-
error_payload
|
86
|
+
(error_payload['value'] && error_payload['value'][STACKTRACE_KEY])
|
85
87
|
return unless server_trace
|
86
88
|
|
87
89
|
backtrace = case server_trace
|
@@ -24,9 +24,9 @@ module Selenium
|
|
24
24
|
|
25
25
|
# https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/WebDriverEndpointDoc/Commands/Commands.html
|
26
26
|
COMMANDS = {
|
27
|
-
get_permissions: [:get, '
|
28
|
-
set_permissions: [:post, '
|
29
|
-
attach_debugger: [:post, '
|
27
|
+
get_permissions: [:get, 'session/:session_id/apple/permissions'],
|
28
|
+
set_permissions: [:post, 'session/:session_id/apple/permissions'],
|
29
|
+
attach_debugger: [:post, 'session/:session_id/apple/attach_debugger']
|
30
30
|
}.freeze
|
31
31
|
|
32
32
|
def commands(command)
|
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: 3.142.
|
4
|
+
version: 3.142.3
|
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: 2019-
|
13
|
+
date: 2019-05-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
@@ -246,7 +246,6 @@ files:
|
|
246
246
|
- lib/selenium/webdriver/common/manager.rb
|
247
247
|
- lib/selenium/webdriver/common/mouse.rb
|
248
248
|
- lib/selenium/webdriver/common/navigation.rb
|
249
|
-
- lib/selenium/webdriver/common/options.rb
|
250
249
|
- lib/selenium/webdriver/common/platform.rb
|
251
250
|
- lib/selenium/webdriver/common/port_prober.rb
|
252
251
|
- lib/selenium/webdriver/common/profile_helper.rb
|
@@ -261,7 +260,6 @@ files:
|
|
261
260
|
- lib/selenium/webdriver/common/touch_screen.rb
|
262
261
|
- lib/selenium/webdriver/common/w3c_action_builder.rb
|
263
262
|
- lib/selenium/webdriver/common/w3c_manager.rb
|
264
|
-
- lib/selenium/webdriver/common/w3c_options.rb
|
265
263
|
- lib/selenium/webdriver/common/wait.rb
|
266
264
|
- lib/selenium/webdriver/common/window.rb
|
267
265
|
- lib/selenium/webdriver/common/zipper.rb
|
@@ -1,177 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Licensed to the Software Freedom Conservancy (SFC) under one
|
4
|
-
# or more contributor license agreements. See the NOTICE file
|
5
|
-
# distributed with this work for additional information
|
6
|
-
# regarding copyright ownership. The SFC licenses this file
|
7
|
-
# to you under the Apache License, Version 2.0 (the
|
8
|
-
# "License"); you may not use this file except in compliance
|
9
|
-
# with the License. You may obtain a copy of the License at
|
10
|
-
#
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
#
|
13
|
-
# Unless required by applicable law or agreed to in writing,
|
14
|
-
# software distributed under the License is distributed on an
|
15
|
-
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
16
|
-
# KIND, either express or implied. See the License for the
|
17
|
-
# specific language governing permissions and limitations
|
18
|
-
# under the License.
|
19
|
-
|
20
|
-
module Selenium
|
21
|
-
module WebDriver
|
22
|
-
class Options
|
23
|
-
#
|
24
|
-
# @api private
|
25
|
-
#
|
26
|
-
|
27
|
-
def initialize(bridge)
|
28
|
-
@bridge = bridge
|
29
|
-
end
|
30
|
-
|
31
|
-
#
|
32
|
-
# Add a cookie to the browser
|
33
|
-
#
|
34
|
-
# @param [Hash] opts the options to create a cookie with.
|
35
|
-
# @option opts [String] :name A name
|
36
|
-
# @option opts [String] :value A value
|
37
|
-
# @option opts [String] :path ('/') A path
|
38
|
-
# @option opts [String] :secure (false) A boolean
|
39
|
-
# @option opts [Time,DateTime,Numeric,nil] :expires (nil) Expiry date, either as a Time, DateTime, or seconds since epoch.
|
40
|
-
#
|
41
|
-
# @raise [ArgumentError] if :name or :value is not specified
|
42
|
-
#
|
43
|
-
|
44
|
-
def add_cookie(opts = {})
|
45
|
-
raise ArgumentError, 'name is required' unless opts[:name]
|
46
|
-
raise ArgumentError, 'value is required' unless opts[:value]
|
47
|
-
|
48
|
-
opts[:path] ||= '/'
|
49
|
-
opts[:secure] ||= false
|
50
|
-
|
51
|
-
obj = opts.delete(:expires)
|
52
|
-
opts[:expiry] = seconds_from(obj).to_i if obj
|
53
|
-
|
54
|
-
@bridge.add_cookie opts
|
55
|
-
end
|
56
|
-
|
57
|
-
#
|
58
|
-
# Get the cookie with the given name
|
59
|
-
#
|
60
|
-
# @param [String] name the name of the cookie
|
61
|
-
# @return [Hash, nil] the cookie, or nil if it wasn't found.
|
62
|
-
#
|
63
|
-
|
64
|
-
def cookie_named(name)
|
65
|
-
all_cookies.find { |c| c[:name] == name }
|
66
|
-
end
|
67
|
-
|
68
|
-
#
|
69
|
-
# Delete the cookie with the given name
|
70
|
-
#
|
71
|
-
# @param [String] name the name of the cookie to delete
|
72
|
-
#
|
73
|
-
|
74
|
-
def delete_cookie(name)
|
75
|
-
@bridge.delete_cookie name
|
76
|
-
end
|
77
|
-
|
78
|
-
#
|
79
|
-
# Delete all cookies
|
80
|
-
#
|
81
|
-
|
82
|
-
def delete_all_cookies
|
83
|
-
@bridge.delete_all_cookies
|
84
|
-
end
|
85
|
-
|
86
|
-
#
|
87
|
-
# Get all cookies
|
88
|
-
#
|
89
|
-
# @return [Array<Hash>] list of cookies
|
90
|
-
#
|
91
|
-
|
92
|
-
def all_cookies
|
93
|
-
@bridge.cookies.map { |cookie| convert_cookie(cookie) }
|
94
|
-
end
|
95
|
-
|
96
|
-
def timeouts
|
97
|
-
@timeouts ||= Timeouts.new(@bridge)
|
98
|
-
end
|
99
|
-
|
100
|
-
#
|
101
|
-
# @api beta This API may be changed or removed in a future release.
|
102
|
-
#
|
103
|
-
|
104
|
-
def logs
|
105
|
-
@logs ||= Logs.new(@bridge)
|
106
|
-
end
|
107
|
-
|
108
|
-
#
|
109
|
-
# Create a new top-level browsing context
|
110
|
-
# https://w3c.github.io/webdriver/#new-window
|
111
|
-
# @param type [Symbol] Supports two values: :tab and :window.
|
112
|
-
# Use :tab if you'd like the new window to share an OS-level window
|
113
|
-
# with the current browsing context.
|
114
|
-
# Use :window otherwise
|
115
|
-
# @return [String] The value of the window handle
|
116
|
-
#
|
117
|
-
def new_window(type = :tab)
|
118
|
-
case type
|
119
|
-
when :tab, :window
|
120
|
-
result = @bridge.new_window(type)
|
121
|
-
unless result.key?('handle')
|
122
|
-
raise UnknownError, "the driver did not return a handle. " \
|
123
|
-
"The returned result: #{result.inspect}"
|
124
|
-
end
|
125
|
-
result['handle']
|
126
|
-
else
|
127
|
-
raise ArgumentError, "invalid argument for type. Got: '#{type.inspect}'. " \
|
128
|
-
"Try :tab or :window"
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
#
|
133
|
-
# @api beta This API may be changed or removed in a future release.
|
134
|
-
#
|
135
|
-
|
136
|
-
def window
|
137
|
-
@window ||= Window.new(@bridge)
|
138
|
-
end
|
139
|
-
|
140
|
-
private
|
141
|
-
|
142
|
-
SECONDS_PER_DAY = 86_400.0
|
143
|
-
|
144
|
-
def datetime_at(int)
|
145
|
-
DateTime.civil(1970) + (int / SECONDS_PER_DAY)
|
146
|
-
end
|
147
|
-
|
148
|
-
def seconds_from(obj)
|
149
|
-
case obj
|
150
|
-
when Time
|
151
|
-
obj.to_f
|
152
|
-
when DateTime
|
153
|
-
(obj - DateTime.civil(1970)) * SECONDS_PER_DAY
|
154
|
-
when Numeric
|
155
|
-
obj
|
156
|
-
else
|
157
|
-
raise ArgumentError, "invalid value for expiration date: #{obj.inspect}"
|
158
|
-
end
|
159
|
-
end
|
160
|
-
|
161
|
-
def strip_port(str)
|
162
|
-
str.split(':', 2).first
|
163
|
-
end
|
164
|
-
|
165
|
-
def convert_cookie(cookie)
|
166
|
-
{
|
167
|
-
name: cookie['name'],
|
168
|
-
value: cookie['value'],
|
169
|
-
path: cookie['path'],
|
170
|
-
domain: cookie['domain'] && strip_port(cookie['domain']),
|
171
|
-
expires: cookie['expiry'] && datetime_at(cookie['expiry']),
|
172
|
-
secure: cookie['secure']
|
173
|
-
}
|
174
|
-
end
|
175
|
-
end # Options
|
176
|
-
end # WebDriver
|
177
|
-
end # Selenium
|
@@ -1,45 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Licensed to the Software Freedom Conservancy (SFC) under one
|
4
|
-
# or more contributor license agreements. See the NOTICE file
|
5
|
-
# distributed with this work for additional information
|
6
|
-
# regarding copyright ownership. The SFC licenses this file
|
7
|
-
# to you under the Apache License, Version 2.0 (the
|
8
|
-
# "License"); you may not use this file except in compliance
|
9
|
-
# with the License. You may obtain a copy of the License at
|
10
|
-
#
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
#
|
13
|
-
# Unless required by applicable law or agreed to in writing,
|
14
|
-
# software distributed under the License is distributed on an
|
15
|
-
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
16
|
-
# KIND, either express or implied. See the License for the
|
17
|
-
# specific language governing permissions and limitations
|
18
|
-
# under the License.
|
19
|
-
|
20
|
-
module Selenium
|
21
|
-
module WebDriver
|
22
|
-
class W3COptions < Options
|
23
|
-
|
24
|
-
#
|
25
|
-
# Get the cookie with the given name
|
26
|
-
#
|
27
|
-
# @param [String] name the name of the cookie
|
28
|
-
# @return [Hash, nil] the cookie, or nil if it wasn't found.
|
29
|
-
#
|
30
|
-
|
31
|
-
def cookie_named(name)
|
32
|
-
convert_cookie(@bridge.cookie(name))
|
33
|
-
end
|
34
|
-
|
35
|
-
#
|
36
|
-
# Delete all cookies
|
37
|
-
#
|
38
|
-
|
39
|
-
def delete_all_cookies
|
40
|
-
@bridge.delete_all_cookies
|
41
|
-
end
|
42
|
-
|
43
|
-
end # WC3Options
|
44
|
-
end # WebDriver
|
45
|
-
end # Selenium
|