selenium-devtools 0.89.0 → 0.91.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/lib/selenium/devtools/v89/accessibility.rb +8 -2
  3. data/lib/selenium/devtools/v89/debugger.rb +0 -7
  4. data/lib/selenium/devtools/v89/network.rb +1 -0
  5. data/lib/selenium/devtools/v89/performance_timeline.rb +46 -0
  6. data/lib/selenium/devtools/v89/runtime.rb +3 -2
  7. data/lib/selenium/devtools/v89/tracing.rb +3 -2
  8. data/lib/selenium/devtools/v90.rb +1 -0
  9. data/lib/selenium/devtools/{v87 → v90}/accessibility.rb +10 -4
  10. data/lib/selenium/devtools/{v86 → v90}/animation.rb +2 -2
  11. data/lib/selenium/devtools/{v87 → v90}/application_cache.rb +2 -2
  12. data/lib/selenium/devtools/{v86 → v90}/audits.rb +7 -2
  13. data/lib/selenium/devtools/{v86 → v90}/background_service.rb +2 -2
  14. data/lib/selenium/devtools/{v86 → v90}/browser.rb +7 -2
  15. data/lib/selenium/devtools/{v86 → v90}/cache_storage.rb +2 -2
  16. data/lib/selenium/devtools/{v87 → v90}/cast.rb +2 -2
  17. data/lib/selenium/devtools/{v87 → v90}/console.rb +2 -2
  18. data/lib/selenium/devtools/{v86 → v90}/css.rb +2 -2
  19. data/lib/selenium/devtools/{v87 → v90}/database.rb +2 -2
  20. data/lib/selenium/devtools/{v86 → v90}/debugger.rb +2 -9
  21. data/lib/selenium/devtools/{v87 → v90}/device_orientation.rb +2 -2
  22. data/lib/selenium/devtools/{v87 → v90}/dom.rb +2 -2
  23. data/lib/selenium/devtools/{v86 → v90}/dom_debugger.rb +7 -2
  24. data/lib/selenium/devtools/{v86 → v90}/dom_snapshot.rb +2 -2
  25. data/lib/selenium/devtools/{v86 → v90}/dom_storage.rb +2 -2
  26. data/lib/selenium/devtools/{v87 → v90}/emulation.rb +7 -2
  27. data/lib/selenium/devtools/{v87 → v90}/fetch.rb +2 -2
  28. data/lib/selenium/devtools/{v87 → v90}/headless_experimental.rb +2 -2
  29. data/lib/selenium/devtools/{v87 → v90}/heap_profiler.rb +2 -2
  30. data/lib/selenium/devtools/{v86 → v90}/indexed_db.rb +2 -2
  31. data/lib/selenium/devtools/{v86 → v90}/input.rb +8 -3
  32. data/lib/selenium/devtools/{v87 → v90}/inspector.rb +2 -2
  33. data/lib/selenium/devtools/{v86 → v90}/io.rb +2 -2
  34. data/lib/selenium/devtools/{v86 → v90}/layer_tree.rb +2 -2
  35. data/lib/selenium/devtools/{v87 → v90}/log.rb +2 -2
  36. data/lib/selenium/devtools/{v87 → v90}/media.rb +2 -2
  37. data/lib/selenium/devtools/{v86 → v90}/memory.rb +2 -2
  38. data/lib/selenium/devtools/{v87 → v90}/network.rb +13 -6
  39. data/lib/selenium/devtools/{v86 → v90}/overlay.rb +12 -2
  40. data/lib/selenium/devtools/{v86 → v90}/page.rb +11 -4
  41. data/lib/selenium/devtools/{v86 → v90}/performance.rb +2 -2
  42. data/lib/selenium/devtools/v90/performance_timeline.rb +46 -0
  43. data/lib/selenium/devtools/{v87 → v90}/profiler.rb +2 -2
  44. data/lib/selenium/devtools/{v87 → v90}/runtime.rb +8 -6
  45. data/lib/selenium/devtools/{v86 → v90}/schema.rb +2 -2
  46. data/lib/selenium/devtools/{v86 → v90}/security.rb +2 -2
  47. data/lib/selenium/devtools/{v86 → v90}/service_worker.rb +2 -2
  48. data/lib/selenium/devtools/{v86 → v90}/storage.rb +12 -2
  49. data/lib/selenium/devtools/{v86 → v90}/system_info.rb +2 -2
  50. data/lib/selenium/devtools/{v86 → v90}/target.rb +2 -2
  51. data/lib/selenium/devtools/{v86 → v90}/tethering.rb +2 -2
  52. data/lib/selenium/devtools/{v86 → v90}/tracing.rb +8 -6
  53. data/lib/selenium/devtools/{v86 → v90}/web_audio.rb +2 -2
  54. data/lib/selenium/devtools/{v86 → v90}/web_authn.rb +2 -2
  55. data/lib/selenium/devtools/v91.rb +1 -0
  56. data/lib/selenium/devtools/{v86 → v91}/accessibility.rb +19 -4
  57. data/lib/selenium/devtools/{v87 → v91}/animation.rb +2 -2
  58. data/lib/selenium/devtools/{v86 → v91}/application_cache.rb +2 -2
  59. data/lib/selenium/devtools/{v87 → v91}/audits.rb +7 -2
  60. data/lib/selenium/devtools/{v87 → v91}/background_service.rb +2 -2
  61. data/lib/selenium/devtools/{v87 → v91}/browser.rb +20 -4
  62. data/lib/selenium/devtools/{v87 → v91}/cache_storage.rb +2 -2
  63. data/lib/selenium/devtools/{v86 → v91}/cast.rb +2 -2
  64. data/lib/selenium/devtools/{v86 → v91}/console.rb +2 -2
  65. data/lib/selenium/devtools/{v87 → v91}/css.rb +2 -2
  66. data/lib/selenium/devtools/{v86 → v91}/database.rb +2 -2
  67. data/lib/selenium/devtools/{v87 → v91}/debugger.rb +2 -9
  68. data/lib/selenium/devtools/{v86 → v91}/device_orientation.rb +2 -2
  69. data/lib/selenium/devtools/{v86 → v91}/dom.rb +2 -2
  70. data/lib/selenium/devtools/{v87 → v91}/dom_debugger.rb +7 -2
  71. data/lib/selenium/devtools/{v87 → v91}/dom_snapshot.rb +2 -2
  72. data/lib/selenium/devtools/{v87 → v91}/dom_storage.rb +2 -2
  73. data/lib/selenium/devtools/{v86 → v91}/emulation.rb +7 -2
  74. data/lib/selenium/devtools/{v86 → v91}/fetch.rb +2 -2
  75. data/lib/selenium/devtools/{v86 → v91}/headless_experimental.rb +2 -2
  76. data/lib/selenium/devtools/{v86 → v91}/heap_profiler.rb +2 -2
  77. data/lib/selenium/devtools/{v87 → v91}/indexed_db.rb +2 -2
  78. data/lib/selenium/devtools/{v87 → v91}/input.rb +25 -3
  79. data/lib/selenium/devtools/{v86 → v91}/inspector.rb +2 -2
  80. data/lib/selenium/devtools/{v87 → v91}/io.rb +2 -2
  81. data/lib/selenium/devtools/{v87 → v91}/layer_tree.rb +2 -2
  82. data/lib/selenium/devtools/{v86 → v91}/log.rb +2 -2
  83. data/lib/selenium/devtools/{v86 → v91}/media.rb +2 -2
  84. data/lib/selenium/devtools/{v87 → v91}/memory.rb +2 -2
  85. data/lib/selenium/devtools/{v86 → v91}/network.rb +32 -4
  86. data/lib/selenium/devtools/{v87 → v91}/overlay.rb +17 -2
  87. data/lib/selenium/devtools/{v87 → v91}/page.rb +16 -4
  88. data/lib/selenium/devtools/{v87 → v91}/performance.rb +2 -2
  89. data/lib/selenium/devtools/v91/performance_timeline.rb +46 -0
  90. data/lib/selenium/devtools/{v86 → v91}/profiler.rb +14 -2
  91. data/lib/selenium/devtools/{v86 → v91}/runtime.rb +8 -6
  92. data/lib/selenium/devtools/{v87 → v91}/schema.rb +2 -2
  93. data/lib/selenium/devtools/{v87 → v91}/security.rb +2 -2
  94. data/lib/selenium/devtools/{v87 → v91}/service_worker.rb +2 -2
  95. data/lib/selenium/devtools/{v87 → v91}/storage.rb +17 -2
  96. data/lib/selenium/devtools/{v87 → v91}/system_info.rb +2 -2
  97. data/lib/selenium/devtools/{v87 → v91}/target.rb +2 -2
  98. data/lib/selenium/devtools/{v87 → v91}/tethering.rb +2 -2
  99. data/lib/selenium/devtools/{v87 → v91}/tracing.rb +9 -6
  100. data/lib/selenium/devtools/{v87 → v91}/web_audio.rb +2 -2
  101. data/lib/selenium/devtools/{v87 → v91}/web_authn.rb +2 -2
  102. data/lib/selenium/devtools/version.rb +1 -1
  103. metadata +97 -94
  104. data/lib/selenium/devtools/v86.rb +0 -1
  105. data/lib/selenium/devtools/v87.rb +0 -1
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Licensed to the Software Freedom Conservancy (SFC) under one
4
+ # or more contributor license agreements. See the NOTICE file
5
+ # distributed with this work for additional information
6
+ # regarding copyright ownership. The SFC licenses this file
7
+ # to you under the Apache License, Version 2.0 (the
8
+ # "License"); you may not use this file except in compliance
9
+ # with the License. You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing,
14
+ # software distributed under the License is distributed on an
15
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+ # KIND, either express or implied. See the License for the
17
+ # specific language governing permissions and limitations
18
+ # under the License.
19
+
20
+ # This file is automatically generated. Any changes will be lost!
21
+ module Selenium
22
+ module DevTools
23
+ module V90
24
+ class PerformanceTimeline
25
+ EVENTS = {
26
+ timeline_event_added: 'timelineEventAdded',
27
+ }.freeze
28
+
29
+ def initialize(devtools)
30
+ @devtools = devtools
31
+ end
32
+
33
+ def on(event, &block)
34
+ event = EVENTS[event] if event.is_a?(Symbol)
35
+ @devtools.callbacks["PerformanceTimeline.#{event}"] << block
36
+ end
37
+
38
+ def enable(event_types:)
39
+ @devtools.send_cmd('PerformanceTimeline.enable',
40
+ eventTypes: event_types)
41
+ end
42
+
43
+ end # PerformanceTimeline
44
+ end # V90
45
+ end # DevTools
46
+ end # Selenium
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V87
23
+ module V90
24
24
  class Profiler
