selenium-webdriver 4.0.0.alpha6 → 4.0.0.beta4

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 (133) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +137 -4
  3. data/Gemfile +3 -1
  4. data/LICENSE +1 -1
  5. data/NOTICE +2 -0
  6. data/README.md +4 -5
  7. data/lib/selenium/server.rb +18 -26
  8. data/lib/selenium/webdriver.rb +1 -4
  9. data/lib/selenium/webdriver/atoms/findElements.js +93 -93
  10. data/lib/selenium/webdriver/atoms/getAttribute.js +75 -59
  11. data/lib/selenium/webdriver/atoms/isDisplayed.js +72 -72
  12. data/lib/selenium/webdriver/atoms/mutationListener.js +55 -0
  13. data/lib/selenium/webdriver/chrome.rb +1 -1
  14. data/lib/selenium/webdriver/chrome/driver.rb +25 -10
  15. data/lib/selenium/webdriver/chrome/{bridge.rb → features.rb} +3 -3
  16. data/lib/selenium/webdriver/chrome/options.rb +51 -39
  17. data/lib/selenium/webdriver/chrome/profile.rb +6 -3
  18. data/lib/selenium/webdriver/chrome/service.rb +4 -2
  19. data/lib/selenium/webdriver/common.rb +8 -2
  20. data/lib/selenium/webdriver/common/driver.rb +36 -8
  21. data/lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb +43 -0
  22. data/lib/selenium/webdriver/common/driver_extensions/has_authentication.rb +89 -0
  23. data/lib/selenium/webdriver/{edge_html/driver.rb → common/driver_extensions/has_cdp.rb} +12 -13
  24. data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +6 -1
  25. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +5 -8
  26. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +149 -0
  27. data/lib/selenium/webdriver/common/driver_extensions/has_logs.rb +30 -0
  28. data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +6 -27
  29. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +67 -0
  30. data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +1 -0
  31. data/lib/selenium/webdriver/common/driver_extensions/{rotatable.rb → prints_page.rb} +18 -20
  32. data/lib/selenium/webdriver/common/element.rb +66 -12
  33. data/lib/selenium/webdriver/common/interactions/interaction.rb +4 -1
  34. data/lib/selenium/webdriver/common/logger.rb +5 -2
  35. data/lib/selenium/webdriver/common/manager.rb +6 -1
  36. data/lib/selenium/webdriver/common/options.rb +76 -14
  37. data/lib/selenium/webdriver/common/platform.rb +3 -1
  38. data/lib/selenium/webdriver/common/proxy.rb +6 -3
  39. data/lib/selenium/webdriver/common/search_context.rb +4 -1
  40. data/lib/selenium/webdriver/common/service.rb +1 -8
  41. data/lib/selenium/webdriver/common/service_manager.rb +1 -1
  42. data/lib/selenium/webdriver/common/socket_poller.rb +19 -30
  43. data/lib/selenium/webdriver/common/takes_screenshot.rb +66 -0
  44. data/lib/selenium/webdriver/common/target_locator.rb +4 -4
  45. data/lib/selenium/webdriver/devtools.rb +44 -18
  46. data/lib/selenium/webdriver/devtools/console_event.rb +38 -0
  47. data/lib/selenium/webdriver/devtools/exception_event.rb +36 -0
  48. data/lib/selenium/webdriver/devtools/mutation_event.rb +37 -0
  49. data/lib/selenium/webdriver/devtools/{console.rb → request.rb} +22 -22
  50. data/lib/selenium/webdriver/edge.rb +7 -29
  51. data/lib/selenium/webdriver/{edge_chrome → edge}/driver.rb +8 -6
  52. data/lib/selenium/webdriver/{edge_chrome/bridge.rb → edge/features.rb} +9 -7
  53. data/lib/selenium/webdriver/{edge_chrome → edge}/options.rb +11 -4
  54. data/lib/selenium/webdriver/{edge_chrome → edge}/profile.rb +2 -2
  55. data/lib/selenium/webdriver/{edge_chrome → edge}/service.rb +2 -2
  56. data/lib/selenium/webdriver/firefox.rb +5 -1
  57. data/lib/selenium/webdriver/firefox/driver.rb +18 -5
  58. data/lib/selenium/webdriver/firefox/{bridge.rb → features.rb} +9 -4
  59. data/lib/selenium/webdriver/firefox/options.rb +20 -21
  60. data/lib/selenium/webdriver/firefox/profile.rb +12 -2
  61. data/lib/selenium/webdriver/firefox/service.rb +1 -1
  62. data/lib/selenium/webdriver/ie/driver.rb +1 -2
  63. data/lib/selenium/webdriver/ie/options.rb +1 -11
  64. data/lib/selenium/webdriver/ie/service.rb +4 -2
  65. data/lib/selenium/webdriver/remote/bridge.rb +48 -30
  66. data/lib/selenium/webdriver/remote/capabilities.rb +105 -64
  67. data/lib/selenium/webdriver/remote/commands.rb +3 -0
  68. data/lib/selenium/webdriver/remote/driver.rb +10 -3
  69. data/lib/selenium/webdriver/remote/http/common.rb +0 -5
  70. data/lib/selenium/webdriver/remote/http/default.rb +8 -7
  71. data/lib/selenium/webdriver/remote/http/persistent.rb +6 -0
  72. data/lib/selenium/webdriver/safari.rb +8 -1
  73. data/lib/selenium/webdriver/safari/driver.rb +3 -8
  74. data/lib/selenium/webdriver/safari/{bridge.rb → features.rb} +3 -3
  75. data/lib/selenium/webdriver/safari/options.rb +0 -25
  76. data/lib/selenium/webdriver/support/block_event_listener.rb +1 -1
  77. data/lib/selenium/webdriver/support/cdp/domain.rb.erb +63 -0
  78. data/lib/selenium/webdriver/support/cdp_client_generator.rb +44 -13
  79. data/lib/selenium/webdriver/support/event_firing_bridge.rb +1 -1
  80. data/lib/selenium/webdriver/support/guards.rb +95 -0
  81. data/lib/selenium/webdriver/support/guards/guard.rb +89 -0
  82. data/lib/selenium/webdriver/support/guards/guard_condition.rb +52 -0
  83. data/lib/selenium/webdriver/support/select.rb +2 -2
  84. data/lib/selenium/webdriver/version.rb +1 -1
  85. data/selenium-webdriver.gemspec +26 -12
  86. metadata +91 -108
  87. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +0 -65
  88. data/lib/selenium/webdriver/devtools/accessibility.rb +0 -62
  89. data/lib/selenium/webdriver/devtools/animation.rb +0 -98
  90. data/lib/selenium/webdriver/devtools/application_cache.rb +0 -64
  91. data/lib/selenium/webdriver/devtools/audits.rb +0 -61
  92. data/lib/selenium/webdriver/devtools/background_service.rb +0 -67
  93. data/lib/selenium/webdriver/devtools/browser.rb +0 -123
  94. data/lib/selenium/webdriver/devtools/cache_storage.rb +0 -73
  95. data/lib/selenium/webdriver/devtools/cast.rb +0 -70
  96. data/lib/selenium/webdriver/devtools/css.rb +0 -165
  97. data/lib/selenium/webdriver/devtools/database.rb +0 -64
  98. data/lib/selenium/webdriver/devtools/debugger.rb +0 -229
  99. data/lib/selenium/webdriver/devtools/device_orientation.rb +0 -53
  100. data/lib/selenium/webdriver/devtools/dom.rb +0 -320
  101. data/lib/selenium/webdriver/devtools/domdebugger.rb +0 -93
  102. data/lib/selenium/webdriver/devtools/domsnapshot.rb +0 -65
  103. data/lib/selenium/webdriver/devtools/domstorage.rb +0 -79
  104. data/lib/selenium/webdriver/devtools/emulation.rb +0 -180
  105. data/lib/selenium/webdriver/devtools/fetch.rb +0 -97
  106. data/lib/selenium/webdriver/devtools/headless_experimental.rb +0 -61
  107. data/lib/selenium/webdriver/devtools/heap_profiler.rb +0 -107
  108. data/lib/selenium/webdriver/devtools/indexed_db.rb +0 -100
  109. data/lib/selenium/webdriver/devtools/input.rb +0 -140
  110. data/lib/selenium/webdriver/devtools/inspector.rb +0 -55
  111. data/lib/selenium/webdriver/devtools/io.rb +0 -59
  112. data/lib/selenium/webdriver/devtools/layer_tree.rb +0 -95
  113. data/lib/selenium/webdriver/devtools/log.rb +0 -66
  114. data/lib/selenium/webdriver/devtools/media.rb +0 -57
  115. data/lib/selenium/webdriver/devtools/memory.rb +0 -86
  116. data/lib/selenium/webdriver/devtools/network.rb +0 -228
  117. data/lib/selenium/webdriver/devtools/overlay.rb +0 -157
  118. data/lib/selenium/webdriver/devtools/page.rb +0 -374
  119. data/lib/selenium/webdriver/devtools/performance.rb +0 -63
  120. data/lib/selenium/webdriver/devtools/profiler.rb +0 -111
  121. data/lib/selenium/webdriver/devtools/runtime.rb +0 -193
  122. data/lib/selenium/webdriver/devtools/schema.rb +0 -46
  123. data/lib/selenium/webdriver/devtools/security.rb +0 -71
  124. data/lib/selenium/webdriver/devtools/service_worker.rb +0 -116
  125. data/lib/selenium/webdriver/devtools/storage.rb +0 -95
  126. data/lib/selenium/webdriver/devtools/system_info.rb +0 -50
  127. data/lib/selenium/webdriver/devtools/target.rb +0 -141
  128. data/lib/selenium/webdriver/devtools/tethering.rb +0 -55
  129. data/lib/selenium/webdriver/devtools/tracing.rb +0 -76
  130. data/lib/selenium/webdriver/devtools/web_audio.rb +0 -70
  131. data/lib/selenium/webdriver/devtools/web_authn.rb +0 -94
  132. data/lib/selenium/webdriver/edge_html/options.rb +0 -84
  133. data/lib/selenium/webdriver/edge_html/service.rb +0 -47
