selenium-webdriver 4.1.0 → 4.7.1

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 (98) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +141 -1
  3. data/LICENSE +1 -1
  4. data/NOTICE +1 -1
  5. data/bin/linux/selenium-manager +0 -0
  6. data/bin/macos/selenium-manager +0 -0
  7. data/bin/windows/selenium-manager.exe +0 -0
  8. data/lib/selenium/server.rb +34 -26
  9. data/lib/selenium/webdriver/atoms/findElements.js +0 -0
  10. data/lib/selenium/webdriver/atoms/getAttribute.js +0 -0
  11. data/lib/selenium/webdriver/atoms/isDisplayed.js +0 -0
  12. data/lib/selenium/webdriver/atoms/mutationListener.js +0 -0
  13. data/lib/selenium/webdriver/bidi/session.rb +38 -0
  14. data/lib/selenium/webdriver/bidi.rb +55 -0
  15. data/lib/selenium/webdriver/chrome/driver.rb +1 -0
  16. data/lib/selenium/webdriver/chrome/features.rb +5 -0
  17. data/lib/selenium/webdriver/chrome/options.rb +33 -19
  18. data/lib/selenium/webdriver/chrome/service.rb +1 -1
  19. data/lib/selenium/webdriver/chrome.rb +0 -14
  20. data/lib/selenium/webdriver/common/action_builder.rb +108 -21
  21. data/lib/selenium/webdriver/common/child_process.rb +126 -0
  22. data/lib/selenium/webdriver/common/driver.rb +22 -55
  23. data/lib/selenium/webdriver/common/driver_extensions/{has_remote_status.rb → has_bidi.rb} +12 -5
  24. data/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +10 -0
  25. data/lib/selenium/webdriver/common/driver_extensions/has_context.rb +1 -2
  26. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +1 -1
  27. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +2 -67
  28. data/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +1 -1
  29. data/lib/selenium/webdriver/common/element.rb +2 -2
  30. data/lib/selenium/webdriver/common/error.rb +1 -1
  31. data/lib/selenium/webdriver/common/interactions/input_device.rb +10 -4
  32. data/lib/selenium/webdriver/common/interactions/interaction.rb +12 -25
  33. data/lib/selenium/webdriver/common/interactions/interactions.rb +24 -4
  34. data/lib/selenium/webdriver/common/interactions/key_actions.rb +5 -1
  35. data/lib/selenium/webdriver/common/interactions/key_input.rb +11 -27
  36. data/lib/selenium/webdriver/common/interactions/none_input.rb +10 -8
  37. data/lib/selenium/webdriver/common/interactions/pause.rb +49 -0
  38. data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +59 -70
  39. data/lib/selenium/webdriver/common/interactions/pointer_cancel.rb +45 -0
  40. data/lib/selenium/webdriver/common/interactions/pointer_event_properties.rb +63 -0
  41. data/lib/selenium/webdriver/common/interactions/pointer_input.rb +15 -84
  42. data/lib/selenium/webdriver/common/interactions/pointer_move.rb +60 -0
  43. data/lib/selenium/webdriver/common/interactions/pointer_press.rb +85 -0
  44. data/lib/selenium/webdriver/common/interactions/scroll.rb +57 -0
  45. data/lib/selenium/webdriver/common/interactions/scroll_origin.rb +48 -0
  46. data/lib/selenium/webdriver/common/interactions/typing_interaction.rb +54 -0
  47. data/lib/selenium/webdriver/common/interactions/wheel_actions.rb +113 -0
  48. data/lib/selenium/webdriver/common/interactions/wheel_input.rb +42 -0
  49. data/lib/selenium/webdriver/common/keys.rb +1 -0
  50. data/lib/selenium/webdriver/common/manager.rb +0 -27
  51. data/lib/selenium/webdriver/common/options.rb +2 -9
  52. data/lib/selenium/webdriver/common/platform.rb +8 -5
  53. data/lib/selenium/webdriver/common/search_context.rb +0 -6
  54. data/lib/selenium/webdriver/common/selenium_manager.rb +91 -0
  55. data/lib/selenium/webdriver/common/service.rb +7 -3
  56. data/lib/selenium/webdriver/common/service_manager.rb +3 -12
  57. data/lib/selenium/webdriver/common/shadow_root.rb +1 -1
  58. data/lib/selenium/webdriver/common/socket_lock.rb +1 -2
  59. data/lib/selenium/webdriver/common/socket_poller.rb +1 -1
  60. data/lib/selenium/webdriver/common/takes_screenshot.rb +1 -1
  61. data/lib/selenium/webdriver/common/virtual_authenticator/credential.rb +83 -0
  62. data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb +73 -0
  63. data/lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb +62 -0
  64. data/lib/selenium/webdriver/common/websocket_connection.rb +165 -0
  65. data/lib/selenium/webdriver/common/window.rb +6 -6
  66. data/lib/selenium/webdriver/common/zipper.rb +1 -1
  67. data/lib/selenium/webdriver/common.rb +19 -3
  68. data/lib/selenium/webdriver/devtools/network_interceptor.rb +176 -0
  69. data/lib/selenium/webdriver/devtools/request.rb +1 -1
  70. data/lib/selenium/webdriver/devtools/response.rb +1 -1
  71. data/lib/selenium/webdriver/devtools.rb +6 -112
  72. data/lib/selenium/webdriver/edge/features.rb +1 -0
  73. data/lib/selenium/webdriver/firefox/driver.rb +1 -0
  74. data/lib/selenium/webdriver/firefox/features.rb +6 -5
  75. data/lib/selenium/webdriver/firefox/options.rb +5 -2
  76. data/lib/selenium/webdriver/firefox/profile.rb +1 -5
  77. data/lib/selenium/webdriver/firefox/util.rb +46 -0
  78. data/lib/selenium/webdriver/firefox.rb +1 -14
  79. data/lib/selenium/webdriver/ie.rb +0 -14
  80. data/lib/selenium/webdriver/remote/bridge.rb +54 -19
  81. data/lib/selenium/webdriver/remote/commands.rb +15 -6
  82. data/lib/selenium/webdriver/remote/driver.rb +0 -1
  83. data/lib/selenium/webdriver/remote/http/default.rb +6 -12
  84. data/lib/selenium/webdriver/remote/response.rb +2 -2
  85. data/lib/selenium/webdriver/safari/options.rb +1 -1
  86. data/lib/selenium/webdriver/safari.rb +0 -14
  87. data/lib/selenium/webdriver/support/cdp_client_generator.rb +4 -4
  88. data/lib/selenium/webdriver/support/color.rb +7 -7
  89. data/lib/selenium/webdriver/support/guards/guard_condition.rb +1 -1
  90. data/lib/selenium/webdriver/support/guards.rb +1 -1
  91. data/lib/selenium/webdriver/support/nightly_version_generator.rb +60 -0
  92. data/lib/selenium/webdriver/support/select.rb +3 -1
  93. data/lib/selenium/webdriver/version.rb +1 -1
  94. data/lib/selenium/webdriver.rb +1 -1
  95. data/selenium-webdriver.gemspec +14 -10
  96. metadata +66 -42
  97. data/lib/selenium/webdriver/remote/http/persistent.rb +0 -65
  98. data/lib/selenium/webdriver/support/cdp/domain.rb.erb +0 -63