25
25
  EVENTS = {
26
26
  console_profile_finished: 'consoleProfileFinished',
@@ -114,6 +114,6 @@ module Selenium
114
114
  end
115
115
 
116
116
  end # Profiler
117
- end # V87
117
+ end # V90
118
118
  end # DevTools
119
119
  end # Selenium
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V87
23
+ module V90
24
24
  class Runtime
25
25
  EVENTS = {
26
26
  binding_called: 'bindingCalled',
@@ -83,7 +83,7 @@ module Selenium
83
83
  @devtools.send_cmd('Runtime.enable')
84
84
  end
85
85
 
86
- def evaluate(expression:, object_group: nil, include_command_line_api: nil, silent: nil, context_id: nil, return_by_value: nil, generate_preview: nil, user_gesture: nil, await_promise: nil, throw_on_side_effect: nil, timeout: nil, disable_breaks: nil, repl_mode: nil, allow_unsafe_eval_blocked_by_csp: nil)
86
+ def evaluate(expression:, object_group: nil, include_command_line_api: nil, silent: nil, context_id: nil, return_by_value: nil, generate_preview: nil, user_gesture: nil, await_promise: nil, throw_on_side_effect: nil, timeout: nil, disable_breaks: nil, repl_mode: nil, allow_unsafe_eval_blocked_by_csp: nil, unique_context_id: nil)
87
87
  @devtools.send_cmd('Runtime.evaluate',
88
88
  expression: expression,
89
89
  objectGroup: object_group,
@@ -98,7 +98,8 @@ module Selenium
98
98
  timeout: timeout,
99
99
  disableBreaks: disable_breaks,
100
100
  replMode: repl_mode,
101
- allowUnsafeEvalBlockedByCSP: allow_unsafe_eval_blocked_by_csp)
101
+ allowUnsafeEvalBlockedByCSP: allow_unsafe_eval_blocked_by_csp,
102
+ uniqueContextId: unique_context_id)
102
103
  end
103
104
 
104
105
  def get_isolate_id
@@ -173,10 +174,11 @@ module Selenium
173
174
  @devtools.send_cmd('Runtime.terminateExecution')
174
175
  end
175
176
 
176
- def add_binding(name:, execution_context_id: nil)
177
+ def add_binding(name:, execution_context_id: nil, execution_context_name: nil)
177
178
  @devtools.send_cmd('Runtime.addBinding',
178
179
  name: name,
179
- executionContextId: execution_context_id)
180
+ executionContextId: execution_context_id,
181
+ executionContextName: execution_context_name)
180
182
  end
