selenium-webdriver 3.142.7 → 4.0.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.
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)