selenium-webdriver 0.0.9 → 0.0.10
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/chrome/prebuilt/Win32/Release/npchromedriver.dll +0 -0
- data/chrome/prebuilt/x64/Release/npchromedriver.dll +0 -0
- data/chrome/src/extension/background.js +1 -0
- data/chrome/src/extension/content_script.js +182 -177
- data/chrome/src/extension/manifest-nonwin.json +1 -1
- data/chrome/src/extension/manifest-win.json +1 -1
- data/chrome/src/rb/lib/selenium/webdriver/chrome/bridge.rb +9 -3
- data/chrome/src/rb/lib/selenium/webdriver/chrome/launcher.rb +1 -1
- data/common/src/js/core/Blank.html +7 -0
- data/common/src/js/core/InjectedRemoteRunner.html +8 -0
- data/common/src/js/core/RemoteRunner.html +101 -0
- data/common/src/js/core/SeleniumLog.html +109 -0
- data/common/src/js/core/TestPrompt.html +145 -0
- data/common/src/js/core/TestRunner-splash.html +55 -0
- data/common/src/js/core/TestRunner.html +177 -0
- data/common/src/js/core/icons/all.png +0 -0
- data/common/src/js/core/icons/continue.png +0 -0
- data/common/src/js/core/icons/continue_disabled.png +0 -0
- data/common/src/js/core/icons/pause.png +0 -0
- data/common/src/js/core/icons/pause_disabled.png +0 -0
- data/common/src/js/core/icons/selected.png +0 -0
- data/common/src/js/core/icons/step.png +0 -0
- data/common/src/js/core/icons/step_disabled.png +0 -0
- data/common/src/js/core/lib/cssQuery/cssQuery-p.js +6 -0
- data/common/src/js/core/lib/cssQuery/src/cssQuery-level2.js +142 -0
- data/common/src/js/core/lib/cssQuery/src/cssQuery-level3.js +150 -0
- data/common/src/js/core/lib/cssQuery/src/cssQuery-standard.js +53 -0
- data/common/src/js/core/lib/cssQuery/src/cssQuery.js +356 -0
- data/common/src/js/core/lib/prototype.js +2006 -0
- data/common/src/js/core/lib/scriptaculous/builder.js +101 -0
- data/common/src/js/core/lib/scriptaculous/controls.js +815 -0
- data/common/src/js/core/lib/scriptaculous/dragdrop.js +915 -0
- data/common/src/js/core/lib/scriptaculous/effects.js +958 -0
- data/common/src/js/core/lib/scriptaculous/scriptaculous.js +47 -0
- data/common/src/js/core/lib/scriptaculous/slider.js +283 -0
- data/common/src/js/core/lib/scriptaculous/unittest.js +383 -0
- data/common/src/js/core/lib/snapsie.js +91 -0
- data/common/src/js/core/scripts/find_matching_child.js +69 -0
- data/common/src/js/core/scripts/htmlutils.js +1623 -0
- data/common/src/js/core/scripts/injection.html +72 -0
- data/common/src/js/core/scripts/selenium-api.js +3294 -0
- data/common/src/js/core/scripts/selenium-browserbot.js +2430 -0
- data/common/src/js/core/scripts/selenium-browserdetect.js +153 -0
- data/common/src/js/core/scripts/selenium-commandhandlers.js +379 -0
- data/common/src/js/core/scripts/selenium-executionloop.js +175 -0
- data/common/src/js/core/scripts/selenium-logging.js +148 -0
- data/common/src/js/core/scripts/selenium-remoterunner.js +695 -0
- data/common/src/js/core/scripts/selenium-testrunner.js +1362 -0
- data/common/src/js/core/scripts/selenium-version.js +5 -0
- data/common/src/js/core/scripts/ui-doc.html +808 -0
- data/common/src/js/core/scripts/ui-element.js +1644 -0
- data/common/src/js/core/scripts/ui-map-sample.js +979 -0
- data/common/src/js/core/scripts/user-extensions.js +3 -0
- data/common/src/js/core/scripts/user-extensions.js.sample +75 -0
- data/common/src/js/core/scripts/xmlextras.js +153 -0
- data/common/src/js/core/selenium-logo.png +0 -0
- data/common/src/js/core/selenium-test.css +43 -0
- data/common/src/js/core/selenium.css +316 -0
- data/common/src/js/core/xpath/dom.js +566 -0
- data/common/src/js/core/xpath/javascript-xpath-0.1.11.js +2816 -0
- data/common/src/js/core/xpath/util.js +549 -0
- data/common/src/js/core/xpath/xmltoken.js +149 -0
- data/common/src/js/core/xpath/xpath.js +2481 -0
- data/common/src/js/jsunit/app/css/jsUnitStyle.css +50 -0
- data/common/src/js/jsunit/app/css/readme +10 -0
- data/common/src/js/jsunit/app/emptyPage.html +11 -0
- data/common/src/js/jsunit/app/jsUnitCore.js +534 -0
- data/common/src/js/jsunit/app/jsUnitMockTimeout.js +81 -0
- data/common/src/js/jsunit/app/jsUnitTestManager.js +705 -0
- data/common/src/js/jsunit/app/jsUnitTestSuite.js +44 -0
- data/common/src/js/jsunit/app/jsUnitTracer.js +102 -0
- data/common/src/js/jsunit/app/jsUnitVersionCheck.js +59 -0
- data/common/src/js/jsunit/app/main-counts-errors.html +12 -0
- data/common/src/js/jsunit/app/main-counts-failures.html +13 -0
- data/common/src/js/jsunit/app/main-counts-runs.html +13 -0
- data/common/src/js/jsunit/app/main-counts.html +21 -0
- data/common/src/js/jsunit/app/main-data.html +178 -0
- data/common/src/js/jsunit/app/main-errors.html +23 -0
- data/common/src/js/jsunit/app/main-frame.html +19 -0
- data/common/src/js/jsunit/app/main-loader.html +45 -0
- data/common/src/js/jsunit/app/main-progress.html +25 -0
- data/common/src/js/jsunit/app/main-results.html +67 -0
- data/common/src/js/jsunit/app/main-status.html +13 -0
- data/common/src/js/jsunit/app/testContainer.html +16 -0
- data/common/src/js/jsunit/app/testContainerController.html +77 -0
- data/common/src/js/jsunit/app/xbDebug.js +306 -0
- data/common/src/js/jsunit/changelog.txt +60 -0
- data/common/src/js/jsunit/css/jsUnitStyle.css +83 -0
- data/common/src/js/jsunit/images/green.gif +0 -0
- data/common/src/js/jsunit/images/logo_jsunit.gif +0 -0
- data/common/src/js/jsunit/images/powerby-transparent.gif +0 -0
- data/common/src/js/jsunit/images/red.gif +0 -0
- data/common/src/js/jsunit/licenses/JDOM_license.txt +56 -0
- data/common/src/js/jsunit/licenses/Jetty_license.html +213 -0
- data/common/src/js/jsunit/licenses/MPL-1.1.txt +470 -0
- data/common/src/js/jsunit/licenses/gpl-2.txt +340 -0
- data/common/src/js/jsunit/licenses/index.html +141 -0
- data/common/src/js/jsunit/licenses/lgpl-2.1.txt +504 -0
- data/common/src/js/jsunit/licenses/mpl-tri-license-c.txt +35 -0
- data/common/src/js/jsunit/licenses/mpl-tri-license-html.txt +35 -0
- data/common/src/js/jsunit/readme.txt +19 -0
- data/common/src/js/jsunit/testRunner.html +167 -0
- data/common/src/js/jsunit/version.txt +1 -0
- data/common/src/rb/README +29 -0
- data/common/src/rb/lib/selenium/webdriver/driver.rb +124 -12
- data/common/src/rb/lib/selenium/webdriver/element.rb +119 -3
- data/common/src/rb/lib/selenium/webdriver/error.rb +1 -2
- data/common/src/rb/lib/selenium/webdriver/find.rb +19 -2
- data/common/src/rb/lib/selenium/webdriver/keys.rb +5 -1
- data/common/src/rb/lib/selenium/webdriver/navigation.rb +8 -4
- data/common/src/rb/lib/selenium/webdriver/platform.rb +4 -2
- data/common/src/rb/lib/selenium/webdriver/target_locator.rb +18 -0
- data/firefox/prebuilt/Win32/Release/webdriver-firefox.dll +0 -0
- data/firefox/prebuilt/linux/Release/libwebdriver-firefox.so +0 -0
- data/firefox/prebuilt/linux/Release/x_ignore_nofocus.so +0 -0
- data/firefox/prebuilt/linux64/Release/libwebdriver-firefox.so +0 -0
- data/firefox/prebuilt/linux64/Release/x_ignore_nofocus.so +0 -0
- data/firefox/src/extension/components/utils.js +13 -2
- data/firefox/src/extension/install.rdf +1 -1
- data/firefox/src/rb/lib/selenium/webdriver/firefox.rb +3 -2
- data/firefox/src/rb/lib/selenium/webdriver/firefox/binary.rb +1 -7
- data/firefox/src/rb/lib/selenium/webdriver/firefox/bridge.rb +11 -4
- data/firefox/src/rb/lib/selenium/webdriver/firefox/profile.rb +56 -15
- data/firefox/src/rb/lib/selenium/webdriver/firefox/util.rb +1 -1
- data/jobbie/prebuilt/Win32/Release/InternetExplorerDriver.dll +0 -0
- data/jobbie/prebuilt/x64/Release/InternetExplorerDriver.dll +0 -0
- data/jobbie/src/rb/lib/selenium/webdriver/ie/bridge.rb +10 -5
- data/jobbie/src/rb/lib/selenium/webdriver/ie/util.rb +9 -10
- data/remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb +4 -2
- data/remote/client/src/rb/lib/selenium/webdriver/remote/capabilities.rb +23 -23
- metadata +103 -6
- data/jobbie/prebuilt/Win32/Release/webdriver-ie-test.dll +0 -0
- data/jobbie/prebuilt/Win32/Release/webdriver-ie.dll +0 -0
- data/jobbie/prebuilt/x64/Release/webdriver-ie-test.dll +0 -0
- data/jobbie/prebuilt/x64/Release/webdriver-ie.dll +0 -0
|
@@ -23,12 +23,6 @@ module Selenium
|
|
|
23
23
|
|
|
24
24
|
def start_with(profile, *args)
|
|
25
25
|
ENV['XRE_PROFILE_PATH'] = profile.absolute_path
|
|
26
|
-
|
|
27
|
-
# TODO: native lib loading
|
|
28
|
-
# if Platform.os == :unix && (profile.enable_native_events || profile.always_load_no_focus_lib)
|
|
29
|
-
# modify_link_library_path profile
|
|
30
|
-
# end
|
|
31
|
-
|
|
32
26
|
execute(*args)
|
|
33
27
|
cope_with_mac_strangeness(args) if Platform.mac?
|
|
34
28
|
end
|
|
@@ -74,7 +68,7 @@ module Selenium
|
|
|
74
68
|
"/Applications/Firefox.app/Contents/MacOS/firefox-bin"
|
|
75
69
|
when :windows
|
|
76
70
|
windows_path
|
|
77
|
-
when :unix
|
|
71
|
+
when :linux, :unix
|
|
78
72
|
"/usr/bin/firefox"
|
|
79
73
|
else
|
|
80
74
|
raise "Unknown platform: #{Platform.os}"
|
|
@@ -35,6 +35,10 @@ module Selenium
|
|
|
35
35
|
execute :getPageSource
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
+
def refresh
|
|
39
|
+
execute :refresh
|
|
40
|
+
end
|
|
41
|
+
|
|
38
42
|
def getWindowHandles
|
|
39
43
|
execute :getWindowHandles
|
|
40
44
|
end
|
|
@@ -181,13 +185,16 @@ module Selenium
|
|
|
181
185
|
# data = execute :getElementLocation, :element_id => element
|
|
182
186
|
data = execute :getLocation,
|
|
183
187
|
:element_id => element
|
|
184
|
-
|
|
188
|
+
|
|
189
|
+
Point.new data["x"], data["y"]
|
|
185
190
|
end
|
|
186
191
|
|
|
187
192
|
def getElementSize(element)
|
|
188
193
|
# execute :getElementSize, :element_id => element
|
|
189
|
-
execute :getSize,
|
|
190
|
-
|
|
194
|
+
data = execute :getSize,
|
|
195
|
+
:element_id => element
|
|
196
|
+
|
|
197
|
+
Dimension.new data['width'], data['height']
|
|
191
198
|
end
|
|
192
199
|
|
|
193
200
|
def sendKeysToElement(element, string)
|
|
@@ -245,7 +252,7 @@ module Selenium
|
|
|
245
252
|
:parameters => [prop]
|
|
246
253
|
end
|
|
247
254
|
|
|
248
|
-
def hoverOverElement
|
|
255
|
+
def hoverOverElement(element)
|
|
249
256
|
execute :hover,
|
|
250
257
|
:element_id => element
|
|
251
258
|
# execute :hoverOverElement, :element_id => element
|
|
@@ -6,22 +6,32 @@ module Selenium
|
|
|
6
6
|
ANONYMOUS_PROFILE_NAME = "WEBDRIVER_ANONYMOUS_PROFILE"
|
|
7
7
|
EXTENSION_NAME = "fxdriver@googlecode.com"
|
|
8
8
|
EM_NAMESPACE_URI = "http://www.mozilla.org/2004/em-rdf#"
|
|
9
|
+
NO_FOCUS_LIBRARY_NAME = "x_ignore_nofocus.so"
|
|
9
10
|
|
|
10
|
-
# TODO: hardcoded paths
|
|
11
11
|
DEFAULT_EXTENSION_SOURCE = File.expand_path("#{WebDriver.root}/firefox/src/extension")
|
|
12
12
|
|
|
13
|
-
XPTS
|
|
14
|
-
"#{WebDriver.root}/firefox/prebuilt/nsINativeEvents.xpt"
|
|
15
|
-
"#{WebDriver.root}/firefox/prebuilt/nsICommandProcessor.xpt"
|
|
16
|
-
"#{WebDriver.root}/firefox/prebuilt/nsIResponseHandler.xpt"
|
|
17
|
-
|
|
13
|
+
XPTS = [
|
|
14
|
+
["#{WebDriver.root}/firefox/prebuilt/nsINativeEvents.xpt", "components/nsINativeEvents.xpt"],
|
|
15
|
+
["#{WebDriver.root}/firefox/prebuilt/nsICommandProcessor.xpt", "components/nsICommandProcessor.xpt"],
|
|
16
|
+
["#{WebDriver.root}/firefox/prebuilt/nsIResponseHandler.xpt", "components/nsIResponseHandler.xpt"],
|
|
17
|
+
]
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
"#{WebDriver.root}/
|
|
19
|
+
NATIVE = {
|
|
20
|
+
:windows => ["#{WebDriver.root}/firefox/prebuilt/Win32/Release/webdriver-firefox.dll", "platform/WINNT_x86-msvc/components/webdriver-firefox.dll"],
|
|
21
|
+
:linux => ["#{WebDriver.root}/firefox/prebuilt/linux64/Release/libwebdriver-firefox.so", "platform/Linux/components/libwebdriver-firefox.so"]
|
|
21
22
|
}
|
|
22
23
|
|
|
24
|
+
NO_FOCUS = [
|
|
25
|
+
["#{WebDriver.root}/firefox/prebuilt/linux64/Release/x_ignore_nofocus.so" , "amd64/x_ignore_nofocus.so"],
|
|
26
|
+
["#{WebDriver.root}/firefox/prebuilt/linux/Release/x_ignore_nofocus.so" , "x86/x_ignore_nofocus.so"],
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
SHARED = [
|
|
30
|
+
["#{WebDriver.root}/common/src/js/extension/dommessenger.js", "content/dommessenger.js"]
|
|
31
|
+
]
|
|
32
|
+
|
|
23
33
|
attr_reader :name, :directory
|
|
24
|
-
attr_accessor :port, :secure_ssl
|
|
34
|
+
attr_accessor :port, :secure_ssl, :native_events, :load_no_focus_lib
|
|
25
35
|
|
|
26
36
|
class << self
|
|
27
37
|
|
|
@@ -60,7 +70,8 @@ module Selenium
|
|
|
60
70
|
def update_user_prefs
|
|
61
71
|
prefs = existing_user_prefs.merge DEFAULT_PREFERENCES
|
|
62
72
|
prefs['webdriver.firefox_port'] = @port
|
|
63
|
-
prefs['webdriver_accept_untrusted_certs'] =
|
|
73
|
+
prefs['webdriver_accept_untrusted_certs'] = 'true' unless @secure_ssl == true
|
|
74
|
+
prefs['webdriver_enable_native_events'] = 'true' if native_events?
|
|
64
75
|
|
|
65
76
|
write_prefs prefs
|
|
66
77
|
end
|
|
@@ -76,12 +87,22 @@ module Selenium
|
|
|
76
87
|
FileUtils.mkdir_p File.dirname(ext_path), :mode => 0700
|
|
77
88
|
FileUtils.cp_r @extension_source, ext_path
|
|
78
89
|
|
|
79
|
-
XPTS
|
|
80
|
-
|
|
90
|
+
from_to = XPTS + SHARED
|
|
91
|
+
|
|
92
|
+
if native_events?
|
|
93
|
+
from_to << (NATIVE[Platform.os] || raise(Error::WebDriverError,
|
|
94
|
+
"can't enable native events on #{Platform.os.inspect}"))
|
|
81
95
|
end
|
|
82
96
|
|
|
83
|
-
|
|
84
|
-
|
|
97
|
+
if Platform.os == :linux || load_no_focus_lib?
|
|
98
|
+
from_to += NO_FOCUS
|
|
99
|
+
modify_link_library_path(NO_FOCUS.map { |source, dest| File.join(ext_path, dest) })
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
from_to.each do |source, destination|
|
|
103
|
+
dest = File.join(ext_path, destination)
|
|
104
|
+
FileUtils.mkdir_p File.dirname(dest)
|
|
105
|
+
FileUtils.cp source, dest
|
|
85
106
|
end
|
|
86
107
|
|
|
87
108
|
delete_extensions_cache
|
|
@@ -111,10 +132,30 @@ module Selenium
|
|
|
111
132
|
end
|
|
112
133
|
|
|
113
134
|
def delete_extensions_cache
|
|
114
|
-
cache = File.join(
|
|
135
|
+
cache = File.join(directory, "extensions.cache")
|
|
115
136
|
FileUtils.rm_f cache if File.exist?(cache)
|
|
116
137
|
end
|
|
117
138
|
|
|
139
|
+
def modify_link_library_path(paths)
|
|
140
|
+
old_path = ENV['LD_LIBRARY_PATH']
|
|
141
|
+
|
|
142
|
+
unless [nil, ''].include?(old_path)
|
|
143
|
+
paths << old_path
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
ENV['LD_LIBRARY_PATH'] = paths.join(File::PATH_SEPARATOR)
|
|
147
|
+
ENV['LD_PRELOAD'] = NO_FOCUS_LIBRARY_NAME
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def native_events?
|
|
151
|
+
!!(@native_events ||= Firefox::DEFAULT_ENABLE_NATIVE_EVENTS)
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
def load_no_focus_lib?
|
|
155
|
+
!!(@load_no_focus_lib ||= false)
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
|
|
118
159
|
private
|
|
119
160
|
|
|
120
161
|
def existing_user_prefs
|
|
Binary file
|
|
Binary file
|
|
@@ -92,8 +92,11 @@ module Selenium
|
|
|
92
92
|
|
|
93
93
|
def quit
|
|
94
94
|
getWindowHandles.each do |handle|
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
begin
|
|
96
|
+
switchToWindow handle
|
|
97
|
+
close
|
|
98
|
+
rescue Error::NoSuchWindowError
|
|
99
|
+
end
|
|
97
100
|
end
|
|
98
101
|
|
|
99
102
|
# hack
|
|
@@ -107,6 +110,10 @@ module Selenium
|
|
|
107
110
|
check_error_code Lib.wdClose(@driver_pointer), "Unable to close driver"
|
|
108
111
|
end
|
|
109
112
|
|
|
113
|
+
def refresh
|
|
114
|
+
raise Error::UnsupportedOperationError
|
|
115
|
+
end
|
|
116
|
+
|
|
110
117
|
def getWindowHandles
|
|
111
118
|
raw_handles = FFI::MemoryPointer.new :pointer
|
|
112
119
|
check_error_code Lib.wdGetAllWindowHandles(@driver_pointer, raw_handles),
|
|
@@ -167,8 +174,6 @@ module Selenium
|
|
|
167
174
|
check_error_code Lib.wdGetCookies(@driver_pointer, wrapper), "Unable to get cookies"
|
|
168
175
|
end
|
|
169
176
|
|
|
170
|
-
p :cookie_string => str
|
|
171
|
-
|
|
172
177
|
str.split("; ").map do |cookie_string|
|
|
173
178
|
parts = cookie_string.split("=")
|
|
174
179
|
next unless parts.size == 2
|
|
@@ -412,7 +417,7 @@ module Selenium
|
|
|
412
417
|
end
|
|
413
418
|
end
|
|
414
419
|
|
|
415
|
-
def hoverOverElement
|
|
420
|
+
def hoverOverElement(element_pointer)
|
|
416
421
|
raise NotImplementedError
|
|
417
422
|
end
|
|
418
423
|
|
|
@@ -12,12 +12,11 @@ module Selenium
|
|
|
12
12
|
|
|
13
13
|
def string_array_from(raw_strings)
|
|
14
14
|
strings_ptr = raw_strings.get_pointer(0)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
result = Lib.wdcGetStringCollectionLength(strings_ptr, length_ptr)
|
|
15
|
+
length_ptr = FFI::MemoryPointer.new :int
|
|
16
|
+
result = Lib.wdcGetStringCollectionLength(strings_ptr, length_ptr)
|
|
18
17
|
|
|
19
18
|
if result != 0
|
|
20
|
-
raise "
|
|
19
|
+
raise Error::WebDriverError, "cannot extract strings from collection, error code: #{result.inspect}"
|
|
21
20
|
end
|
|
22
21
|
|
|
23
22
|
arr = []
|
|
@@ -27,7 +26,7 @@ module Selenium
|
|
|
27
26
|
result = Lib.wdcGetStringAtIndex(strings_ptr, idx, str_ptr_ref)
|
|
28
27
|
|
|
29
28
|
if result != 0
|
|
30
|
-
raise "
|
|
29
|
+
raise Error::WebDriverError, "unable to get string at index: #{idx}, error: #{result}"
|
|
31
30
|
end
|
|
32
31
|
|
|
33
32
|
arr << extract_string_from(str_ptr_ref)
|
|
@@ -67,16 +66,16 @@ module Selenium
|
|
|
67
66
|
length_ptr = FFI::MemoryPointer.new :int
|
|
68
67
|
|
|
69
68
|
if Lib.wdStringLength(string_ptr, length_ptr) != 0
|
|
70
|
-
raise "
|
|
69
|
+
raise Error::WebDriverError, "cannot determine length of string"
|
|
71
70
|
end
|
|
72
71
|
|
|
73
72
|
length = length_ptr.get_int(0)
|
|
74
73
|
raw_string = wstring_ptr(" "*length)
|
|
75
74
|
|
|
76
75
|
if Lib.wdCopyString(string_ptr, length, raw_string) != 0
|
|
77
|
-
raise "
|
|
76
|
+
raise Error::WebDriverError, "cannot copy string from native data to Ruby string"
|
|
78
77
|
end
|
|
79
|
-
|
|
78
|
+
|
|
80
79
|
wstring_to_bytestring raw_string
|
|
81
80
|
ensure
|
|
82
81
|
Lib.wdFreeString(string_ptr)
|
|
@@ -117,7 +116,7 @@ module Selenium
|
|
|
117
116
|
size = Kernel32.MultiByteToWideChar(CP_UTF8, 0, str, -1, nil, 0)
|
|
118
117
|
|
|
119
118
|
unless size > 0
|
|
120
|
-
raise "
|
|
119
|
+
raise Error::WebDriverError, "could not convert #{str.inspect} to wchar ptr"
|
|
121
120
|
end
|
|
122
121
|
|
|
123
122
|
buf = FFI::MemoryPointer.new :pointer, size
|
|
@@ -130,7 +129,7 @@ module Selenium
|
|
|
130
129
|
size = Kernel32.WideCharToMultiByte(CP_UTF8, 0, wstring, -1, nil, 0, nil, nil)
|
|
131
130
|
|
|
132
131
|
unless size > 0
|
|
133
|
-
raise "
|
|
132
|
+
raise Error::WebDriverError, "could not convert wstring pointer to bytestring"
|
|
134
133
|
end
|
|
135
134
|
|
|
136
135
|
buf = FFI::MemoryPointer.new :pointer, size
|
|
@@ -260,7 +260,9 @@ module Selenium
|
|
|
260
260
|
end
|
|
261
261
|
|
|
262
262
|
def getElementSize(element)
|
|
263
|
-
execute :getElementSize, :id => element
|
|
263
|
+
data = execute :getElementSize, :id => element
|
|
264
|
+
|
|
265
|
+
Dimension.new data['width'], data['height']
|
|
264
266
|
end
|
|
265
267
|
|
|
266
268
|
def sendKeysToElement(element, string)
|
|
@@ -304,7 +306,7 @@ module Selenium
|
|
|
304
306
|
end
|
|
305
307
|
alias_method :switchToActiveElement, :getActiveElement
|
|
306
308
|
|
|
307
|
-
def hoverOverElement
|
|
309
|
+
def hoverOverElement(element)
|
|
308
310
|
execute :hoverOverElement, :id => element
|
|
309
311
|
end
|
|
310
312
|
|
|
@@ -6,14 +6,6 @@ module Selenium
|
|
|
6
6
|
# Specification of the desired and/or actual capabilities of the browser that the
|
|
7
7
|
# server is being asked to create.
|
|
8
8
|
#
|
|
9
|
-
# @option browser_name [String] required browser name
|
|
10
|
-
# @option version [String] required browser version number
|
|
11
|
-
# @option platform [Symbol] one of :any, :win, :mac, or :x
|
|
12
|
-
# @option javascript_enabled [Boolean] should the test run with javascript enabled?
|
|
13
|
-
#
|
|
14
|
-
# @api public
|
|
15
|
-
#
|
|
16
|
-
|
|
17
9
|
class Capabilities
|
|
18
10
|
|
|
19
11
|
attr_accessor :browser_name, :version, :platform, :javascript_enabled
|
|
@@ -64,8 +56,29 @@ module Selenium
|
|
|
64
56
|
:javascript_enabled => true
|
|
65
57
|
}.merge(opts))
|
|
66
58
|
end
|
|
59
|
+
|
|
60
|
+
#
|
|
61
|
+
# @api private
|
|
62
|
+
#
|
|
63
|
+
|
|
64
|
+
def json_create(data)
|
|
65
|
+
new(
|
|
66
|
+
:browser_name => data["browserName"],
|
|
67
|
+
:version => data["version"],
|
|
68
|
+
:platform => data["platform"].downcase.to_sym,
|
|
69
|
+
:javascript_enabled => data["javascriptEnabled"]
|
|
70
|
+
)
|
|
71
|
+
end
|
|
67
72
|
end
|
|
68
73
|
|
|
74
|
+
# @option browser_name [String] required browser name
|
|
75
|
+
# @option version [String] required browser version number
|
|
76
|
+
# @option platform [Symbol] one of :any, :win, :mac, or :x
|
|
77
|
+
# @option javascript_enabled [Boolean] should the test run with javascript enabled?
|
|
78
|
+
#
|
|
79
|
+
# @api public
|
|
80
|
+
#
|
|
81
|
+
|
|
69
82
|
def initialize(opts = {})
|
|
70
83
|
@browser_name = opts[:browser_name] || ""
|
|
71
84
|
@version = opts[:version] || ""
|
|
@@ -77,26 +90,13 @@ module Selenium
|
|
|
77
90
|
# @api private
|
|
78
91
|
#
|
|
79
92
|
|
|
80
|
-
def
|
|
81
|
-
new(
|
|
82
|
-
:browser_name => data["browserName"],
|
|
83
|
-
:version => data["version"],
|
|
84
|
-
:platform => data["platform"].downcase.to_sym,
|
|
85
|
-
:javascript_enabled => data["javascriptEnabled"]
|
|
86
|
-
)
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
#
|
|
90
|
-
# @api private
|
|
91
|
-
#
|
|
92
|
-
|
|
93
|
-
def to_json
|
|
93
|
+
def to_json(*args)
|
|
94
94
|
{
|
|
95
95
|
"browserName" => browser_name,
|
|
96
96
|
"version" => version,
|
|
97
97
|
"platform" => platform.to_s.upcase,
|
|
98
98
|
"javascriptEnabled" => javascript?
|
|
99
|
-
}.to_json
|
|
99
|
+
}.to_json(*args)
|
|
100
100
|
end
|
|
101
101
|
|
|
102
102
|
end # Capabilities
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: selenium-webdriver
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.10
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jari Bakken
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
|
|
12
|
-
date: 2009-12-
|
|
12
|
+
date: 2009-12-14 00:00:00 +01:00
|
|
13
13
|
default_executable:
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
@@ -77,15 +77,111 @@ files:
|
|
|
77
77
|
- common/src/rb/lib/selenium/webdriver/target_locator.rb
|
|
78
78
|
- common/src/rb/lib/selenium/webdriver.rb
|
|
79
79
|
- common/src/rb/lib/selenium-webdriver.rb
|
|
80
|
+
- common/src/rb/README
|
|
80
81
|
- common/src/js/abstractcommandprocessor.js
|
|
81
82
|
- common/src/js/asserts.js
|
|
82
83
|
- common/src/js/by.js
|
|
83
84
|
- common/src/js/command.js
|
|
84
85
|
- common/src/js/context.js
|
|
86
|
+
- common/src/js/core/Blank.html
|
|
87
|
+
- common/src/js/core/icons/all.png
|
|
88
|
+
- common/src/js/core/icons/continue.png
|
|
89
|
+
- common/src/js/core/icons/continue_disabled.png
|
|
90
|
+
- common/src/js/core/icons/pause.png
|
|
91
|
+
- common/src/js/core/icons/pause_disabled.png
|
|
92
|
+
- common/src/js/core/icons/selected.png
|
|
93
|
+
- common/src/js/core/icons/step.png
|
|
94
|
+
- common/src/js/core/icons/step_disabled.png
|
|
95
|
+
- common/src/js/core/InjectedRemoteRunner.html
|
|
96
|
+
- common/src/js/core/lib/cssQuery/cssQuery-p.js
|
|
97
|
+
- common/src/js/core/lib/cssQuery/src/cssQuery-level2.js
|
|
98
|
+
- common/src/js/core/lib/cssQuery/src/cssQuery-level3.js
|
|
99
|
+
- common/src/js/core/lib/cssQuery/src/cssQuery-standard.js
|
|
100
|
+
- common/src/js/core/lib/cssQuery/src/cssQuery.js
|
|
101
|
+
- common/src/js/core/lib/prototype.js
|
|
102
|
+
- common/src/js/core/lib/scriptaculous/builder.js
|
|
103
|
+
- common/src/js/core/lib/scriptaculous/controls.js
|
|
104
|
+
- common/src/js/core/lib/scriptaculous/dragdrop.js
|
|
105
|
+
- common/src/js/core/lib/scriptaculous/effects.js
|
|
106
|
+
- common/src/js/core/lib/scriptaculous/scriptaculous.js
|
|
107
|
+
- common/src/js/core/lib/scriptaculous/slider.js
|
|
108
|
+
- common/src/js/core/lib/scriptaculous/unittest.js
|
|
109
|
+
- common/src/js/core/lib/snapsie.js
|
|
110
|
+
- common/src/js/core/RemoteRunner.html
|
|
111
|
+
- common/src/js/core/scripts/find_matching_child.js
|
|
112
|
+
- common/src/js/core/scripts/htmlutils.js
|
|
113
|
+
- common/src/js/core/scripts/injection.html
|
|
114
|
+
- common/src/js/core/scripts/selenium-api.js
|
|
115
|
+
- common/src/js/core/scripts/selenium-browserbot.js
|
|
116
|
+
- common/src/js/core/scripts/selenium-browserdetect.js
|
|
117
|
+
- common/src/js/core/scripts/selenium-commandhandlers.js
|
|
118
|
+
- common/src/js/core/scripts/selenium-executionloop.js
|
|
119
|
+
- common/src/js/core/scripts/selenium-logging.js
|
|
120
|
+
- common/src/js/core/scripts/selenium-remoterunner.js
|
|
121
|
+
- common/src/js/core/scripts/selenium-testrunner.js
|
|
122
|
+
- common/src/js/core/scripts/selenium-version.js
|
|
123
|
+
- common/src/js/core/scripts/ui-doc.html
|
|
124
|
+
- common/src/js/core/scripts/ui-element.js
|
|
125
|
+
- common/src/js/core/scripts/ui-map-sample.js
|
|
126
|
+
- common/src/js/core/scripts/user-extensions.js
|
|
127
|
+
- common/src/js/core/scripts/user-extensions.js.sample
|
|
128
|
+
- common/src/js/core/scripts/xmlextras.js
|
|
129
|
+
- common/src/js/core/selenium-logo.png
|
|
130
|
+
- common/src/js/core/selenium-test.css
|
|
131
|
+
- common/src/js/core/selenium.css
|
|
132
|
+
- common/src/js/core/SeleniumLog.html
|
|
133
|
+
- common/src/js/core/TestPrompt.html
|
|
134
|
+
- common/src/js/core/TestRunner-splash.html
|
|
135
|
+
- common/src/js/core/TestRunner.html
|
|
136
|
+
- common/src/js/core/xpath/dom.js
|
|
137
|
+
- common/src/js/core/xpath/javascript-xpath-0.1.11.js
|
|
138
|
+
- common/src/js/core/xpath/util.js
|
|
139
|
+
- common/src/js/core/xpath/xmltoken.js
|
|
140
|
+
- common/src/js/core/xpath/xpath.js
|
|
85
141
|
- common/src/js/extension/dommessenger.js
|
|
86
142
|
- common/src/js/extension/README
|
|
87
143
|
- common/src/js/factory.js
|
|
88
144
|
- common/src/js/future.js
|
|
145
|
+
- common/src/js/jsunit/app/css/jsUnitStyle.css
|
|
146
|
+
- common/src/js/jsunit/app/css/readme
|
|
147
|
+
- common/src/js/jsunit/app/emptyPage.html
|
|
148
|
+
- common/src/js/jsunit/app/jsUnitCore.js
|
|
149
|
+
- common/src/js/jsunit/app/jsUnitMockTimeout.js
|
|
150
|
+
- common/src/js/jsunit/app/jsUnitTestManager.js
|
|
151
|
+
- common/src/js/jsunit/app/jsUnitTestSuite.js
|
|
152
|
+
- common/src/js/jsunit/app/jsUnitTracer.js
|
|
153
|
+
- common/src/js/jsunit/app/jsUnitVersionCheck.js
|
|
154
|
+
- common/src/js/jsunit/app/main-counts-errors.html
|
|
155
|
+
- common/src/js/jsunit/app/main-counts-failures.html
|
|
156
|
+
- common/src/js/jsunit/app/main-counts-runs.html
|
|
157
|
+
- common/src/js/jsunit/app/main-counts.html
|
|
158
|
+
- common/src/js/jsunit/app/main-data.html
|
|
159
|
+
- common/src/js/jsunit/app/main-errors.html
|
|
160
|
+
- common/src/js/jsunit/app/main-frame.html
|
|
161
|
+
- common/src/js/jsunit/app/main-loader.html
|
|
162
|
+
- common/src/js/jsunit/app/main-progress.html
|
|
163
|
+
- common/src/js/jsunit/app/main-results.html
|
|
164
|
+
- common/src/js/jsunit/app/main-status.html
|
|
165
|
+
- common/src/js/jsunit/app/testContainer.html
|
|
166
|
+
- common/src/js/jsunit/app/testContainerController.html
|
|
167
|
+
- common/src/js/jsunit/app/xbDebug.js
|
|
168
|
+
- common/src/js/jsunit/changelog.txt
|
|
169
|
+
- common/src/js/jsunit/css/jsUnitStyle.css
|
|
170
|
+
- common/src/js/jsunit/images/green.gif
|
|
171
|
+
- common/src/js/jsunit/images/logo_jsunit.gif
|
|
172
|
+
- common/src/js/jsunit/images/powerby-transparent.gif
|
|
173
|
+
- common/src/js/jsunit/images/red.gif
|
|
174
|
+
- common/src/js/jsunit/licenses/gpl-2.txt
|
|
175
|
+
- common/src/js/jsunit/licenses/index.html
|
|
176
|
+
- common/src/js/jsunit/licenses/JDOM_license.txt
|
|
177
|
+
- common/src/js/jsunit/licenses/Jetty_license.html
|
|
178
|
+
- common/src/js/jsunit/licenses/lgpl-2.1.txt
|
|
179
|
+
- common/src/js/jsunit/licenses/MPL-1.1.txt
|
|
180
|
+
- common/src/js/jsunit/licenses/mpl-tri-license-c.txt
|
|
181
|
+
- common/src/js/jsunit/licenses/mpl-tri-license-html.txt
|
|
182
|
+
- common/src/js/jsunit/readme.txt
|
|
183
|
+
- common/src/js/jsunit/testRunner.html
|
|
184
|
+
- common/src/js/jsunit/version.txt
|
|
89
185
|
- common/src/js/jsunit.js
|
|
90
186
|
- common/src/js/key.js
|
|
91
187
|
- common/src/js/localcommandprocessor.js
|
|
@@ -121,9 +217,14 @@ files:
|
|
|
121
217
|
- firefox/src/extension/idl/nsICommandProcessor.idl
|
|
122
218
|
- firefox/src/extension/idl/nsIResponseHandler.idl
|
|
123
219
|
- firefox/src/extension/install.rdf
|
|
220
|
+
- firefox/prebuilt/linux/Release/libwebdriver-firefox.so
|
|
221
|
+
- firefox/prebuilt/linux/Release/x_ignore_nofocus.so
|
|
222
|
+
- firefox/prebuilt/linux64/Release/libwebdriver-firefox.so
|
|
223
|
+
- firefox/prebuilt/linux64/Release/x_ignore_nofocus.so
|
|
124
224
|
- firefox/prebuilt/nsICommandProcessor.xpt
|
|
125
225
|
- firefox/prebuilt/nsINativeEvents.xpt
|
|
126
226
|
- firefox/prebuilt/nsIResponseHandler.xpt
|
|
227
|
+
- firefox/prebuilt/Win32/Release/webdriver-firefox.dll
|
|
127
228
|
- chrome/src/rb/lib/selenium/webdriver/chrome/bridge.rb
|
|
128
229
|
- chrome/src/rb/lib/selenium/webdriver/chrome/command_executor.rb
|
|
129
230
|
- chrome/src/rb/lib/selenium/webdriver/chrome/launcher.rb
|
|
@@ -143,11 +244,7 @@ files:
|
|
|
143
244
|
- jobbie/src/rb/lib/selenium/webdriver/ie/util.rb
|
|
144
245
|
- jobbie/src/rb/lib/selenium/webdriver/ie.rb
|
|
145
246
|
- jobbie/prebuilt/Win32/Release/InternetExplorerDriver.dll
|
|
146
|
-
- jobbie/prebuilt/Win32/Release/webdriver-ie-test.dll
|
|
147
|
-
- jobbie/prebuilt/Win32/Release/webdriver-ie.dll
|
|
148
247
|
- jobbie/prebuilt/x64/Release/InternetExplorerDriver.dll
|
|
149
|
-
- jobbie/prebuilt/x64/Release/webdriver-ie-test.dll
|
|
150
|
-
- jobbie/prebuilt/x64/Release/webdriver-ie.dll
|
|
151
248
|
- remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb
|
|
152
249
|
- remote/client/src/rb/lib/selenium/webdriver/remote/capabilities.rb
|
|
153
250
|
- remote/client/src/rb/lib/selenium/webdriver/remote/commands.rb
|