selenium-webdriver 3.142.7 → 4.0.0.alpha1
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 +4 -4
- data/CHANGES +21 -43
- data/lib/selenium/webdriver.rb +2 -4
- data/lib/selenium/webdriver/chrome/bridge.rb +3 -21
- data/lib/selenium/webdriver/chrome/driver.rb +12 -39
- data/lib/selenium/webdriver/chrome/options.rb +3 -7
- data/lib/selenium/webdriver/chrome/profile.rb +2 -2
- data/lib/selenium/webdriver/chrome/service.rb +4 -9
- data/lib/selenium/webdriver/common.rb +7 -16
- data/lib/selenium/webdriver/common/action_builder.rb +97 -249
- data/lib/selenium/webdriver/common/driver.rb +2 -4
- data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +1 -1
- data/lib/selenium/webdriver/common/element.rb +3 -6
- data/lib/selenium/webdriver/common/error.rb +27 -203
- data/lib/selenium/webdriver/common/interactions/key_actions.rb +5 -5
- data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +13 -13
- data/lib/selenium/webdriver/common/manager.rb +1 -1
- data/lib/selenium/webdriver/common/options.rb +148 -24
- data/lib/selenium/webdriver/common/service.rb +16 -34
- data/lib/selenium/webdriver/common/socket_poller.rb +2 -2
- data/lib/selenium/webdriver/common/w3c_options.rb +45 -0
- data/lib/selenium/webdriver/edge.rb +0 -1
- data/lib/selenium/webdriver/edge/driver.rb +14 -10
- data/lib/selenium/webdriver/edge/service.rb +6 -7
- data/lib/selenium/webdriver/firefox.rb +2 -6
- data/lib/selenium/webdriver/firefox/binary.rb +3 -80
- data/lib/selenium/webdriver/firefox/bridge.rb +47 -0
- data/lib/selenium/webdriver/firefox/driver.rb +44 -22
- data/lib/selenium/webdriver/firefox/marionette/driver.rb +1 -1
- data/lib/selenium/webdriver/firefox/options.rb +2 -2
- data/lib/selenium/webdriver/firefox/profile.rb +25 -14
- data/lib/selenium/webdriver/firefox/service.rb +4 -4
- data/lib/selenium/webdriver/ie/driver.rb +5 -18
- data/lib/selenium/webdriver/ie/options.rb +2 -2
- data/lib/selenium/webdriver/ie/service.rb +4 -4
- data/lib/selenium/webdriver/remote.rb +2 -6
- data/lib/selenium/webdriver/remote/bridge.rb +515 -69
- data/lib/selenium/webdriver/remote/capabilities.rb +77 -99
- data/lib/selenium/webdriver/remote/commands.rb +156 -0
- data/lib/selenium/webdriver/remote/driver.rb +12 -5
- data/lib/selenium/webdriver/remote/http/default.rb +0 -9
- data/lib/selenium/webdriver/remote/response.rb +16 -47
- data/lib/selenium/webdriver/safari.rb +1 -1
- data/lib/selenium/webdriver/safari/bridge.rb +3 -3
- data/lib/selenium/webdriver/safari/driver.rb +4 -1
- data/lib/selenium/webdriver/safari/service.rb +4 -4
- data/lib/selenium/webdriver/support/select.rb +1 -1
- data/lib/selenium/webdriver/version.rb +1 -1
- data/selenium-webdriver.gemspec +3 -3
- metadata +14 -5
@@ -48,8 +48,6 @@ module Selenium
|
|
48
48
|
IE::Driver.new(opts)
|
49
49
|
when :safari
|
50
50
|
Safari::Driver.new(opts)
|
51
|
-
when :phantomjs
|
52
|
-
PhantomJS::Driver.new(opts)
|
53
51
|
when :firefox, :ff
|
54
52
|
Firefox::Driver.new(opts)
|
55
53
|
when :edge
|
@@ -106,8 +104,8 @@ module Selenium
|
|
106
104
|
end
|
107
105
|
|
108
106
|
#
|
109
|
-
# @return [ActionBuilder
|
110
|
-
# @see ActionBuilder
|
107
|
+
# @return [ActionBuilder]
|
108
|
+
# @see ActionBuilder
|
111
109
|
#
|
112
110
|
|
113
111
|
def action
|
@@ -20,6 +20,8 @@
|
|
20
20
|
module Selenium
|
21
21
|
module WebDriver
|
22
22
|
class Element
|
23
|
+
ELEMENT_KEY = 'element-6066-11e4-a52e-4f735466cecf'
|
24
|
+
|
23
25
|
include SearchContext
|
24
26
|
|
25
27
|
#
|
@@ -312,12 +314,7 @@ module Selenium
|
|
312
314
|
#
|
313
315
|
|
314
316
|
def as_json(*)
|
315
|
-
|
316
|
-
'element-6066-11e4-a52e-4f735466cecf'
|
317
|
-
else
|
318
|
-
'ELEMENT'
|
319
|
-
end
|
320
|
-
@id.is_a?(Hash) ? @id : {key => @id}
|
317
|
+
@id.is_a?(Hash) ? @id : {ELEMENT_KEY => @id}
|
321
318
|
end
|
322
319
|
|
323
320
|
private
|
@@ -19,191 +19,122 @@
|
|
19
19
|
|
20
20
|
module Selenium
|
21
21
|
module WebDriver
|
22
|
-
module Error
|
22
|
+
module Error
|
23
23
|
|
24
24
|
#
|
25
|
-
# Returns exception from
|
26
|
-
# @param [
|
25
|
+
# Returns exception from its string representation.
|
26
|
+
# @param [String, nil] error
|
27
27
|
#
|
28
28
|
|
29
|
-
def self.
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
when String
|
36
|
-
klass_name = code.split(' ').map(&:capitalize).join.sub(/Error$/, '')
|
37
|
-
const_get("#{klass_name}Error", false)
|
38
|
-
end
|
39
|
-
rescue KeyError, NameError
|
29
|
+
def self.for_error(error)
|
30
|
+
return if error.nil?
|
31
|
+
|
32
|
+
klass_name = error.split(' ').map(&:capitalize).join.sub(/Error$/, '')
|
33
|
+
const_get("#{klass_name}Error", false)
|
34
|
+
rescue NameError
|
40
35
|
WebDriverError
|
41
36
|
end
|
42
37
|
|
43
38
|
class WebDriverError < StandardError; end
|
44
39
|
|
45
|
-
class IndexOutOfBoundsError < WebDriverError; end # 1
|
46
|
-
class NoCollectionError < WebDriverError; end # 2
|
47
|
-
class NoStringError < WebDriverError; end # 3
|
48
|
-
class NoStringLengthError < WebDriverError; end # 4
|
49
|
-
class NoStringWrapperError < WebDriverError; end # 5
|
50
|
-
class NoSuchDriverError < WebDriverError; end # 6
|
51
|
-
|
52
40
|
#
|
53
41
|
# An element could not be located on the page using the given search parameters.
|
54
42
|
#
|
55
43
|
|
56
|
-
class NoSuchElementError < WebDriverError; end
|
44
|
+
class NoSuchElementError < WebDriverError; end
|
57
45
|
|
58
46
|
#
|
59
47
|
# A command to switch to a frame could not be satisfied because the frame could not be found.
|
60
48
|
#
|
61
49
|
|
62
|
-
class NoSuchFrameError < WebDriverError; end
|
50
|
+
class NoSuchFrameError < WebDriverError; end
|
63
51
|
|
64
52
|
#
|
65
53
|
# A command could not be executed because the remote end is not aware of it.
|
66
54
|
#
|
67
55
|
|
68
|
-
class UnknownCommandError < WebDriverError; end
|
56
|
+
class UnknownCommandError < WebDriverError; end
|
69
57
|
|
70
58
|
#
|
71
59
|
# A command failed because the referenced element is no longer attached to the DOM.
|
72
60
|
#
|
73
61
|
|
74
|
-
class StaleElementReferenceError < WebDriverError; end
|
75
|
-
|
76
|
-
#
|
77
|
-
# Raised to indicate that although an element is present on the DOM, it is not visible, and
|
78
|
-
# so is not able to be interacted with.
|
79
|
-
#
|
80
|
-
|
81
|
-
class ElementNotVisibleError < WebDriverError; end # 11
|
62
|
+
class StaleElementReferenceError < WebDriverError; end
|
82
63
|
|
83
64
|
#
|
84
65
|
# The target element is in an invalid state, rendering it impossible to interact with, for
|
85
66
|
# example if you click a disabled element.
|
86
67
|
#
|
87
68
|
|
88
|
-
class InvalidElementStateError < WebDriverError; end
|
69
|
+
class InvalidElementStateError < WebDriverError; end
|
89
70
|
|
90
71
|
#
|
91
72
|
# An unknown error occurred in the remote end while processing the command.
|
92
73
|
#
|
93
74
|
|
94
|
-
class UnknownError < WebDriverError; end
|
95
|
-
class ExpectedError < WebDriverError; end # 14
|
96
|
-
|
97
|
-
#
|
98
|
-
# An attempt was made to select an element that cannot be selected.
|
99
|
-
#
|
100
|
-
|
101
|
-
class ElementNotSelectableError < WebDriverError; end # 15
|
102
|
-
class NoSuchDocumentError < WebDriverError; end # 16
|
75
|
+
class UnknownError < WebDriverError; end
|
103
76
|
|
104
77
|
#
|
105
78
|
# An error occurred while executing JavaScript supplied by the user.
|
106
79
|
#
|
107
80
|
|
108
|
-
class JavascriptError < WebDriverError; end
|
109
|
-
class NoScriptResultError < WebDriverError; end # 18
|
81
|
+
class JavascriptError < WebDriverError; end
|
110
82
|
|
111
83
|
#
|
112
|
-
# An
|
84
|
+
# An operation did not complete before its timeout expired.
|
113
85
|
#
|
114
86
|
|
115
|
-
class
|
116
|
-
class NoSuchCollectionError < WebDriverError; end # 20
|
87
|
+
class TimeoutError < WebDriverError; end
|
117
88
|
|
118
89
|
#
|
119
|
-
#
|
90
|
+
# A command to switch to a window could not be satisfied because
|
91
|
+
# the window could not be found.
|
120
92
|
#
|
121
93
|
|
122
|
-
class
|
123
|
-
|
124
|
-
class NullPointerError < WebDriverError; end # 22
|
125
|
-
class NoSuchWindowError < WebDriverError; end # 23
|
94
|
+
class NoSuchWindowError < WebDriverError; end
|
126
95
|
|
127
96
|
#
|
128
97
|
# An illegal attempt was made to set a cookie under a different domain than the current page.
|
129
98
|
#
|
130
99
|
|
131
|
-
class InvalidCookieDomainError < WebDriverError; end
|
100
|
+
class InvalidCookieDomainError < WebDriverError; end
|
132
101
|
|
133
102
|
#
|
134
103
|
# A command to set a cookie's value could not be satisfied.
|
135
104
|
#
|
136
105
|
|
137
|
-
class UnableToSetCookieError < WebDriverError; end
|
138
|
-
|
139
|
-
#
|
140
|
-
# Raised when an alert dialog is present that has not been dealt with.
|
141
|
-
#
|
142
|
-
class UnhandledAlertError < WebDriverError; end # 26
|
106
|
+
class UnableToSetCookieError < WebDriverError; end
|
143
107
|
|
144
108
|
#
|
145
109
|
# An attempt was made to operate on a modal dialog when one was not open:
|
146
110
|
#
|
147
|
-
# * W3C dialect is NoSuchAlertError
|
148
|
-
# * OSS dialect is NoAlertPresentError
|
149
|
-
#
|
150
|
-
# We want to allow clients to rescue NoSuchAlertError as a superclass for
|
151
|
-
# dialect-agnostic implementation, so NoAlertPresentError should inherit from it.
|
152
|
-
#
|
153
111
|
|
154
112
|
class NoSuchAlertError < WebDriverError; end
|
155
|
-
class NoAlertPresentError < NoSuchAlertError; end # 27
|
156
113
|
|
157
114
|
#
|
158
115
|
# A script did not complete before its timeout expired.
|
159
116
|
#
|
160
117
|
|
161
|
-
class
|
162
|
-
|
163
|
-
#
|
164
|
-
# The coordinates provided to an interactions operation are invalid.
|
165
|
-
#
|
166
|
-
|
167
|
-
class InvalidElementCoordinatesError < WebDriverError; end # 29
|
168
|
-
|
169
|
-
#
|
170
|
-
# Indicates that IME support is not available. This exception is rasied for every IME-related
|
171
|
-
# method call if IME support is not available on the machine.
|
172
|
-
#
|
173
|
-
|
174
|
-
class IMENotAvailableError < WebDriverError; end # 30
|
175
|
-
|
176
|
-
#
|
177
|
-
# Indicates that activating an IME engine has failed.
|
178
|
-
#
|
179
|
-
|
180
|
-
class IMEEngineActivationFailedError < WebDriverError; end # 31
|
118
|
+
class ScriptTimeoutError < WebDriverError; end
|
181
119
|
|
182
120
|
#
|
183
121
|
# Argument was an invalid selector.
|
184
122
|
#
|
185
123
|
|
186
|
-
class InvalidSelectorError < WebDriverError; end
|
124
|
+
class InvalidSelectorError < WebDriverError; end
|
187
125
|
|
188
126
|
#
|
189
127
|
# A new session could not be created.
|
190
128
|
#
|
191
129
|
|
192
|
-
class SessionNotCreatedError < WebDriverError; end
|
130
|
+
class SessionNotCreatedError < WebDriverError; end
|
193
131
|
|
194
132
|
#
|
195
133
|
# The target for mouse interaction is not in the browser's viewport and cannot be brought
|
196
134
|
# into that viewport.
|
197
135
|
#
|
198
136
|
|
199
|
-
class MoveTargetOutOfBoundsError < WebDriverError; end
|
200
|
-
|
201
|
-
#
|
202
|
-
# Indicates that the XPath selector is invalid
|
203
|
-
#
|
204
|
-
|
205
|
-
class InvalidXpathSelectorError < WebDriverError; end
|
206
|
-
class InvalidXpathSelectorReturnTyperError < WebDriverError; end
|
137
|
+
class MoveTargetOutOfBoundsError < WebDriverError; end
|
207
138
|
|
208
139
|
#
|
209
140
|
# A command could not be completed because the element is not pointer or keyboard
|
@@ -271,113 +202,6 @@ module Selenium
|
|
271
202
|
|
272
203
|
class UnsupportedOperationError < WebDriverError; end
|
273
204
|
|
274
|
-
# Aliases for OSS dialect.
|
275
|
-
ScriptTimeoutError = Class.new(ScriptTimeOutError)
|
276
|
-
TimeoutError = Class.new(TimeOutError)
|
277
|
-
NoAlertOpenError = Class.new(NoAlertPresentError)
|
278
|
-
|
279
|
-
# Aliases for backwards compatibility.
|
280
|
-
ObsoleteElementError = Class.new(StaleElementReferenceError)
|
281
|
-
UnhandledError = Class.new(UnknownError)
|
282
|
-
UnexpectedJavascriptError = Class.new(JavascriptError)
|
283
|
-
ElementNotDisplayedError = Class.new(ElementNotVisibleError)
|
284
|
-
|
285
|
-
#
|
286
|
-
# @api private
|
287
|
-
#
|
288
|
-
|
289
|
-
ERRORS = {
|
290
|
-
1 => IndexOutOfBoundsError,
|
291
|
-
2 => NoCollectionError,
|
292
|
-
3 => NoStringError,
|
293
|
-
4 => NoStringLengthError,
|
294
|
-
5 => NoStringWrapperError,
|
295
|
-
6 => NoSuchDriverError,
|
296
|
-
7 => NoSuchElementError,
|
297
|
-
8 => NoSuchFrameError,
|
298
|
-
9 => UnknownCommandError,
|
299
|
-
10 => StaleElementReferenceError,
|
300
|
-
11 => ElementNotVisibleError,
|
301
|
-
12 => InvalidElementStateError,
|
302
|
-
13 => UnknownError,
|
303
|
-
14 => ExpectedError,
|
304
|
-
15 => ElementNotSelectableError,
|
305
|
-
16 => NoSuchDocumentError,
|
306
|
-
17 => JavascriptError,
|
307
|
-
18 => NoScriptResultError,
|
308
|
-
19 => XPathLookupError,
|
309
|
-
20 => NoSuchCollectionError,
|
310
|
-
21 => TimeOutError,
|
311
|
-
22 => NullPointerError,
|
312
|
-
23 => NoSuchWindowError,
|
313
|
-
24 => InvalidCookieDomainError,
|
314
|
-
25 => UnableToSetCookieError,
|
315
|
-
26 => UnhandledAlertError,
|
316
|
-
27 => NoAlertPresentError,
|
317
|
-
28 => ScriptTimeOutError,
|
318
|
-
29 => InvalidElementCoordinatesError,
|
319
|
-
30 => IMENotAvailableError,
|
320
|
-
31 => IMEEngineActivationFailedError,
|
321
|
-
32 => InvalidSelectorError,
|
322
|
-
33 => SessionNotCreatedError,
|
323
|
-
34 => MoveTargetOutOfBoundsError,
|
324
|
-
# The following are W3C-specific errors,
|
325
|
-
# they don't really need error codes, we just make them up!
|
326
|
-
51 => InvalidXpathSelectorError,
|
327
|
-
52 => InvalidXpathSelectorReturnTyperError,
|
328
|
-
60 => ElementNotInteractableError,
|
329
|
-
61 => InvalidArgumentError,
|
330
|
-
62 => NoSuchCookieError,
|
331
|
-
63 => UnableToCaptureScreenError
|
332
|
-
}.freeze
|
333
|
-
|
334
|
-
DEPRECATED_ERRORS = {
|
335
|
-
IndexOutOfBoundsError: nil,
|
336
|
-
NoCollectionError: nil,
|
337
|
-
NoStringError: nil,
|
338
|
-
NoStringLengthError: nil,
|
339
|
-
NoStringWrapperError: nil,
|
340
|
-
NoSuchDriverError: nil,
|
341
|
-
ElementNotVisibleError: ElementNotInteractableError,
|
342
|
-
InvalidElementStateError: ElementNotInteractableError,
|
343
|
-
ElementNotSelectableError: ElementNotInteractableError,
|
344
|
-
ExpectedError: nil,
|
345
|
-
NoSuchDocumentError: nil,
|
346
|
-
NoScriptResultError: nil,
|
347
|
-
XPathLookupError: InvalidSelectorError,
|
348
|
-
NoSuchCollectionError: nil,
|
349
|
-
UnhandledAlertError: UnexpectedAlertOpenError,
|
350
|
-
NoAlertPresentError: NoSuchAlertError,
|
351
|
-
NoAlertOpenError: NoSuchAlertError,
|
352
|
-
ScriptTimeOutError: ScriptTimeoutError,
|
353
|
-
InvalidElementCoordinatesError: nil,
|
354
|
-
IMENotAvailableError: nil,
|
355
|
-
IMEEngineActivationFailedError: nil,
|
356
|
-
InvalidXpathSelectorError: InvalidSelectorError,
|
357
|
-
InvalidXpathSelectorReturnTyperError: InvalidSelectorError,
|
358
|
-
TimeOutError: TimeoutError,
|
359
|
-
ObsoleteElementError: StaleElementReferenceError,
|
360
|
-
UnhandledError: UnknownError,
|
361
|
-
UnexpectedJavascriptError: JavascriptError,
|
362
|
-
ElementNotDisplayedError: ElementNotInteractableError
|
363
|
-
}.freeze
|
364
|
-
|
365
|
-
DEPRECATED_ERRORS.keys.each do |oss_error|
|
366
|
-
remove_const oss_error
|
367
|
-
end
|
368
|
-
|
369
|
-
def self.const_missing(const_name)
|
370
|
-
super unless DEPRECATED_ERRORS.key?(const_name)
|
371
|
-
if DEPRECATED_ERRORS[const_name]
|
372
|
-
WebDriver.logger.deprecate("Selenium::WebDriver::Error::#{const_name}",
|
373
|
-
"#{DEPRECATED_ERRORS[const_name]} (ensure the driver supports W3C WebDriver specification)")
|
374
|
-
DEPRECATED_ERRORS[const_name]
|
375
|
-
else
|
376
|
-
WebDriver.logger.deprecate("Selenium::WebDriver::Error::#{const_name}")
|
377
|
-
WebDriverError
|
378
|
-
end
|
379
|
-
end
|
380
|
-
|
381
205
|
end # Error
|
382
206
|
end # WebDriver
|
383
207
|
end # Selenium
|
@@ -22,7 +22,7 @@ module Selenium
|
|
22
22
|
module KeyActions
|
23
23
|
#
|
24
24
|
# Performs a key press. Does not release the key - subsequent interactions may assume it's kept pressed.
|
25
|
-
# Note that the key is never released implicitly - either
|
25
|
+
# Note that the key is never released implicitly - either ActionBuilder#key_up(key) or ActionBuilder#release_actions
|
26
26
|
# must be called to release the key.
|
27
27
|
#
|
28
28
|
# @example Press a key
|
@@ -41,7 +41,7 @@ module Selenium
|
|
41
41
|
# @param [Element] element An optional element to move to first
|
42
42
|
# @param [Symbol, String] key The key to press
|
43
43
|
# @param [Symbol, String] device Optional name of the KeyInput device to press the key on
|
44
|
-
# @return [
|
44
|
+
# @return [ActionBuilder] A self reference
|
45
45
|
#
|
46
46
|
|
47
47
|
def key_down(*args, device: nil)
|
@@ -68,7 +68,7 @@ module Selenium
|
|
68
68
|
# @param [Element] element An optional element to move to first
|
69
69
|
# @param [Symbol, String] key The key to release
|
70
70
|
# @param [Symbol, String] device Optional name of the KeyInput device to release the key on
|
71
|
-
# @return [
|
71
|
+
# @return [ActionBuilder] A self reference
|
72
72
|
#
|
73
73
|
|
74
74
|
def key_up(*args, device: nil)
|
@@ -98,7 +98,7 @@ module Selenium
|
|
98
98
|
# @param [Element] element An optional element to move to first
|
99
99
|
# @param [Array, Symbol, String] keys The key(s) to press and release
|
100
100
|
# @param [Symbol, String] device Optional name of the KeyInput device to press and release the keys on
|
101
|
-
# @return [
|
101
|
+
# @return [ActionBuilder] A self reference
|
102
102
|
#
|
103
103
|
|
104
104
|
def send_keys(*args, device: nil)
|
@@ -130,7 +130,7 @@ module Selenium
|
|
130
130
|
# @option args [Symbol, String] key The key to perform the action with
|
131
131
|
# @param [Symbol] action The name of the key action to perform
|
132
132
|
# @param [Symbol, String] device optional name of the KeyInput device to press the key on
|
133
|
-
# @return [
|
133
|
+
# @return [ActionBuilder] A self reference
|
134
134
|
#
|
135
135
|
|
136
136
|
def key_action(*args, action: nil, device: nil)
|
@@ -42,7 +42,7 @@ module Selenium
|
|
42
42
|
# @param [Selenium::WebDriver::Interactions::PointerPress::BUTTONS] button the button to press.
|
43
43
|
# @param [Symbol || String] device optional name of the PointerInput device with the button
|
44
44
|
# that will be pressed
|
45
|
-
# @return [
|
45
|
+
# @return [ActionBuilder] A self reference.
|
46
46
|
#
|
47
47
|
|
48
48
|
def pointer_down(button, device: nil)
|
@@ -59,7 +59,7 @@ module Selenium
|
|
59
59
|
# @param [Selenium::WebDriver::Interactions::PointerPress::BUTTONS] button the button to release.
|
60
60
|
# @param [Symbol || String] device optional name of the PointerInput device with the button that will
|
61
61
|
# be released
|
62
|
-
# @return [
|
62
|
+
# @return [ActionBuilder] A self reference.
|
63
63
|
#
|
64
64
|
|
65
65
|
def pointer_up(button, device: nil)
|
@@ -71,7 +71,7 @@ module Selenium
|
|
71
71
|
# view and its location is calculated using getBoundingClientRect. Then the
|
72
72
|
# mouse is moved to optional offset coordinates from the element.
|
73
73
|
#
|
74
|
-
# This is adapted to be backward compatible from non-
|
74
|
+
# This is adapted to be backward compatible from non- actions. calculates offset from the center point
|
75
75
|
# of the element
|
76
76
|
#
|
77
77
|
# Note that when using offsets, both coordinates need to be passed.
|
@@ -92,7 +92,7 @@ module Selenium
|
|
92
92
|
# @param [Integer] down_by Optional offset from the top-left corner. A negative value means
|
93
93
|
# coordinates above the element.
|
94
94
|
# @param [Symbol || String] device optional name of the PointerInput device to move.
|
95
|
-
# @return [
|
95
|
+
# @return [ActionBuilder] A self reference.
|
96
96
|
#
|
97
97
|
|
98
98
|
def move_to(element, right_by = nil, down_by = nil, device: nil)
|
@@ -129,7 +129,7 @@ module Selenium
|
|
129
129
|
# @param [Integer] right_by horizontal offset. A negative value means moving the mouse left.
|
130
130
|
# @param [Integer] down_by vertical offset. A negative value means moving the mouse up.
|
131
131
|
# @param [Symbol || String] device optional name of the PointerInput device to move
|
132
|
-
# @return [
|
132
|
+
# @return [ActionBuilder] A self reference.
|
133
133
|
# @raise [MoveTargetOutOfBoundsError] if the provided offset is outside the document's boundaries.
|
134
134
|
#
|
135
135
|
|
@@ -156,7 +156,7 @@ module Selenium
|
|
156
156
|
# @param [Integer] x horizontal position. Equivalent to a css 'left' value.
|
157
157
|
# @param [Integer] y vertical position. Equivalent to a css 'top' value.
|
158
158
|
# @param [Symbol || String] device optional name of the PointerInput device to move
|
159
|
-
# @return [
|
159
|
+
# @return [ActionBuilder] A self reference.
|
160
160
|
# @raise [MoveTargetOutOfBoundsError] if the provided x or y value is outside the document's boundaries.
|
161
161
|
#
|
162
162
|
|
@@ -183,7 +183,7 @@ module Selenium
|
|
183
183
|
#
|
184
184
|
# @param [Selenium::WebDriver::Element] element the element to move to and click.
|
185
185
|
# @param [Symbol || String] device optional name of the PointerInput device to click with
|
186
|
-
# @return [
|
186
|
+
# @return [ActionBuilder] A self reference.
|
187
187
|
#
|
188
188
|
|
189
189
|
def click_and_hold(element = nil, device: nil)
|
@@ -202,7 +202,7 @@ module Selenium
|
|
202
202
|
#
|
203
203
|
# @param [Symbol || String] device optional name of the PointerInput device with the button
|
204
204
|
# that will be released
|
205
|
-
# @return [
|
205
|
+
# @return [ActionBuilder] A self reference.
|
206
206
|
#
|
207
207
|
|
208
208
|
def release(device: nil)
|
@@ -229,7 +229,7 @@ module Selenium
|
|
229
229
|
# @param [Selenium::WebDriver::Element] element An optional element to click.
|
230
230
|
# @param [Symbol || String] device optional name of the PointerInput device with the button
|
231
231
|
# that will be clicked
|
232
|
-
# @return [
|
232
|
+
# @return [ActionBuilder] A self reference.
|
233
233
|
#
|
234
234
|
|
235
235
|
def click(element = nil, device: nil)
|
@@ -258,7 +258,7 @@ module Selenium
|
|
258
258
|
# @param [Selenium::WebDriver::Element] element An optional element to move to.
|
259
259
|
# @param [Symbol || String] device optional name of the PointerInput device with the button
|
260
260
|
# that will be double-clicked
|
261
|
-
# @return [
|
261
|
+
# @return [ActionBuilder] A self reference.
|
262
262
|
#
|
263
263
|
|
264
264
|
def double_click(element = nil, device: nil)
|
@@ -286,7 +286,7 @@ module Selenium
|
|
286
286
|
# @param [Selenium::WebDriver::Element] element An element to context click.
|
287
287
|
# @param [Symbol || String] device optional name of the PointerInput device with the button
|
288
288
|
# that will be context-clicked
|
289
|
-
# @return [
|
289
|
+
# @return [ActionBuilder] A self reference.
|
290
290
|
#
|
291
291
|
|
292
292
|
def context_click(element = nil, device: nil)
|
@@ -312,7 +312,7 @@ module Selenium
|
|
312
312
|
# mouse at.
|
313
313
|
# @param [Symbol || String] device optional name of the PointerInput device with the button
|
314
314
|
# that will perform the drag and drop
|
315
|
-
# @return [
|
315
|
+
# @return [ActionBuilder] A self reference.
|
316
316
|
#
|
317
317
|
|
318
318
|
def drag_and_drop(source, target, device: nil)
|
@@ -336,7 +336,7 @@ module Selenium
|
|
336
336
|
# @param [Integer] down_by vertical move offset.
|
337
337
|
# @param [Symbol || String] device optional name of the PointerInput device with the button
|
338
338
|
# that will perform the drag and drop
|
339
|
-
# @return [
|
339
|
+
# @return [ActionBuilder] A self reference.
|
340
340
|
#
|
341
341
|
|
342
342
|
def drag_and_drop_by(source, right_by, down_by, device: nil)
|