selenium-webdriver 3.0.3 → 3.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +13 -1
- data/lib/selenium/webdriver/common/platform.rb +1 -1
- data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
- data/lib/selenium/webdriver/firefox/launcher.rb +0 -4
- data/lib/selenium/webdriver/firefox/profile.rb +7 -1
- data/lib/selenium/webdriver/firefox/profiles_ini.rb +2 -3
- data/lib/selenium/webdriver/firefox/w3c_bridge.rb +7 -0
- data/lib/selenium/webdriver/remote/bridge.rb +1 -3
- data/lib/selenium/webdriver/remote/http/common.rb +4 -0
- data/lib/selenium/webdriver/remote/http/curb.rb +5 -2
- data/lib/selenium/webdriver/remote/http/default.rb +25 -4
- data/lib/selenium/webdriver/remote/http/persistent.rb +6 -1
- data/lib/selenium/webdriver/remote/w3c_capabilities.rb +1 -1
- data/selenium-webdriver.gemspec +1 -1
- metadata +2 -2
data/CHANGES
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
3.0.4 (2016-12-21)
|
2
|
+
===================
|
3
|
+
|
4
|
+
Firefox:
|
5
|
+
* Implement profile support via geckodriver (#2933 thanks lmtierney)
|
6
|
+
|
7
|
+
Ruby:
|
8
|
+
* Fix bug preventing use of Curb client (#2951 thanks clarkenciel)
|
9
|
+
* Support Net::HTTP::Persistent version 3 (#3219 thanks Pete Johns)
|
10
|
+
* Allow Net::HTTP::Default to set open_timout and read_timeout independently (#3264 thanks richseviora)
|
11
|
+
* Change default for Net::HTTP::Default#open_timeout to facilitate debuggers (#3264 thanks richseviora)
|
12
|
+
|
1
13
|
3.0.3 (2016-11-26)
|
2
14
|
===================
|
3
15
|
|
@@ -134,7 +146,7 @@ Firefox:
|
|
134
146
|
2.49.0 (2016-01-13)
|
135
147
|
===================
|
136
148
|
|
137
|
-
Ruby:
|
149
|
+
Ruby:g
|
138
150
|
* support for SessionNotCreatedError (thanks Alexander Bayandin)
|
139
151
|
|
140
152
|
Safari:
|
@@ -150,7 +150,7 @@ module Selenium
|
|
150
150
|
paths.each do |path|
|
151
151
|
full_path = File.join(path, binary_name)
|
152
152
|
full_path.tr!('\\', '/') if windows?
|
153
|
-
exe = Dir.glob(full_path).
|
153
|
+
exe = Dir.glob(full_path).find { |f| File.executable?(f) }
|
154
154
|
return exe if exe
|
155
155
|
end
|
156
156
|
end
|
Binary file
|
@@ -92,10 +92,6 @@ module Selenium
|
|
92
92
|
def fetch_profile
|
93
93
|
if @profile_name
|
94
94
|
@profile = Profile.from_name @profile_name
|
95
|
-
|
96
|
-
unless @profile
|
97
|
-
raise Error::WebDriverError, "unable to find profile named: #{@profile_name.inspect}"
|
98
|
-
end
|
99
95
|
else
|
100
96
|
@profile = Profile.new
|
101
97
|
end
|
@@ -42,7 +42,9 @@ module Selenium
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def from_name(name)
|
45
|
-
ini[name]
|
45
|
+
profile = ini[name]
|
46
|
+
return profile if profile
|
47
|
+
raise Error::WebDriverError, "unable to find profile named: #{name.inspect}"
|
46
48
|
end
|
47
49
|
|
48
50
|
def default_preferences
|
@@ -193,6 +195,10 @@ module Selenium
|
|
193
195
|
proxy
|
194
196
|
end
|
195
197
|
|
198
|
+
def encoded
|
199
|
+
Zipper.zip(layout_on_disk)
|
200
|
+
end
|
201
|
+
|
196
202
|
private
|
197
203
|
|
198
204
|
def set_manual_proxy_preference(key, value)
|
@@ -57,11 +57,10 @@ module Selenium
|
|
57
57
|
is_relative = Regexp.last_match(1).strip == '1'
|
58
58
|
when /^Path=(.+)$/
|
59
59
|
path = Regexp.last_match(1).strip
|
60
|
+
p = path_for(name, is_relative, path)
|
61
|
+
@profile_paths[name] = p if p
|
60
62
|
end
|
61
63
|
end
|
62
|
-
|
63
|
-
p = path_for(name, is_relative, path)
|
64
|
-
@profile_paths[name] = p if p
|
65
64
|
end
|
66
65
|
|
67
66
|
def path_for(name, is_relative, path)
|
@@ -59,6 +59,13 @@ module Selenium
|
|
59
59
|
caps = opts.delete(:desired_capabilities) || Remote::W3CCapabilities.firefox
|
60
60
|
firefox_options_caps = caps[:firefox_options] || {}
|
61
61
|
caps[:firefox_options] = firefox_options_caps.merge(opts[:firefox_options] || {})
|
62
|
+
if opts.key?(:profile)
|
63
|
+
profile = opts.delete(:profile)
|
64
|
+
unless profile.is_a?(Profile)
|
65
|
+
profile = Profile.from_name(profile)
|
66
|
+
end
|
67
|
+
caps[:firefox_options][:profile] = profile.encoded
|
68
|
+
end
|
62
69
|
|
63
70
|
Binary.path = caps[:firefox_options][:binary] if caps[:firefox_options].key?(:binary)
|
64
71
|
caps
|
@@ -22,8 +22,6 @@ require 'curb'
|
|
22
22
|
module Selenium
|
23
23
|
module WebDriver
|
24
24
|
module Remote
|
25
|
-
# added for rescue
|
26
|
-
Bridge::QUIT_ERRORS << Curl::Err::RecvError
|
27
25
|
|
28
26
|
module Http
|
29
27
|
#
|
@@ -40,6 +38,11 @@ module Selenium
|
|
40
38
|
#
|
41
39
|
|
42
40
|
class Curb < Common
|
41
|
+
|
42
|
+
def quit_errors
|
43
|
+
[Curl::Err::RecvError] + super
|
44
|
+
end
|
45
|
+
|
43
46
|
private
|
44
47
|
|
45
48
|
def request(verb, url, headers, payload)
|
@@ -28,6 +28,28 @@ module Selenium
|
|
28
28
|
class Default < Common
|
29
29
|
attr_accessor :proxy
|
30
30
|
|
31
|
+
attr_accessor :open_timeout
|
32
|
+
attr_accessor :read_timeout
|
33
|
+
|
34
|
+
# Initializes object.
|
35
|
+
# Warning: Setting {#open_timeout} to non-nil values will cause a separate thread to spawn.
|
36
|
+
# Debuggers that freeze the process will not be able to evaluate any operations if that happens.
|
37
|
+
# @param [Numeric] open_timeout - Open timeout to apply to HTTP client.
|
38
|
+
# @param [Numeric] read_timeout - Read timeout (seconds) to apply to HTTP client.
|
39
|
+
def initialize(open_timeout: nil, read_timeout: nil)
|
40
|
+
@open_timeout = open_timeout
|
41
|
+
@read_timeout = read_timeout
|
42
|
+
end
|
43
|
+
|
44
|
+
# Maintaining backward compatibility.
|
45
|
+
# @param [Numeric] value - Timeout in seconds to apply to both open timeout and read timeouts.
|
46
|
+
# @deprecated Please set the specific desired timeout {#read_timeout} or {#open_timeout} directly.
|
47
|
+
def timeout=(value)
|
48
|
+
Kernel.warn 'Selenium::WebDriver::Remote::Http::Default#timeout= is deprecated. Use #read_timeout= or #open_timeout= instead'
|
49
|
+
self.open_timeout = value
|
50
|
+
self.read_timeout = value
|
51
|
+
end
|
52
|
+
|
31
53
|
private
|
32
54
|
|
33
55
|
def http
|
@@ -38,10 +60,9 @@ module Selenium
|
|
38
60
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
39
61
|
end
|
40
62
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
end
|
63
|
+
# Defaulting open_timeout to nil to be consistent with Ruby 2.2 and earlier.
|
64
|
+
http.open_timeout = self.open_timeout
|
65
|
+
http.read_timeout = self.read_timeout if self.read_timeout
|
45
66
|
|
46
67
|
http
|
47
68
|
)
|
@@ -42,7 +42,12 @@ module Selenium
|
|
42
42
|
proxy = URI.parse(url)
|
43
43
|
end
|
44
44
|
|
45
|
-
Net::HTTP::Persistent
|
45
|
+
if Net::HTTP::Persistent::VERSION >= '3'
|
46
|
+
Net::HTTP::Persistent.new name: 'webdriver', proxy: proxy
|
47
|
+
else
|
48
|
+
warn 'Support for this version of net-http-persistent is deprecated. Please upgrade.'
|
49
|
+
Net::HTTP::Persistent.new 'webdriver', proxy
|
50
|
+
end
|
46
51
|
end
|
47
52
|
|
48
53
|
def response_for(request)
|
@@ -79,7 +79,7 @@ module Selenium
|
|
79
79
|
opts[:browser_version] = opts.delete(:version) if opts.key?(:version)
|
80
80
|
opts[:platform_name] = opts.delete(:platform) if opts.key?(:platform)
|
81
81
|
|
82
|
-
new({browser_name: 'firefox'}.merge(opts))
|
82
|
+
new({browser_name: 'firefox', marionette: true}.merge(opts))
|
83
83
|
end
|
84
84
|
|
85
85
|
alias_method :ff, :firefox
|
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.0.
|
8
|
+
s.version = '3.0.4'
|
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.0.
|
5
|
+
version: 3.0.4
|
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: 2016-
|
14
|
+
date: 2016-12-21 00:00:00 -06:00
|
15
15
|
default_executable:
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|