metadata CHANGED
@@ -1,37 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selenium-webdriver
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 4.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Rodionov
8
8
  - Titus Fortner
9
9
  - Thomas Walpole
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-11-22 00:00:00.000000000 Z
13
+ date: 2022-12-02 00:00:00.000000000 Z
14
14
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: childprocess
17
- requirement: !ruby/object:Gem::Requirement
18
- requirements:
19
- - - ">="
20
- - !ruby/object:Gem::Version
21
- version: '0.5'
22
- - - "<"
23
- - !ruby/object:Gem::Version
24
- version: '5.0'
25
- type: :runtime
26
- prerelease: false
27
- version_requirements: !ruby/object:Gem::Requirement
28
- requirements:
29
- - - ">="
30
- - !ruby/object:Gem::Version
31
- version: '0.5'
32
- - - "<"
33
- - !ruby/object:Gem::Version
34
- version: '5.0'
35
15
  - !ruby/object:Gem::Dependency
36
16
  name: rexml
37
17
  requirement: !ruby/object:Gem::Requirement
@@ -59,6 +39,9 @@ dependencies:
59
39
  - - ">="
60
40
  - !ruby/object:Gem::Version
61
41
  version: 1.2.2
42
+ - - "<"
43
+ - !ruby/object:Gem::Version
44
+ version: '3.0'
62
45
  type: :runtime
63
46
  prerelease: false
64
47
  version_requirements: !ruby/object:Gem::Requirement
@@ -66,20 +49,23 @@ dependencies:
66
49
  - - ">="
