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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +21 -43
  3. data/lib/selenium/webdriver.rb +2 -4
  4. data/lib/selenium/webdriver/chrome/bridge.rb +3 -21
  5. data/lib/selenium/webdriver/chrome/driver.rb +12 -39
  6. data/lib/selenium/webdriver/chrome/options.rb +3 -7
  7. data/lib/selenium/webdriver/chrome/profile.rb +2 -2
  8. data/lib/selenium/webdriver/chrome/service.rb +4 -9
  9. data/lib/selenium/webdriver/common.rb +7 -16
  10. data/lib/selenium/webdriver/common/action_builder.rb +97 -249
  11. data/lib/selenium/webdriver/common/driver.rb +2 -4
  12. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +1 -1
  13. data/lib/selenium/webdriver/common/element.rb +3 -6
  14. data/lib/selenium/webdriver/common/error.rb +27 -203
  15. data/lib/selenium/webdriver/common/interactions/key_actions.rb +5 -5
  16. data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +13 -13
  17. data/lib/selenium/webdriver/common/manager.rb +1 -1
  18. data/lib/selenium/webdriver/common/options.rb +148 -24
  19. data/lib/selenium/webdriver/common/service.rb +16 -34
  20. data/lib/selenium/webdriver/common/socket_poller.rb +2 -2
  21. data/lib/selenium/webdriver/common/w3c_options.rb +45 -0
  22. data/lib/selenium/webdriver/edge.rb +0 -1
  23. data/lib/selenium/webdriver/edge/driver.rb +14 -10
  24. data/lib/selenium/webdriver/edge/service.rb +6 -7
  25. data/lib/selenium/webdriver/firefox.rb +2 -6
  26. data/lib/selenium/webdriver/firefox/binary.rb +3 -80
  27. data/lib/selenium/webdriver/firefox/bridge.rb +47 -0
  28. data/lib/selenium/webdriver/firefox/driver.rb +44 -22
  29. data/lib/selenium/webdriver/firefox/marionette/driver.rb +1 -1
  30. data/lib/selenium/webdriver/firefox/options.rb +2 -2
  31. data/lib/selenium/webdriver/firefox/profile.rb +25 -14
  32. data/lib/selenium/webdriver/firefox/service.rb +4 -4
  33. data/lib/selenium/webdriver/ie/driver.rb +5 -18
  34. data/lib/selenium/webdriver/ie/options.rb +2 -2
  35. data/lib/selenium/webdriver/ie/service.rb +4 -4
  36. data/lib/selenium/webdriver/remote.rb +2 -6
  37. data/lib/selenium/webdriver/remote/bridge.rb +515 -69
  38. data/lib/selenium/webdriver/remote/capabilities.rb +77 -99
  39. data/lib/selenium/webdriver/remote/commands.rb +156 -0
  40. data/lib/selenium/webdriver/remote/driver.rb +12 -5
  41. data/lib/selenium/webdriver/remote/http/default.rb +0 -9
  42. data/lib/selenium/webdriver/remote/response.rb +16 -47
  43. data/lib/selenium/webdriver/safari.rb +1 -1
  44. data/lib/selenium/webdriver/safari/bridge.rb +3 -3
  45. data/lib/selenium/webdriver/safari/driver.rb +4 -1
  46. data/lib/selenium/webdriver/safari/service.rb +4 -4
  47. data/lib/selenium/webdriver/support/select.rb +1 -1
  48. data/lib/selenium/webdriver/version.rb +1 -1
  49. data/selenium-webdriver.gemspec +3 -3
  50. 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, W3CActionBuilder]
110
- # @see ActionBuilder, W3CActionBuilder
107
+ # @return [ActionBuilder]
108
+ # @see ActionBuilder
111
109
  #
112
110
 
113
111
  def action
@@ -53,7 +53,7 @@ module Selenium
53
53
  when :base64
54
54
  bridge.screenshot
55
55
  when :png
56
- bridge.screenshot.unpack('m')[0]
56
+ bridge.screenshot.unpack1('m')
57
57
  else
58
58
  raise Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
59
59
  end
@@ -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
- key = if bridge.dialect == :w3c
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 # rubocop:disable Metrics/ModuleLength
22
+ module Error
23
23
 
24
24
  #
25
- # Returns exception from code (Integer - OSS, String - W3C).
26
- # @param [Integer, String, nil] code
25
+ # Returns exception from its string representation.
26
+ # @param [String, nil] error
27
27
  #
28
28
 
29
- def self.for_code(code)
30
- case code
31
- when nil, 0
32
- nil
33
- when Integer
34
- Object.const_get(ERRORS.fetch(code).to_s)
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 # 7
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 # 8
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 # 9
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 # 10
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 # 12
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 # 13
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 # 17
109
- class NoScriptResultError < WebDriverError; end # 18
81
+ class JavascriptError < WebDriverError; end
110
82
 
111
83
  #
112
- # An error occurred while searching for an element by XPath.
84
+ # An operation did not complete before its timeout expired.
113
85
  #
114
86
 
115
- class XPathLookupError < WebDriverError; end # 19
116
- class NoSuchCollectionError < WebDriverError; end # 20
87
+ class TimeoutError < WebDriverError; end
117
88
 
118
89
  #
119
- # An operation did not complete before its timeout expired.
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 TimeOutError < WebDriverError; end # 21
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 # 24
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 # 25
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 ScriptTimeOutError < WebDriverError; end # 28
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 # 32
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 # 33
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 # 34
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 W3CActionBuilder#key_up(key) or W3CActionBuilder#release_actions
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 [W3CActionBuilder] A self reference
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 [W3CActionBuilder] A self reference
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 [W3CActionBuilder] A self reference
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 [W3CActionBuilder] A self reference
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 [W3CActionBuilder] A self reference.
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 [W3CActionBuilder] A self reference.
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-W3C actions. W3C calculates offset from the center point
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 [W3CActionBuilder] A self reference.
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 [W3CActionBuilder] A self reference.
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 [W3CActionBuilder] A self reference.
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 [W3CActionBuilder] A self reference.
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 [W3CActionBuilder] A self reference.
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 [W3CActionBuilder] A self reference.
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 [W3CActionBuilder] A self reference.
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 [W3CActionBuilder] A self reference.
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 [W3CActionBuilder] A self reference.
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 [W3CActionBuilder] A self reference.
339
+ # @return [ActionBuilder] A self reference.
340
340
  #
341
341
 
342
342
  def drag_and_drop_by(source, right_by, down_by, device: nil)