selenium-webdriver 3.5.1 → 3.5.2
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.
- 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
|