67
50
  - !ruby/object:Gem::Version
68
51
  version: 1.2.2
52
+ - - "<"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
69
55
  - !ruby/object:Gem::Dependency
70
- name: ffi
56
+ name: websocket
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - ">="
59
+ - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
61
+ version: '1.0'
62
+ type: :runtime
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - ">="
66
+ - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: '0'
68
+ version: '1.0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: pry
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -142,16 +128,30 @@ dependencies:
142
128
  requirements:
143
129
  - - "~>"
144
130
  - !ruby/object:Gem::Version
145
- version: 1.8.0
131
+ version: '1.31'
146
132
  type: :development
147
133
  prerelease: false
148
134
  version_requirements: !ruby/object:Gem::Requirement
149
135
  requirements:
150
136
  - - "~>"
151
137
  - !ruby/object:Gem::Version
152
- version: 1.8.0
138
+ version: '1.31'
153
139
  - !ruby/object:Gem::Dependency
154
140
  name: rubocop-performance
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '1.13'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '1.13'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rubocop-rake
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ">="
@@ -168,16 +168,16 @@ dependencies:
168
168
  name: rubocop-rspec
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ">="
171
+ - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: '0'
173
+ version: '2.12'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ">="
178
+ - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: '0'
180
+ version: '2.12'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: webmock
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -237,6 +237,9 @@ files:
237
237
  - LICENSE
238
238
  - NOTICE
239
239
  - README.md
240
+ - bin/linux/selenium-manager
241
+ - bin/macos/selenium-manager
242
+ - bin/windows/selenium-manager.exe
240
243
  - lib/selenium-webdriver.rb
241
244
  - lib/selenium/server.rb
242
245
  - lib/selenium/webdriver.rb
@@ -245,6 +248,8 @@ files:
245
248
  - lib/selenium/webdriver/atoms/getAttribute.js
246
249
  - lib/selenium/webdriver/atoms/isDisplayed.js
247
250
  - lib/selenium/webdriver/atoms/mutationListener.js
251
+ - lib/selenium/webdriver/bidi.rb
252
+ - lib/selenium/webdriver/bidi/session.rb
248
253
  - lib/selenium/webdriver/chrome.rb
249
254
  - lib/selenium/webdriver/chrome/driver.rb
250
255
  - lib/selenium/webdriver/chrome/features.rb
@@ -254,12 +259,14 @@ files:
254
259
  - lib/selenium/webdriver/common.rb
255
260
  - lib/selenium/webdriver/common/action_builder.rb
256
261
  - lib/selenium/webdriver/common/alert.rb
262
+ - lib/selenium/webdriver/common/child_process.rb
257
263
  - lib/selenium/webdriver/common/driver.rb
258
264
  - lib/selenium/webdriver/common/driver_extensions/downloads_files.rb
259
265
  - lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb
260
266
  - lib/selenium/webdriver/common/driver_extensions/has_addons.rb
261
267
  - lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb
262
268
  - lib/selenium/webdriver/common/driver_extensions/has_authentication.rb
269
+ - lib/selenium/webdriver/common/driver_extensions/has_bidi.rb
263
270
  - lib/selenium/webdriver/common/driver_extensions/has_casting.rb
264
271
  - lib/selenium/webdriver/common/driver_extensions/has_cdp.rb
265
272
  - lib/selenium/webdriver/common/driver_extensions/has_context.rb
@@ -274,7 +281,6 @@ files:
274
281
  - lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
275
282
  - lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
276
283
  - lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
277
- - lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
278
284
  - lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
279
285
  - lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
280
286
  - lib/selenium/webdriver/common/driver_extensions/prints_page.rb
@@ -291,8 +297,18 @@ files:
291
297
  - lib/selenium/webdriver/common/interactions/key_actions.rb
292
298
  - lib/selenium/webdriver/common/interactions/key_input.rb
293
299
  - lib/selenium/webdriver/common/interactions/none_input.rb
300
+ - lib/selenium/webdriver/common/interactions/pause.rb
294
301
  - lib/selenium/webdriver/common/interactions/pointer_actions.rb
302
+ - lib/selenium/webdriver/common/interactions/pointer_cancel.rb
303
+ - lib/selenium/webdriver/common/interactions/pointer_event_properties.rb
295
304
  - lib/selenium/webdriver/common/interactions/pointer_input.rb
