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 +14 -1
- data/lib/selenium/webdriver/firefox/bridge.rb +5 -1
- data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
- data/lib/selenium/webdriver/ie.rb +0 -8
- data/lib/selenium/webdriver/ie/server.rb +2 -4
- metadata +12 -26
- data/lib/selenium/webdriver/ie/in_process_server.rb +0 -72
- data/lib/selenium/webdriver/ie/native/win32/IEDriver.dll +0 -0
- data/lib/selenium/webdriver/ie/native/x64/IEDriver.dll +0 -0
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 =>
|
27
|
+
:desired_capabilities => caps
|
24
28
|
}
|
25
29
|
|
26
30
|
remote_opts.merge!(:http_client => http_client) if http_client
|
Binary file
|
@@ -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
|
-
|
15
|
-
|
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.
|
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-
|
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: &
|
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: *
|
59
|
+
version_requirements: *id004
|
71
60
|
- !ruby/object:Gem::Dependency
|
72
61
|
name: rspec
|
73
62
|
prerelease: false
|
74
|
-
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: *
|
70
|
+
version_requirements: *id005
|
82
71
|
- !ruby/object:Gem::Dependency
|
83
72
|
name: rack
|
84
73
|
prerelease: false
|
85
|
-
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: *
|
81
|
+
version_requirements: *id006
|
93
82
|
- !ruby/object:Gem::Dependency
|
94
83
|
name: ci_reporter
|
95
84
|
prerelease: false
|
96
|
-
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: *
|
92
|
+
version_requirements: *id007
|
104
93
|
- !ruby/object:Gem::Dependency
|
105
94
|
name: webmock
|
106
95
|
prerelease: false
|
107
|
-
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: *
|
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
|
Binary file
|
Binary file
|