@@ -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
- module Selenium
21
- module WebDriver
22
- #
23
- # @api private
24
- #
25
-
26
- module DriverExtensions
27
- module TakesScreenshot
28
- #
29
- # Save a PNG screenshot to the given path
30
- #
31
- # @api public
32
- #
33
-
34
- def save_screenshot(png_path)
35
- extension = File.extname(png_path).downcase
36
- if extension != '.png'
37
- WebDriver.logger.warn "name used for saved screenshot does not match file type. "\
38
- "It should end with .png extension",
39
- id: :screenshot
40
- end
41
- File.open(png_path, 'wb') { |f| f << screenshot_as(:png) }
42
- end
43
-
44
- #
45
- # Return a PNG screenshot in the given format as a string
46
- #
47
- # @param [:base64, :png] format
48
- # @return String screenshot
49
- #
50
- # @api public
51
-
52
- def screenshot_as(format)
53
- case format
54
- when :base64
55
- bridge.screenshot
56
- when :png
57
- bridge.screenshot.unpack1('m')
58
- else
59
- raise Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
60
- end
61
- end
62
- end # TakesScreenshot
63
- end # DriverExtensions
64
- end # WebDriver
65
- end # Selenium
@@ -1,62 +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 WebDriver
23
- class DevTools
24
- def accessibility
25
- @accessibility ||= Accessibility.new(self)
26
- end
27
-
28
- class Accessibility
29
-
30
- def initialize(devtools)
31
- @devtools = devtools
32
- end
33
-
34
- def on(event, &block)
35
- event = EVENTS[event] if event.is_a?(Symbol)
36
- @devtools.callbacks["Accessibility.#{event}"] << block
37
- end
38
-
39
- def disable
40
- @devtools.send_cmd('Accessibility.disable')
41
- end
42
-
43
- def enable
44
- @devtools.send_cmd('Accessibility.enable')
45
- end
46
-
47
- def get_partial_axtree(node_id: nil, backend_node_id: nil, object_id: nil, fetch_relatives: nil)
48
- @devtools.send_cmd('Accessibility.getPartialAXTree',
49
- nodeId: node_id,
50
- backendNodeId: backend_node_id,
51
- objectId: object_id,
52
- fetchRelatives: fetch_relatives)
53
- end
54
-
55
- def get_full_axtree
56
- @devtools.send_cmd('Accessibility.getFullAXTree')
57
- end
58
-
59
- end # Accessibility
60
- end # DevTools
61
- end # WebDriver
62
- end # Selenium
@@ -1,98 +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 WebDriver
23
- class DevTools
24
- def animation
25
- @animation ||= Animation.new(self)
26
- end
27
-
28
- class Animation
29
- EVENTS = {
30
- animation_canceled: 'animationCanceled',
31
- animation_created: 'animationCreated',
32
- animation_started: 'animationStarted',
33
- }
34
-
35
- def initialize(devtools)
36
- @devtools = devtools
37
- end
38
-
39
- def on(event, &block)
40
- event = EVENTS[event] if event.is_a?(Symbol)
41
- @devtools.callbacks["Animation.#{event}"] << block
42
- end
43
-
44
- def disable
45
- @devtools.send_cmd('Animation.disable')
46
- end
47
-
48
- def enable
49
- @devtools.send_cmd('Animation.enable')
50
- end
51
-
52
- def get_current_time(id:)
53
- @devtools.send_cmd('Animation.getCurrentTime',
54
- id: id)
55
- end
56
-
57
- def get_playback_rate
58
- @devtools.send_cmd('Animation.getPlaybackRate')
59
- end
60
-
61
- def release_animations(animations:)
62
- @devtools.send_cmd('Animation.releaseAnimations',
63
- animations: animations)
64
- end
65
-
66
- def resolve_animation(animation_id:)
67
- @devtools.send_cmd('Animation.resolveAnimation',
68
- animationId: animation_id)
69
- end
70
-
71
- def seek_animations(animations:, current_time:)
72
- @devtools.send_cmd('Animation.seekAnimations',
73
- animations: animations,
74
- currentTime: current_time)
75
- end
76
-
77
- def set_paused(animations:, paused:)
78
- @devtools.send_cmd('Animation.setPaused',
79
- animations: animations,
80
- paused: paused)
81
- end
82
-
83
- def set_playback_rate(playback_rate:)
84
- @devtools.send_cmd('Animation.setPlaybackRate',
85
- playbackRate: playback_rate)
86
- end
87
-
88
- def set_timing(animation_id:, duration:, delay:)
89
- @devtools.send_cmd('Animation.setTiming',
90
- animationId: animation_id,
91
- duration: duration,
92
- delay: delay)
93
- end
94
-
95
- end # Animation
96
- end # DevTools
97
- end # WebDriver
98
- end # Selenium
@@ -1,64 +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 WebDriver
23
- class DevTools
24
- def application_cache
25
- @application_cache ||= ApplicationCache.new(self)
26
- end
27
-
28
- class ApplicationCache
29
- EVENTS = {
30
- application_cache_status_updated: 'applicationCacheStatusUpdated',
31
- network_state_updated: 'networkStateUpdated',
32
- }
33
-
34
- def initialize(devtools)
35
- @devtools = devtools
36
- end
37
-
38
- def on(event, &block)
39
- event = EVENTS[event] if event.is_a?(Symbol)
40
- @devtools.callbacks["ApplicationCache.#{event}"] << block
41
- end
42
-
43
- def enable
44
- @devtools.send_cmd('ApplicationCache.enable')
45
- end
46
-
47
- def get_application_cache_for_frame(frame_id:)
48
- @devtools.send_cmd('ApplicationCache.getApplicationCacheForFrame',
49
- frameId: frame_id)
50
- end
51
-
52
- def get_frames_with_manifests
53
- @devtools.send_cmd('ApplicationCache.getFramesWithManifests')
54
- end
55
-
56
- def get_manifest_for_frame(frame_id:)
57
- @devtools.send_cmd('ApplicationCache.getManifestForFrame',
58
- frameId: frame_id)
59
- end
60
-
61
- end # ApplicationCache
62
- end # DevTools
63
- end # WebDriver
64
- end # Selenium
@@ -1,61 +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 WebDriver
23
- class DevTools
24
- def audits
25
- @audits ||= Audits.new(self)
26
- end
27
-
28
- class Audits
29
- EVENTS = {
30
- issue_added: 'issueAdded',
31
- }
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["Audits.#{event}"] << block
40
- end
41
-
42
- def get_encoded_response(request_id:, encoding:, quality: nil, size_only: nil)
43
- @devtools.send_cmd('Audits.getEncodedResponse',
44
- requestId: request_id,
45
- encoding: encoding,
46
- quality: quality,
47
- sizeOnly: size_only)
48
- end
49
-
50
- def disable
51
- @devtools.send_cmd('Audits.disable')
52
- end
53
-
54
- def enable
55
- @devtools.send_cmd('Audits.enable')
56
- end
57
-
58
- end # Audits
59
- end # DevTools
60
- end # WebDriver
61
- end # Selenium
@@ -1,67 +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 WebDriver
23
- class DevTools
24
- def background_service
25
- @background_service ||= BackgroundService.new(self)
26
- end
27
-
28
- class BackgroundService
29
- EVENTS = {
30
- recording_state_changed: 'recordingStateChanged',
31
- background_service_event_received: 'backgroundServiceEventReceived',
32
- }
33
-
34
- def initialize(devtools)
35
- @devtools = devtools
36
- end
37
-
38
- def on(event, &block)
39
- event = EVENTS[event] if event.is_a?(Symbol)
40
- @devtools.callbacks["BackgroundService.#{event}"] << block
41
- end
42
-
43
- def start_observing(service:)
44
- @devtools.send_cmd('BackgroundService.startObserving',
45
- service: service)
46
- end
47
-
48
- def stop_observing(service:)
49
- @devtools.send_cmd('BackgroundService.stopObserving',
50
- service: service)
51
- end
52
-
53
- def set_recording(should_record:, service:)
54
- @devtools.send_cmd('BackgroundService.setRecording',
55
- shouldRecord: should_record,
56
- service: service)
57
- end
58
-
59
- def clear_events(service:)
60
- @devtools.send_cmd('BackgroundService.clearEvents',
61
- service: service)
62
- end
63
-
64
- end # BackgroundService
65
- end # DevTools
66
- end # WebDriver
67
- end # Selenium
@@ -1,123 +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 WebDriver
23
- class DevTools
24
- def browser
25
- @browser ||= Browser.new(self)
26
- end
27
-
28
- class Browser
29
-
30
- def initialize(devtools)
31
- @devtools = devtools
32
- end
33
-
34
- def on(event, &block)
35
- event = EVENTS[event] if event.is_a?(Symbol)
36
- @devtools.callbacks["Browser.#{event}"] << block
37
- end
38
-
39
- def set_permission(permission:, setting:, origin: nil, browser_context_id: nil)
40
- @devtools.send_cmd('Browser.setPermission',
41
- permission: permission,
42
- setting: setting,
43
- origin: origin,
44
- browserContextId: browser_context_id)
45
- end
46
-
47
- def grant_permissions(permissions:, origin: nil, browser_context_id: nil)
48
- @devtools.send_cmd('Browser.grantPermissions',
49
- permissions: permissions,
50
- origin: origin,
51
- browserContextId: browser_context_id)
52
- end
53
-
54
- def reset_permissions(browser_context_id: nil)
55
- @devtools.send_cmd('Browser.resetPermissions',
56
- browserContextId: browser_context_id)
57
- end
58
-
59
- def set_download_behavior(behavior:, browser_context_id: nil, download_path: nil)
60
- @devtools.send_cmd('Browser.setDownloadBehavior',
61
- behavior: behavior,
62
- browserContextId: browser_context_id,
63
- downloadPath: download_path)
64
- end
65
-
66
- def close
67
- @devtools.send_cmd('Browser.close')
68
- end
69
-
70
- def crash
71
- @devtools.send_cmd('Browser.crash')
72
- end
73
-
74
- def crash_gpu_process
75
- @devtools.send_cmd('Browser.crashGpuProcess')
76
- end
77
-
78
- def get_version
79
- @devtools.send_cmd('Browser.getVersion')
80
- end
81
-
82
- def get_browser_command_line
83
- @devtools.send_cmd('Browser.getBrowserCommandLine')
84
- end
85
-
86
- def get_histograms(query: nil, delta: nil)
87
- @devtools.send_cmd('Browser.getHistograms',
88
- query: query,
89
- delta: delta)
90
- end
91
-
92
- def get_histogram(name:, delta: nil)
93
- @devtools.send_cmd('Browser.getHistogram',
94
- name: name,
95
- delta: delta)
96
- end
97
-
98
- def get_window_bounds(window_id:)
99
- @devtools.send_cmd('Browser.getWindowBounds',
100
- windowId: window_id)
101
- end
102
-
103
- def get_window_for_target(target_id: nil)
104
- @devtools.send_cmd('Browser.getWindowForTarget',
105
- targetId: target_id)
106
- end
107
-
108
- def set_window_bounds(window_id:, bounds:)
109
- @devtools.send_cmd('Browser.setWindowBounds',
110
- windowId: window_id,
111
- bounds: bounds)
112
- end
113
-
114
- def set_dock_tile(badge_label: nil, image: nil)
115
- @devtools.send_cmd('Browser.setDockTile',
116
- badgeLabel: badge_label,
117
- image: image)
118
- end
119
-
120
- end # Browser
121
- end # DevTools
122
- end # WebDriver
123
- end # Selenium