305
+ - lib/selenium/webdriver/common/interactions/pointer_move.rb
306
+ - lib/selenium/webdriver/common/interactions/pointer_press.rb
307
+ - lib/selenium/webdriver/common/interactions/scroll.rb
308
+ - lib/selenium/webdriver/common/interactions/scroll_origin.rb
309
+ - lib/selenium/webdriver/common/interactions/typing_interaction.rb
310
+ - lib/selenium/webdriver/common/interactions/wheel_actions.rb
311
+ - lib/selenium/webdriver/common/interactions/wheel_input.rb
296
312
  - lib/selenium/webdriver/common/keys.rb
297
313
  - lib/selenium/webdriver/common/log_entry.rb
298
314
  - lib/selenium/webdriver/common/logger.rb
@@ -305,6 +321,7 @@ files:
305
321
  - lib/selenium/webdriver/common/profile_helper.rb
306
322
  - lib/selenium/webdriver/common/proxy.rb
307
323
  - lib/selenium/webdriver/common/search_context.rb
324
+ - lib/selenium/webdriver/common/selenium_manager.rb
308
325
  - lib/selenium/webdriver/common/service.rb
309
326
  - lib/selenium/webdriver/common/service_manager.rb
310
327
  - lib/selenium/webdriver/common/shadow_root.rb
@@ -313,13 +330,18 @@ files:
313
330
  - lib/selenium/webdriver/common/takes_screenshot.rb
314
331
  - lib/selenium/webdriver/common/target_locator.rb
315
332
  - lib/selenium/webdriver/common/timeouts.rb
333
+ - lib/selenium/webdriver/common/virtual_authenticator/credential.rb
334
+ - lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator.rb
335
+ - lib/selenium/webdriver/common/virtual_authenticator/virtual_authenticator_options.rb
316
336
  - lib/selenium/webdriver/common/wait.rb
337
+ - lib/selenium/webdriver/common/websocket_connection.rb
317
338
  - lib/selenium/webdriver/common/window.rb
318
339
  - lib/selenium/webdriver/common/zipper.rb
319
340
  - lib/selenium/webdriver/devtools.rb
320
341
  - lib/selenium/webdriver/devtools/console_event.rb
321
342
  - lib/selenium/webdriver/devtools/exception_event.rb
322
343
  - lib/selenium/webdriver/devtools/mutation_event.rb
344
+ - lib/selenium/webdriver/devtools/network_interceptor.rb
323
345
  - lib/selenium/webdriver/devtools/pinned_script.rb
324
346
  - lib/selenium/webdriver/devtools/request.rb
325
347
  - lib/selenium/webdriver/devtools/response.rb
@@ -337,6 +359,7 @@ files:
337
359
  - lib/selenium/webdriver/firefox/profile.rb
338
360
  - lib/selenium/webdriver/firefox/profiles_ini.rb
339
361
  - lib/selenium/webdriver/firefox/service.rb
362
+ - lib/selenium/webdriver/firefox/util.rb
340
363
  - lib/selenium/webdriver/ie.rb
341
364
  - lib/selenium/webdriver/ie/driver.rb
342
365
  - lib/selenium/webdriver/ie/options.rb
@@ -349,7 +372,6 @@ files:
349
372
  - lib/selenium/webdriver/remote/http/common.rb
350
373
  - lib/selenium/webdriver/remote/http/curb.rb
351
374
  - lib/selenium/webdriver/remote/http/default.rb
352
- - lib/selenium/webdriver/remote/http/persistent.rb
353
375
  - lib/selenium/webdriver/remote/response.rb
354
376
  - lib/selenium/webdriver/remote/server_error.rb
355
377
  - lib/selenium/webdriver/safari.rb
@@ -360,7 +382,6 @@ files:
360
382
  - lib/selenium/webdriver/support.rb
361
383
  - lib/selenium/webdriver/support/abstract_event_listener.rb
362
384
  - lib/selenium/webdriver/support/block_event_listener.rb
363
- - lib/selenium/webdriver/support/cdp/domain.rb.erb
364
385
  - lib/selenium/webdriver/support/cdp_client_generator.rb
365
386
  - lib/selenium/webdriver/support/color.rb
366
387
  - lib/selenium/webdriver/support/escaper.rb
@@ -368,6 +389,7 @@ files:
368
389
  - lib/selenium/webdriver/support/guards.rb
369
390
  - lib/selenium/webdriver/support/guards/guard.rb
370
391
  - lib/selenium/webdriver/support/guards/guard_condition.rb
