selenium-webdriver 2.22.2 → 2.24.0

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 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