181
183
 
182
184
  def remove_binding(name:)
@@ -185,6 +187,6 @@ module Selenium
185
187
  end
186
188
 
187
189
  end # Runtime
188
- end # V87
190
+ end # V90
189
191
  end # DevTools
190
192
  end # Selenium
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V86
23
+ module V90
24
24
  class Schema
25
25
 
26
26
  def initialize(devtools)
@@ -37,6 +37,6 @@ module Selenium
37
37
  end
38
38
 
39
39
  end # Schema
40
- end # V86
40
+ end # V90
41
41
  end # DevTools
42
42
  end # Selenium
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V86
23
+ module V90
24
24
  class Security
25
25
  EVENTS = {
26
26
  certificate_error: 'certificateError',
@@ -62,6 +62,6 @@ module Selenium
62
62
  end
63
63
 
64
64
  end # Security
65
- end # V86
65
+ end # V90
66
66
  end # DevTools
67
67
  end # Selenium
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V86
23
+ module V90
24
24
  class ServiceWorker
25
25
  EVENTS = {
26
26
  worker_error_reported: 'workerErrorReported',
@@ -107,6 +107,6 @@ module Selenium
107
107
  end
108
108
 
109
109
  end # ServiceWorker
110
- end # V86
110
+ end # V90
111
111
  end # DevTools
112
112
  end # Selenium
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V86
23
+ module V90
24
24
  class Storage
25
25
  EVENTS = {
26
26
  cache_storage_content_updated: 'cacheStorageContentUpdated',
@@ -65,6 +65,12 @@ module Selenium
65
65
  origin: origin)
66
66
  end
67
67
 
68
+ def override_quota_for_origin(origin:, quota_size: nil)
69
+ @devtools.send_cmd('Storage.overrideQuotaForOrigin',
70
+ origin: origin,
71
+ quotaSize: quota_size)
72
+ end
73
+
68
74
  def track_cache_storage_for_origin(origin:)
69
75
  @devtools.send_cmd('Storage.trackCacheStorageForOrigin',
70
76
  origin: origin)
@@ -85,7 +91,11 @@ module Selenium
85
91
  origin: origin)
86
92
  end
87
93
 
94
+ def get_trust_tokens
95
+ @devtools.send_cmd('Storage.getTrustTokens')
96
+ end
97
+
88
98
  end # Storage
89
- end # V86
99
+ end # V90
90
100
  end # DevTools
91
101
  end # Selenium
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V86
23
+ module V90
24
24
  class SystemInfo
25
25
 
26
26
  def initialize(devtools)
@@ -41,6 +41,6 @@ module Selenium
41
41
  end
42
42
 
43
43
  end # SystemInfo
44
- end # V86
44
+ end # V90
45
45
  end # DevTools
46
46
  end # Selenium
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V86
23
+ module V90
24
24
  class Target
25
25
  EVENTS = {
26
26
  attached_to_target: 'attachedToTarget',
@@ -134,6 +134,6 @@ module Selenium
134
134
  end
135
135
 
136
136
  end # Target
137
- end # V86
137
+ end # V90
138
138
  end # DevTools
139
139
  end # Selenium
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V86
23
+ module V90
24
24
  class Tethering
25
25
  EVENTS = {
26
26
  accepted: 'accepted',
@@ -46,6 +46,6 @@ module Selenium
46
46
  end
47
47
 
48
48
  end # Tethering
49
- end # V86
49
+ end # V90
50
50
  end # DevTools
51
51
  end # Selenium
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V86
23
+ module V90
24
24
  class Tracing
25
25
  EVENTS = {
26
26
  buffer_usage: 'bufferUsage',
@@ -50,12 +50,13 @@ module Selenium
50
50
  syncId: sync_id)
51
51
  end
52
52
 
53
- def request_memory_dump(deterministic: nil)
53
+ def request_memory_dump(deterministic: nil, level_of_detail: nil)
54
54
  @devtools.send_cmd('Tracing.requestMemoryDump',
55
- deterministic: deterministic)
55
+ deterministic: deterministic,
56
+ levelOfDetail: level_of_detail)
56
57
  end
57
58
 
58
- def start(categories: nil, options: nil, buffer_usage_reporting_interval: nil, transfer_mode: nil, stream_format: nil, stream_compression: nil, trace_config: nil)
59
+ def start(categories: nil, options: nil, buffer_usage_reporting_interval: nil, transfer_mode: nil, stream_format: nil, stream_compression: nil, trace_config: nil, perfetto_config: nil)
59
60
  @devtools.send_cmd('Tracing.start',
60
61
  categories: categories,
61
62
  options: options,
@@ -63,10 +64,11 @@ module Selenium
63
64
  transferMode: transfer_mode,
64
65
  streamFormat: stream_format,
65
66
  streamCompression: stream_compression,
66
- traceConfig: trace_config)
67
+ traceConfig: trace_config,
68
+ perfettoConfig: perfetto_config)
67
69
  end
68
70
 
69
71
  end # Tracing
70
- end # V86
72
+ end # V90
71
73
  end # DevTools
72
74
  end # Selenium
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V86
23
+ module V90
24
24
  class WebAudio
25
25
  EVENTS = {
26
26
  context_created: 'contextCreated',
@@ -61,6 +61,6 @@ module Selenium
61
61
  end
62
62
 
63
63
  end # WebAudio
64
- end # V86
64
+ end # V90
65
65
  end # DevTools
66
66
  end # Selenium
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V86
23
+ module V90
24
24
  class WebAuthn
25
25
 
26
26
  def initialize(devtools)
@@ -91,6 +91,6 @@ module Selenium
91
91
  end
92
92
 
93
93
  end # WebAuthn
94
- end # V86
94
+ end # V90
95
95
  end # DevTools
96
96
  end # Selenium
@@ -0,0 +1 @@
1
+ Dir.glob("#{File.dirname(File.absolute_path(__FILE__))}/v91/*", &method(:require))
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V86
23
+ module V91
24
24
  class Accessibility
25
25
 
26
26
  def initialize(devtools)
@@ -48,11 +48,26 @@ module Selenium
48
48
  fetchRelatives: fetch_relatives)
49
49
  end
50
50
 
51
- def get_full_ax_tree
52
- @devtools.send_cmd('Accessibility.getFullAXTree')
51
+ def get_full_ax_tree(max_depth: nil)
52
+ @devtools.send_cmd('Accessibility.getFullAXTree',
53
+ max_depth: max_depth)
54
+ end
55
+
56
+ def get_child_ax_nodes(id:)
57
+ @devtools.send_cmd('Accessibility.getChildAXNodes',
58
+ id: id)
59
+ end
60
+
61
+ def query_ax_tree(node_id: nil, backend_node_id: nil, object_id: nil, accessible_name: nil, role: nil)
62
+ @devtools.send_cmd('Accessibility.queryAXTree',
63
+ nodeId: node_id,
64
+ backendNodeId: backend_node_id,
65
+ objectId: object_id,
66
+ accessibleName: accessible_name,
67
+ role: role)
53
68
  end
54
69
 
55
70
  end # Accessibility
56
- end # V86
71
+ end # V91
57
72
  end # DevTools
58
73
  end # Selenium
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V87
23
+ module V91
24
24
  class Animation
25
25
  EVENTS = {
26
26
  animation_canceled: 'animationCanceled',
@@ -89,6 +89,6 @@ module Selenium
89
89
  end
90
90
 
91
91
  end # Animation
92
- end # V87
92
+ end # V91
93
93
  end # DevTools
94
94
  end # Selenium
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V86
23
+ module V91
24
24
  class ApplicationCache
25
25
  EVENTS = {
26
26
  application_cache_status_updated: 'applicationCacheStatusUpdated',
@@ -55,6 +55,6 @@ module Selenium
55
55
  end
56
56
 
57
57
  end # ApplicationCache
58
- end # V86
58
+ end # V91
59
59
  end # DevTools
60
60
  end # Selenium
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V87
23
+ module V91
24
24
  class Audits
25
25
  EVENTS = {
26
26
  issue_added: 'issueAdded',
@@ -51,7 +51,12 @@ module Selenium
51
51
  @devtools.send_cmd('Audits.enable')
52
52
  end
53
53
 
54
+ def check_contrast(report_aaa: nil)
55
+ @devtools.send_cmd('Audits.checkContrast',
56
+ reportAAA: report_aaa)
57
+ end
58
+
54
59
  end # Audits
55
- end # V87
60
+ end # V91
56
61
  end # DevTools
57
62
  end # Selenium
@@ -20,7 +20,7 @@
20
20
  # This file is automatically generated. Any changes will be lost!
21
21
  module Selenium
22
22
  module DevTools
23
- module V87
23
+ module V91
24
24
  class BackgroundService
25
25
  EVENTS = {
26
26
  recording_state_changed: 'recordingStateChanged',
@@ -58,6 +58,6 @@ module Selenium
58
58
  end
59
59
 
60
60
  end # BackgroundService
61
- end # V87
61
+ end # V91
62
62
  end # DevTools
63
63
  end # Selenium