selenium-webdriver 2.22.2 → 2.24.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,16 @@
1
+ 2.24.0 (2012-06-19)
2
+ ===================
3
+
4
+ * bot.dom.getVisibleText does not properly handle display:run-in or display:table (#1584).
5
+ * CSS selectors now support compound selectors.
6
+ * IE:
7
+ * Failure to click on an element in the IE Driver will yield a more meaningful error.
8
+ * Crash on IE8 when S_FALSE is returned from get_Document (#4064)
9
+ * DLLs are no longer bundled with the gem, users must use the standalone server from now on.
10
+ * Firefox:
11
+ * Support for Firefox 13
12
+ * Ability to pass :proxy directly as Firefox option (no Profile needed).
13
+
1
14
  2.22.2 (2012-06-05)
2
15
  ===================
3
16
 
@@ -15,7 +28,7 @@
15
28
  * Fix conflict with ActiveSupport's Object#load (#3819)
16
29
  * IE:
17
30
  * Default to standalone server executable, fall back to bundled DLLs.
18
- * The 'nativeEvents' capabilitiy is exposed as :native_events in the Ruby client (mode still experimental).
31
+ * The 'nativeEvents' capabilitiy is exposed as :native_events in the Ruby client (mode still experimental).
19
32
  * Firefox:
20
33
  * Native events for Firefox 12.
21
34
  * Native events retained for Firefox 3.x, 10 and 11.
@@ -9,6 +9,7 @@ module Selenium
9
9
  port = opts.delete(:port) || DEFAULT_PORT
10
10
  profile = opts.delete(:profile)
11
11
  http_client = opts.delete(:http_client)
12
+ proxy = opts.delete(:proxy)
12
13
 
13
14
  @launcher = create_launcher(port, profile)
14
15
 
@@ -18,9 +19,12 @@ module Selenium
18
19
 
19
20
  @launcher.launch
20
21
 
22
+ caps = Remote::Capabilities.firefox(:native_events => DEFAULT_ENABLE_NATIVE_EVENTS)
23
+ caps.proxy = proxy if proxy
24
+
21
25
  remote_opts = {
22
26
  :url => @launcher.url,
23
- :desired_capabilities => Remote::Capabilities.firefox(:native_events => DEFAULT_ENABLE_NATIVE_EVENTS)
27
+ :desired_capabilities => caps
24
28
  }
25
29
 
26
30
  remote_opts.merge!(:http_client => http_client) if http_client
@@ -3,17 +3,9 @@ module Selenium
3
3
 
4
4
  # @api private
5
5
  module IE
6
- DLLS = {
7
- :win32 => "#{WebDriver.root}/selenium/webdriver/ie/native/win32/IEDriver.dll",
8
- :x64 => "#{WebDriver.root}/selenium/webdriver/ie/native/x64/IEDriver.dll"
9
- }
10
-
11
- DLLS.each { |k,v| DLLS[k] = Platform.cygwin_path(v, :dos => true) } if Platform.cygwin?
12
6
  end
13
7
  end
14
8
  end
15
9
 
16
- require 'ffi'
17
-
18
10
  require 'selenium/webdriver/ie/server'
19
11
  require 'selenium/webdriver/ie/bridge'
@@ -4,16 +4,14 @@ module Selenium
4
4
  class Server
5
5
 
6
6
  STOP_TIMEOUT = 5
7
- DEPRECATION_WARNING = %{warning: the IE driver is moving the a standalone executable. Please download the IEDriverServer from http://code.google.com/p/selenium/downloads/list and place the executable on your PATH.\nFalling back to bundled DLLs for now..}
8
7
 
9
8
  def self.get
10
9
  binary = Platform.find_binary("IEDriverServer")
11
10
  if binary
12
11
  new(binary)
13
12
  else
14
- warn DEPRECATION_WARNING
15
- require 'selenium/webdriver/ie/in_process_server'
16
- InProcessServer.new
13
+ raise Error::WebDriverError,
14
+ "Unable to find standalone executable. Please download the IEDriverServer from http://code.google.com/p/selenium/downloads/list and place the executable on your PATH."
17
15
  end
18
16
  end
19
17
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: selenium-webdriver
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 2.22.2
5
+ version: 2.24.0
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-06-05 00:00:00 +02:00
13
+ date: 2012-06-20 00:00:00 +02:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -46,72 +46,61 @@ dependencies:
46
46
  version: 0.2.5
47
47
  type: :runtime
48
48
  version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: ffi
51
- prerelease: false
52
- requirement: &id004 !ruby/object:Gem::Requirement
53
- none: false
54
- requirements:
55
- - - ~>
56
- - !ruby/object:Gem::Version
57
- version: "1.0"
58
- type: :runtime
59
- version_requirements: *id004
60
49
  - !ruby/object:Gem::Dependency
61
50
  name: libwebsocket
62
51
  prerelease: false
63
- requirement: &id005 !ruby/object:Gem::Requirement
52
+ requirement: &id004 !ruby/object:Gem::Requirement
64
53
  none: false
65
54
  requirements:
66
55
  - - ~>
67
56
  - !ruby/object:Gem::Version
68
57
  version: 0.1.3
69
58
  type: :runtime
70
- version_requirements: *id005
59
+ version_requirements: *id004
71
60
  - !ruby/object:Gem::Dependency
72
61
  name: rspec
73
62
  prerelease: false
74
- requirement: &id006 !ruby/object:Gem::Requirement
63
+ requirement: &id005 !ruby/object:Gem::Requirement
75
64
  none: false
76
65
  requirements:
77
66
  - - ~>
78
67
  - !ruby/object:Gem::Version
79
68
  version: "2.0"
80
69
  type: :development
81
- version_requirements: *id006
70
+ version_requirements: *id005
82
71
  - !ruby/object:Gem::Dependency
83
72
  name: rack
84
73
  prerelease: false
85
- requirement: &id007 !ruby/object:Gem::Requirement
74
+ requirement: &id006 !ruby/object:Gem::Requirement
86
75
  none: false
87
76
  requirements:
88
77
  - - ~>
89
78
  - !ruby/object:Gem::Version
90
79
  version: "1.0"
91
80
  type: :development
92
- version_requirements: *id007
81
+ version_requirements: *id006
93
82
  - !ruby/object:Gem::Dependency
94
83
  name: ci_reporter
95
84
  prerelease: false
96
- requirement: &id008 !ruby/object:Gem::Requirement
85
+ requirement: &id007 !ruby/object:Gem::Requirement
97
86
  none: false
98
87
  requirements:
99
88
  - - ~>
100
89
  - !ruby/object:Gem::Version
101
90
  version: 1.6.2
102
91
  type: :development
103
- version_requirements: *id008
92
+ version_requirements: *id007
104
93
  - !ruby/object:Gem::Dependency
105
94
  name: webmock
106
95
  prerelease: false
107
- requirement: &id009 !ruby/object:Gem::Requirement
96
+ requirement: &id008 !ruby/object:Gem::Requirement
108
97
  none: false
109
98
  requirements:
110
99
  - - ~>
111
100
  - !ruby/object:Gem::Version
112
101
  version: 1.7.5
113
102
  type: :development
114
- version_requirements: *id009
103
+ version_requirements: *id008
115
104
  description: WebDriver is a tool for writing automated tests of websites. It aims to mimic the behaviour of a real user, and as such interacts with the HTML of the application.
116
105
  email: jari.bakken@gmail.com
117
106
  executables: []
@@ -206,10 +195,7 @@ files:
206
195
  - lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so
207
196
  - lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so
208
197
  - lib/selenium/webdriver/ie/bridge.rb
209
- - lib/selenium/webdriver/ie/in_process_server.rb
210
198
  - lib/selenium/webdriver/ie/server.rb
211
- - lib/selenium/webdriver/ie/native/win32/IEDriver.dll
212
- - lib/selenium/webdriver/ie/native/x64/IEDriver.dll
213
199
  - lib/selenium/webdriver/iphone/bridge.rb
214
200
  - lib/selenium/webdriver/opera/bridge.rb
215
201
  - lib/selenium/webdriver/opera/service.rb
@@ -1,72 +0,0 @@
1
- module Selenium
2
- module WebDriver
3
- module IE
4
-
5
- #
6
- # @api private
7
- #
8
-
9
- class InProcessServer
10
- extend FFI::Library
11
-
12
- if Platform.bitsize == 64
13
- ffi_lib WebDriver::IE::DLLS[:x64]
14
- else
15
- ffi_lib WebDriver::IE::DLLS[:win32]
16
- end
17
-
18
- ffi_convention :stdcall
19
-
20
- attach_function :start_server, :StartServer, [:int], :pointer
21
- attach_function :stop_server, :StopServer, [:pointer], :void
22
- attach_function :session_count, :GetServerSessionCount, [], :int
23
- attach_function :current_port, :GetServerPort, [], :int
24
- attach_function :is_running, :ServerIsRunning, [], :bool
25
-
26
- def initialize
27
- @handle = nil
28
- end
29
-
30
- #
31
- # Starts the server, communicating on the specified port, if it is not already running
32
- #
33
-
34
- def start(start_port, timeout)
35
- return port if running?
36
- @handle = self.class.start_server(start_port)
37
-
38
- unless SocketPoller.new(Platform.localhost, start_port, timeout).connected?
39
- raise Error::WebDriverError, "unable to connect to IE server within #{timeout} seconds"
40
- end
41
-
42
- start_port
43
- end
44
-
45
- def stop
46
- return if session_count != 0 || @handle.nil?
47
- self.class.stop_server @handle
48
- @handle = nil
49
- end
50
-
51
- def running?
52
- self.class.is_running
53
- end
54
-
55
- def port
56
- self.class.current_port
57
- end
58
-
59
- def uri
60
- "http://#{Platform.localhost}:#{port}"
61
- end
62
-
63
- private
64
-
65
- def session_count
66
- self.class.session_count
67
- end
68
-
69
- end # Server
70
- end # IE
71
- end # WebDriver
72
- end # Selenium