selenium-webdriver 4.46.0 → 4.47.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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +29 -0
  3. data/bin/linux/selenium-manager +0 -0
  4. data/bin/macos/selenium-manager +0 -0
  5. data/bin/selenium-manager-THIRD-PARTY-NOTICES.txt +5971 -0
  6. data/bin/selenium-manager.cdx.json +11629 -0
  7. data/bin/windows/selenium-manager.exe +0 -0
  8. data/lib/selenium/webdriver/{common/driver_extensions/has_bidi.rb → bidi/error.rb} +21 -13
  9. data/lib/selenium/webdriver/bidi/protocol/bluetooth.rb +53 -23
  10. data/lib/selenium/webdriver/bidi/protocol/browser.rb +43 -15
  11. data/lib/selenium/webdriver/bidi/protocol/browsing_context.rb +172 -68
  12. data/lib/selenium/webdriver/bidi/protocol/domain.rb +8 -2
  13. data/lib/selenium/webdriver/bidi/protocol/emulation.rb +123 -9
  14. data/lib/selenium/webdriver/bidi/protocol/error_code.rb +66 -0
  15. data/lib/selenium/webdriver/bidi/protocol/input.rb +101 -28
  16. data/lib/selenium/webdriver/bidi/protocol/log.rb +17 -6
  17. data/lib/selenium/webdriver/bidi/protocol/network.rb +146 -63
  18. data/lib/selenium/webdriver/bidi/protocol/permissions.rb +4 -2
  19. data/lib/selenium/webdriver/bidi/protocol/script.rb +264 -86
  20. data/lib/selenium/webdriver/bidi/protocol/session.rb +48 -3
  21. data/lib/selenium/webdriver/bidi/protocol/speculation.rb +4 -2
  22. data/lib/selenium/webdriver/bidi/protocol/storage.rb +32 -6
  23. data/lib/selenium/webdriver/bidi/protocol/user_agent_client_hints.rb +7 -2
  24. data/lib/selenium/webdriver/bidi/protocol/web_extension.rb +49 -10
  25. data/lib/selenium/webdriver/bidi/protocol.rb +3 -0
  26. data/lib/selenium/webdriver/bidi/serialization/record.rb +194 -18
  27. data/lib/selenium/webdriver/bidi/serialization/union.rb +45 -3
  28. data/lib/selenium/webdriver/bidi/serialization.rb +13 -1
  29. data/lib/selenium/webdriver/bidi/support/bidi_generate.rb +529 -45
  30. data/lib/selenium/webdriver/bidi/support/check_generated.rb +12 -4
  31. data/lib/selenium/webdriver/bidi/transport.rb +8 -3
  32. data/lib/selenium/webdriver/chrome/service.rb +4 -1
  33. data/lib/selenium/webdriver/chromium/driver.rb +0 -1
  34. data/lib/selenium/webdriver/chromium/options.rb +20 -0
  35. data/lib/selenium/webdriver/common/driver.rb +11 -0
  36. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +0 -7
  37. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +0 -7
  38. data/lib/selenium/webdriver/common/driver_finder.rb +4 -3
  39. data/lib/selenium/webdriver/common/options.rb +21 -1
  40. data/lib/selenium/webdriver/common/proxy.rb +0 -8
  41. data/lib/selenium/webdriver/common/selenium_manager.rb +2 -1
  42. data/lib/selenium/webdriver/common/takes_screenshot.rb +1 -1
  43. data/lib/selenium/webdriver/common.rb +0 -1
  44. data/lib/selenium/webdriver/edge/service.rb +4 -1
  45. data/lib/selenium/webdriver/firefox/driver.rb +0 -3
  46. data/lib/selenium/webdriver/firefox/options.rb +19 -0
  47. data/lib/selenium/webdriver/firefox/profile.rb +13 -6
  48. data/lib/selenium/webdriver/remote/bidi_bridge.rb +39 -12
  49. data/lib/selenium/webdriver/remote/bridge.rb +1 -1
  50. data/lib/selenium/webdriver/remote/driver.rb +3 -1
  51. data/lib/selenium/webdriver/remote/http/default.rb +1 -1
  52. data/lib/selenium/webdriver/safari/options.rb +16 -1
  53. data/lib/selenium/webdriver/support/guards/guard.rb +20 -3
  54. data/lib/selenium/webdriver/support/guards.rb +9 -3
  55. data/lib/selenium/webdriver/version.rb +1 -1
  56. metadata +6 -3
