selenium-webdriver 3.142.6 → 3.142.7
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 +6 -0
- data/lib/selenium/webdriver/chrome/driver.rb +22 -9
- data/lib/selenium/webdriver/chrome/options.rb +7 -3
- data/lib/selenium/webdriver/chrome/profile.rb +2 -2
- data/lib/selenium/webdriver/common.rb +1 -0
- data/lib/selenium/webdriver/common/options.rb +53 -0
- data/lib/selenium/webdriver/edge/driver.rb +1 -1
- data/lib/selenium/webdriver/firefox/marionette/driver.rb +1 -1
- data/lib/selenium/webdriver/firefox/options.rb +2 -2
- data/lib/selenium/webdriver/ie/driver.rb +1 -1
- data/lib/selenium/webdriver/ie/options.rb +2 -2
- data/lib/selenium/webdriver/remote/bridge.rb +2 -2
- data/lib/selenium/webdriver/safari/driver.rb +1 -1
- data/lib/selenium/webdriver/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c9f40e154da198fff9e277f0613042c22fff6c98
|
4
|
+
data.tar.gz: 33cc734e78b08e66c00a4c73f51c635d97c86fe6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b40eb2e74a284b21ee31924f7cf20b878c7ab6ebcfe7848b21ad163165c80467c9d3a6fa6252ca74680b82db7186e8c1b73a2ac5f4d37501b0dfa16763ec19b9
|
7
|
+
data.tar.gz: bc9e9e0128888f3efe33f59160b677cc88655bf986877c534053adf915f3b39a78ff1d88e9b2d80753c1aba49af92f1796bb4f774ca68114027594813cc26ad3
|
data/CHANGES
CHANGED
@@ -40,7 +40,7 @@ module Selenium
|
|
40
40
|
opts[:url] ||= service_url(opts)
|
41
41
|
|
42
42
|
listener = opts.delete(:listener)
|
43
|
-
@bridge = Remote::Bridge.handshake(opts)
|
43
|
+
@bridge = Remote::Bridge.handshake(**opts)
|
44
44
|
@bridge.extend Bridge
|
45
45
|
|
46
46
|
super(@bridge, listener: listener)
|
@@ -76,21 +76,29 @@ module Selenium
|
|
76
76
|
|
77
77
|
profile = opts.delete(:profile)
|
78
78
|
if profile
|
79
|
+
WebDriver.logger.deprecate 'Selenium::WebDriver::Chrome::Driver#new with `:profile` parameter',
|
80
|
+
'Selenium::WebDriver::Chrome::Options#profile or Options#add_option'
|
81
|
+
|
79
82
|
profile = profile.as_json
|
80
83
|
|
81
|
-
|
84
|
+
if options.args.none?(&/user-data-dir/.method(:match?))
|
85
|
+
options.add_argument("--user-data-dir=#{profile['directory']}")
|
86
|
+
end
|
82
87
|
|
83
|
-
if profile[
|
84
|
-
WebDriver.logger.deprecate '
|
88
|
+
if profile['extensions']
|
89
|
+
WebDriver.logger.deprecate 'Selenium::WebDriver::Chrome::Profile#extensions',
|
85
90
|
'Selenium::WebDriver::Chrome::Options#add_extension'
|
86
|
-
profile[
|
91
|
+
profile['extensions'].each do |extension|
|
87
92
|
options.add_encoded_extension(extension)
|
88
93
|
end
|
89
94
|
end
|
90
95
|
end
|
91
96
|
|
92
|
-
|
93
|
-
|
97
|
+
if opts.key?(:detach)
|
98
|
+
WebDriver.logger.deprecate 'Selenium::WebDriver::Chrome::Driver#new with `:detach` parameter',
|
99
|
+
'Selenium::WebDriver::Chrome::Options#new or Options#add_option'
|
100
|
+
options.add_option(:detach, opts.delete(:detach))
|
101
|
+
end
|
94
102
|
|
95
103
|
prefs = opts.delete(:prefs)
|
96
104
|
if prefs
|
@@ -103,8 +111,13 @@ module Selenium
|
|
103
111
|
options = options.as_json
|
104
112
|
caps.merge!(options) unless options[Options::KEY].empty?
|
105
113
|
|
106
|
-
|
107
|
-
|
114
|
+
if opts.key?(:proxy) || opts.key?('proxy')
|
115
|
+
WebDriver.logger.deprecate 'Selenium::WebDriver::Chrome::Driver#new with `:proxy` parameter',
|
116
|
+
'Selenium::WebDriver::Chrome::Capabilities#proxy='
|
117
|
+
|
118
|
+
caps[:proxy] = opts.delete(:proxy) if opts.key?(:proxy)
|
119
|
+
caps[:proxy] ||= opts.delete('proxy') if opts.key?('proxy')
|
120
|
+
end
|
108
121
|
|
109
122
|
caps
|
110
123
|
end
|
@@ -20,9 +20,9 @@
|
|
20
20
|
module Selenium
|
21
21
|
module WebDriver
|
22
22
|
module Chrome
|
23
|
-
class Options
|
23
|
+
class Options < WebDriver::Common::Options
|
24
24
|
attr_reader :args, :prefs, :options, :emulation, :extensions, :encoded_extensions
|
25
|
-
attr_accessor :binary
|
25
|
+
attr_accessor :binary, :profile, :detach
|
26
26
|
|
27
27
|
KEY = 'goog:chromeOptions'
|
28
28
|
|
@@ -49,6 +49,8 @@ module Selenium
|
|
49
49
|
@extensions = opts.delete(:extensions) || []
|
50
50
|
@options = opts.delete(:options) || {}
|
51
51
|
@emulation = opts.delete(:emulation) || {}
|
52
|
+
@detach = opts.delete(:detach)
|
53
|
+
@profile = opts.delete(:profile)
|
52
54
|
@encoded_extensions = []
|
53
55
|
end
|
54
56
|
|
@@ -170,6 +172,7 @@ module Selenium
|
|
170
172
|
File.open(crx_path, 'rb') { |crx_file| Base64.strict_encode64 crx_file.read }
|
171
173
|
end
|
172
174
|
extensions.concat(@encoded_extensions)
|
175
|
+
add_argument("--user-data-dir=#{@profile[:directory]}") if @profile
|
173
176
|
|
174
177
|
opts = @options
|
175
178
|
opts[:binary] = @binary if @binary
|
@@ -177,8 +180,9 @@ module Selenium
|
|
177
180
|
opts[:extensions] = extensions if extensions.any?
|
178
181
|
opts[:mobileEmulation] = @emulation unless @emulation.empty?
|
179
182
|
opts[:prefs] = @prefs unless @prefs.empty?
|
183
|
+
opts[:detach] = @detach if !@detach.nil? && @detach != false
|
180
184
|
|
181
|
-
{KEY => opts}
|
185
|
+
{KEY => generate_as_json(opts)}
|
182
186
|
end
|
183
187
|
end # Options
|
184
188
|
end # Chrome
|
@@ -77,8 +77,8 @@ module Selenium
|
|
77
77
|
|
78
78
|
extensions.concat(@encoded_extensions)
|
79
79
|
|
80
|
-
opts = {directory
|
81
|
-
opts[
|
80
|
+
opts = {'directory' => directory || layout_on_disk}
|
81
|
+
opts['extensions'] = extensions if extensions.any?
|
82
82
|
opts
|
83
83
|
end
|
84
84
|
|
@@ -72,5 +72,6 @@ require 'selenium/webdriver/common/interactions/pointer_input'
|
|
72
72
|
require 'selenium/webdriver/common/keys'
|
73
73
|
require 'selenium/webdriver/common/bridge_helper'
|
74
74
|
require 'selenium/webdriver/common/profile_helper'
|
75
|
+
require 'selenium/webdriver/common/options'
|
75
76
|
require 'selenium/webdriver/common/driver'
|
76
77
|
require 'selenium/webdriver/common/element'
|
@@ -0,0 +1,53 @@
|
|
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
|
+
module Common
|
23
|
+
class Options
|
24
|
+
private
|
25
|
+
|
26
|
+
def generate_as_json(value)
|
27
|
+
if value.respond_to?(:as_json)
|
28
|
+
value.as_json
|
29
|
+
elsif value.is_a?(Hash)
|
30
|
+
value.each_with_object({}) { |(key, val), hash| hash[convert_json_key(key)] = generate_as_json(val) }
|
31
|
+
elsif value.is_a?(Array)
|
32
|
+
value.map(&method(:generate_as_json))
|
33
|
+
elsif value.is_a?(Symbol)
|
34
|
+
value.to_s
|
35
|
+
else
|
36
|
+
value
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def convert_json_key(key)
|
41
|
+
key = camel_case(key) if key.is_a?(Symbol)
|
42
|
+
return key if key.is_a?(String)
|
43
|
+
|
44
|
+
raise TypeError, "expected String or Symbol, got #{key.inspect}:#{key.class}"
|
45
|
+
end
|
46
|
+
|
47
|
+
def camel_case(str)
|
48
|
+
str.to_s.gsub(/_([a-z])/) { Regexp.last_match(1).upcase }
|
49
|
+
end
|
50
|
+
end # Options
|
51
|
+
end # Common
|
52
|
+
end # WebDriver
|
53
|
+
end # Selenium
|
@@ -44,7 +44,7 @@ module Selenium
|
|
44
44
|
capabilities = bridge.create_session(desired_capabilities)
|
45
45
|
|
46
46
|
WebDriver.logger.info 'Forcing W3C dialect.'
|
47
|
-
@bridge = Remote::W3C::Bridge.new(capabilities, bridge.session_id, opts)
|
47
|
+
@bridge = Remote::W3C::Bridge.new(capabilities, bridge.session_id, **opts)
|
48
48
|
@bridge.extend Edge::Bridge
|
49
49
|
|
50
50
|
super(@bridge, listener: listener)
|
@@ -42,7 +42,7 @@ module Selenium
|
|
42
42
|
desired_capabilities = opts.delete(:desired_capabilities)
|
43
43
|
bridge = Remote::Bridge.new(opts)
|
44
44
|
capabilities = bridge.create_session(desired_capabilities)
|
45
|
-
@bridge = Remote::W3C::Bridge.new(capabilities, bridge.session_id, opts)
|
45
|
+
@bridge = Remote::W3C::Bridge.new(capabilities, bridge.session_id, **opts)
|
46
46
|
@bridge.extend Marionette::Bridge
|
47
47
|
|
48
48
|
super(@bridge, listener: listener)
|
@@ -20,7 +20,7 @@
|
|
20
20
|
module Selenium
|
21
21
|
module WebDriver
|
22
22
|
module Firefox
|
23
|
-
class Options
|
23
|
+
class Options < WebDriver::Common::Options
|
24
24
|
attr_reader :args, :prefs, :options, :profile
|
25
25
|
attr_accessor :binary, :log_level
|
26
26
|
|
@@ -139,7 +139,7 @@ module Selenium
|
|
139
139
|
opts[:prefs] = @prefs unless @prefs.empty?
|
140
140
|
opts[:log] = {level: @log_level} if @log_level
|
141
141
|
|
142
|
-
{KEY => opts}
|
142
|
+
{KEY => generate_as_json(opts)}
|
143
143
|
end
|
144
144
|
|
145
145
|
private
|
@@ -20,7 +20,7 @@
|
|
20
20
|
module Selenium
|
21
21
|
module WebDriver
|
22
22
|
module IE
|
23
|
-
class Options
|
23
|
+
class Options < WebDriver::Common::Options
|
24
24
|
KEY = 'se:ieOptions'
|
25
25
|
SCROLL_TOP = 0
|
26
26
|
SCROLL_BOTTOM = 1
|
@@ -130,7 +130,7 @@ module Selenium
|
|
130
130
|
opts['ie.browserCommandLineSwitches'] = @args.to_a.join(' ') if @args.any?
|
131
131
|
opts.merge!(@options)
|
132
132
|
|
133
|
-
{KEY => opts}
|
133
|
+
{KEY => generate_as_json(opts)}
|
134
134
|
end
|
135
135
|
end # Options
|
136
136
|
end # IE
|
@@ -57,9 +57,9 @@ module Selenium
|
|
57
57
|
|
58
58
|
case bridge.dialect
|
59
59
|
when :oss
|
60
|
-
Remote::OSS::Bridge.new(capabilities, bridge.session_id, opts)
|
60
|
+
Remote::OSS::Bridge.new(capabilities, bridge.session_id, **opts)
|
61
61
|
when :w3c
|
62
|
-
Remote::W3C::Bridge.new(capabilities, bridge.session_id, opts)
|
62
|
+
Remote::W3C::Bridge.new(capabilities, bridge.session_id, **opts)
|
63
63
|
else
|
64
64
|
raise WebDriverError, 'cannot understand dialect'
|
65
65
|
end
|
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.7
|
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-12-27 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
@@ -240,6 +240,7 @@ files:
|
|
240
240
|
- lib/selenium/webdriver/common/manager.rb
|
241
241
|
- lib/selenium/webdriver/common/mouse.rb
|
242
242
|
- lib/selenium/webdriver/common/navigation.rb
|
243
|
+
- lib/selenium/webdriver/common/options.rb
|
243
244
|
- lib/selenium/webdriver/common/platform.rb
|
244
245
|
- lib/selenium/webdriver/common/port_prober.rb
|
245
246
|
- lib/selenium/webdriver/common/profile_helper.rb
|