selenium-webdriver 3.5.1 → 3.5.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +19 -0
- data/Gemfile.lock +3 -3
- data/lib/selenium/webdriver/chrome/driver.rb +1 -0
- data/lib/selenium/webdriver/chrome/options.rb +2 -2
- data/lib/selenium/webdriver/common/alert.rb +1 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb +1 -1
- data/lib/selenium/webdriver/common/logger.rb +20 -5
- data/lib/selenium/webdriver/common/mouse.rb +0 -0
- data/lib/selenium/webdriver/common/proxy.rb +0 -0
- data/lib/selenium/webdriver/common/touch_screen.rb +5 -4
- data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
- data/lib/selenium/webdriver/remote/capabilities.rb +0 -0
- data/lib/selenium/webdriver/remote/oss/bridge.rb +2 -0
- data/lib/selenium/webdriver/remote/response.rb +19 -5
- data/lib/selenium/webdriver/remote/w3c/bridge.rb +0 -0
- data/lib/selenium/webdriver/remote/w3c/capabilities.rb +14 -10
- data/selenium-webdriver.gemspec +1 -1
- metadata +2 -2
data/CHANGES
CHANGED
@@ -1,3 +1,22 @@
|
|
1
|
+
3.5.2 (2017-09-07)
|
2
|
+
==================
|
3
|
+
|
4
|
+
Ruby:
|
5
|
+
* Removed platformVersion from W3C payload (issue #4641)
|
6
|
+
* Fixed a bug when proxy type was not compliant to specification (issue #4574)
|
7
|
+
* Added support for passing speed to flick action (issue #4549)
|
8
|
+
* Using TouchActionBuilder no longer prints mouse/key deprecations
|
9
|
+
* Deprecated Alert#authenticate
|
10
|
+
* Added support for DEBUG environment variable which enables full debug mode in gem
|
11
|
+
|
12
|
+
Firefox:
|
13
|
+
* Fixed a bug when page load timeout was not properly constructed in new session payload
|
14
|
+
* Fixed a bug when GeckoDriver error stacktrace was not displayed (issue #3683)
|
15
|
+
|
16
|
+
Chrome:
|
17
|
+
* Added workardound for the case when findElements call returns null (issue #4555)
|
18
|
+
* Chrome::Driver now includes touch actions by default
|
19
|
+
|
1
20
|
3.5.1 (2017-08-15)
|
2
21
|
==================
|
3
22
|
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
selenium-webdriver (3.5.
|
4
|
+
selenium-webdriver (3.5.1)
|
5
5
|
childprocess (~> 0.5)
|
6
6
|
rubyzip (~> 1.0)
|
7
7
|
|
@@ -10,7 +10,7 @@ GEM
|
|
10
10
|
specs:
|
11
11
|
addressable (2.5.1)
|
12
12
|
public_suffix (~> 2.0, >= 2.0.2)
|
13
|
-
childprocess (0.7.
|
13
|
+
childprocess (0.7.1)
|
14
14
|
ffi (~> 1.0, >= 1.0.11)
|
15
15
|
crack (0.4.3)
|
16
16
|
safe_yaml (~> 1.0.0)
|
@@ -53,4 +53,4 @@ DEPENDENCIES
|
|
53
53
|
yard (~> 0.9.9)
|
54
54
|
|
55
55
|
BUNDLED WITH
|
56
|
-
1.15.
|
56
|
+
1.15.4
|
@@ -129,11 +129,11 @@ module Selenium
|
|
129
129
|
#
|
130
130
|
# @example Start Chrome in mobile emulation mode by device name
|
131
131
|
# options = Selenium::WebDriver::Chrome::Options.new
|
132
|
-
# options.
|
132
|
+
# options.add_emulation(device_name: 'iPhone 6')
|
133
133
|
#
|
134
134
|
# @example Start Chrome in mobile emulation mode by device metrics
|
135
135
|
# options = Selenium::WebDriver::Chrome::Options.new
|
136
|
-
# options.
|
136
|
+
# options.add_emulation(device_metrics: {width: 400, height: 800, pixelRatio: 1, touch: true})
|
137
137
|
#
|
138
138
|
# @param [String] device_name Name of the device or a hash containing width, height, pixelRatio, touch
|
139
139
|
# @param [Hash] device_metrics Hash containing width, height, pixelRatio, touch
|
@@ -101,13 +101,20 @@ module Selenium
|
|
101
101
|
end
|
102
102
|
|
103
103
|
#
|
104
|
-
# Marks code as deprecated with replacement.
|
104
|
+
# Marks code as deprecated with/without replacement.
|
105
105
|
#
|
106
106
|
# @param [String] old
|
107
|
-
# @param [String] new
|
107
|
+
# @param [String, nil] new
|
108
108
|
#
|
109
|
-
def deprecate(old, new)
|
110
|
-
|
109
|
+
def deprecate(old, new = nil)
|
110
|
+
message = "[DEPRECATION] #{old} is deprecated"
|
111
|
+
message << if new
|
112
|
+
". Use #{new} instead."
|
113
|
+
else
|
114
|
+
' and will be removed in the next releases.'
|
115
|
+
end
|
116
|
+
|
117
|
+
warn message
|
111
118
|
end
|
112
119
|
|
113
120
|
private
|
@@ -115,13 +122,21 @@ module Selenium
|
|
115
122
|
def create_logger(output)
|
116
123
|
logger = ::Logger.new(output)
|
117
124
|
logger.progname = 'Selenium'
|
118
|
-
logger.level =
|
125
|
+
logger.level = default_level
|
119
126
|
logger.formatter = proc do |severity, time, progname, msg|
|
120
127
|
"#{time.strftime('%F %T')} #{severity} #{progname} #{msg}\n"
|
121
128
|
end
|
122
129
|
|
123
130
|
logger
|
124
131
|
end
|
132
|
+
|
133
|
+
def default_level
|
134
|
+
if $DEBUG || ENV.key?('DEBUG')
|
135
|
+
DEBUG
|
136
|
+
else
|
137
|
+
WARN
|
138
|
+
end
|
139
|
+
end
|
125
140
|
end # Logger
|
126
141
|
end # WebDriver
|
127
142
|
end # Selenium
|
File without changes
|
File without changes
|
@@ -83,13 +83,14 @@ module Selenium
|
|
83
83
|
element, xoffset, yoffset, speed = args
|
84
84
|
|
85
85
|
assert_element element
|
86
|
-
flick_speed = FLICK_SPEED[speed.to_sym]
|
87
86
|
|
88
|
-
|
89
|
-
|
87
|
+
if (speed.is_a?(String) || speed.is_a?(Symbol)) && FLICK_SPEED.keys.include?(speed.to_sym)
|
88
|
+
WebDriver.logger.deprecate "Passing #{speed.inspect} speed",
|
89
|
+
"Integer or Selenium::WebDriver::TouchScreen::FLICK_SPEED[:#{speed}]"
|
90
|
+
speed = FLICK_SPEED[speed.to_sym]
|
90
91
|
end
|
91
92
|
|
92
|
-
@bridge.touch_element_flick element.ref, Integer(xoffset), Integer(yoffset),
|
93
|
+
@bridge.touch_element_flick element.ref, Integer(xoffset), Integer(yoffset), Integer(speed)
|
93
94
|
else
|
94
95
|
raise ArgumentError, "wrong number of arguments, expected 2 or 4, got #{args.size}"
|
95
96
|
end
|
Binary file
|
File without changes
|
@@ -22,6 +22,8 @@ module Selenium
|
|
22
22
|
module Remote
|
23
23
|
# @api private
|
24
24
|
class Response
|
25
|
+
STACKTRACE_KEY = 'stackTrace'.freeze
|
26
|
+
|
25
27
|
attr_reader :code, :payload
|
26
28
|
attr_writer :payload
|
27
29
|
|
@@ -73,11 +75,25 @@ module Selenium
|
|
73
75
|
end
|
74
76
|
|
75
77
|
def add_backtrace(ex)
|
76
|
-
return unless
|
78
|
+
return unless error_payload.is_a?(Hash)
|
79
|
+
|
80
|
+
server_trace = error_payload[STACKTRACE_KEY] ||
|
81
|
+
error_payload[STACKTRACE_KEY.downcase] ||
|
82
|
+
error_payload['value'][STACKTRACE_KEY]
|
83
|
+
return unless server_trace
|
77
84
|
|
78
|
-
|
85
|
+
backtrace = case server_trace
|
86
|
+
when Array
|
87
|
+
backtrace_from_remote(server_trace)
|
88
|
+
when String
|
89
|
+
server_trace.split("\n")
|
90
|
+
end
|
79
91
|
|
80
|
-
backtrace
|
92
|
+
ex.set_backtrace(backtrace + ex.backtrace)
|
93
|
+
end
|
94
|
+
|
95
|
+
def backtrace_from_remote(server_trace)
|
96
|
+
server_trace.map do |frame|
|
81
97
|
next unless frame.is_a?(Hash)
|
82
98
|
|
83
99
|
file = frame['fileName']
|
@@ -91,8 +107,6 @@ module Selenium
|
|
91
107
|
|
92
108
|
"[remote server] #{file}:#{line}:in `#{meth}'"
|
93
109
|
end.compact
|
94
|
-
|
95
|
-
ex.set_backtrace(backtrace + ex.backtrace)
|
96
110
|
end
|
97
111
|
|
98
112
|
def error_payload
|
File without changes
|
@@ -35,29 +35,32 @@ module Selenium
|
|
35
35
|
# @api private
|
36
36
|
#
|
37
37
|
|
38
|
-
# TODO - uncomment when Mozilla fixes this:
|
39
|
-
# https://bugzilla.mozilla.org/show_bug.cgi?id=1326397
|
40
38
|
class Capabilities
|
41
39
|
|
42
40
|
EXTENSION_CAPABILITY_PATTERN = /\A[\w-]+:.*\z/
|
43
41
|
|
44
|
-
# TODO (alex): compare with spec
|
45
42
|
KNOWN = [
|
46
43
|
:browser_name,
|
47
44
|
:browser_version,
|
48
45
|
:platform_name,
|
49
|
-
:platform_version,
|
50
46
|
:accept_insecure_certs,
|
51
47
|
:page_load_strategy,
|
52
48
|
:proxy,
|
49
|
+
:set_window_rect,
|
50
|
+
:timeouts,
|
51
|
+
:unhandled_prompt_behavior,
|
52
|
+
|
53
|
+
# remote-specific
|
53
54
|
:remote_session_id,
|
55
|
+
|
56
|
+
# TODO (alex): deprecate in favor of Firefox::Options?
|
54
57
|
:accessibility_checks,
|
55
58
|
:device,
|
59
|
+
|
60
|
+
# TODO (alex): deprecate compatibility with OSS-capabilities
|
56
61
|
:implicit_timeout,
|
57
62
|
:page_load_timeout,
|
58
63
|
:script_timeout,
|
59
|
-
:unhandled_prompt_behavior,
|
60
|
-
:timeouts,
|
61
64
|
].freeze
|
62
65
|
|
63
66
|
KNOWN.each do |key|
|
@@ -96,7 +99,7 @@ module Selenium
|
|
96
99
|
opts[:platform_name] = opts.delete(:platform) if opts.key?(:platform)
|
97
100
|
opts[:timeouts] = {}
|
98
101
|
opts[:timeouts]['implicit'] = opts.delete(:implicit_timeout) if opts.key?(:implicit_timeout)
|
99
|
-
opts[:timeouts]['
|
102
|
+
opts[:timeouts]['pageLoad'] = opts.delete(:page_load_timeout) if opts.key?(:page_load_timeout)
|
100
103
|
opts[:timeouts]['script'] = opts.delete(:script_timeout) if opts.key?(:script_timeout)
|
101
104
|
new({browser_name: 'firefox', marionette: true}.merge(opts))
|
102
105
|
end
|
@@ -114,7 +117,6 @@ module Selenium
|
|
114
117
|
caps.browser_name = data.delete('browserName')
|
115
118
|
caps.browser_version = data.delete('browserVersion')
|
116
119
|
caps.platform_name = data.delete('platformName')
|
117
|
-
caps.platform_version = data.delete('platformVersion')
|
118
120
|
caps.accept_insecure_certs = data.delete('acceptInsecureCerts') if data.key?('acceptInsecureCerts')
|
119
121
|
caps.page_load_strategy = data.delete('pageLoadStrategy')
|
120
122
|
timeouts = data.delete('timeouts')
|
@@ -196,7 +198,6 @@ module Selenium
|
|
196
198
|
# @option :browser_name [String] required browser name
|
197
199
|
# @option :browser_version [String] required browser version number
|
198
200
|
# @option :platform_name [Symbol] one of :any, :win, :mac, or :x
|
199
|
-
# @option :platform_version [String] required platform version number
|
200
201
|
# @option :accept_insecure_certs [Boolean] does the driver accept insecure SSL certifications?
|
201
202
|
# @option :proxy [Selenium::WebDriver::Proxy, Hash] proxy configuration
|
202
203
|
#
|
@@ -253,7 +254,10 @@ module Selenium
|
|
253
254
|
when :platform
|
254
255
|
hash['platform'] = value.to_s.upcase
|
255
256
|
when :proxy
|
256
|
-
|
257
|
+
if value
|
258
|
+
hash['proxy'] = value.as_json
|
259
|
+
hash['proxy']['proxyType'] &&= hash['proxy']['proxyType'].downcase
|
260
|
+
end
|
257
261
|
when String, :firefox_binary
|
258
262
|
hash[key.to_s] = value
|
259
263
|
when Symbol
|
data/selenium-webdriver.gemspec
CHANGED
@@ -5,7 +5,7 @@ raise "cwd must be #{root} when reading gemspec" if root != Dir.pwd
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = 'selenium-webdriver'
|
8
|
-
s.version = '3.5.
|
8
|
+
s.version = '3.5.2'
|
9
9
|
|
10
10
|
s.authors = ['Alex Rodionov', 'Titus Fortner']
|
11
11
|
s.email = ['p0deje@gmail.com', 'titusfortner@gmail.com']
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: selenium-webdriver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 3.5.
|
5
|
+
version: 3.5.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Alex Rodionov
|
@@ -11,7 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2017-
|
14
|
+
date: 2017-09-07 00:00:00 +07:00
|
15
15
|
default_executable:
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|