@@ -17,8 +17,8 @@
17
17
  # specific language governing permissions and limitations
18
18
  # under the License.
19
19
 
20
- # This file is automatically generated. DO NOT EDIT!
21
- # Regenerate with: bazel run //rb/lib/selenium/webdriver:bidi-generate
20
+ # DO NOT EDIT! This file is generated by rb/lib/selenium/webdriver/bidi/support/bidi_generate.rb.
21
+ # Regenerate with: `bazel run //rb/lib/selenium/webdriver:bidi-generate`
22
22
 
23
23
  module Selenium
24
24
  module WebDriver
@@ -26,11 +26,13 @@ module Selenium
26
26
  module Protocol
27
27
  # @api private
28
28
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
29
+ # @see https://w3c.github.io/webdriver-bidi/#module-input
29
30
  class Input < Domain
30
31
  EVENTS = {
31
32
  file_dialog_opened: 'input.fileDialogOpened'
32
33
  }.freeze
33
34
 
35
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputpointertype
34
36
  POINTER_TYPE = {
35
37
  mouse: 'mouse',
36
38
  pen: 'pen',
@@ -39,6 +41,7 @@ module Selenium
39
41
 
40
42
  # @api private
41
43
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
44
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputelementorigin
42
45
  ElementOrigin = Serialization::Record.define(
43
46
  type: {fixed: 'element'},
44
47
  element: {wire_key: 'element', ref: 'Script::SharedReference'}
@@ -46,13 +49,15 @@ module Selenium
46
49
 
47
50
  # @api private
48
51
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
52
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputperformactionsparameters
49
53
  PerformActionsParameters = Serialization::Record.define(
50
- context: 'context',
54
+ context: {wire_key: 'context', primitive: 'string'},
51
55
  actions: {wire_key: 'actions', ref: 'Input::SourceActions', list: true}
52
56
  )
53
57
 
54
58
  # @api private
55
59
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
60
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputsourceactions
56
61
  class SourceActions < Serialization::Union
57
62
  discriminator 'type', {none: 'none', key: 'key', pointer: 'pointer', wheel: 'wheel'}
58
63
  variants(
@@ -61,10 +66,17 @@ module Selenium
61
66
  pointer: 'Input::PointerSourceActions',
62
67
  wheel: 'Input::WheelSourceActions'
63
68
  )
69
+ object_only
70
+
71
+ def self.none(**) = Input::NoneSourceActions.new(**)
72
+ def self.key(**) = Input::KeySourceActions.new(**)
73
+ def self.pointer(**) = Input::PointerSourceActions.new(**)
74
+ def self.wheel(**) = Input::WheelSourceActions.new(**)
64
75
  end
65
76
 
66
77
  # @api private
67
78
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
79
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputnonesourceactions
68
80
  NoneSourceActions = Serialization::Record.define(
69
81
  type: {fixed: 'none'},
70
82
  id: {wire_key: 'id', primitive: 'string'},
@@ -73,6 +85,7 @@ module Selenium
73
85
 
74
86
  # @api private
75
87
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
88
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputkeysourceactions
76
89
  KeySourceActions = Serialization::Record.define(
77
90
  type: {fixed: 'key'},
78
91
  id: {wire_key: 'id', primitive: 'string'},
@@ -81,6 +94,7 @@ module Selenium
81
94
 
82
95
  # @api private
83
96
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
97
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputkeysourceaction
84
98
  class KeySourceAction < Serialization::Union
85
99
  discriminator 'type', {pause: 'pause', key_down: 'keyDown', key_up: 'keyUp'}
86
100
  variants(
@@ -88,10 +102,16 @@ module Selenium
88
102
  key_down: 'Input::KeyDownAction',
89
103
  key_up: 'Input::KeyUpAction'
90
104
  )
105
+ object_only
106
+
107
+ def self.pause(**) = Input::PauseAction.new(**)
108
+ def self.key_down(**) = Input::KeyDownAction.new(**)
109
+ def self.key_up(**) = Input::KeyUpAction.new(**)
91
110
  end
92
111
 
93
112
  # @api private
94
113
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
114
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputpointersourceactions
95
115
  PointerSourceActions = Serialization::Record.define(
96
116
  type: {fixed: 'pointer'},
97
117
  id: {wire_key: 'id', primitive: 'string'},
@@ -101,12 +121,14 @@ module Selenium
101
121
 
102
122
  # @api private
103
123
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
124
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputpointerparameters
104
125
  PointerParameters = Serialization::Record.define(
105
126
  pointer_type: {wire_key: 'pointerType', required: false, enum: 'Input::POINTER_TYPE'}
106
127
  )
107
128
 
108
129
  # @api private
109
130
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
131
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputpointersourceaction
110
132
  class PointerSourceAction < Serialization::Union
111
133
  discriminator 'type', {
112
134
  pause: 'pause',
@@ -120,10 +142,17 @@ module Selenium
120
142
  pointer_up: 'Input::PointerUpAction',
121
143
  pointer_move: 'Input::PointerMoveAction'
122
144
  )
145
+ object_only
146
+
147
+ def self.pause(**) = Input::PauseAction.new(**)
148
+ def self.pointer_down(**) = Input::PointerDownAction.new(**)
149
+ def self.pointer_up(**) = Input::PointerUpAction.new(**)
150
+ def self.pointer_move(**) = Input::PointerMoveAction.new(**)
123
151
  end
124
152
 
125
153
  # @api private
126
154
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
155
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputwheelsourceactions
127
156
  WheelSourceActions = Serialization::Record.define(
128
157
  type: {fixed: 'wheel'},
129
158
  id: {wire_key: 'id', primitive: 'string'},
@@ -132,23 +161,30 @@ module Selenium
132
161
 
133
162
  # @api private
134
163
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
164
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputwheelsourceaction
135
165
  class WheelSourceAction < Serialization::Union
136
166
  discriminator 'type', {pause: 'pause', scroll: 'scroll'}
137
167
  variants(
138
168
  pause: 'Input::PauseAction',
139
169
  scroll: 'Input::WheelScrollAction'
140
170
  )
171
+ object_only
172
+
173
+ def self.pause(**) = Input::PauseAction.new(**)
174
+ def self.scroll(**) = Input::WheelScrollAction.new(**)
141
175
  end
142
176
 
143
177
  # @api private
144
178
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
179
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputpauseaction
145
180
  PauseAction = Serialization::Record.define(
146
181
  type: {fixed: 'pause'},
147
- duration: {wire_key: 'duration', required: false}
182
+ duration: {wire_key: 'duration', required: false, primitive: 'integer'}
148
183
  )
149
184
 
150
185
  # @api private
151
186
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
187
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputkeydownaction
152
188
  KeyDownAction = Serialization::Record.define(
153
189
  type: {fixed: 'keyDown'},
154
190
  value: {wire_key: 'value', primitive: 'string'}
@@ -156,6 +192,7 @@ module Selenium
156
192
 
157
193
  # @api private
158
194
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
195
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputkeyupaction
159
196
  KeyUpAction = Serialization::Record.define(
160
197
  type: {fixed: 'keyUp'},
161
198
  value: {wire_key: 'value', primitive: 'string'}
@@ -163,17 +200,22 @@ module Selenium
163
200
 
164
201
  # @api private
165
202
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
166
- PointerUpAction = Serialization::Record.define(type: {fixed: 'pointerUp'}, button: 'button')
203
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputpointerupaction
204
+ PointerUpAction = Serialization::Record.define(
205
+ type: {fixed: 'pointerUp'},
206
+ button: {wire_key: 'button', primitive: 'integer'}
207
+ )
167
208
 
168
209
  # @api private
169
210
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
211
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputpointerdownaction
170
212
  PointerDownAction = Serialization::Record.define(
171
213
  type: {fixed: 'pointerDown'},
172
- button: 'button',
173
- width: {wire_key: 'width', required: false},
174
- height: {wire_key: 'height', required: false},
175
- pressure: {wire_key: 'pressure', required: false, primitive: 'integer'},
176
- tangential_pressure: {wire_key: 'tangentialPressure', required: false, primitive: 'integer'},
214
+ button: {wire_key: 'button', primitive: 'integer'},
215
+ width: {wire_key: 'width', required: false, primitive: 'integer'},
216
+ height: {wire_key: 'height', required: false, primitive: 'integer'},
217
+ pressure: {wire_key: 'pressure', required: false, primitive: 'number'},
218
+ tangential_pressure: {wire_key: 'tangentialPressure', required: false, primitive: 'number'},
177
219
  twist: {wire_key: 'twist', required: false, primitive: 'integer'},
178
220
  altitude_angle: {wire_key: 'altitudeAngle', required: false, primitive: 'number'},
179
221
  azimuth_angle: {wire_key: 'azimuthAngle', required: false, primitive: 'number'}
@@ -181,16 +223,17 @@ module Selenium
181
223
 
182
224
  # @api private
183
225
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
226
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputpointermoveaction
184
227
  PointerMoveAction = Serialization::Record.define(
185
228
  type: {fixed: 'pointerMove'},
186
229
  x: {wire_key: 'x', primitive: 'number'},
187
230
  y: {wire_key: 'y', primitive: 'number'},
188
- duration: {wire_key: 'duration', required: false},
231
+ duration: {wire_key: 'duration', required: false, primitive: 'integer'},
189
232
  origin: {wire_key: 'origin', required: false, ref: 'Input::Origin'},
190
- width: {wire_key: 'width', required: false},
191
- height: {wire_key: 'height', required: false},
192
- pressure: {wire_key: 'pressure', required: false, primitive: 'integer'},
193
- tangential_pressure: {wire_key: 'tangentialPressure', required: false, primitive: 'integer'},
233
+ width: {wire_key: 'width', required: false, primitive: 'integer'},
234
+ height: {wire_key: 'height', required: false, primitive: 'integer'},
235
+ pressure: {wire_key: 'pressure', required: false, primitive: 'number'},
236
+ tangential_pressure: {wire_key: 'tangentialPressure', required: false, primitive: 'number'},
194
237
  twist: {wire_key: 'twist', required: false, primitive: 'integer'},
195
238
  altitude_angle: {wire_key: 'altitudeAngle', required: false, primitive: 'number'},
196
239
  azimuth_angle: {wire_key: 'azimuthAngle', required: false, primitive: 'number'}
@@ -198,23 +241,25 @@ module Selenium
198
241
 
199
242
  # @api private
200
243
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
244
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputwheelscrollaction
201
245
  WheelScrollAction = Serialization::Record.define(
202
246
  type: {fixed: 'scroll'},
203
- x: 'x',
204
- y: 'y',
205
- delta_x: 'deltaX',
206
- delta_y: 'deltaY',
207
- duration: {wire_key: 'duration', required: false},
247
+ x: {wire_key: 'x', primitive: 'integer'},
248
+ y: {wire_key: 'y', primitive: 'integer'},
249
+ delta_x: {wire_key: 'deltaX', primitive: 'integer'},
250
+ delta_y: {wire_key: 'deltaY', primitive: 'integer'},
251
+ duration: {wire_key: 'duration', required: false, primitive: 'integer'},
208
252
  origin: {wire_key: 'origin', required: false, ref: 'Input::Origin'}
209
253
  )
210
254
 
211
255
  # @api private
212
256
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
257
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputpointercommonproperties
213
258
  PointerCommonProperties = Serialization::Record.define(
214
- width: {wire_key: 'width', required: false},
215
- height: {wire_key: 'height', required: false},
216
- pressure: {wire_key: 'pressure', required: false, primitive: 'integer'},
217
- tangential_pressure: {wire_key: 'tangentialPressure', required: false, primitive: 'integer'},
259
+ width: {wire_key: 'width', required: false, primitive: 'integer'},
260
+ height: {wire_key: 'height', required: false, primitive: 'integer'},
261
+ pressure: {wire_key: 'pressure', required: false, primitive: 'number'},
262
+ tangential_pressure: {wire_key: 'tangentialPressure', required: false, primitive: 'number'},
218
263
  twist: {wire_key: 'twist', required: false, primitive: 'integer'},
219
264
  altitude_angle: {wire_key: 'altitudeAngle', required: false, primitive: 'number'},
220
265
  azimuth_angle: {wire_key: 'azimuthAngle', required: false, primitive: 'number'}
@@ -222,30 +267,37 @@ module Selenium
222
267
 
223
268
  # @api private
224
269
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
270
+ # @see https://w3c.github.io/webdriver-bidi/#type-input-origin
225
271
  class Origin < Serialization::Union
226
272
  discriminator 'type', {element: 'element'}
227
273
  variants(
228
274
  element: 'Input::ElementOrigin'
229
275
  )
276
+ scalar_values 'viewport', 'pointer'
277
+
278
+ def self.element(**) = Input::ElementOrigin.new(**)
230
279
  end
231
280
 
232
281
  # @api private
233
282
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
234
- ReleaseActionsParameters = Serialization::Record.define(context: 'context')
283
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputreleaseactionsparameters
284
+ ReleaseActionsParameters = Serialization::Record.define(context: {wire_key: 'context', primitive: 'string'})
235
285
 
236
286
  # @api private
237
287
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
288
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputsetfilesparameters
238
289
  SetFilesParameters = Serialization::Record.define(
239
- context: 'context',
290
+ context: {wire_key: 'context', primitive: 'string'},
240
291
  element: {wire_key: 'element', ref: 'Script::SharedReference'},
241
292
  files: {wire_key: 'files', list: true}
242
293
  )
243
294
 
244
295
  # @api private
245
296
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
297
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-inputfiledialoginfo
246
298
  FileDialogInfo = Serialization::Record.define(
247
- context: 'context',
248
- user_context: {wire_key: 'userContext', required: false},
299
+ context: {wire_key: 'context', primitive: 'string'},
300
+ user_context: {wire_key: 'userContext', required: false, primitive: 'string'},
249
301
  element: {wire_key: 'element', required: false, ref: 'Script::SharedReference'},
250
302
  multiple: {wire_key: 'multiple', primitive: 'boolean'}
251
303
  )
@@ -254,8 +306,27 @@ module Selenium
254
306
  'input.fileDialogOpened' => Input::FileDialogInfo
255
307
  }.freeze
256
308
 
309
+ def element_origin(**) = ElementOrigin.new(**)
310
+ def source_actions = SourceActions
311
+ def none_source_actions(**) = NoneSourceActions.new(**)
312
+ def key_source_actions(**) = KeySourceActions.new(**)
313
+ def key_source_action = KeySourceAction
314
+ def pointer_source_actions(**) = PointerSourceActions.new(**)
315
+ def pointer_parameters(**) = PointerParameters.new(**)
316
+ def pointer_source_action = PointerSourceAction
317
+ def wheel_source_actions(**) = WheelSourceActions.new(**)
318
+ def wheel_source_action = WheelSourceAction
319
+ def pause_action(**) = PauseAction.new(**)
320
+ def key_down_action(**) = KeyDownAction.new(**)
321
+ def key_up_action(**) = KeyUpAction.new(**)
322
+ def pointer_up_action(**) = PointerUpAction.new(**)
323
+ def pointer_down_action(**) = PointerDownAction.new(**)
324
+ def pointer_move_action(**) = PointerMoveAction.new(**)
325
+ def wheel_scroll_action(**) = WheelScrollAction.new(**)
326
+
257
327
  # @api private
258
328
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
329
+ # @see https://w3c.github.io/webdriver-bidi/#command-input-performActions
259
330
  def perform_actions(context:, actions:)
260
331
  params = PerformActionsParameters.new(context: context, actions: actions)
261
332
  execute(cmd: 'input.performActions', params: params)
@@ -263,6 +334,7 @@ module Selenium
263
334
 
264
335
  # @api private
265
336
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
337
+ # @see https://w3c.github.io/webdriver-bidi/#command-input-releaseActions
266
338
  def release_actions(context:)
267
339
  params = ReleaseActionsParameters.new(context: context)
268
340
  execute(cmd: 'input.releaseActions', params: params)
@@ -270,6 +342,7 @@ module Selenium
270
342
 
271
343
  # @api private
272
344
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
345
+ # @see https://w3c.github.io/webdriver-bidi/#command-input-setFiles
273
346
  def set_files(context:, element:, files:)
274
347
  params = SetFilesParameters.new(context: context, element: element, files: files)
275
348
  execute(cmd: 'input.setFiles', params: params)
@@ -17,8 +17,8 @@
17
17
  # specific language governing permissions and limitations
18
18
  # under the License.
19
19
 
20
- # This file is automatically generated. DO NOT EDIT!
21
- # Regenerate with: bazel run //rb/lib/selenium/webdriver:bidi-generate
20
+ # DO NOT EDIT! This file is generated by rb/lib/selenium/webdriver/bidi/support/bidi_generate.rb.
21
+ # Regenerate with: `bazel run //rb/lib/selenium/webdriver:bidi-generate`
22
22
 
23
23
  module Selenium
24
24
  module WebDriver
@@ -26,11 +26,13 @@ module Selenium
26
26
  module Protocol
27
27
  # @api private
28
28
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
29
+ # @see https://w3c.github.io/webdriver-bidi/#module-log
29
30
  class Log < Domain
30
31
  EVENTS = {
31
32
  entry_added: 'log.entryAdded'
32
33
  }.freeze
33
34
 
35
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-loglevel
34
36
  LEVEL = {
35
37
  debug: 'debug',
36
38
  info: 'info',
@@ -40,6 +42,7 @@ module Selenium
40
42
 
41
43
  # @api private
42
44
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
45
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-logentry
43
46
  class Entry < Serialization::Union
44
47
  discriminator 'type', {console: 'console', javascript: 'javascript'}
45
48
  variants(
@@ -47,37 +50,44 @@ module Selenium
47
50
  javascript: 'Log::JavascriptLogEntry'
48
51
  )
49
52
  fallback 'Log::GenericLogEntry'
53
+ object_only
54
+
55
+ def self.console(**) = Log::ConsoleLogEntry.new(**)
56
+ def self.javascript(**) = Log::JavascriptLogEntry.new(**)
50
57
  end
51
58
 
52
59
  # @api private
53
60
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
61
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-logbaselogentry
54
62
  BaseLogEntry = Serialization::Record.define(
55
63
  level: {wire_key: 'level', enum: 'Log::LEVEL'},
56
64
  source: {wire_key: 'source', ref: 'Script::Source'},
57
65
  text: {wire_key: 'text', nullable: true, primitive: 'string'},
58
- timestamp: 'timestamp',
66
+ timestamp: {wire_key: 'timestamp', primitive: 'integer'},
59
67
  stack_trace: {wire_key: 'stackTrace', required: false, ref: 'Script::StackTrace'}
60
68
  )
61
69
 
62
70
  # @api private
63
71
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
72
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-loggenericlogentry
64
73
  GenericLogEntry = Serialization::Record.define(
65
74
  level: {wire_key: 'level', enum: 'Log::LEVEL'},
66
75
  source: {wire_key: 'source', ref: 'Script::Source'},
67
76
  text: {wire_key: 'text', nullable: true, primitive: 'string'},
68
- timestamp: 'timestamp',
77
+ timestamp: {wire_key: 'timestamp', primitive: 'integer'},
69
78
  stack_trace: {wire_key: 'stackTrace', required: false, ref: 'Script::StackTrace'},
70
79
  type: {wire_key: 'type', primitive: 'string'}
71
80
  )
72
81
 
73
82
  # @api private
74
83
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
84
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-logconsolelogentry
75
85
  ConsoleLogEntry = Serialization::Record.define(
76
86
  type: {fixed: 'console'},
77
87
  level: {wire_key: 'level', enum: 'Log::LEVEL'},
78
88
  source: {wire_key: 'source', ref: 'Script::Source'},
79
89
  text: {wire_key: 'text', nullable: true, primitive: 'string'},
80
- timestamp: 'timestamp',
90
+ timestamp: {wire_key: 'timestamp', primitive: 'integer'},
81
91
  stack_trace: {wire_key: 'stackTrace', required: false, ref: 'Script::StackTrace'},
82
92
  method_: {wire_key: 'method', primitive: 'string'},
83
93
  args: {wire_key: 'args', ref: 'Script::RemoteValue', list: true}
@@ -85,12 +95,13 @@ module Selenium
85
95
 
86
96
  # @api private
87
97
  # @see https://www.selenium.dev/documentation/warnings/bidi-implementation/
98
+ # @see https://w3c.github.io/webdriver-bidi/#cddl-type-logjavascriptlogentry
88
99
  JavascriptLogEntry = Serialization::Record.define(
89
100
  type: {fixed: 'javascript'},
90
101
  level: {wire_key: 'level', enum: 'Log::LEVEL'},
91
102
  source: {wire_key: 'source', ref: 'Script::Source'},
92
103
  text: {wire_key: 'text', nullable: true, primitive: 'string'},
93
- timestamp: 'timestamp',
104
+ timestamp: {wire_key: 'timestamp', primitive: 'integer'},
94
105
  stack_trace: {wire_key: 'stackTrace', required: false, ref: 'Script::StackTrace'}
95
106
  )
96
107