selenium-webdriver 2.53.4 → 3.8.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.
- checksums.yaml +7 -0
- data/CHANGES +363 -10
- data/LICENSE +1 -1
- data/README.md +2 -3
- data/lib/selenium-webdriver.rb +0 -2
- data/lib/selenium/server.rb +69 -70
- data/lib/selenium/webdriver.rb +32 -23
- data/lib/selenium/webdriver/atoms.rb +18 -0
- data/lib/selenium/webdriver/atoms/getAttribute.js +8 -0
- data/lib/selenium/webdriver/chrome.rb +8 -6
- data/lib/selenium/webdriver/chrome/driver.rb +112 -0
- data/lib/selenium/webdriver/chrome/options.rb +168 -0
- data/lib/selenium/webdriver/chrome/profile.rb +17 -17
- data/lib/selenium/webdriver/chrome/service.rb +22 -89
- data/lib/selenium/webdriver/common.rb +13 -6
- data/lib/selenium/webdriver/common/action_builder.rb +49 -57
- data/lib/selenium/webdriver/common/alert.rb +5 -15
- data/lib/selenium/webdriver/common/bridge_helper.rb +10 -17
- data/lib/selenium/webdriver/common/driver.rb +53 -68
- data/lib/selenium/webdriver/common/driver_extensions/{has_input_devices.rb → has_addons.rb} +13 -23
- data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +4 -8
- data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +4 -7
- data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +0 -4
- data/lib/selenium/webdriver/common/driver_extensions/has_session_id.rb +0 -4
- data/lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb +1 -5
- data/lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb +0 -5
- data/lib/selenium/webdriver/common/driver_extensions/rotatable.rb +4 -9
- data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +7 -7
- data/lib/selenium/webdriver/common/driver_extensions/uploads_files.rb +2 -7
- data/lib/selenium/webdriver/common/element.rb +57 -39
- data/lib/selenium/webdriver/common/error.rb +204 -106
- data/lib/selenium/webdriver/common/file_reaper.rb +3 -11
- data/lib/selenium/webdriver/common/html5/local_storage.rb +6 -10
- data/lib/selenium/webdriver/common/html5/session_storage.rb +6 -10
- data/lib/selenium/webdriver/common/html5/shared_web_storage.rb +7 -18
- data/lib/selenium/webdriver/{safari/options.rb → common/interactions/input_device.rb} +20 -31
- data/lib/selenium/webdriver/common/interactions/interaction.rb +50 -0
- data/lib/selenium/webdriver/{safari/browser.rb → common/interactions/interactions.rb} +16 -15
- data/lib/selenium/webdriver/common/interactions/key_actions.rb +143 -0
- data/lib/selenium/webdriver/common/interactions/key_input.rb +62 -0
- data/lib/selenium/webdriver/{android.rb → common/interactions/none_input.rb} +11 -6
- data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +353 -0
- data/lib/selenium/webdriver/common/interactions/pointer_input.rb +132 -0
- data/lib/selenium/webdriver/common/keyboard.rb +7 -14
- data/lib/selenium/webdriver/common/keys.rb +99 -82
- data/lib/selenium/webdriver/common/log_entry.rb +3 -6
- data/lib/selenium/webdriver/common/logger.rb +140 -0
- data/lib/selenium/webdriver/common/logs.rb +2 -6
- data/lib/selenium/webdriver/common/mouse.rb +9 -14
- data/lib/selenium/webdriver/common/navigation.rb +2 -6
- data/lib/selenium/webdriver/common/options.rb +20 -23
- data/lib/selenium/webdriver/common/platform.rb +70 -97
- data/lib/selenium/webdriver/common/port_prober.rb +3 -4
- data/lib/selenium/webdriver/common/profile_helper.rb +6 -11
- data/lib/selenium/webdriver/common/proxy.rb +58 -72
- data/lib/selenium/webdriver/common/search_context.rb +22 -29
- data/lib/selenium/webdriver/common/service.rb +161 -0
- data/lib/selenium/webdriver/common/socket_lock.rb +6 -14
- data/lib/selenium/webdriver/common/socket_poller.rb +5 -12
- data/lib/selenium/webdriver/common/target_locator.rb +11 -15
- data/lib/selenium/webdriver/common/timeouts.rb +4 -8
- data/lib/selenium/webdriver/common/touch_action_builder.rb +2 -6
- data/lib/selenium/webdriver/common/touch_screen.rb +19 -23
- data/lib/selenium/webdriver/common/w3c_action_builder.rb +209 -0
- data/lib/selenium/webdriver/{phantomjs.rb → common/w3c_options.rb} +16 -14
- data/lib/selenium/webdriver/common/wait.rb +6 -13
- data/lib/selenium/webdriver/common/window.rb +48 -17
- data/lib/selenium/webdriver/common/zipper.rb +6 -10
- data/lib/selenium/webdriver/edge.rb +5 -12
- data/lib/selenium/webdriver/edge/bridge.rb +32 -63
- data/lib/selenium/webdriver/edge/driver.rb +73 -0
- data/lib/selenium/webdriver/edge/service.rb +18 -87
- data/lib/selenium/webdriver/firefox.rb +20 -11
- data/lib/selenium/webdriver/firefox/binary.rb +40 -56
- data/lib/selenium/webdriver/firefox/driver.rb +48 -0
- data/lib/selenium/webdriver/firefox/extension.rb +18 -8
- data/lib/selenium/webdriver/firefox/extension/prefs.json +3 -11
- data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
- data/lib/selenium/webdriver/firefox/launcher.rb +13 -22
- data/lib/selenium/webdriver/firefox/legacy/driver.rb +79 -0
- data/lib/selenium/webdriver/{iphone.rb → firefox/marionette/bridge.rb} +25 -6
- data/lib/selenium/webdriver/firefox/marionette/driver.rb +96 -0
- data/lib/selenium/webdriver/firefox/options.rb +149 -0
- data/lib/selenium/webdriver/firefox/profile.rb +46 -46
- data/lib/selenium/webdriver/firefox/profiles_ini.rb +8 -18
- data/lib/selenium/webdriver/firefox/service.rb +23 -83
- data/lib/selenium/webdriver/firefox/util.rb +0 -4
- data/lib/selenium/webdriver/ie.rb +4 -8
- data/lib/selenium/webdriver/ie/driver.rb +90 -0
- data/lib/selenium/webdriver/ie/options.rb +136 -0
- data/lib/selenium/webdriver/ie/service.rb +58 -0
- data/lib/selenium/webdriver/remote.rb +8 -16
- data/lib/selenium/webdriver/remote/bridge.rb +96 -565
- data/lib/selenium/webdriver/remote/capabilities.rb +76 -94
- data/lib/selenium/webdriver/remote/driver.rb +49 -0
- data/lib/selenium/webdriver/remote/http/common.rb +22 -20
- data/lib/selenium/webdriver/remote/http/curb.rb +9 -12
- data/lib/selenium/webdriver/remote/http/default.rb +54 -41
- data/lib/selenium/webdriver/remote/http/persistent.rb +9 -8
- data/lib/selenium/webdriver/remote/oss/bridge.rb +586 -0
- data/lib/selenium/webdriver/remote/oss/commands.rb +221 -0
- data/lib/selenium/webdriver/remote/response.rb +39 -27
- data/lib/selenium/webdriver/remote/server_error.rb +1 -5
- data/lib/selenium/webdriver/remote/w3c/bridge.rb +573 -0
- data/lib/selenium/webdriver/remote/w3c/capabilities.rb +290 -0
- data/lib/selenium/webdriver/remote/w3c/commands.rb +148 -0
- data/lib/selenium/webdriver/safari.rb +20 -29
- data/lib/selenium/webdriver/{firefox/w3c_bridge.rb → safari/driver.rb} +21 -30
- data/lib/selenium/webdriver/safari/service.rb +57 -0
- data/lib/selenium/webdriver/support.rb +1 -2
- data/lib/selenium/webdriver/support/abstract_event_listener.rb +17 -4
- data/lib/selenium/webdriver/support/block_event_listener.rb +1 -5
- data/lib/selenium/webdriver/support/color.rb +57 -42
- data/lib/selenium/webdriver/support/escaper.rb +41 -0
- data/lib/selenium/webdriver/support/event_firing_bridge.rb +36 -40
- data/lib/selenium/webdriver/support/select.rb +33 -86
- data/selenium-webdriver.gemspec +22 -25
- metadata +254 -261
- data/lib/selenium-client.rb +0 -21
- data/lib/selenium/client.rb +0 -57
- data/lib/selenium/client/base.rb +0 -151
- data/lib/selenium/client/driver.rb +0 -29
- data/lib/selenium/client/errors.rb +0 -28
- data/lib/selenium/client/extensions.rb +0 -132
- data/lib/selenium/client/idiomatic.rb +0 -507
- data/lib/selenium/client/javascript_expression_builder.rb +0 -135
- data/lib/selenium/client/javascript_frameworks/jquery.rb +0 -32
- data/lib/selenium/client/javascript_frameworks/prototype.rb +0 -32
- data/lib/selenium/client/legacy_driver.rb +0 -1722
- data/lib/selenium/client/protocol.rb +0 -123
- data/lib/selenium/client/selenium_helper.rb +0 -49
- data/lib/selenium/rake/server_task.rb +0 -176
- data/lib/selenium/webdriver/android/bridge.rb +0 -68
- data/lib/selenium/webdriver/chrome/bridge.rb +0 -139
- data/lib/selenium/webdriver/common/core_ext/base64.rb +0 -28
- data/lib/selenium/webdriver/common/core_ext/dir.rb +0 -61
- data/lib/selenium/webdriver/common/html5/location.rb +0 -19
- data/lib/selenium/webdriver/common/w3c_error.rb +0 -194
- data/lib/selenium/webdriver/edge/legacy_support.rb +0 -117
- data/lib/selenium/webdriver/firefox/bridge.rb +0 -89
- data/lib/selenium/webdriver/ie/bridge.rb +0 -88
- data/lib/selenium/webdriver/ie/server.rb +0 -133
- data/lib/selenium/webdriver/iphone/bridge.rb +0 -64
- data/lib/selenium/webdriver/phantomjs/bridge.rb +0 -78
- data/lib/selenium/webdriver/phantomjs/service.rb +0 -130
- data/lib/selenium/webdriver/remote/commands.rb +0 -211
- data/lib/selenium/webdriver/remote/w3c_bridge.rb +0 -668
- data/lib/selenium/webdriver/remote/w3c_capabilities.rb +0 -236
- data/lib/selenium/webdriver/remote/w3c_commands.rb +0 -132
- data/lib/selenium/webdriver/safari/bridge.rb +0 -135
- data/lib/selenium/webdriver/safari/resources/client.js +0 -7255
- data/lib/selenium/webdriver/safari/server.rb +0 -187
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
#
|
|
3
1
|
# Licensed to the Software Freedom Conservancy (SFC) under one
|
|
4
2
|
# or more contributor license agreements. See the NOTICE file
|
|
5
3
|
# distributed with this work for additional information
|
|
@@ -21,118 +19,144 @@ module Selenium
|
|
|
21
19
|
module WebDriver
|
|
22
20
|
module Error
|
|
23
21
|
|
|
22
|
+
#
|
|
23
|
+
# Returns exception from code (Integer - OSS, String - W3C).
|
|
24
|
+
# @param [Integer, String, nil] code
|
|
25
|
+
#
|
|
26
|
+
|
|
27
|
+
def self.for_code(code)
|
|
28
|
+
case code
|
|
29
|
+
when nil, 0
|
|
30
|
+
nil
|
|
31
|
+
when Integer
|
|
32
|
+
ERRORS.fetch(code)
|
|
33
|
+
when String
|
|
34
|
+
klass_name = code.split(' ').map(&:capitalize).join.sub(/Error$/, '')
|
|
35
|
+
const_get("#{klass_name}Error")
|
|
36
|
+
end
|
|
37
|
+
rescue NameError
|
|
38
|
+
WebDriverError
|
|
39
|
+
end
|
|
40
|
+
|
|
24
41
|
class WebDriverError < StandardError; end
|
|
25
|
-
class UnsupportedOperationError < WebDriverError; end
|
|
26
42
|
|
|
27
|
-
class IndexOutOfBoundsError < WebDriverError; end
|
|
28
|
-
class NoCollectionError < WebDriverError; end
|
|
29
|
-
class NoStringError < WebDriverError; end
|
|
30
|
-
class NoStringLengthError < WebDriverError; end
|
|
31
|
-
class NoStringWrapperError < WebDriverError; end
|
|
32
|
-
class NoSuchDriverError < WebDriverError; end
|
|
43
|
+
class IndexOutOfBoundsError < WebDriverError; end # 1
|
|
44
|
+
class NoCollectionError < WebDriverError; end # 2
|
|
45
|
+
class NoStringError < WebDriverError; end # 3
|
|
46
|
+
class NoStringLengthError < WebDriverError; end # 4
|
|
47
|
+
class NoStringWrapperError < WebDriverError; end # 5
|
|
48
|
+
class NoSuchDriverError < WebDriverError; end # 6
|
|
33
49
|
|
|
34
50
|
#
|
|
35
|
-
# An element could not be located on the page using the given search
|
|
36
|
-
# parameters.
|
|
51
|
+
# An element could not be located on the page using the given search parameters.
|
|
37
52
|
#
|
|
38
53
|
|
|
39
|
-
class NoSuchElementError < WebDriverError; end
|
|
54
|
+
class NoSuchElementError < WebDriverError; end # 7
|
|
40
55
|
|
|
41
56
|
#
|
|
42
|
-
# A
|
|
43
|
-
# frame could not be found.
|
|
57
|
+
# A command to switch to a frame could not be satisfied because the frame could not be found.
|
|
44
58
|
#
|
|
45
59
|
|
|
46
|
-
class NoSuchFrameError < WebDriverError; end
|
|
47
|
-
class UnknownCommandError < WebDriverError; end # 9
|
|
60
|
+
class NoSuchFrameError < WebDriverError; end # 8
|
|
48
61
|
|
|
62
|
+
#
|
|
63
|
+
# A command could not be executed because the remote end is not aware of it.
|
|
64
|
+
#
|
|
65
|
+
|
|
66
|
+
class UnknownCommandError < WebDriverError; end # 9
|
|
49
67
|
|
|
50
68
|
#
|
|
51
|
-
#
|
|
52
|
-
# no longer appears in the DOM of the page.
|
|
69
|
+
# A command failed because the referenced element is no longer attached to the DOM.
|
|
53
70
|
#
|
|
54
71
|
|
|
55
|
-
class StaleElementReferenceError < WebDriverError; end
|
|
72
|
+
class StaleElementReferenceError < WebDriverError; end # 10
|
|
56
73
|
|
|
57
74
|
#
|
|
58
|
-
# Raised to indicate that although an element is present on the DOM,
|
|
59
|
-
#
|
|
75
|
+
# Raised to indicate that although an element is present on the DOM, it is not visible, and
|
|
76
|
+
# so is not able to be interacted with.
|
|
60
77
|
#
|
|
61
78
|
|
|
62
|
-
class ElementNotVisibleError < WebDriverError; end
|
|
79
|
+
class ElementNotVisibleError < WebDriverError; end # 11
|
|
63
80
|
|
|
64
81
|
#
|
|
65
|
-
#
|
|
66
|
-
#
|
|
82
|
+
# The target element is in an invalid state, rendering it impossible to interact with, for
|
|
83
|
+
# example if you click a disabled element.
|
|
67
84
|
#
|
|
68
85
|
|
|
69
|
-
class InvalidElementStateError < WebDriverError; end
|
|
86
|
+
class InvalidElementStateError < WebDriverError; end # 12
|
|
70
87
|
|
|
71
88
|
#
|
|
72
|
-
# An unknown
|
|
89
|
+
# An unknown error occurred in the remote end while processing the command.
|
|
73
90
|
#
|
|
74
91
|
|
|
75
|
-
class UnknownError < WebDriverError; end
|
|
76
|
-
class ExpectedError < WebDriverError; end
|
|
92
|
+
class UnknownError < WebDriverError; end # 13
|
|
93
|
+
class ExpectedError < WebDriverError; end # 14
|
|
77
94
|
|
|
78
95
|
#
|
|
79
96
|
# An attempt was made to select an element that cannot be selected.
|
|
80
97
|
#
|
|
81
98
|
|
|
82
|
-
class ElementNotSelectableError < WebDriverError; end
|
|
83
|
-
class NoSuchDocumentError < WebDriverError; end
|
|
99
|
+
class ElementNotSelectableError < WebDriverError; end # 15
|
|
100
|
+
class NoSuchDocumentError < WebDriverError; end # 16
|
|
84
101
|
|
|
85
102
|
#
|
|
86
|
-
# An error occurred while executing
|
|
103
|
+
# An error occurred while executing JavaScript supplied by the user.
|
|
87
104
|
#
|
|
88
105
|
|
|
89
|
-
class JavascriptError < WebDriverError; end
|
|
90
|
-
class NoScriptResultError < WebDriverError; end
|
|
106
|
+
class JavascriptError < WebDriverError; end # 17
|
|
107
|
+
class NoScriptResultError < WebDriverError; end # 18
|
|
91
108
|
|
|
92
109
|
#
|
|
93
110
|
# An error occurred while searching for an element by XPath.
|
|
94
111
|
#
|
|
95
112
|
|
|
96
|
-
class XPathLookupError < WebDriverError; end
|
|
97
|
-
class NoSuchCollectionError < WebDriverError; end
|
|
113
|
+
class XPathLookupError < WebDriverError; end # 19
|
|
114
|
+
class NoSuchCollectionError < WebDriverError; end # 20
|
|
98
115
|
|
|
99
116
|
#
|
|
100
|
-
#
|
|
117
|
+
# An operation did not complete before its timeout expired.
|
|
101
118
|
#
|
|
102
119
|
|
|
103
|
-
class TimeOutError < WebDriverError; end
|
|
104
|
-
|
|
105
|
-
class
|
|
120
|
+
class TimeOutError < WebDriverError; end # 21
|
|
121
|
+
|
|
122
|
+
class NullPointerError < WebDriverError; end # 22
|
|
123
|
+
class NoSuchWindowError < WebDriverError; end # 23
|
|
106
124
|
|
|
107
125
|
#
|
|
108
|
-
#
|
|
109
|
-
# the current URL.
|
|
126
|
+
# An illegal attempt was made to set a cookie under a different domain than the current page.
|
|
110
127
|
#
|
|
111
128
|
|
|
112
|
-
class InvalidCookieDomainError < WebDriverError; end
|
|
129
|
+
class InvalidCookieDomainError < WebDriverError; end # 24
|
|
113
130
|
|
|
114
131
|
#
|
|
115
|
-
#
|
|
132
|
+
# A command to set a cookie's value could not be satisfied.
|
|
116
133
|
#
|
|
117
134
|
|
|
118
|
-
class UnableToSetCookieError < WebDriverError; end
|
|
135
|
+
class UnableToSetCookieError < WebDriverError; end # 25
|
|
119
136
|
|
|
120
137
|
#
|
|
121
138
|
# Raised when an alert dialog is present that has not been dealt with.
|
|
122
139
|
#
|
|
123
|
-
class UnhandledAlertError < WebDriverError; end
|
|
140
|
+
class UnhandledAlertError < WebDriverError; end # 26
|
|
124
141
|
|
|
125
142
|
#
|
|
126
|
-
#
|
|
143
|
+
# An attempt was made to operate on a modal dialog when one was not open:
|
|
144
|
+
#
|
|
145
|
+
# * W3C dialect is NoSuchAlertError
|
|
146
|
+
# * OSS dialect is NoAlertPresentError
|
|
147
|
+
#
|
|
148
|
+
# We want to allow clients to rescue NoSuchAlertError as a superclass for
|
|
149
|
+
# dialect-agnostic implementation, so NoAlertPresentError should inherit from it.
|
|
127
150
|
#
|
|
128
151
|
|
|
129
|
-
class
|
|
152
|
+
class NoSuchAlertError < WebDriverError; end
|
|
153
|
+
class NoAlertPresentError < NoSuchAlertError; end # 27
|
|
130
154
|
|
|
131
155
|
#
|
|
132
156
|
# A script did not complete before its timeout expired.
|
|
133
157
|
#
|
|
134
158
|
|
|
135
|
-
class ScriptTimeOutError < WebDriverError; end
|
|
159
|
+
class ScriptTimeOutError < WebDriverError; end # 28
|
|
136
160
|
|
|
137
161
|
#
|
|
138
162
|
# The coordinates provided to an interactions operation are invalid.
|
|
@@ -141,12 +165,11 @@ module Selenium
|
|
|
141
165
|
class InvalidElementCoordinatesError < WebDriverError; end # 29
|
|
142
166
|
|
|
143
167
|
#
|
|
144
|
-
# Indicates that IME support is not available. This exception is rasied
|
|
145
|
-
#
|
|
146
|
-
# the machine.
|
|
168
|
+
# Indicates that IME support is not available. This exception is rasied for every IME-related
|
|
169
|
+
# method call if IME support is not available on the machine.
|
|
147
170
|
#
|
|
148
171
|
|
|
149
|
-
class IMENotAvailableError < WebDriverError; end
|
|
172
|
+
class IMENotAvailableError < WebDriverError; end # 30
|
|
150
173
|
|
|
151
174
|
#
|
|
152
175
|
# Indicates that activating an IME engine has failed.
|
|
@@ -155,73 +178,148 @@ module Selenium
|
|
|
155
178
|
class IMEEngineActivationFailedError < WebDriverError; end # 31
|
|
156
179
|
|
|
157
180
|
#
|
|
158
|
-
# Argument was an invalid selector
|
|
181
|
+
# Argument was an invalid selector.
|
|
159
182
|
#
|
|
160
183
|
|
|
161
|
-
class InvalidSelectorError < WebDriverError; end
|
|
184
|
+
class InvalidSelectorError < WebDriverError; end # 32
|
|
162
185
|
|
|
163
186
|
#
|
|
164
187
|
# A new session could not be created.
|
|
165
188
|
#
|
|
166
189
|
|
|
167
|
-
class SessionNotCreatedError < WebDriverError; end
|
|
190
|
+
class SessionNotCreatedError < WebDriverError; end # 33
|
|
191
|
+
|
|
192
|
+
#
|
|
193
|
+
# The target for mouse interaction is not in the browser's viewport and cannot be brought
|
|
194
|
+
# into that viewport.
|
|
195
|
+
#
|
|
196
|
+
|
|
197
|
+
class MoveTargetOutOfBoundsError < WebDriverError; end # 34
|
|
198
|
+
|
|
199
|
+
#
|
|
200
|
+
# Indicates that the XPath selector is invalid
|
|
201
|
+
#
|
|
202
|
+
|
|
203
|
+
class InvalidXpathSelectorError < WebDriverError; end
|
|
204
|
+
class InvalidXpathSelectorReturnTyperError < WebDriverError; end
|
|
205
|
+
|
|
206
|
+
#
|
|
207
|
+
# A command could not be completed because the element is not pointer or keyboard
|
|
208
|
+
# interactable.
|
|
209
|
+
#
|
|
210
|
+
|
|
211
|
+
class ElementNotInteractableError < WebDriverError; end
|
|
212
|
+
|
|
213
|
+
#
|
|
214
|
+
# The arguments passed to a command are either invalid or malformed.
|
|
215
|
+
#
|
|
216
|
+
|
|
217
|
+
class InvalidArgumentError < WebDriverError; end
|
|
218
|
+
|
|
219
|
+
#
|
|
220
|
+
# No cookie matching the given path name was found amongst the associated cookies of the
|
|
221
|
+
# current browsing context's active document.
|
|
222
|
+
#
|
|
223
|
+
|
|
224
|
+
class NoSuchCookieError < WebDriverError; end
|
|
225
|
+
|
|
226
|
+
#
|
|
227
|
+
# A screen capture was made impossible.
|
|
228
|
+
#
|
|
229
|
+
|
|
230
|
+
class UnableToCaptureScreenError < WebDriverError; end
|
|
231
|
+
|
|
232
|
+
#
|
|
233
|
+
# Occurs if the given session id is not in the list of active sessions, meaning the session
|
|
234
|
+
# either does not exist or that it's not active.
|
|
235
|
+
#
|
|
236
|
+
|
|
237
|
+
class InvalidSessionIdError < WebDriverError; end
|
|
238
|
+
|
|
239
|
+
#
|
|
240
|
+
# A modal dialog was open, blocking this operation.
|
|
241
|
+
#
|
|
242
|
+
|
|
243
|
+
class UnexpectedAlertOpenError < WebDriverError; end
|
|
168
244
|
|
|
169
245
|
#
|
|
170
|
-
#
|
|
171
|
-
# invalid, e.g. outside of the bounds of the window.
|
|
246
|
+
# The requested command matched a known URL but did not match an method for that URL.
|
|
172
247
|
#
|
|
173
248
|
|
|
174
|
-
class
|
|
249
|
+
class UnknownMethodError < WebDriverError; end
|
|
175
250
|
|
|
251
|
+
#
|
|
252
|
+
# The Element Click command could not be completed because the element receiving the events
|
|
253
|
+
# is obscuring the element that was requested clicked.
|
|
254
|
+
#
|
|
255
|
+
|
|
256
|
+
class ElementClickInterceptedError < WebDriverError; end
|
|
257
|
+
|
|
258
|
+
#
|
|
259
|
+
# Indicates that a command that should have executed properly cannot be supported for some
|
|
260
|
+
# reason.
|
|
261
|
+
#
|
|
262
|
+
|
|
263
|
+
class UnsupportedOperationError < WebDriverError; end
|
|
264
|
+
|
|
265
|
+
# Aliases for OSS dialect.
|
|
266
|
+
ScriptTimeoutError = ScriptTimeOutError
|
|
267
|
+
NoAlertOpenError = NoAlertPresentError
|
|
268
|
+
|
|
269
|
+
# Aliases for backwards compatibility.
|
|
270
|
+
ObsoleteElementError = StaleElementReferenceError
|
|
271
|
+
UnhandledError = UnknownError
|
|
272
|
+
UnexpectedJavascriptError = JavascriptError
|
|
273
|
+
ElementNotDisplayedError = ElementNotVisibleError
|
|
274
|
+
|
|
275
|
+
#
|
|
176
276
|
# @api private
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
end
|
|
224
|
-
end
|
|
277
|
+
#
|
|
278
|
+
|
|
279
|
+
ERRORS = {
|
|
280
|
+
1 => IndexOutOfBoundsError,
|
|
281
|
+
2 => NoCollectionError,
|
|
282
|
+
3 => NoStringError,
|
|
283
|
+
4 => NoStringLengthError,
|
|
284
|
+
5 => NoStringWrapperError,
|
|
285
|
+
6 => NoSuchDriverError,
|
|
286
|
+
7 => NoSuchElementError,
|
|
287
|
+
8 => NoSuchFrameError,
|
|
288
|
+
9 => UnknownCommandError,
|
|
289
|
+
10 => StaleElementReferenceError,
|
|
290
|
+
11 => ElementNotVisibleError,
|
|
291
|
+
12 => InvalidElementStateError,
|
|
292
|
+
13 => UnknownError,
|
|
293
|
+
14 => ExpectedError,
|
|
294
|
+
15 => ElementNotSelectableError,
|
|
295
|
+
16 => NoSuchDocumentError,
|
|
296
|
+
17 => JavascriptError,
|
|
297
|
+
18 => NoScriptResultError,
|
|
298
|
+
19 => XPathLookupError,
|
|
299
|
+
20 => NoSuchCollectionError,
|
|
300
|
+
21 => TimeOutError,
|
|
301
|
+
22 => NullPointerError,
|
|
302
|
+
23 => NoSuchWindowError,
|
|
303
|
+
24 => InvalidCookieDomainError,
|
|
304
|
+
25 => UnableToSetCookieError,
|
|
305
|
+
26 => UnhandledAlertError,
|
|
306
|
+
27 => NoAlertPresentError,
|
|
307
|
+
28 => ScriptTimeOutError,
|
|
308
|
+
29 => InvalidElementCoordinatesError,
|
|
309
|
+
30 => IMENotAvailableError,
|
|
310
|
+
31 => IMEEngineActivationFailedError,
|
|
311
|
+
32 => InvalidSelectorError,
|
|
312
|
+
33 => SessionNotCreatedError,
|
|
313
|
+
34 => MoveTargetOutOfBoundsError,
|
|
314
|
+
# The following are W3C-specific errors,
|
|
315
|
+
# they don't really need error codes, we just make them up!
|
|
316
|
+
51 => InvalidXpathSelectorError,
|
|
317
|
+
52 => InvalidXpathSelectorReturnTyperError,
|
|
318
|
+
60 => ElementNotInteractableError,
|
|
319
|
+
61 => InvalidArgumentError,
|
|
320
|
+
62 => NoSuchCookieError,
|
|
321
|
+
63 => UnableToCaptureScreenError
|
|
322
|
+
}.freeze
|
|
225
323
|
|
|
226
324
|
end # Error
|
|
227
325
|
end # WebDriver
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
#
|
|
3
1
|
# Licensed to the Software Freedom Conservancy (SFC) under one
|
|
4
2
|
# or more contributor license agreements. See the NOTICE file
|
|
5
3
|
# distributed with this work for additional information
|
|
@@ -19,21 +17,16 @@
|
|
|
19
17
|
|
|
20
18
|
module Selenium
|
|
21
19
|
module WebDriver
|
|
22
|
-
|
|
23
20
|
#
|
|
24
21
|
# @api private
|
|
25
22
|
#
|
|
26
23
|
|
|
27
24
|
module FileReaper
|
|
28
|
-
|
|
29
25
|
class << self
|
|
30
|
-
|
|
31
|
-
@reap = bool
|
|
32
|
-
end
|
|
26
|
+
attr_writer :reap
|
|
33
27
|
|
|
34
28
|
def reap?
|
|
35
|
-
@reap =
|
|
36
|
-
!!@reap
|
|
29
|
+
@reap = defined?(@reap) ? @reap : true
|
|
37
30
|
end
|
|
38
31
|
|
|
39
32
|
def tmp_files
|
|
@@ -67,7 +60,6 @@ module Selenium
|
|
|
67
60
|
|
|
68
61
|
# we *do* want child process reaping, so not using Platform.exit_hook here.
|
|
69
62
|
at_exit { reap! }
|
|
70
|
-
|
|
71
63
|
end # FileReaper
|
|
72
64
|
end # WebDriver
|
|
73
|
-
end # Selenium
|
|
65
|
+
end # Selenium
|