392
+ - lib/selenium/webdriver/support/nightly_version_generator.rb
371
393
  - lib/selenium/webdriver/support/relative_locator.rb
372
394
  - lib/selenium/webdriver/support/select.rb
373
395
  - lib/selenium/webdriver/version.rb
@@ -377,8 +399,10 @@ licenses:
377
399
  - Apache-2.0
378
400
  metadata:
379
401
  changelog_uri: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES
402
+ github_repo: ssh://github.com/SeleniumHQ/selenium
380
403
  source_code_uri: https://github.com/SeleniumHQ/selenium/tree/trunk/rb
381
- post_install_message:
404
+ rubygems_mfa_required: 'true'
405
+ post_install_message:
382
406
  rdoc_options: []
383
407
  require_paths:
384
408
  - lib
@@ -386,15 +410,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
386
410
  requirements:
387
411
  - - ">="
388
412
  - !ruby/object:Gem::Version
389
- version: '2.6'
413
+ version: '2.7'
390
414
  required_rubygems_version: !ruby/object:Gem::Requirement
391
415
  requirements:
392
416
  - - ">"
393
417
  - !ruby/object:Gem::Version
394
418
  version: 1.3.1
395
419
  requirements: []
396
- rubygems_version: 3.0.3
397
- signing_key:
420
+ rubygems_version: 3.1.6
421
+ signing_key:
398
422
  specification_version: 4
399
423
  summary: Selenium is a browser automation tool for automated testing of webapps and
400
424
  more
@@ -1,65 +0,0 @@
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
- require 'net/http/persistent'
21
-
22
- module Selenium
23
- module WebDriver
24
- module Remote
25
- module Http
26
- # @api private
27
- class Persistent < Default
28
- def initialize(open_timeout: nil, read_timeout: nil)
29
- WebDriver.logger.deprecate("Selenium::WebDriver::Remote::Http::Persistent",
30
- id: :http_persistent) { "The default HTTP client now uses persistence." }
31
- super
32
- end
33
-
34
- def close
35
- @http&.shutdown
36
- end
37
-
38
- private
39
-
40
- def start(*)
41
- # no need to explicitly start connection
42
- end
43
-
44
- def new_http_client
45
- proxy = nil
46
-
47
- if @proxy
48
- unless @proxy.respond_to?(:http)
49
- url = @proxy.http
50
- raise Error::WebDriverError, "expected HTTP proxy, got #{@proxy.inspect}" unless url
51
- end
52
- proxy = URI.parse(url)
53
- end
54
-
55
- Net::HTTP::Persistent.new name: 'webdriver', proxy: proxy
56
- end
57
-
58
- def response_for(request)
59
- http.request server_url, request
60
- end
61
- end # Persistent
62
- end # Http
63
- end # Remote
64
- end # WebDriver
65
- end # Selenium
@@ -1,63 +0,0 @@
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 <%= version %>
24
- class <%= domain[:domain] %>
25
- <% if domain[:events] %>
26
- EVENTS = {
27
- <% domain[:events].each do |event| %>
28
- <%= h.snake_case(event[:name]) %>: '<%= event[:name] %>',
29
- <% end %>
30
- }.freeze
31
- <% end %>
32
-
33
- def initialize(devtools)
34
- @devtools = devtools
35
- end
36
-
37
- def on(event, &block)
38
- event = EVENTS[event] if event.is_a?(Symbol)
39
- @devtools.callbacks["<%= domain[:domain] %>.#{event}"] << block
40
- end
41
-
42
- <% domain[:commands].each do |command| %>
43
- <% if command[:parameters] %>
44
- def <%= h.snake_case(command[:name]) %>(<%= h.kwargs(command[:parameters]) %>)
45
- <% else %>
46
- def <%= h.snake_case(command[:name]) %>
47
- <% end %>
48
- <% if command[:parameters] %>
49
- @devtools.send_cmd('<%= domain[:domain] %>.<%= command[:name] %>',
50
- <% until command[:parameters].empty? %>
51
- <% parameter = command[:parameters].shift %>
52
- <%= parameter[:name] %>: <%= h.snake_case(parameter[:name]) %><%= command[:parameters].empty? ? ')' : ',' %>
53
- <% end %>
54
- <% else %>
55
- @devtools.send_cmd('<%= domain[:domain] %>.<%= command[:name] %>')
56
- <% end %>
57
- end
58
-
59
- <% end %>
60
- end # <%= domain[:domain] %>
61
- end # <%= version %>
62
- end # DevTools
63
- end # Selenium