selenium-webdriver 2.25.0 → 2.26.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,20 @@
1
+ 2.26.0 (2012-11-02)
2
+ ===================
3
+
4
+ Firefox:
5
+ * Added support for native events for Firefox 15 and 16.
6
+ * Modified FirefoxDriver to use atoms to switch between frames.
7
+ * FIXED: 4309: 'Could not convert Native argument arg 0' error with Firefox.
8
+ * FIXED: 4375: Executing javascript hangs Firefox.
9
+ * FIXED: 4165: WebDriver fails on a machine with no IP address.
10
+ Safari:
11
+ * Fixed SafariDriver to allow calling .quit() consecutively without error.
12
+ * FIXED: 4676: Unable to fire javascript events into SVG's.
13
+ * FIXED: 3969: SafariDriver should auto-dismiss alerts.
14
+ IE:
15
+ * FIXED: 4535: Hover still does not work perfectly in IE.
16
+ * FIXED: 4593: Alert.accept() Cancels the Resend Alert/Dialog Box.
17
+
1
18
  2.25.0 (2012-07-19)
2
19
  ===================
3
20
 
@@ -53,12 +53,13 @@ module Selenium
53
53
  private
54
54
 
55
55
  def create_capabilities(opts)
56
- args = opts.delete(:args) || opts.delete(:switches)
57
- native_events = opts.delete(:native_events)
58
- verbose = opts.delete(:verbose)
59
- profile = opts.delete(:profile)
60
- detach = opts.delete(:detach)
61
- proxy = opts.delete(:proxy)
56
+ args = opts.delete(:args) || opts.delete(:switches)
57
+ native_events = opts.delete(:native_events)
58
+ verbose = opts.delete(:verbose)
59
+ profile = opts.delete(:profile)
60
+ detach = opts.delete(:detach)
61
+ proxy = opts.delete(:proxy)
62
+ no_website_testing_defaults = opts.delete(:no_website_testing_defaults)
62
63
 
63
64
  unless opts.empty?
64
65
  raise ArgumentError, "unknown option#{'s' if opts.size != 1}: #{opts.inspect}"
@@ -82,10 +83,11 @@ module Selenium
82
83
  end
83
84
 
84
85
 
85
- chrome_options['binary'] = Chrome.path if Chrome.path
86
- chrome_options['nativeEvents'] = true if native_events
87
- chrome_options['verbose'] = true if verbose
88
- chrome_options['detach'] = detach.nil? || !!detach
86
+ chrome_options['binary'] = Chrome.path if Chrome.path
87
+ chrome_options['nativeEvents'] = true if native_events
88
+ chrome_options['verbose'] = true if verbose
89
+ chrome_options['detach'] = detach.nil? || !!detach
90
+ chrome_options['noWebsiteTestingDefaults'] = true if no_website_testing_defaults
89
91
 
90
92
  caps = Remote::Capabilities.chrome
91
93
  caps['chromeOptions'] = chrome_options
@@ -93,7 +95,7 @@ module Selenium
93
95
 
94
96
  # legacy options - for chromedriver < 17.0.963.0
95
97
  caps["chrome.switches"] = chrome_options['args'] if chrome_options.member?('args')
96
- %w[binary detach extensions nativeEvents profile verbose].each do |key|
98
+ %w[binary detach extensions nativeEvents noWebsiteTestingDefaults profile verbose].each do |key|
97
99
  caps["chrome.#{key}"] = chrome_options[key] if chrome_options.member?(key)
98
100
  end
99
101
 
@@ -279,7 +279,7 @@ module Selenium
279
279
  # @return [ActionBuilder] A self reference.
280
280
  #
281
281
 
282
- def context_click(element)
282
+ def context_click(element = nil)
283
283
  @actions << [:mouse, :context_click, [element]]
284
284
  self
285
285
  end
@@ -161,7 +161,7 @@ module Selenium
161
161
  ensure
162
162
  Socket.do_not_reverse_lookup = orig
163
163
  end
164
- rescue Errno::ENETUNREACH
164
+ rescue Errno::ENETUNREACH, Errno::EHOSTUNREACH
165
165
  # no external ip
166
166
  end
167
167
 
@@ -29,7 +29,12 @@ module Selenium
29
29
 
30
30
  remote_opts.merge!(:http_client => http_client) if http_client
31
31
 
32
- super(remote_opts)
32
+ begin
33
+ super(remote_opts)
34
+ rescue
35
+ @launcher.quit
36
+ raise
37
+ end
33
38
  end
34
39
 
35
40
  def browser
@@ -18,6 +18,7 @@
18
18
  "devtools.errorconsole.enabled": true,
19
19
  "dom.disable_open_during_load": false,
20
20
  "extensions.autoDisableScopes": 10,
21
+ "extensions.blocklist.enabled": false,
21
22
  "extensions.logging.enabled": true,
22
23
  "extensions.update.enabled": false,
23
24
  "extensions.update.notifyUser": false,
@@ -1,4 +1,5 @@
1
1
  require 'net/https'
2
+ require 'ipaddr'
2
3
 
3
4
  module Selenium
4
5
  module WebDriver
@@ -113,8 +114,19 @@ module Selenium
113
114
  return false if proxy.nil?
114
115
 
115
116
  if proxy.no_proxy
116
- hosts = proxy.no_proxy.split(",")
117
- !(hosts.include?(server_url.host) || hosts.first == "*")
117
+ ignored = proxy.no_proxy.split(",").any? do |host|
118
+ host == "*" ||
119
+ host == server_url.host || (
120
+ begin
121
+ IPAddr.new(host).include?(server_url.host)
122
+ rescue ArgumentError
123
+ false
124
+ end
125
+ )
126
+
127
+ end
128
+
129
+ not ignored
118
130
  else
119
131
  true
120
132
  end
@@ -79,6 +79,18 @@ module Selenium
79
79
  @alpha = Float(alpha)
80
80
  end
81
81
 
82
+ def ==(other)
83
+ return true if equal?(other)
84
+ return false unless other.kind_of?(self.class)
85
+
86
+ [red, green, blue, alpha] == [other.red, other.green, other.blue, other.alpha]
87
+ end
88
+ alias_method :eql?, :==
89
+
90
+ def hash
91
+ [red, green, blue, alpha].hash ^ self.class.hash
92
+ end
93
+
82
94
  def rgb
83
95
  "rgb(#{red}, #{green}, #{blue})"
84
96
  end
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selenium-webdriver
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 2.25.0
4
+ prerelease: 7
5
+ version: 2.26.0.rc1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jari Bakken
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-07-19 00:00:00 +02:00
13
+ date: 2012-11-02 00:00:00 +01:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -237,9 +237,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
237
237
  required_rubygems_version: !ruby/object:Gem::Requirement
238
238
  none: false
239
239
  requirements:
240
- - - ">="
240
+ - - ">"
241
241
  - !ruby/object:Gem::Version
242
- version: "0"
242
+ version: 1.3.1
243
243
  requirements: []
244
244
 
245
245
  rubyforge_project: