osn-selenium 0.0.0__py3-none-any.whl → 1.1.0__py3-none-any.whl
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.
- osn_selenium/_base_models.py +41 -0
- osn_selenium/_cdp_import.py +253 -0
- osn_selenium/_functions.py +84 -0
- osn_selenium/_typehints.py +19 -0
- osn_selenium/abstract/executors/cdp/__init__.py +435 -0
- osn_selenium/abstract/executors/cdp/accessibility.py +62 -0
- osn_selenium/abstract/executors/cdp/animation.py +47 -0
- osn_selenium/abstract/executors/cdp/audits.py +39 -0
- osn_selenium/abstract/executors/cdp/autofill.py +34 -0
- osn_selenium/abstract/executors/cdp/background_service.py +22 -0
- osn_selenium/abstract/executors/cdp/bluetooth_emulation.py +95 -0
- osn_selenium/abstract/executors/cdp/browser.py +122 -0
- osn_selenium/abstract/executors/cdp/cache_storage.py +49 -0
- osn_selenium/abstract/executors/cdp/cast.py +31 -0
- osn_selenium/abstract/executors/cdp/console.py +18 -0
- osn_selenium/abstract/executors/cdp/css.py +197 -0
- osn_selenium/abstract/executors/cdp/debugger.py +198 -0
- osn_selenium/abstract/executors/cdp/device_access.py +22 -0
- osn_selenium/abstract/executors/cdp/device_orientation.py +14 -0
- osn_selenium/abstract/executors/cdp/dom.py +305 -0
- osn_selenium/abstract/executors/cdp/dom_debugger.py +57 -0
- osn_selenium/abstract/executors/cdp/dom_snapshot.py +42 -0
- osn_selenium/abstract/executors/cdp/dom_storage.py +31 -0
- osn_selenium/abstract/executors/cdp/emulation.py +259 -0
- osn_selenium/abstract/executors/cdp/event_breakpoints.py +18 -0
- osn_selenium/abstract/executors/cdp/extensions.py +31 -0
- osn_selenium/abstract/executors/cdp/fed_cm.py +35 -0
- osn_selenium/abstract/executors/cdp/fetch.py +76 -0
- osn_selenium/abstract/executors/cdp/file_system.py +11 -0
- osn_selenium/abstract/executors/cdp/headless_experimental.py +30 -0
- osn_selenium/abstract/executors/cdp/heap_profiler.py +73 -0
- osn_selenium/abstract/executors/cdp/indexed_db.py +99 -0
- osn_selenium/abstract/executors/cdp/input.py +158 -0
- osn_selenium/abstract/executors/cdp/inspector.py +14 -0
- osn_selenium/abstract/executors/cdp/io.py +24 -0
- osn_selenium/abstract/executors/cdp/layer_tree.py +61 -0
- osn_selenium/abstract/executors/cdp/log.py +27 -0
- osn_selenium/abstract/executors/cdp/media.py +14 -0
- osn_selenium/abstract/executors/cdp/memory.py +61 -0
- osn_selenium/abstract/executors/cdp/network.py +252 -0
- osn_selenium/abstract/executors/cdp/overlay.py +166 -0
- osn_selenium/abstract/executors/cdp/page.py +347 -0
- osn_selenium/abstract/executors/cdp/performance.py +28 -0
- osn_selenium/abstract/executors/cdp/performance_timeline.py +11 -0
- osn_selenium/abstract/executors/cdp/preload.py +14 -0
- osn_selenium/abstract/executors/cdp/profiler.py +54 -0
- osn_selenium/abstract/executors/cdp/pwa.py +46 -0
- osn_selenium/abstract/executors/cdp/runtime.py +176 -0
- osn_selenium/abstract/executors/cdp/schema.py +11 -0
- osn_selenium/abstract/executors/cdp/security.py +26 -0
- osn_selenium/abstract/executors/cdp/service_worker.py +54 -0
- osn_selenium/abstract/executors/cdp/storage.py +175 -0
- osn_selenium/abstract/executors/cdp/system_info.py +24 -0
- osn_selenium/abstract/executors/cdp/target.py +125 -0
- osn_selenium/abstract/executors/cdp/tethering.py +14 -0
- osn_selenium/abstract/executors/cdp/tracing.py +48 -0
- osn_selenium/abstract/executors/cdp/web_audio.py +19 -0
- osn_selenium/abstract/executors/cdp/web_authn.py +76 -0
- osn_selenium/abstract/executors/cdp.py +63 -0
- osn_selenium/abstract/executors/javascript.py +203 -0
- osn_selenium/abstract/instances/action_chains/__init__.py +12 -0
- osn_selenium/abstract/instances/action_chains/base.py +25 -0
- osn_selenium/abstract/instances/action_chains/click.py +93 -0
- osn_selenium/abstract/instances/action_chains/drag_and_drop.py +46 -0
- osn_selenium/abstract/instances/action_chains/hm_keyboard.py +44 -0
- osn_selenium/abstract/instances/action_chains/hm_move.py +104 -0
- osn_selenium/abstract/instances/action_chains/hm_scroll.py +75 -0
- osn_selenium/abstract/instances/action_chains/keyboard.py +79 -0
- osn_selenium/abstract/instances/action_chains/move.py +60 -0
- osn_selenium/abstract/instances/action_chains/scroll.py +61 -0
- osn_selenium/abstract/instances/action_chains/utils.py +44 -0
- osn_selenium/abstract/instances/alert.py +67 -0
- osn_selenium/abstract/instances/browser.py +76 -0
- osn_selenium/abstract/instances/browsing_context.py +310 -0
- osn_selenium/abstract/instances/dialog.py +107 -0
- osn_selenium/abstract/instances/fedcm.py +133 -0
- osn_selenium/abstract/instances/mobile.py +79 -0
- osn_selenium/abstract/instances/network.py +100 -0
- osn_selenium/abstract/instances/permissions.py +52 -0
- osn_selenium/abstract/instances/script.py +109 -0
- osn_selenium/abstract/instances/shadow_root.py +81 -0
- osn_selenium/abstract/instances/storage.py +98 -0
- osn_selenium/abstract/instances/switch_to.py +104 -0
- osn_selenium/abstract/instances/web_driver_wait.py +57 -0
- osn_selenium/abstract/instances/web_element.py +395 -0
- osn_selenium/abstract/instances/web_extension.py +70 -0
- osn_selenium/abstract/webdriver/blink/__init__.py +18 -0
- osn_selenium/abstract/webdriver/blink/base.py +80 -0
- osn_selenium/abstract/webdriver/blink/casting.py +82 -0
- osn_selenium/abstract/webdriver/blink/features.py +51 -0
- osn_selenium/abstract/webdriver/blink/lifecycle.py +76 -0
- osn_selenium/abstract/webdriver/blink/logging.py +40 -0
- osn_selenium/abstract/webdriver/blink/network.py +45 -0
- osn_selenium/abstract/webdriver/blink/settings.py +68 -0
- osn_selenium/abstract/webdriver/chrome/__init__.py +18 -0
- osn_selenium/abstract/webdriver/chrome/base.py +36 -0
- osn_selenium/abstract/webdriver/chrome/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/chrome/settings.py +110 -0
- osn_selenium/abstract/webdriver/core/__init__.py +16 -0
- osn_selenium/abstract/webdriver/core/actions.py +58 -0
- osn_selenium/abstract/webdriver/core/auth.py +145 -0
- osn_selenium/abstract/webdriver/core/base.py +298 -0
- osn_selenium/abstract/webdriver/core/capture.py +84 -0
- osn_selenium/abstract/webdriver/core/components.py +82 -0
- osn_selenium/abstract/webdriver/core/devtools.py +69 -0
- osn_selenium/abstract/webdriver/core/element.py +55 -0
- osn_selenium/abstract/webdriver/core/file.py +82 -0
- osn_selenium/abstract/webdriver/core/lifecycle.py +103 -0
- osn_selenium/abstract/webdriver/core/navigation.py +65 -0
- osn_selenium/abstract/webdriver/core/script.py +88 -0
- osn_selenium/abstract/webdriver/core/settings.py +43 -0
- osn_selenium/abstract/webdriver/core/storage.py +81 -0
- osn_selenium/abstract/webdriver/core/timeouts.py +101 -0
- osn_selenium/abstract/webdriver/core/window.py +237 -0
- osn_selenium/abstract/webdriver/edge/__init__.py +18 -0
- osn_selenium/abstract/webdriver/edge/base.py +36 -0
- osn_selenium/abstract/webdriver/edge/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/edge/settings.py +110 -0
- osn_selenium/abstract/webdriver/yandex/__init__.py +18 -0
- osn_selenium/abstract/webdriver/yandex/base.py +18 -0
- osn_selenium/abstract/webdriver/yandex/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/yandex/settings.py +110 -0
- osn_selenium/base_mixin.py +122 -0
- osn_selenium/browsers_handler/__init__.py +47 -17
- osn_selenium/browsers_handler/_linux.py +226 -0
- osn_selenium/browsers_handler/_windows.py +21 -14
- osn_selenium/browsers_handler/{types.py → models.py} +5 -2
- osn_selenium/dev_tools/_decorators.py +149 -0
- osn_selenium/dev_tools/_exception_helpers.py +116 -0
- osn_selenium/dev_tools/_functions.py +174 -0
- osn_selenium/dev_tools/_system_utils.py +35 -0
- osn_selenium/dev_tools/_typehints.py +35 -0
- osn_selenium/dev_tools/_validators.py +227 -0
- osn_selenium/dev_tools/_wrappers.py +92 -0
- osn_selenium/dev_tools/domains/__init__.py +7 -40
- osn_selenium/dev_tools/domains/abstract.py +98 -254
- osn_selenium/dev_tools/domains/fetch.py +229 -906
- osn_selenium/dev_tools/domains_default/fetch.py +40 -28
- osn_selenium/dev_tools/filters.py +40 -0
- osn_selenium/dev_tools/logger/main.py +214 -0
- osn_selenium/dev_tools/logger/models.py +232 -0
- osn_selenium/dev_tools/logger/target.py +278 -0
- osn_selenium/dev_tools/manager/__init__.py +16 -0
- osn_selenium/dev_tools/manager/base.py +124 -0
- osn_selenium/dev_tools/manager/lifecycle.py +236 -0
- osn_selenium/dev_tools/manager/logging.py +153 -0
- osn_selenium/dev_tools/manager/settings.py +89 -0
- osn_selenium/dev_tools/manager/targets.py +175 -0
- osn_selenium/dev_tools/models.py +49 -0
- osn_selenium/dev_tools/settings.py +139 -0
- osn_selenium/dev_tools/target/__init__.py +16 -0
- osn_selenium/dev_tools/target/base.py +427 -0
- osn_selenium/dev_tools/target/detach.py +54 -0
- osn_selenium/dev_tools/target/discovery.py +112 -0
- osn_selenium/dev_tools/target/events.py +120 -0
- osn_selenium/dev_tools/target/fingerprint.py +126 -0
- osn_selenium/dev_tools/target/lifecycle.py +184 -0
- osn_selenium/dev_tools/target/logging.py +163 -0
- osn_selenium/exceptions/__init__.py +1 -0
- osn_selenium/exceptions/base.py +9 -0
- osn_selenium/exceptions/configuration.py +84 -0
- osn_selenium/exceptions/dependencies.py +60 -0
- osn_selenium/exceptions/devtools.py +114 -0
- osn_selenium/exceptions/flags.py +45 -0
- osn_selenium/exceptions/instance.py +92 -0
- osn_selenium/exceptions/javascript.py +31 -0
- osn_selenium/exceptions/logic.py +31 -0
- osn_selenium/exceptions/path.py +77 -0
- osn_selenium/exceptions/platform.py +33 -0
- osn_selenium/exceptions/protocol.py +86 -0
- osn_selenium/exceptions/webdriver.py +44 -0
- osn_selenium/exceptions/window.py +63 -0
- osn_selenium/executors/__init__.py +1 -0
- osn_selenium/executors/sync/__init__.py +1 -0
- osn_selenium/executors/sync/cdp/__init__.py +550 -0
- osn_selenium/executors/sync/cdp/accessibility.py +74 -0
- osn_selenium/executors/sync/cdp/animation.py +50 -0
- osn_selenium/executors/sync/cdp/audits.py +48 -0
- osn_selenium/executors/sync/cdp/autofill.py +39 -0
- osn_selenium/executors/sync/cdp/background_service.py +30 -0
- osn_selenium/executors/sync/cdp/bluetooth_emulation.py +101 -0
- osn_selenium/executors/sync/cdp/browser.py +131 -0
- osn_selenium/executors/sync/cdp/cache_storage.py +66 -0
- osn_selenium/executors/sync/cdp/cast.py +38 -0
- osn_selenium/executors/sync/cdp/console.py +24 -0
- osn_selenium/executors/sync/cdp/css.py +187 -0
- osn_selenium/executors/sync/cdp/debugger.py +206 -0
- osn_selenium/executors/sync/cdp/device_access.py +27 -0
- osn_selenium/executors/sync/cdp/device_orientation.py +24 -0
- osn_selenium/executors/sync/cdp/dom.py +310 -0
- osn_selenium/executors/sync/cdp/dom_debugger.py +56 -0
- osn_selenium/executors/sync/cdp/dom_snapshot.py +58 -0
- osn_selenium/executors/sync/cdp/dom_storage.py +38 -0
- osn_selenium/executors/sync/cdp/emulation.py +270 -0
- osn_selenium/executors/sync/cdp/event_breakpoints.py +27 -0
- osn_selenium/executors/sync/cdp/extensions.py +39 -0
- osn_selenium/executors/sync/cdp/fed_cm.py +45 -0
- osn_selenium/executors/sync/cdp/fetch.py +96 -0
- osn_selenium/executors/sync/cdp/file_system.py +18 -0
- osn_selenium/executors/sync/cdp/headless_experimental.py +44 -0
- osn_selenium/executors/sync/cdp/heap_profiler.py +89 -0
- osn_selenium/executors/sync/cdp/indexed_db.py +142 -0
- osn_selenium/executors/sync/cdp/input.py +233 -0
- osn_selenium/executors/sync/cdp/inspector.py +21 -0
- osn_selenium/executors/sync/cdp/io.py +33 -0
- osn_selenium/executors/sync/cdp/layer_tree.py +71 -0
- osn_selenium/executors/sync/cdp/log.py +35 -0
- osn_selenium/executors/sync/cdp/media.py +21 -0
- osn_selenium/executors/sync/cdp/memory.py +62 -0
- osn_selenium/executors/sync/cdp/network.py +287 -0
- osn_selenium/executors/sync/cdp/overlay.py +174 -0
- osn_selenium/executors/sync/cdp/page.py +365 -0
- osn_selenium/executors/sync/cdp/performance.py +33 -0
- osn_selenium/executors/sync/cdp/performance_timeline.py +26 -0
- osn_selenium/executors/sync/cdp/preload.py +21 -0
- osn_selenium/executors/sync/cdp/profiler.py +58 -0
- osn_selenium/executors/sync/cdp/pwa.py +55 -0
- osn_selenium/executors/sync/cdp/runtime.py +221 -0
- osn_selenium/executors/sync/cdp/schema.py +23 -0
- osn_selenium/executors/sync/cdp/security.py +30 -0
- osn_selenium/executors/sync/cdp/service_worker.py +56 -0
- osn_selenium/executors/sync/cdp/storage.py +151 -0
- osn_selenium/executors/sync/cdp/system_info.py +30 -0
- osn_selenium/executors/sync/cdp/target.py +147 -0
- osn_selenium/executors/sync/cdp/tethering.py +21 -0
- osn_selenium/executors/sync/cdp/tracing.py +62 -0
- osn_selenium/executors/sync/cdp/web_audio.py +24 -0
- osn_selenium/executors/sync/cdp/web_authn.py +82 -0
- osn_selenium/executors/sync/cdp.py +100 -0
- osn_selenium/executors/sync/javascript.py +79 -0
- osn_selenium/executors/trio_threads/__init__.py +1 -0
- osn_selenium/executors/trio_threads/cdp/__init__.py +771 -0
- osn_selenium/executors/trio_threads/cdp/accessibility.py +87 -0
- osn_selenium/executors/trio_threads/cdp/animation.py +63 -0
- osn_selenium/executors/trio_threads/cdp/audits.py +57 -0
- osn_selenium/executors/trio_threads/cdp/autofill.py +52 -0
- osn_selenium/executors/trio_threads/cdp/background_service.py +40 -0
- osn_selenium/executors/trio_threads/cdp/bluetooth_emulation.py +111 -0
- osn_selenium/executors/trio_threads/cdp/browser.py +140 -0
- osn_selenium/executors/trio_threads/cdp/cache_storage.py +79 -0
- osn_selenium/executors/trio_threads/cdp/cast.py +47 -0
- osn_selenium/executors/trio_threads/cdp/console.py +33 -0
- osn_selenium/executors/trio_threads/cdp/css.py +196 -0
- osn_selenium/executors/trio_threads/cdp/debugger.py +219 -0
- osn_selenium/executors/trio_threads/cdp/device_access.py +40 -0
- osn_selenium/executors/trio_threads/cdp/device_orientation.py +34 -0
- osn_selenium/executors/trio_threads/cdp/dom.py +319 -0
- osn_selenium/executors/trio_threads/cdp/dom_debugger.py +69 -0
- osn_selenium/executors/trio_threads/cdp/dom_snapshot.py +71 -0
- osn_selenium/executors/trio_threads/cdp/dom_storage.py +51 -0
- osn_selenium/executors/trio_threads/cdp/emulation.py +283 -0
- osn_selenium/executors/trio_threads/cdp/event_breakpoints.py +37 -0
- osn_selenium/executors/trio_threads/cdp/extensions.py +52 -0
- osn_selenium/executors/trio_threads/cdp/fed_cm.py +54 -0
- osn_selenium/executors/trio_threads/cdp/fetch.py +105 -0
- osn_selenium/executors/trio_threads/cdp/file_system.py +31 -0
- osn_selenium/executors/trio_threads/cdp/headless_experimental.py +54 -0
- osn_selenium/executors/trio_threads/cdp/heap_profiler.py +102 -0
- osn_selenium/executors/trio_threads/cdp/indexed_db.py +155 -0
- osn_selenium/executors/trio_threads/cdp/input.py +242 -0
- osn_selenium/executors/trio_threads/cdp/inspector.py +34 -0
- osn_selenium/executors/trio_threads/cdp/io.py +42 -0
- osn_selenium/executors/trio_threads/cdp/layer_tree.py +84 -0
- osn_selenium/executors/trio_threads/cdp/log.py +44 -0
- osn_selenium/executors/trio_threads/cdp/media.py +30 -0
- osn_selenium/executors/trio_threads/cdp/memory.py +71 -0
- osn_selenium/executors/trio_threads/cdp/network.py +296 -0
- osn_selenium/executors/trio_threads/cdp/overlay.py +183 -0
- osn_selenium/executors/trio_threads/cdp/page.py +374 -0
- osn_selenium/executors/trio_threads/cdp/performance.py +46 -0
- osn_selenium/executors/trio_threads/cdp/performance_timeline.py +36 -0
- osn_selenium/executors/trio_threads/cdp/preload.py +30 -0
- osn_selenium/executors/trio_threads/cdp/profiler.py +71 -0
- osn_selenium/executors/trio_threads/cdp/pwa.py +64 -0
- osn_selenium/executors/trio_threads/cdp/runtime.py +230 -0
- osn_selenium/executors/trio_threads/cdp/schema.py +32 -0
- osn_selenium/executors/trio_threads/cdp/security.py +43 -0
- osn_selenium/executors/trio_threads/cdp/service_worker.py +69 -0
- osn_selenium/executors/trio_threads/cdp/storage.py +162 -0
- osn_selenium/executors/trio_threads/cdp/system_info.py +43 -0
- osn_selenium/executors/trio_threads/cdp/target.py +156 -0
- osn_selenium/executors/trio_threads/cdp/tethering.py +34 -0
- osn_selenium/executors/trio_threads/cdp/tracing.py +71 -0
- osn_selenium/executors/trio_threads/cdp/web_audio.py +37 -0
- osn_selenium/executors/trio_threads/cdp/web_authn.py +95 -0
- osn_selenium/executors/trio_threads/cdp.py +104 -0
- osn_selenium/executors/trio_threads/javascript.py +90 -0
- osn_selenium/executors/unified/__init__.py +1 -0
- osn_selenium/executors/unified/cdp/__init__.py +1 -0
- osn_selenium/executors/unified/cdp/accessibility.py +81 -0
- osn_selenium/executors/unified/cdp/animation.py +50 -0
- osn_selenium/executors/unified/cdp/audits.py +45 -0
- osn_selenium/executors/unified/cdp/autofill.py +41 -0
- osn_selenium/executors/unified/cdp/background_service.py +24 -0
- osn_selenium/executors/unified/cdp/bluetooth_emulation.py +132 -0
- osn_selenium/executors/unified/cdp/browser.py +143 -0
- osn_selenium/executors/unified/cdp/cache_storage.py +69 -0
- osn_selenium/executors/unified/cdp/cast.py +32 -0
- osn_selenium/executors/unified/cdp/console.py +18 -0
- osn_selenium/executors/unified/cdp/css.py +237 -0
- osn_selenium/executors/unified/cdp/debugger.py +243 -0
- osn_selenium/executors/unified/cdp/device_access.py +21 -0
- osn_selenium/executors/unified/cdp/device_orientation.py +18 -0
- osn_selenium/executors/unified/cdp/dom.py +380 -0
- osn_selenium/executors/unified/cdp/dom_debugger.py +65 -0
- osn_selenium/executors/unified/cdp/dom_snapshot.py +58 -0
- osn_selenium/executors/unified/cdp/dom_storage.py +38 -0
- osn_selenium/executors/unified/cdp/emulation.py +312 -0
- osn_selenium/executors/unified/cdp/event_breakpoints.py +24 -0
- osn_selenium/executors/unified/cdp/extensions.py +45 -0
- osn_selenium/executors/unified/cdp/fed_cm.py +51 -0
- osn_selenium/executors/unified/cdp/fetch.py +111 -0
- osn_selenium/executors/unified/cdp/file_system.py +15 -0
- osn_selenium/executors/unified/cdp/headless_experimental.py +38 -0
- osn_selenium/executors/unified/cdp/heap_profiler.py +101 -0
- osn_selenium/executors/unified/cdp/indexed_db.py +157 -0
- osn_selenium/executors/unified/cdp/input.py +254 -0
- osn_selenium/executors/unified/cdp/inspector.py +15 -0
- osn_selenium/executors/unified/cdp/io.py +29 -0
- osn_selenium/executors/unified/cdp/layer_tree.py +71 -0
- osn_selenium/executors/unified/cdp/log.py +29 -0
- osn_selenium/executors/unified/cdp/media.py +15 -0
- osn_selenium/executors/unified/cdp/memory.py +59 -0
- osn_selenium/executors/unified/cdp/network.py +323 -0
- osn_selenium/executors/unified/cdp/overlay.py +209 -0
- osn_selenium/executors/unified/cdp/page.py +410 -0
- osn_selenium/executors/unified/cdp/performance.py +27 -0
- osn_selenium/executors/unified/cdp/performance_timeline.py +17 -0
- osn_selenium/executors/unified/cdp/preload.py +15 -0
- osn_selenium/executors/unified/cdp/profiler.py +55 -0
- osn_selenium/executors/unified/cdp/pwa.py +55 -0
- osn_selenium/executors/unified/cdp/runtime.py +245 -0
- osn_selenium/executors/unified/cdp/schema.py +17 -0
- osn_selenium/executors/unified/cdp/security.py +27 -0
- osn_selenium/executors/unified/cdp/service_worker.py +62 -0
- osn_selenium/executors/unified/cdp/storage.py +178 -0
- osn_selenium/executors/unified/cdp/system_info.py +24 -0
- osn_selenium/executors/unified/cdp/target.py +165 -0
- osn_selenium/executors/unified/cdp/tethering.py +15 -0
- osn_selenium/executors/unified/cdp/tracing.py +62 -0
- osn_selenium/executors/unified/cdp/web_audio.py +18 -0
- osn_selenium/executors/unified/cdp/web_authn.py +103 -0
- osn_selenium/executors/unified/javascript.py +104 -0
- osn_selenium/flags/__init__.py +1 -0
- osn_selenium/flags/_functions.py +45 -0
- osn_selenium/flags/_typehints.py +34 -0
- osn_selenium/flags/_validators.py +101 -0
- osn_selenium/{webdrivers/BaseDriver/flags.py → flags/base.py} +159 -245
- osn_selenium/{webdrivers/Blink/flags.py → flags/blink.py} +130 -374
- osn_selenium/flags/chrome.py +259 -0
- osn_selenium/flags/edge.py +259 -0
- osn_selenium/flags/models/__init__.py +1 -0
- osn_selenium/flags/models/base.py +130 -0
- osn_selenium/flags/models/blink.py +263 -0
- osn_selenium/{webdrivers/Chrome/flags.py → flags/models/chrome.py} +25 -75
- osn_selenium/{webdrivers/Edge/flags.py → flags/models/edge.py} +25 -75
- osn_selenium/flags/models/values.py +44 -0
- osn_selenium/{webdrivers/Yandex/flags.py → flags/models/yandex.py} +26 -76
- osn_selenium/flags/yandex.py +259 -0
- osn_selenium/instances/__init__.py +1 -0
- osn_selenium/instances/_functions.py +242 -0
- osn_selenium/instances/_typehints.py +148 -0
- osn_selenium/instances/_utils.py +143 -0
- osn_selenium/instances/convert.py +287 -0
- osn_selenium/instances/protocols.py +105 -0
- osn_selenium/instances/sync/__init__.py +1 -0
- osn_selenium/instances/sync/action_chains/__init__.py +32 -0
- osn_selenium/instances/sync/action_chains/base.py +74 -0
- osn_selenium/instances/sync/action_chains/click.py +61 -0
- osn_selenium/instances/sync/action_chains/drag_and_drop.py +45 -0
- osn_selenium/instances/sync/action_chains/hm_keyboard.py +37 -0
- osn_selenium/instances/sync/action_chains/hm_move.py +81 -0
- osn_selenium/instances/sync/action_chains/hm_scroll.py +60 -0
- osn_selenium/instances/sync/action_chains/keyboard.py +55 -0
- osn_selenium/instances/sync/action_chains/move.py +46 -0
- osn_selenium/instances/sync/action_chains/scroll.py +43 -0
- osn_selenium/instances/sync/action_chains/utils.py +30 -0
- osn_selenium/instances/sync/alert.py +69 -0
- osn_selenium/instances/sync/browser.py +72 -0
- osn_selenium/instances/sync/browsing_context.py +193 -0
- osn_selenium/instances/sync/dialog.py +81 -0
- osn_selenium/instances/sync/fedcm.py +92 -0
- osn_selenium/instances/sync/mobile.py +75 -0
- osn_selenium/instances/sync/network.py +90 -0
- osn_selenium/instances/sync/permissions.py +80 -0
- osn_selenium/instances/sync/script.py +77 -0
- osn_selenium/instances/sync/shadow_root.py +113 -0
- osn_selenium/instances/sync/storage.py +91 -0
- osn_selenium/instances/sync/switch_to.py +92 -0
- osn_selenium/instances/sync/web_driver_wait.py +83 -0
- osn_selenium/instances/sync/web_element.py +179 -0
- osn_selenium/instances/sync/web_extension.py +77 -0
- osn_selenium/instances/trio_threads/__init__.py +1 -0
- osn_selenium/instances/trio_threads/action_chains/__init__.py +32 -0
- osn_selenium/instances/trio_threads/action_chains/base.py +88 -0
- osn_selenium/instances/trio_threads/action_chains/click.py +71 -0
- osn_selenium/instances/trio_threads/action_chains/drag_and_drop.py +49 -0
- osn_selenium/instances/trio_threads/action_chains/hm_keyboard.py +41 -0
- osn_selenium/instances/trio_threads/action_chains/hm_move.py +91 -0
- osn_selenium/instances/trio_threads/action_chains/hm_scroll.py +66 -0
- osn_selenium/instances/trio_threads/action_chains/keyboard.py +63 -0
- osn_selenium/instances/trio_threads/action_chains/move.py +52 -0
- osn_selenium/instances/trio_threads/action_chains/scroll.py +49 -0
- osn_selenium/instances/trio_threads/action_chains/utils.py +32 -0
- osn_selenium/instances/trio_threads/alert.py +87 -0
- osn_selenium/instances/trio_threads/browser.py +90 -0
- osn_selenium/instances/trio_threads/browsing_context.py +216 -0
- osn_selenium/instances/trio_threads/dialog.py +99 -0
- osn_selenium/instances/trio_threads/fedcm.py +110 -0
- osn_selenium/instances/trio_threads/mobile.py +93 -0
- osn_selenium/instances/trio_threads/network.py +108 -0
- osn_selenium/instances/trio_threads/permissions.py +102 -0
- osn_selenium/instances/trio_threads/script.py +95 -0
- osn_selenium/instances/trio_threads/shadow_root.py +154 -0
- osn_selenium/instances/trio_threads/storage.py +109 -0
- osn_selenium/instances/trio_threads/switch_to.py +124 -0
- osn_selenium/instances/trio_threads/web_driver_wait.py +101 -0
- osn_selenium/instances/trio_threads/web_element.py +217 -0
- osn_selenium/instances/trio_threads/web_extension.py +99 -0
- osn_selenium/instances/unified/__init__.py +1 -0
- osn_selenium/instances/unified/action_chains/__init__.py +22 -0
- osn_selenium/instances/unified/action_chains/base.py +31 -0
- osn_selenium/instances/unified/action_chains/click.py +27 -0
- osn_selenium/instances/unified/action_chains/drag_and_drop.py +24 -0
- osn_selenium/instances/unified/action_chains/hm_keyboard.py +30 -0
- osn_selenium/instances/unified/action_chains/hm_move.py +66 -0
- osn_selenium/instances/unified/action_chains/hm_scroll.py +79 -0
- osn_selenium/instances/unified/action_chains/keyboard.py +24 -0
- osn_selenium/instances/unified/action_chains/move.py +24 -0
- osn_selenium/instances/unified/action_chains/scroll.py +21 -0
- osn_selenium/instances/unified/action_chains/utils.py +19 -0
- osn_selenium/instances/unified/alert.py +29 -0
- osn_selenium/instances/unified/browser.py +33 -0
- osn_selenium/instances/unified/browsing_context.py +151 -0
- osn_selenium/instances/unified/dialog.py +42 -0
- osn_selenium/instances/unified/fedcm.py +48 -0
- osn_selenium/instances/unified/mobile.py +36 -0
- osn_selenium/instances/unified/network.py +50 -0
- osn_selenium/instances/unified/permissions.py +43 -0
- osn_selenium/instances/unified/script.py +38 -0
- osn_selenium/instances/unified/shadow_root.py +46 -0
- osn_selenium/instances/unified/storage.py +48 -0
- osn_selenium/instances/unified/switch_to.py +49 -0
- osn_selenium/instances/unified/web_driver_wait.py +45 -0
- osn_selenium/instances/unified/web_element.py +145 -0
- osn_selenium/instances/unified/web_extension.py +38 -0
- osn_selenium/javascript/__init__.py +1 -0
- osn_selenium/javascript/_functions.py +63 -0
- osn_selenium/javascript/fingerprint/__init__.py +120 -0
- osn_selenium/javascript/fingerprint/_decorators.py +41 -0
- osn_selenium/javascript/fingerprint/_detect/__init__.py +1 -0
- osn_selenium/javascript/fingerprint/_detect/functions.py +253 -0
- osn_selenium/javascript/fingerprint/_detect/templates.py +128 -0
- osn_selenium/javascript/fingerprint/_functions.py +35 -0
- osn_selenium/javascript/fingerprint/_typehints.py +27 -0
- osn_selenium/javascript/fingerprint/registry/__init__.py +7 -0
- osn_selenium/javascript/fingerprint/registry/_core_functions.py +236 -0
- osn_selenium/javascript/fingerprint/registry/_functions.py +923 -0
- osn_selenium/javascript/fingerprint/registry/_typehints.py +6 -0
- osn_selenium/javascript/fingerprint/registry/_utils.py +6 -0
- osn_selenium/javascript/fingerprint/registry/models.py +41 -0
- osn_selenium/javascript/fingerprint/spoof/__init__.py +1 -0
- osn_selenium/javascript/fingerprint/spoof/_functions.py +172 -0
- osn_selenium/javascript/fingerprint/spoof/_templates.py +134 -0
- osn_selenium/javascript/fingerprint/spoof/_typehints.py +22 -0
- osn_selenium/javascript/fingerprint/spoof/core_rules.py +141 -0
- osn_selenium/javascript/fingerprint/spoof/noise.py +51 -0
- osn_selenium/javascript/fingerprint/spoof/rules.py +313 -0
- osn_selenium/javascript/functions.py +44 -0
- osn_selenium/javascript/models.py +35 -0
- osn_selenium/javascript/scripts/start_fingerprint_detection.js +56 -0
- osn_selenium/models.py +94 -0
- osn_selenium/trio_threads_mixin.py +159 -0
- osn_selenium/webdrivers/_args_helpers.py +181 -0
- osn_selenium/webdrivers/_bridges.py +57 -0
- osn_selenium/webdrivers/_decorators.py +83 -0
- osn_selenium/webdrivers/_executable_tables/__init__.py +1 -0
- osn_selenium/webdrivers/_executable_tables/functions.py +113 -0
- osn_selenium/webdrivers/_executable_tables/models.py +19 -0
- osn_selenium/webdrivers/_typehints.py +10 -0
- osn_selenium/webdrivers/protocols.py +50 -0
- osn_selenium/webdrivers/sync/__init__.py +1 -0
- osn_selenium/webdrivers/sync/blink/__init__.py +124 -0
- osn_selenium/webdrivers/sync/blink/base.py +140 -0
- osn_selenium/webdrivers/sync/blink/casting.py +34 -0
- osn_selenium/webdrivers/sync/blink/features.py +28 -0
- osn_selenium/webdrivers/sync/blink/lifecycle.py +66 -0
- osn_selenium/webdrivers/sync/blink/logging.py +25 -0
- osn_selenium/webdrivers/sync/blink/network.py +28 -0
- osn_selenium/webdrivers/sync/blink/settings.py +63 -0
- osn_selenium/webdrivers/sync/chrome/__init__.py +102 -0
- osn_selenium/webdrivers/sync/chrome/base.py +118 -0
- osn_selenium/webdrivers/sync/chrome/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/chrome/settings.py +58 -0
- osn_selenium/webdrivers/sync/core/__init__.py +100 -0
- osn_selenium/webdrivers/sync/core/actions.py +59 -0
- osn_selenium/webdrivers/sync/core/auth.py +77 -0
- osn_selenium/webdrivers/sync/core/base.py +175 -0
- osn_selenium/webdrivers/sync/core/capture.py +37 -0
- osn_selenium/webdrivers/sync/core/comonents.py +57 -0
- osn_selenium/webdrivers/sync/core/devtools.py +47 -0
- osn_selenium/webdrivers/sync/core/element.py +42 -0
- osn_selenium/webdrivers/sync/core/file.py +40 -0
- osn_selenium/webdrivers/sync/core/lifecycle.py +59 -0
- osn_selenium/webdrivers/sync/core/navigation.py +36 -0
- osn_selenium/webdrivers/sync/core/script.py +53 -0
- osn_selenium/webdrivers/sync/core/settings.py +35 -0
- osn_selenium/webdrivers/sync/core/storage.py +48 -0
- osn_selenium/webdrivers/sync/core/timeouts.py +59 -0
- osn_selenium/webdrivers/sync/core/window.py +99 -0
- osn_selenium/webdrivers/sync/edge/__init__.py +102 -0
- osn_selenium/webdrivers/sync/edge/base.py +114 -0
- osn_selenium/webdrivers/sync/edge/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/edge/settings.py +58 -0
- osn_selenium/webdrivers/sync/yandex/__init__.py +102 -0
- osn_selenium/webdrivers/sync/yandex/base.py +111 -0
- osn_selenium/webdrivers/sync/yandex/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/yandex/settings.py +58 -0
- osn_selenium/webdrivers/trio_threads/__init__.py +1 -0
- osn_selenium/webdrivers/trio_threads/blink/__init__.py +134 -0
- osn_selenium/webdrivers/trio_threads/blink/base.py +143 -0
- osn_selenium/webdrivers/trio_threads/blink/casting.py +35 -0
- osn_selenium/webdrivers/trio_threads/blink/features.py +29 -0
- osn_selenium/webdrivers/trio_threads/blink/lifecycle.py +66 -0
- osn_selenium/webdrivers/trio_threads/blink/logging.py +26 -0
- osn_selenium/webdrivers/trio_threads/blink/network.py +29 -0
- osn_selenium/webdrivers/trio_threads/blink/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/chrome/__init__.py +114 -0
- osn_selenium/webdrivers/trio_threads/chrome/base.py +119 -0
- osn_selenium/webdrivers/trio_threads/chrome/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/chrome/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/core/__init__.py +115 -0
- osn_selenium/webdrivers/trio_threads/core/actions.py +72 -0
- osn_selenium/webdrivers/trio_threads/core/auth.py +88 -0
- osn_selenium/webdrivers/trio_threads/core/base.py +199 -0
- osn_selenium/webdrivers/trio_threads/core/capture.py +38 -0
- osn_selenium/webdrivers/trio_threads/core/comonents.py +92 -0
- osn_selenium/webdrivers/trio_threads/core/devtools.py +53 -0
- osn_selenium/webdrivers/trio_threads/core/element.py +58 -0
- osn_selenium/webdrivers/trio_threads/core/file.py +45 -0
- osn_selenium/webdrivers/trio_threads/core/lifecycle.py +60 -0
- osn_selenium/webdrivers/trio_threads/core/navigation.py +41 -0
- osn_selenium/webdrivers/trio_threads/core/script.py +59 -0
- osn_selenium/webdrivers/trio_threads/core/settings.py +36 -0
- osn_selenium/webdrivers/trio_threads/core/storage.py +54 -0
- osn_selenium/webdrivers/trio_threads/core/timeouts.py +60 -0
- osn_selenium/webdrivers/trio_threads/core/window.py +105 -0
- osn_selenium/webdrivers/trio_threads/edge/__init__.py +114 -0
- osn_selenium/webdrivers/trio_threads/edge/base.py +115 -0
- osn_selenium/webdrivers/trio_threads/edge/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/edge/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/yandex/__init__.py +114 -0
- osn_selenium/webdrivers/trio_threads/yandex/base.py +112 -0
- osn_selenium/webdrivers/trio_threads/yandex/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/yandex/settings.py +63 -0
- osn_selenium/webdrivers/unified/__init__.py +1 -0
- osn_selenium/webdrivers/unified/blink/__init__.py +1 -0
- osn_selenium/webdrivers/unified/blink/base.py +135 -0
- osn_selenium/webdrivers/unified/blink/casting.py +30 -0
- osn_selenium/webdrivers/unified/blink/features.py +22 -0
- osn_selenium/webdrivers/unified/blink/lifecycle.py +114 -0
- osn_selenium/webdrivers/unified/blink/logging.py +18 -0
- osn_selenium/webdrivers/unified/blink/network.py +22 -0
- osn_selenium/webdrivers/unified/blink/settings.py +86 -0
- osn_selenium/webdrivers/unified/chrome/__init__.py +1 -0
- osn_selenium/webdrivers/unified/chrome/base.py +58 -0
- osn_selenium/webdrivers/unified/chrome/lifecycle.py +88 -0
- osn_selenium/webdrivers/unified/chrome/settings.py +48 -0
- osn_selenium/webdrivers/unified/core/__init__.py +1 -0
- osn_selenium/webdrivers/unified/core/actions.py +43 -0
- osn_selenium/webdrivers/unified/core/auth.py +70 -0
- osn_selenium/webdrivers/unified/core/base.py +139 -0
- osn_selenium/webdrivers/unified/core/capture.py +32 -0
- osn_selenium/webdrivers/unified/core/components.py +32 -0
- osn_selenium/webdrivers/unified/core/devtools.py +35 -0
- osn_selenium/webdrivers/unified/core/element.py +24 -0
- osn_selenium/webdrivers/unified/core/file.py +35 -0
- osn_selenium/webdrivers/unified/core/lifecycle.py +84 -0
- osn_selenium/webdrivers/unified/core/navigation.py +31 -0
- osn_selenium/webdrivers/unified/core/script.py +32 -0
- osn_selenium/webdrivers/unified/core/settings.py +44 -0
- osn_selenium/webdrivers/unified/core/storage.py +37 -0
- osn_selenium/webdrivers/unified/core/timeouts.py +56 -0
- osn_selenium/webdrivers/unified/core/window.py +135 -0
- osn_selenium/webdrivers/unified/edge/__init__.py +1 -0
- osn_selenium/webdrivers/unified/edge/base.py +56 -0
- osn_selenium/webdrivers/unified/edge/lifecycle.py +88 -0
- osn_selenium/webdrivers/unified/edge/settings.py +48 -0
- osn_selenium/webdrivers/unified/yandex/__init__.py +1 -0
- osn_selenium/webdrivers/unified/yandex/base.py +58 -0
- osn_selenium/webdrivers/unified/yandex/lifecycle.py +58 -0
- osn_selenium/webdrivers/unified/yandex/settings.py +48 -0
- osn_selenium-1.1.0.dist-info/METADATA +252 -0
- osn_selenium-1.1.0.dist-info/RECORD +615 -0
- {osn_selenium-0.0.0.dist-info → osn_selenium-1.1.0.dist-info}/WHEEL +1 -1
- osn_selenium/captcha_workers/__init__.py +0 -26
- osn_selenium/dev_tools/_types.py +0 -22
- osn_selenium/dev_tools/errors.py +0 -89
- osn_selenium/dev_tools/logger.py +0 -558
- osn_selenium/dev_tools/manager.py +0 -1551
- osn_selenium/dev_tools/utils.py +0 -509
- osn_selenium/errors.py +0 -16
- osn_selenium/types.py +0 -118
- osn_selenium/webdrivers/BaseDriver/_utils.py +0 -37
- osn_selenium/webdrivers/BaseDriver/protocols.py +0 -2135
- osn_selenium/webdrivers/BaseDriver/trio_wrapper.py +0 -71
- osn_selenium/webdrivers/BaseDriver/webdriver.py +0 -2626
- osn_selenium/webdrivers/Blink/protocols.py +0 -330
- osn_selenium/webdrivers/Blink/webdriver.py +0 -637
- osn_selenium/webdrivers/Chrome/protocols.py +0 -228
- osn_selenium/webdrivers/Chrome/webdriver.py +0 -394
- osn_selenium/webdrivers/Edge/protocols.py +0 -228
- osn_selenium/webdrivers/Edge/webdriver.py +0 -394
- osn_selenium/webdrivers/Yandex/protocols.py +0 -211
- osn_selenium/webdrivers/Yandex/webdriver.py +0 -350
- osn_selenium/webdrivers/_functions.py +0 -504
- osn_selenium/webdrivers/types.py +0 -390
- osn_selenium-0.0.0.dist-info/METADATA +0 -710
- osn_selenium-0.0.0.dist-info/RECORD +0 -57
- /osn_selenium/{webdrivers/BaseDriver → abstract}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Blink → abstract/executors}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Chrome → abstract/instances}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Edge → abstract/webdriver}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Yandex → dev_tools/logger}/__init__.py +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/check_element_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_document_scroll_size.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_css.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_rect_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_random_element_point_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_position.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_rect.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_size.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/open_new_tab.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/stop_window_loading.js +0 -0
- {osn_selenium-0.0.0.dist-info → osn_selenium-1.1.0.dist-info}/top_level.txt +0 -0
|
@@ -1,34 +1,32 @@
|
|
|
1
1
|
import trio
|
|
2
|
-
from
|
|
3
|
-
from osn_selenium.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
auth_required_choose_func,
|
|
9
|
-
request_paused_choose_func
|
|
2
|
+
from pydantic import Field
|
|
3
|
+
from osn_selenium._base_models import DictModel
|
|
4
|
+
from osn_selenium.dev_tools._functions import execute_cdp_command
|
|
5
|
+
from osn_selenium.exceptions.devtools import (
|
|
6
|
+
CDPEndExceptions,
|
|
7
|
+
ExceptionThrown
|
|
10
8
|
)
|
|
11
9
|
from typing import (
|
|
12
10
|
Any,
|
|
13
|
-
Awaitable,
|
|
14
11
|
Callable,
|
|
12
|
+
Coroutine,
|
|
13
|
+
List,
|
|
15
14
|
Literal,
|
|
16
15
|
Mapping,
|
|
17
16
|
Optional,
|
|
18
17
|
Sequence,
|
|
19
|
-
TYPE_CHECKING
|
|
20
|
-
|
|
18
|
+
TYPE_CHECKING
|
|
19
|
+
)
|
|
20
|
+
from osn_selenium.dev_tools.domains_default.fetch import (
|
|
21
|
+
auth_required_choose_func,
|
|
22
|
+
request_paused_choose_func
|
|
21
23
|
)
|
|
22
24
|
from osn_selenium.dev_tools.domains.abstract import (
|
|
23
|
-
AbstractAction,
|
|
24
25
|
AbstractActionParametersHandlersSettings,
|
|
25
26
|
AbstractActionSettings,
|
|
26
|
-
AbstractDomain,
|
|
27
27
|
AbstractDomainEnableKwargsSettings,
|
|
28
28
|
AbstractDomainHandlersSettings,
|
|
29
29
|
AbstractDomainSettings,
|
|
30
|
-
AbstractEvent,
|
|
31
|
-
AbstractEventActionsHandler,
|
|
32
30
|
AbstractEventActionsHandlerSettings,
|
|
33
31
|
AbstractEventActionsSettings,
|
|
34
32
|
AbstractEventSettings,
|
|
@@ -40,26 +38,54 @@ from osn_selenium.dev_tools.domains.abstract import (
|
|
|
40
38
|
)
|
|
41
39
|
|
|
42
40
|
|
|
41
|
+
__all__ = [
|
|
42
|
+
"AuthRequiredActionsHandlerSettings",
|
|
43
|
+
"AuthRequiredActionsSettings",
|
|
44
|
+
"AuthRequiredSettings",
|
|
45
|
+
"ContinueRequestHandlersSettings",
|
|
46
|
+
"ContinueRequestSettings",
|
|
47
|
+
"ContinueResponseHandlersSettings",
|
|
48
|
+
"ContinueResponseSettings",
|
|
49
|
+
"ContinueWithAuthParameterHandlersSettings",
|
|
50
|
+
"ContinueWithAuthSettings",
|
|
51
|
+
"FailRequestHandlersSettings",
|
|
52
|
+
"FailRequestSettings",
|
|
53
|
+
"FetchEnableKwargsSettings",
|
|
54
|
+
"FetchHandlersSettings",
|
|
55
|
+
"FetchSettings",
|
|
56
|
+
"FulfillRequestHandlersSettings",
|
|
57
|
+
"FulfillRequestSettings",
|
|
58
|
+
"RequestPausedActionsHandlerSettings",
|
|
59
|
+
"RequestPausedActionsSettings",
|
|
60
|
+
"RequestPausedSettings",
|
|
61
|
+
"auth_required_actions_literal",
|
|
62
|
+
"auth_required_choose_action_func_type",
|
|
63
|
+
"handle_auth_required_func_type",
|
|
64
|
+
"handle_request_paused_func_type",
|
|
65
|
+
"request_paused_actions_literal",
|
|
66
|
+
"request_paused_choose_action_func_type"
|
|
67
|
+
]
|
|
68
|
+
|
|
43
69
|
if TYPE_CHECKING:
|
|
44
|
-
from osn_selenium.dev_tools.
|
|
70
|
+
from osn_selenium.dev_tools.target import DevToolsTarget
|
|
71
|
+
else:
|
|
72
|
+
DevToolsTarget = Any
|
|
45
73
|
|
|
74
|
+
request_paused_actions_literal = Literal[
|
|
75
|
+
"continue_request",
|
|
76
|
+
"fail_request",
|
|
77
|
+
"fulfill_request",
|
|
78
|
+
"continue_response"
|
|
79
|
+
]
|
|
80
|
+
auth_required_actions_literal = Literal["continue_with_auth"]
|
|
46
81
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
Internal TypedDict for handlers related to the 'continueWithAuth' action.
|
|
82
|
+
request_paused_choose_action_func_type = Callable[[DevToolsTarget, Any], Sequence[request_paused_actions_literal]]
|
|
83
|
+
handle_request_paused_func_type = Callable[[DevToolsTarget, "RequestPausedSettings", Any], Coroutine[Any, Any, None]]
|
|
50
84
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
username (Optional[ParameterHandler]): Handler for providing the username.
|
|
54
|
-
password (Optional[ParameterHandler]): Handler for providing the password.
|
|
55
|
-
"""
|
|
56
|
-
|
|
57
|
-
response: ParameterHandler
|
|
58
|
-
username: Optional[ParameterHandler]
|
|
59
|
-
password: Optional[ParameterHandler]
|
|
85
|
+
auth_required_choose_action_func_type = Callable[[DevToolsTarget, Any], Sequence[auth_required_actions_literal]]
|
|
86
|
+
handle_auth_required_func_type = Callable[[DevToolsTarget, "AuthRequiredSettings", Any], Coroutine[Any, Any, None]]
|
|
60
87
|
|
|
61
88
|
|
|
62
|
-
@dataclass
|
|
63
89
|
class ContinueWithAuthParameterHandlersSettings(AbstractActionParametersHandlersSettings):
|
|
64
90
|
"""
|
|
65
91
|
Settings for the handlers that provide authentication credentials when required.
|
|
@@ -73,27 +99,9 @@ class ContinueWithAuthParameterHandlersSettings(AbstractActionParametersHandlers
|
|
|
73
99
|
response: ParameterHandler
|
|
74
100
|
username: Optional[ParameterHandler] = None
|
|
75
101
|
password: Optional[ParameterHandler] = None
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
Converts the settings object to its dictionary representation.
|
|
80
|
-
|
|
81
|
-
Returns:
|
|
82
|
-
_ContinueWithAuthParametersHandlers: The dictionary representation suitable for internal use.
|
|
83
|
-
"""
|
|
84
|
-
|
|
85
|
-
return _ContinueWithAuthParametersHandlers(
|
|
86
|
-
response=self.response,
|
|
87
|
-
username=self.username,
|
|
88
|
-
password=self.password,
|
|
89
|
-
)
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
async def _build_kwargs_from_handlers_func(
|
|
93
|
-
self: "DevToolsTarget",
|
|
94
|
-
handlers: Mapping[str, Optional[ParameterHandler]],
|
|
95
|
-
event: Any
|
|
96
|
-
) -> kwargs_type:
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
async def _build_kwargs_from_handlers_func(self: DevToolsTarget, handlers: DictModel, event: Any) -> kwargs_type:
|
|
97
105
|
"""
|
|
98
106
|
Asynchronously builds keyword arguments for a CDP command by executing parameter handlers.
|
|
99
107
|
|
|
@@ -114,23 +122,23 @@ async def _build_kwargs_from_handlers_func(
|
|
|
114
122
|
BaseException: If any error occurs during the execution of parameter handlers or the process.
|
|
115
123
|
"""
|
|
116
124
|
|
|
117
|
-
await self.
|
|
125
|
+
await self.log_cdp(level="INFO", message=f"Started to build kwargs for '{event}'")
|
|
118
126
|
|
|
119
127
|
try:
|
|
120
128
|
kwargs = {"request_id": event.request_id}
|
|
121
129
|
|
|
122
|
-
kwargs_ready_events:
|
|
130
|
+
kwargs_ready_events: List[trio.Event] = []
|
|
123
131
|
|
|
124
|
-
for handler_name, handler_settings in handlers
|
|
132
|
+
for handler_name, handler_settings in handlers:
|
|
125
133
|
if handler_settings is not None:
|
|
126
134
|
kwargs_ready_event = trio.Event()
|
|
127
135
|
kwargs_ready_events.append(kwargs_ready_event)
|
|
128
136
|
|
|
129
137
|
self._nursery_object.start_soon(
|
|
130
|
-
handler_settings
|
|
138
|
+
handler_settings.func,
|
|
131
139
|
self,
|
|
132
140
|
kwargs_ready_event,
|
|
133
|
-
handler_settings
|
|
141
|
+
handler_settings.instances,
|
|
134
142
|
event,
|
|
135
143
|
kwargs
|
|
136
144
|
)
|
|
@@ -139,79 +147,28 @@ async def _build_kwargs_from_handlers_func(
|
|
|
139
147
|
await kwargs_ready_event.wait()
|
|
140
148
|
|
|
141
149
|
return kwargs
|
|
142
|
-
except*
|
|
150
|
+
except* CDPEndExceptions as error:
|
|
143
151
|
raise error
|
|
144
152
|
except* BaseException as error:
|
|
145
|
-
await self.
|
|
153
|
+
await self.log_cdp_error(error=error)
|
|
146
154
|
raise error
|
|
147
155
|
|
|
148
156
|
|
|
149
|
-
class _ContinueWithAuth(TypedDict):
|
|
150
|
-
"""
|
|
151
|
-
Internal TypedDict for the 'continueWithAuth' action configuration.
|
|
152
|
-
|
|
153
|
-
Attributes:
|
|
154
|
-
kwargs_func (build_kwargs_from_handlers_func_type): Function to build keyword arguments for the `continueWithAuth` CDP command.
|
|
155
|
-
response_handle_func (response_handle_func_type): A function to process the response from the CDP command.
|
|
156
|
-
parameters_handlers (_ContinueWithAuthParametersHandlers): Handlers for authentication parameters.
|
|
157
|
-
"""
|
|
158
|
-
|
|
159
|
-
kwargs_func: build_kwargs_from_handlers_func_type
|
|
160
|
-
response_handle_func: response_handle_func_type
|
|
161
|
-
parameters_handlers: _ContinueWithAuthParametersHandlers
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
@dataclass
|
|
165
157
|
class ContinueWithAuthSettings(AbstractActionSettings):
|
|
166
158
|
"""
|
|
167
159
|
Settings for continuing a request that requires authentication using the `fetch.continueWithAuth` CDP command.
|
|
168
160
|
|
|
169
161
|
Attributes:
|
|
162
|
+
kwargs_func (build_kwargs_from_handlers_func_type): Function to build keyword arguments from handlers. Defaults to internal builder.
|
|
170
163
|
parameters_handlers (ContinueWithAuthParameterHandlersSettings): Settings for the handlers that provide authentication credentials.
|
|
171
164
|
response_handle_func (response_handle_func_type): An optional awaitable function to process the response from the `fetch.continueWithAuth` CDP command. Defaults to None.
|
|
172
165
|
"""
|
|
173
166
|
|
|
167
|
+
kwargs_func: build_kwargs_from_handlers_func_type = _build_kwargs_from_handlers_func
|
|
174
168
|
parameters_handlers: ContinueWithAuthParameterHandlersSettings
|
|
175
169
|
response_handle_func: response_handle_func_type = None
|
|
176
|
-
|
|
177
|
-
@property
|
|
178
|
-
def kwargs_func(self) -> build_kwargs_from_handlers_func_type:
|
|
179
|
-
"""
|
|
180
|
-
Returns the function used to build keyword arguments for the `continueWithAuth` command.
|
|
181
|
-
|
|
182
|
-
Returns:
|
|
183
|
-
build_kwargs_from_handlers_func_type: The internal function `_build_kwargs_from_handlers_func`.
|
|
184
|
-
"""
|
|
185
|
-
|
|
186
|
-
return _build_kwargs_from_handlers_func
|
|
187
|
-
|
|
188
|
-
def to_dict(self) -> _ContinueWithAuth:
|
|
189
|
-
"""
|
|
190
|
-
Converts the settings object to its dictionary representation.
|
|
191
|
-
|
|
192
|
-
Returns:
|
|
193
|
-
_ContinueWithAuth: The dictionary representation suitable for internal use.
|
|
194
|
-
"""
|
|
195
|
-
|
|
196
|
-
return _ContinueWithAuth(
|
|
197
|
-
kwargs_func=self.kwargs_func,
|
|
198
|
-
response_handle_func=self.response_handle_func,
|
|
199
|
-
parameters_handlers=self.parameters_handlers.to_dict(),
|
|
200
|
-
)
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
class _AuthRequiredActions(TypedDict):
|
|
204
|
-
"""
|
|
205
|
-
Internal TypedDict mapping action names for AuthRequired event to their configurations.
|
|
206
|
-
|
|
207
|
-
Attributes:
|
|
208
|
-
continue_with_auth (Optional[_ContinueWithAuth]): Configuration for the 'continueWithAuth' action.
|
|
209
|
-
"""
|
|
210
|
-
|
|
211
|
-
continue_with_auth: Optional[_ContinueWithAuth]
|
|
212
170
|
|
|
213
171
|
|
|
214
|
-
@dataclass
|
|
215
172
|
class AuthRequiredActionsSettings(AbstractEventActionsSettings):
|
|
216
173
|
"""
|
|
217
174
|
Container for configurations of possible actions to take when authentication is required.
|
|
@@ -221,97 +178,28 @@ class AuthRequiredActionsSettings(AbstractEventActionsSettings):
|
|
|
221
178
|
"""
|
|
222
179
|
|
|
223
180
|
continue_with_auth: Optional[ContinueWithAuthSettings] = None
|
|
224
|
-
|
|
225
|
-
def to_dict(self) -> _AuthRequiredActions:
|
|
226
|
-
"""
|
|
227
|
-
Converts the settings object to its dictionary representation.
|
|
228
|
-
|
|
229
|
-
Returns:
|
|
230
|
-
_AuthRequiredActions: The dictionary representation suitable for internal use.
|
|
231
|
-
"""
|
|
232
|
-
|
|
233
|
-
return _AuthRequiredActions(
|
|
234
|
-
continue_with_auth=self.continue_with_auth.to_dict()
|
|
235
|
-
if self.continue_with_auth is not None
|
|
236
|
-
else None,
|
|
237
|
-
)
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
class _AuthRequiredActionsHandler(AbstractEventActionsHandler):
|
|
241
|
-
"""
|
|
242
|
-
Internal TypedDict for the actions handler configuration for the 'AuthRequired' event.
|
|
243
|
-
|
|
244
|
-
Attributes:
|
|
245
|
-
choose_action_func (auth_required_choose_action_func_type): A function that determines which actions (by name) should be executed for a given 'AuthRequired' event.
|
|
246
|
-
actions (_AuthRequiredActions): A dictionary mapping action names to their full configurations.
|
|
247
|
-
"""
|
|
248
|
-
|
|
249
|
-
choose_action_func: "auth_required_choose_action_func_type"
|
|
250
|
-
actions: _AuthRequiredActions
|
|
251
181
|
|
|
252
182
|
|
|
253
|
-
@dataclass
|
|
254
183
|
class AuthRequiredActionsHandlerSettings(AbstractEventActionsHandlerSettings):
|
|
255
184
|
"""
|
|
256
185
|
Settings for handling the 'fetch.AuthRequired' event by choosing and executing specific actions.
|
|
257
186
|
|
|
258
187
|
Attributes:
|
|
259
|
-
|
|
188
|
+
kwargs_func (build_kwargs_from_handlers_func_type): Helper function for keyword argument building. Defaults to internal builder.
|
|
189
|
+
choose_action_func (auth_required_choose_action_func_type): A function that takes the DevTools instance and the event object and returns a List of action names (Literals) to execute. Defaults to `auth_required_choose_func`.
|
|
260
190
|
actions (Optional[AuthRequiredActionsSettings]): Container for the configuration of the available actions. Defaults to None.
|
|
261
191
|
"""
|
|
262
192
|
|
|
263
|
-
|
|
193
|
+
kwargs_func: build_kwargs_from_handlers_func_type = _build_kwargs_from_handlers_func
|
|
194
|
+
choose_action_func: auth_required_choose_action_func_type = auth_required_choose_func
|
|
264
195
|
actions: Optional[AuthRequiredActionsSettings] = None
|
|
265
|
-
|
|
266
|
-
@property
|
|
267
|
-
def kwargs_func(self) -> build_kwargs_from_handlers_func_type:
|
|
268
|
-
"""
|
|
269
|
-
Returns the function used to build keyword arguments for the actions.
|
|
270
|
-
|
|
271
|
-
Returns:
|
|
272
|
-
build_kwargs_from_handlers_func_type: The internal function `_build_kwargs_from_handlers_func`.
|
|
273
|
-
"""
|
|
274
|
-
|
|
275
|
-
return _build_kwargs_from_handlers_func
|
|
276
|
-
|
|
277
|
-
def to_dict(self) -> _AuthRequiredActionsHandler:
|
|
278
|
-
"""
|
|
279
|
-
Converts the settings object to its dictionary representation.
|
|
280
|
-
|
|
281
|
-
Returns:
|
|
282
|
-
_AuthRequiredActionsHandler: The dictionary representation suitable for internal use.
|
|
283
|
-
"""
|
|
284
|
-
|
|
285
|
-
return _AuthRequiredActionsHandler(
|
|
286
|
-
choose_action_func=self.choose_action_func,
|
|
287
|
-
actions=self.actions.to_dict()
|
|
288
|
-
if self.actions is not None
|
|
289
|
-
else AuthRequiredActionsSettings().to_dict(),
|
|
290
|
-
)
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
class _AuthRequired(AbstractEvent):
|
|
294
|
-
"""
|
|
295
|
-
Internal TypedDict representing the complete configuration for an 'AuthRequired' event listener.
|
|
296
196
|
|
|
297
|
-
This structure extends `AbstractEvent` with specifics for the Fetch.AuthRequired domain event.
|
|
298
197
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
on_error_func (on_error_func_type): Function to call on error during event handling.
|
|
305
|
-
"""
|
|
306
|
-
|
|
307
|
-
class_to_use_path: str
|
|
308
|
-
listen_buffer_size: int
|
|
309
|
-
handle_function: "handle_auth_required_func_type"
|
|
310
|
-
actions_handler: _AuthRequiredActionsHandler
|
|
311
|
-
on_error_func: on_error_func_type
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
async def _handle_auth_required(self: "DevToolsTarget", handler_settings: _AuthRequired, event: Any):
|
|
198
|
+
async def _handle_auth_required(
|
|
199
|
+
self: DevToolsTarget,
|
|
200
|
+
handler_settings: "AuthRequiredSettings",
|
|
201
|
+
event: Any
|
|
202
|
+
):
|
|
315
203
|
"""
|
|
316
204
|
Handles the 'fetch.AuthRequired' CDP event.
|
|
317
205
|
|
|
@@ -322,56 +210,54 @@ async def _handle_auth_required(self: "DevToolsTarget", handler_settings: _AuthR
|
|
|
322
210
|
|
|
323
211
|
Args:
|
|
324
212
|
self (DevToolsTarget): The DevToolsTarget instance.
|
|
325
|
-
handler_settings (
|
|
213
|
+
handler_settings (AuthRequiredSettings): The configuration settings for handling the 'AuthRequired' event.
|
|
326
214
|
event (Any): The 'AuthRequired' event object received from the CDP.
|
|
327
215
|
|
|
328
216
|
Raises:
|
|
329
217
|
BaseException: If a critical error occurs during the event handling process.
|
|
330
218
|
"""
|
|
331
219
|
|
|
332
|
-
await self.
|
|
220
|
+
await self.log_cdp(level="INFO", message=f"Started to handle for '{event}'")
|
|
333
221
|
|
|
334
222
|
try:
|
|
335
|
-
chosen_actions_func_names = handler_settings
|
|
336
|
-
await self.
|
|
223
|
+
chosen_actions_func_names = handler_settings.actions_handler.choose_action_func(self, event)
|
|
224
|
+
await self.log_cdp(level="INFO", message=f"Chosen actions: '{chosen_actions_func_names}'")
|
|
337
225
|
|
|
338
226
|
for action_func_name in chosen_actions_func_names:
|
|
339
|
-
chosen_func = handler_settings
|
|
340
|
-
kwargs = await chosen_func
|
|
341
|
-
|
|
342
|
-
|
|
227
|
+
chosen_func = getattr(handler_settings.actions_handler.actions, action_func_name)
|
|
228
|
+
kwargs = await chosen_func.kwargs_func(self, chosen_func.parameters_handlers, event)
|
|
229
|
+
|
|
230
|
+
await self.log_cdp(level="INFO", message=f"Kwargs for '{action_func_name}': '{kwargs}'")
|
|
231
|
+
response_handle_func = chosen_func.response_handle_func
|
|
343
232
|
|
|
344
233
|
try:
|
|
345
234
|
response = await execute_cdp_command(
|
|
346
|
-
self,
|
|
347
|
-
"raise",
|
|
348
|
-
|
|
235
|
+
self=self,
|
|
236
|
+
error_mode="raise",
|
|
237
|
+
function=self.devtools_package.get(["fetch", action_func_name]),
|
|
349
238
|
**kwargs
|
|
350
239
|
)
|
|
351
|
-
await self.
|
|
240
|
+
await self.log_cdp(
|
|
352
241
|
level="AuthRequired",
|
|
353
242
|
message=f"Function '{action_func_name}' response: '{response}'"
|
|
354
243
|
)
|
|
355
244
|
|
|
356
245
|
if response_handle_func is not None:
|
|
357
246
|
self._nursery_object.start_soon(response_handle_func, self, response)
|
|
358
|
-
except*
|
|
247
|
+
except* CDPEndExceptions:
|
|
359
248
|
pass
|
|
360
249
|
except* BaseException as error:
|
|
361
|
-
await self.
|
|
362
|
-
|
|
363
|
-
on_error = handler_settings["on_error_func"]
|
|
250
|
+
await self.log_cdp_error(error=error)
|
|
364
251
|
|
|
365
|
-
if
|
|
366
|
-
|
|
367
|
-
except*
|
|
252
|
+
if handler_settings.on_error_func is not None:
|
|
253
|
+
handler_settings.on_error_func(self, event, error)
|
|
254
|
+
except* CDPEndExceptions as error:
|
|
368
255
|
raise error
|
|
369
256
|
except* BaseException as error:
|
|
370
|
-
await self.
|
|
257
|
+
await self.log_cdp_error(error=error)
|
|
371
258
|
raise error
|
|
372
259
|
|
|
373
260
|
|
|
374
|
-
@dataclass
|
|
375
261
|
class AuthRequiredSettings(AbstractEventSettings):
|
|
376
262
|
"""
|
|
377
263
|
Settings for handling the 'fetch.AuthRequired' event.
|
|
@@ -380,294 +266,20 @@ class AuthRequiredSettings(AbstractEventSettings):
|
|
|
380
266
|
including buffer size, the actions to take, and error handling.
|
|
381
267
|
|
|
382
268
|
Attributes:
|
|
269
|
+
class_to_use_path (str): The CDP event class path ("fetch.AuthRequired").
|
|
270
|
+
handle_function (handle_auth_required_func_type): The function responsible for processing the event.
|
|
383
271
|
actions_handler (AuthRequiredActionsHandlerSettings): Configuration for the event's actions handler, determining which action to take (e.g., continueWithAuth) and how to build its parameters.
|
|
384
272
|
listen_buffer_size (int): The buffer size for the event listener channel. Defaults to 10.
|
|
385
273
|
on_error_func (on_error_func_type): An optional function to call if an error occurs during event handling. Defaults to None.
|
|
386
274
|
"""
|
|
387
275
|
|
|
276
|
+
class_to_use_path: str = "fetch.AuthRequired"
|
|
277
|
+
handle_function: handle_auth_required_func_type = _handle_auth_required
|
|
388
278
|
actions_handler: AuthRequiredActionsHandlerSettings
|
|
389
279
|
listen_buffer_size: int = 10
|
|
390
280
|
on_error_func: on_error_func_type = None
|
|
391
|
-
|
|
392
|
-
@property
|
|
393
|
-
def handle_function(self) -> "handle_auth_required_func_type":
|
|
394
|
-
"""
|
|
395
|
-
Returns the main handler function for the 'fetch.AuthRequired' event.
|
|
396
|
-
|
|
397
|
-
Returns:
|
|
398
|
-
handle_auth_required_func_type: The internal function `_handle_auth_required`.
|
|
399
|
-
"""
|
|
400
|
-
|
|
401
|
-
return _handle_auth_required
|
|
402
|
-
|
|
403
|
-
@property
|
|
404
|
-
def class_to_use_path(self) -> str:
|
|
405
|
-
"""
|
|
406
|
-
Returns the path to the CDP event class for 'fetch.AuthRequired'.
|
|
407
|
-
|
|
408
|
-
Returns:
|
|
409
|
-
str: The string "fetch.AuthRequired".
|
|
410
|
-
"""
|
|
411
|
-
|
|
412
|
-
return "fetch.AuthRequired"
|
|
413
|
-
|
|
414
|
-
def to_dict(self) -> _AuthRequired:
|
|
415
|
-
"""
|
|
416
|
-
Converts the settings object to its dictionary representation.
|
|
417
|
-
|
|
418
|
-
Returns:
|
|
419
|
-
_AuthRequired: The dictionary representation suitable for internal use.
|
|
420
|
-
"""
|
|
421
|
-
|
|
422
|
-
return _AuthRequired(
|
|
423
|
-
class_to_use_path=self.class_to_use_path,
|
|
424
|
-
listen_buffer_size=self.listen_buffer_size,
|
|
425
|
-
handle_function=self.handle_function,
|
|
426
|
-
actions_handler=self.actions_handler.to_dict(),
|
|
427
|
-
on_error_func=self.on_error_func,
|
|
428
|
-
)
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
class _ContinueResponseParametersHandlers(TypedDict):
|
|
432
|
-
"""
|
|
433
|
-
Internal TypedDict for handlers related to the 'continueResponse' action parameters.
|
|
434
|
-
|
|
435
|
-
Attributes:
|
|
436
|
-
response_code (Optional[ParameterHandler]): Handler for the HTTP response code.
|
|
437
|
-
response_phrase (Optional[ParameterHandler]): Handler for the HTTP response phrase.
|
|
438
|
-
response_headers (Optional[ParameterHandler]): Handler for the response headers.
|
|
439
|
-
binary_response_headers (Optional[ParameterHandler]): Handler for binary response headers (base64 encoded).
|
|
440
|
-
"""
|
|
441
|
-
|
|
442
|
-
response_code: Optional[ParameterHandler]
|
|
443
|
-
response_phrase: Optional[ParameterHandler]
|
|
444
|
-
response_headers: Optional[ParameterHandler]
|
|
445
|
-
binary_response_headers: Optional[ParameterHandler]
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
class _ContinueResponseAction(AbstractAction):
|
|
449
|
-
"""
|
|
450
|
-
Internal TypedDict for the 'continueResponse' action configuration within RequestPaused.
|
|
451
|
-
|
|
452
|
-
Attributes:
|
|
453
|
-
kwargs_func (build_kwargs_from_handlers_func_type): Function to build keyword arguments for the `continueResponse` CDP command.
|
|
454
|
-
response_handle_func (response_handle_func_type): A function to process the response from the CDP command.
|
|
455
|
-
parameters_handlers (_ContinueResponseParametersHandlers): Handlers for modifying response parameters.
|
|
456
|
-
"""
|
|
457
|
-
|
|
458
|
-
kwargs_func: build_kwargs_from_handlers_func_type
|
|
459
|
-
response_handle_func: response_handle_func_type
|
|
460
|
-
parameters_handlers: _ContinueResponseParametersHandlers
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
class _FulfillRequestParametersHandlers(TypedDict):
|
|
464
|
-
"""
|
|
465
|
-
Internal TypedDict for handlers related to the 'fulfillRequest' action parameters.
|
|
466
|
-
|
|
467
|
-
Attributes:
|
|
468
|
-
response_code (ParameterHandler): Required handler for the HTTP response code (e.g., 200).
|
|
469
|
-
response_headers (Optional[ParameterHandler]): Handler for the response headers.
|
|
470
|
-
binary_response_headers (Optional[ParameterHandler]): Handler for binary response headers (base64 encoded).
|
|
471
|
-
body (Optional[ParameterHandler]): Handler for the response body (base64 encoded string).
|
|
472
|
-
response_phrase (Optional[ParameterHandler]): Handler for the HTTP response phrase (e.g., "OK").
|
|
473
|
-
"""
|
|
474
|
-
|
|
475
|
-
response_code: ParameterHandler
|
|
476
|
-
response_headers: Optional[ParameterHandler]
|
|
477
|
-
binary_response_headers: Optional[ParameterHandler]
|
|
478
|
-
body: Optional[ParameterHandler]
|
|
479
|
-
response_phrase: Optional[ParameterHandler]
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
class _FulfillRequestAction(AbstractAction):
|
|
483
|
-
"""
|
|
484
|
-
Internal TypedDict for the 'fulfillRequest' action configuration within RequestPaused.
|
|
485
|
-
|
|
486
|
-
Attributes:
|
|
487
|
-
kwargs_func (build_kwargs_from_handlers_func_type): Function to build keyword arguments for the `fulfillRequest` CDP command.
|
|
488
|
-
response_handle_func (response_handle_func_type): A function to process the response from the CDP command.
|
|
489
|
-
parameters_handlers (_FulfillRequestParametersHandlers): Handlers for mock response parameters.
|
|
490
|
-
"""
|
|
491
|
-
|
|
492
|
-
kwargs_func: build_kwargs_from_handlers_func_type
|
|
493
|
-
response_handle_func: response_handle_func_type
|
|
494
|
-
parameters_handlers: _FulfillRequestParametersHandlers
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
class _FailRequestParametersHandlers(TypedDict):
|
|
498
|
-
"""
|
|
499
|
-
Internal TypedDict for handlers related to the 'failRequest' action parameters.
|
|
500
|
-
|
|
501
|
-
Attributes:
|
|
502
|
-
error_reason (ParameterHandler): Required handler for providing the network error reason (a string from Network.ErrorReason enum).
|
|
503
|
-
"""
|
|
504
|
-
|
|
505
|
-
error_reason: ParameterHandler
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
class _FailRequestAction(AbstractAction):
|
|
509
|
-
"""
|
|
510
|
-
Internal TypedDict for the 'failRequest' action configuration within RequestPaused.
|
|
511
|
-
|
|
512
|
-
Attributes:
|
|
513
|
-
kwargs_func (build_kwargs_from_handlers_func_type): Function to build keyword arguments for the `failRequest` CDP command.
|
|
514
|
-
response_handle_func (response_handle_func_type): A function to process the response from the CDP command.
|
|
515
|
-
parameters_handlers (_FailRequestParametersHandlers): Handlers for the error reason parameter.
|
|
516
|
-
"""
|
|
517
|
-
|
|
518
|
-
kwargs_func: build_kwargs_from_handlers_func_type
|
|
519
|
-
response_handle_func: response_handle_func_type
|
|
520
|
-
parameters_handlers: _FailRequestParametersHandlers
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
class _ContinueRequestParametersHandlers(TypedDict):
|
|
524
|
-
"""
|
|
525
|
-
Internal TypedDict for handlers related to the 'continueRequest' action parameters.
|
|
526
|
-
|
|
527
|
-
Attributes:
|
|
528
|
-
url (Optional[ParameterHandler]): Handler for modifying the request URL.
|
|
529
|
-
method (Optional[ParameterHandler]): Handler for modifying the HTTP method.
|
|
530
|
-
post_data (Optional[ParameterHandler]): Handler for modifying the request's post data (base64 encoded string).
|
|
531
|
-
headers (Optional[ParameterHandler]): Handler for modifying the request headers.
|
|
532
|
-
intercept_response (Optional[ParameterHandler]): Handler for setting response interception behavior for this request.
|
|
533
|
-
"""
|
|
534
|
-
|
|
535
|
-
url: Optional[ParameterHandler]
|
|
536
|
-
method: Optional[ParameterHandler]
|
|
537
|
-
post_data: Optional[ParameterHandler]
|
|
538
|
-
headers: Optional[ParameterHandler]
|
|
539
|
-
intercept_response: Optional[ParameterHandler]
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
class _ContinueRequestAction(AbstractAction):
|
|
543
|
-
"""
|
|
544
|
-
Internal TypedDict for the 'continueRequest' action configuration within RequestPaused.
|
|
545
|
-
|
|
546
|
-
Attributes:
|
|
547
|
-
kwargs_func (build_kwargs_from_handlers_func_type): Function to build keyword arguments for the `continueRequest` CDP command.
|
|
548
|
-
response_handle_func (response_handle_func_type): A function to process the response from the CDP command.
|
|
549
|
-
parameters_handlers (_ContinueRequestParametersHandlers): Handlers for modifying request parameters.
|
|
550
|
-
"""
|
|
551
|
-
|
|
552
|
-
kwargs_func: build_kwargs_from_handlers_func_type
|
|
553
|
-
response_handle_func: response_handle_func_type
|
|
554
|
-
parameters_handlers: _ContinueRequestParametersHandlers
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
class _RequestPausedActions(TypedDict):
|
|
558
|
-
"""
|
|
559
|
-
Internal TypedDict mapping action names for RequestPaused event to their configurations.
|
|
560
|
-
|
|
561
|
-
Attributes:
|
|
562
|
-
continue_request (Optional[_ContinueRequestAction]): Configuration for the 'continueRequest' action.
|
|
563
|
-
fail_request (Optional[_FailRequestAction]): Configuration for the 'failRequest' action.
|
|
564
|
-
fulfill_request (Optional[_FulfillRequestAction]): Configuration for the 'fulfillRequest' action.
|
|
565
|
-
continue_response (Optional[_ContinueResponseAction]): Configuration for the 'continueResponse' action.
|
|
566
|
-
"""
|
|
567
|
-
|
|
568
|
-
continue_request: Optional[_ContinueRequestAction]
|
|
569
|
-
fail_request: Optional[_FailRequestAction]
|
|
570
|
-
fulfill_request: Optional[_FulfillRequestAction]
|
|
571
|
-
continue_response: Optional[_ContinueResponseAction]
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
class _RequestPausedActionsHandler(AbstractEventActionsHandler):
|
|
575
|
-
"""
|
|
576
|
-
Internal TypedDict for the actions handler configuration for the 'RequestPaused' event.
|
|
577
|
-
|
|
578
|
-
Attributes:
|
|
579
|
-
choose_action_func (request_paused_choose_action_func_type): A function that determines which actions (by name) should be executed for a given 'RequestPaused' event.
|
|
580
|
-
actions (_RequestPausedActions): A dictionary mapping action names to their full configurations.
|
|
581
|
-
"""
|
|
582
|
-
|
|
583
|
-
choose_action_func: "request_paused_choose_action_func_type"
|
|
584
|
-
actions: _RequestPausedActions
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
class _RequestPaused(AbstractEvent):
|
|
588
|
-
"""
|
|
589
|
-
Internal TypedDict representing the complete configuration for a 'RequestPaused' event listener.
|
|
590
|
-
|
|
591
|
-
This structure extends `AbstractEvent` with specifics for the Fetch.RequestPaused domain event.
|
|
592
|
-
|
|
593
|
-
Attributes:
|
|
594
|
-
class_to_use_path (str): Path to the CDP event class ("fetch.RequestPaused").
|
|
595
|
-
listen_buffer_size (int): Buffer size for the listener channel.
|
|
596
|
-
handle_function (handle_request_paused_func_type): The main handler function for the event (_handle_request_paused).
|
|
597
|
-
actions_handler (_RequestPausedActionsHandler): Callbacks and configurations for choosing and executing actions based on the event.
|
|
598
|
-
on_error_func (on_error_func_type): Function to call on error during event handling.
|
|
599
|
-
"""
|
|
600
|
-
|
|
601
|
-
class_to_use_path: str
|
|
602
|
-
listen_buffer_size: int
|
|
603
|
-
handle_function: "handle_request_paused_func_type"
|
|
604
|
-
actions_handler: _RequestPausedActionsHandler
|
|
605
|
-
on_error_func: on_error_func_type
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
async def _handle_request_paused(self: "DevToolsTarget", handler_settings: _RequestPaused, event: Any):
|
|
609
|
-
"""
|
|
610
|
-
Handles the 'fetch.RequestPaused' CDP event.
|
|
611
|
-
|
|
612
|
-
This function determines which actions to take based on the `choose_action_func`
|
|
613
|
-
defined in the handler settings, builds the necessary keyword arguments for the
|
|
614
|
-
chosen actions using their respective parameter handlers, executes the CDP commands,
|
|
615
|
-
and processes their responses.
|
|
616
|
-
|
|
617
|
-
Args:
|
|
618
|
-
self (DevToolsTarget): The DevToolsTarget instance.
|
|
619
|
-
handler_settings (_RequestPaused): The configuration settings for handling the 'RequestPaused' event.
|
|
620
|
-
event (Any): The 'RequestPaused' event object received from the CDP.
|
|
621
281
|
|
|
622
|
-
Raises:
|
|
623
|
-
BaseException: If a critical error occurs during the event handling process.
|
|
624
|
-
"""
|
|
625
|
-
|
|
626
|
-
await self.log(level="INFO", message=f"Started to handle for '{event}'")
|
|
627
|
-
|
|
628
|
-
try:
|
|
629
|
-
chosen_actions_func_names = handler_settings["actions_handler"]["choose_action_func"](self, event)
|
|
630
|
-
await self.log(level="INFO", message=f"Chosen actions: '{chosen_actions_func_names}'")
|
|
631
|
-
|
|
632
|
-
for action_func_name in chosen_actions_func_names:
|
|
633
|
-
chosen_action_func = handler_settings["actions_handler"]["actions"][action_func_name]
|
|
634
|
-
|
|
635
|
-
kwargs = await chosen_action_func["kwargs_func"](self, chosen_action_func["parameters_handlers"], event)
|
|
636
|
-
await self.log(level="INFO", message=f"Kwargs for '{action_func_name}': '{kwargs}'")
|
|
637
|
-
|
|
638
|
-
response_handle_func = chosen_action_func["response_handle_func"]
|
|
639
|
-
|
|
640
|
-
try:
|
|
641
|
-
response = await execute_cdp_command(
|
|
642
|
-
self,
|
|
643
|
-
"raise",
|
|
644
|
-
await self.get_devtools_object(f"fetch.{action_func_name}"),
|
|
645
|
-
**kwargs
|
|
646
|
-
)
|
|
647
|
-
await self.log(
|
|
648
|
-
level="RequestPaused",
|
|
649
|
-
message=f"Function '{action_func_name}' response: '{response}'"
|
|
650
|
-
)
|
|
651
|
-
|
|
652
|
-
if response_handle_func is not None:
|
|
653
|
-
self._nursery_object.start_soon(response_handle_func, self, response)
|
|
654
|
-
except* cdp_end_exceptions:
|
|
655
|
-
pass
|
|
656
|
-
except* BaseException as error:
|
|
657
|
-
await self.log_error(error=error)
|
|
658
|
-
|
|
659
|
-
on_error = handler_settings["on_error_func"]
|
|
660
|
-
|
|
661
|
-
if on_error is not None:
|
|
662
|
-
on_error(self, event, error)
|
|
663
|
-
except* cdp_end_exceptions as error:
|
|
664
|
-
raise error
|
|
665
|
-
except* BaseException as error:
|
|
666
|
-
await self.log_error(error=error)
|
|
667
|
-
raise error
|
|
668
282
|
|
|
669
|
-
|
|
670
|
-
@dataclass
|
|
671
283
|
class ContinueResponseHandlersSettings(AbstractActionParametersHandlersSettings):
|
|
672
284
|
"""
|
|
673
285
|
Configuration for handlers that modify a response before it continues using `fetch.continueResponse`.
|
|
@@ -685,24 +297,8 @@ class ContinueResponseHandlersSettings(AbstractActionParametersHandlersSettings)
|
|
|
685
297
|
response_phrase: Optional[ParameterHandler] = None
|
|
686
298
|
response_headers: Optional[ParameterHandler] = None
|
|
687
299
|
binary_response_headers: Optional[ParameterHandler] = None
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
"""
|
|
691
|
-
Converts the settings object to its dictionary representation.
|
|
692
|
-
|
|
693
|
-
Returns:
|
|
694
|
-
_ContinueResponseParametersHandlers: The dictionary representation suitable for internal use.
|
|
695
|
-
"""
|
|
696
|
-
|
|
697
|
-
return _ContinueResponseParametersHandlers(
|
|
698
|
-
response_code=self.response_code,
|
|
699
|
-
response_phrase=self.response_phrase,
|
|
700
|
-
response_headers=self.response_headers,
|
|
701
|
-
binary_response_headers=self.binary_response_headers
|
|
702
|
-
)
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
@dataclass
|
|
300
|
+
|
|
301
|
+
|
|
706
302
|
class ContinueResponseSettings(AbstractActionSettings):
|
|
707
303
|
"""
|
|
708
304
|
Settings for the 'continueResponse' action for a paused request (from RequestPaused event).
|
|
@@ -710,42 +306,16 @@ class ContinueResponseSettings(AbstractActionSettings):
|
|
|
710
306
|
This action is used to modify and continue a request *after* the response has been received but before it is processed by the browser.
|
|
711
307
|
|
|
712
308
|
Attributes:
|
|
309
|
+
kwargs_func (build_kwargs_from_handlers_func_type): Function to build keyword arguments from handlers.
|
|
713
310
|
response_handle_func (response_handle_func_type): An optional awaitable function to process the response from the `fetch.continueResponse` CDP command. Defaults to None.
|
|
714
311
|
parameters_handlers (Optional[ContinueResponseHandlersSettings]): Configuration for the response parameter handlers that provide modified response details. Defaults to None.
|
|
715
312
|
"""
|
|
716
313
|
|
|
314
|
+
kwargs_func: build_kwargs_from_handlers_func_type = _build_kwargs_from_handlers_func
|
|
717
315
|
response_handle_func: response_handle_func_type = None
|
|
718
316
|
parameters_handlers: Optional[ContinueResponseHandlersSettings] = None
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
def kwargs_func(self) -> build_kwargs_from_handlers_func_type:
|
|
722
|
-
"""
|
|
723
|
-
Returns the function used to build keyword arguments for the `continueResponse` command.
|
|
724
|
-
|
|
725
|
-
Returns:
|
|
726
|
-
build_kwargs_from_handlers_func_type: The internal function `_build_kwargs_from_handlers_func`.
|
|
727
|
-
"""
|
|
728
|
-
|
|
729
|
-
return _build_kwargs_from_handlers_func
|
|
730
|
-
|
|
731
|
-
def to_dict(self) -> _ContinueResponseAction:
|
|
732
|
-
"""
|
|
733
|
-
Converts the settings object to its dictionary representation.
|
|
734
|
-
|
|
735
|
-
Returns:
|
|
736
|
-
_ContinueResponseAction: The dictionary representation suitable for internal use.
|
|
737
|
-
"""
|
|
738
|
-
|
|
739
|
-
return _ContinueResponseAction(
|
|
740
|
-
kwargs_func=self.kwargs_func,
|
|
741
|
-
response_handle_func=self.response_handle_func,
|
|
742
|
-
parameters_handlers=self.parameters_handlers.to_dict()
|
|
743
|
-
if self.parameters_handlers is not None
|
|
744
|
-
else ContinueResponseHandlersSettings().to_dict(),
|
|
745
|
-
)
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
@dataclass
|
|
317
|
+
|
|
318
|
+
|
|
749
319
|
class FulfillRequestHandlersSettings(AbstractActionParametersHandlersSettings):
|
|
750
320
|
"""
|
|
751
321
|
Configuration for handlers that provide a mock response to a request using `fetch.fulfillRequest`.
|
|
@@ -765,25 +335,8 @@ class FulfillRequestHandlersSettings(AbstractActionParametersHandlersSettings):
|
|
|
765
335
|
binary_response_headers: Optional[ParameterHandler] = None
|
|
766
336
|
body: Optional[ParameterHandler] = None
|
|
767
337
|
response_phrase: Optional[ParameterHandler] = None
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
"""
|
|
771
|
-
Converts the settings object to its dictionary representation.
|
|
772
|
-
|
|
773
|
-
Returns:
|
|
774
|
-
_FulfillRequestParametersHandlers: The dictionary representation suitable for internal use.
|
|
775
|
-
"""
|
|
776
|
-
|
|
777
|
-
return _FulfillRequestParametersHandlers(
|
|
778
|
-
response_code=self.response_code,
|
|
779
|
-
response_headers=self.response_headers,
|
|
780
|
-
binary_response_headers=self.binary_response_headers,
|
|
781
|
-
body=self.body,
|
|
782
|
-
response_phrase=self.response_phrase,
|
|
783
|
-
)
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
@dataclass
|
|
338
|
+
|
|
339
|
+
|
|
787
340
|
class FulfillRequestSettings(AbstractActionSettings):
|
|
788
341
|
"""
|
|
789
342
|
Settings for the 'fulfillRequest' action for a paused request (from RequestPaused event).
|
|
@@ -791,40 +344,16 @@ class FulfillRequestSettings(AbstractActionSettings):
|
|
|
791
344
|
This action is used to provide a completely mock response for a request, preventing the browser from sending it to the network.
|
|
792
345
|
|
|
793
346
|
Attributes:
|
|
347
|
+
kwargs_func (build_kwargs_from_handlers_func_type): Function to build keyword arguments from handlers.
|
|
794
348
|
parameters_handlers (FulfillRequestHandlersSettings): Configuration for the mock response parameter handlers.
|
|
795
349
|
response_handle_func (response_handle_func_type): An optional awaitable function to process the response from the `fetch.fulfillRequest` CDP command. Defaults to None.
|
|
796
350
|
"""
|
|
797
351
|
|
|
352
|
+
kwargs_func: build_kwargs_from_handlers_func_type = _build_kwargs_from_handlers_func
|
|
798
353
|
parameters_handlers: FulfillRequestHandlersSettings
|
|
799
354
|
response_handle_func: response_handle_func_type = None
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
def kwargs_func(self) -> build_kwargs_from_handlers_func_type:
|
|
803
|
-
"""
|
|
804
|
-
Returns the function used to build keyword arguments for the `fulfillRequest` command.
|
|
805
|
-
|
|
806
|
-
Returns:
|
|
807
|
-
build_kwargs_from_handlers_func_type: The internal function `_build_kwargs_from_handlers_func`.
|
|
808
|
-
"""
|
|
809
|
-
|
|
810
|
-
return _build_kwargs_from_handlers_func
|
|
811
|
-
|
|
812
|
-
def to_dict(self) -> _FulfillRequestAction:
|
|
813
|
-
"""
|
|
814
|
-
Converts the settings object to its dictionary representation.
|
|
815
|
-
|
|
816
|
-
Returns:
|
|
817
|
-
_FulfillRequestAction: The dictionary representation suitable for internal use.
|
|
818
|
-
"""
|
|
819
|
-
|
|
820
|
-
return _FulfillRequestAction(
|
|
821
|
-
kwargs_func=self.kwargs_func,
|
|
822
|
-
response_handle_func=self.response_handle_func,
|
|
823
|
-
parameters_handlers=self.parameters_handlers.to_dict(),
|
|
824
|
-
)
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
@dataclass
|
|
355
|
+
|
|
356
|
+
|
|
828
357
|
class FailRequestHandlersSettings(AbstractActionParametersHandlersSettings):
|
|
829
358
|
"""
|
|
830
359
|
Configuration for handlers that specify the reason for failing a request using `fetch.failRequest`.
|
|
@@ -836,19 +365,8 @@ class FailRequestHandlersSettings(AbstractActionParametersHandlersSettings):
|
|
|
836
365
|
"""
|
|
837
366
|
|
|
838
367
|
error_reason: ParameterHandler
|
|
839
|
-
|
|
840
|
-
def to_dict(self) -> _FailRequestParametersHandlers:
|
|
841
|
-
"""
|
|
842
|
-
Converts the settings object to its dictionary representation.
|
|
843
368
|
|
|
844
|
-
Returns:
|
|
845
|
-
_FailRequestParametersHandlers: The dictionary representation suitable for internal use.
|
|
846
|
-
"""
|
|
847
|
-
|
|
848
|
-
return _FailRequestParametersHandlers(error_reason=self.error_reason)
|
|
849
369
|
|
|
850
|
-
|
|
851
|
-
@dataclass
|
|
852
370
|
class FailRequestSettings(AbstractActionSettings):
|
|
853
371
|
"""
|
|
854
372
|
Settings for the 'failRequest' action for a paused request (from RequestPaused event).
|
|
@@ -856,40 +374,16 @@ class FailRequestSettings(AbstractActionSettings):
|
|
|
856
374
|
This action is used to cause the request to fail with a specific network error reason.
|
|
857
375
|
|
|
858
376
|
Attributes:
|
|
377
|
+
kwargs_func (build_kwargs_from_handlers_func_type): Function to build keyword arguments from handlers.
|
|
859
378
|
parameters_handlers (FailRequestHandlersSettings): Configuration for the error reason handler.
|
|
860
379
|
response_handle_func (response_handle_func_type): An optional awaitable function to process the response from the `fetch.failRequest` CDP command. Defaults to None.
|
|
861
380
|
"""
|
|
862
381
|
|
|
382
|
+
kwargs_func: build_kwargs_from_handlers_func_type = _build_kwargs_from_handlers_func
|
|
863
383
|
parameters_handlers: FailRequestHandlersSettings
|
|
864
384
|
response_handle_func: response_handle_func_type = None
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
def kwargs_func(self) -> build_kwargs_from_handlers_func_type:
|
|
868
|
-
"""
|
|
869
|
-
Returns the function used to build keyword arguments for the `failRequest` command.
|
|
870
|
-
|
|
871
|
-
Returns:
|
|
872
|
-
build_kwargs_from_handlers_func_type: The internal function `_build_kwargs_from_handlers_func`.
|
|
873
|
-
"""
|
|
874
|
-
|
|
875
|
-
return _build_kwargs_from_handlers_func
|
|
876
|
-
|
|
877
|
-
def to_dict(self) -> _FailRequestAction:
|
|
878
|
-
"""
|
|
879
|
-
Converts the settings object to its dictionary representation.
|
|
880
|
-
|
|
881
|
-
Returns:
|
|
882
|
-
_FailRequestAction: The dictionary representation suitable for internal use.
|
|
883
|
-
"""
|
|
884
|
-
|
|
885
|
-
return _FailRequestAction(
|
|
886
|
-
kwargs_func=self.kwargs_func,
|
|
887
|
-
response_handle_func=self.response_handle_func,
|
|
888
|
-
parameters_handlers=self.parameters_handlers.to_dict(),
|
|
889
|
-
)
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
@dataclass
|
|
385
|
+
|
|
386
|
+
|
|
893
387
|
class ContinueRequestHandlersSettings(AbstractActionParametersHandlersSettings):
|
|
894
388
|
"""
|
|
895
389
|
Configuration for handlers that modify a request before it continues using `fetch.continueRequest`.
|
|
@@ -909,25 +403,8 @@ class ContinueRequestHandlersSettings(AbstractActionParametersHandlersSettings):
|
|
|
909
403
|
post_data: Optional[ParameterHandler] = None
|
|
910
404
|
headers: Optional[ParameterHandler] = None
|
|
911
405
|
intercept_response: Optional[ParameterHandler] = None
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
"""
|
|
915
|
-
Converts the settings object to its dictionary representation.
|
|
916
|
-
|
|
917
|
-
Returns:
|
|
918
|
-
_ContinueRequestParametersHandlers: The dictionary representation suitable for internal use.
|
|
919
|
-
"""
|
|
920
|
-
|
|
921
|
-
return _ContinueRequestParametersHandlers(
|
|
922
|
-
url=self.url,
|
|
923
|
-
method=self.method,
|
|
924
|
-
post_data=self.post_data,
|
|
925
|
-
headers=self.headers,
|
|
926
|
-
intercept_response=self.intercept_response,
|
|
927
|
-
)
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
@dataclass
|
|
406
|
+
|
|
407
|
+
|
|
931
408
|
class ContinueRequestSettings(AbstractActionSettings):
|
|
932
409
|
"""
|
|
933
410
|
Settings for the 'continueRequest' action for a paused request (from RequestPaused event).
|
|
@@ -935,42 +412,16 @@ class ContinueRequestSettings(AbstractActionSettings):
|
|
|
935
412
|
This action is used to allow the request to proceed, optionally after modifying it.
|
|
936
413
|
|
|
937
414
|
Attributes:
|
|
415
|
+
kwargs_func (build_kwargs_from_handlers_func_type): Function to build keyword arguments from handlers.
|
|
938
416
|
response_handle_func (response_handle_func_type): An optional awaitable function to process the response from the `fetch.continueRequest` CDP command. Defaults to None.
|
|
939
417
|
parameters_handlers (Optional[ContinueRequestHandlersSettings]): Configuration for the request parameter handlers that provide modified request details. Defaults to None.
|
|
940
418
|
"""
|
|
941
419
|
|
|
420
|
+
kwargs_func: build_kwargs_from_handlers_func_type = _build_kwargs_from_handlers_func
|
|
942
421
|
response_handle_func: response_handle_func_type = None
|
|
943
422
|
parameters_handlers: Optional[ContinueRequestHandlersSettings] = None
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
def kwargs_func(self) -> build_kwargs_from_handlers_func_type:
|
|
947
|
-
"""
|
|
948
|
-
Returns the function used to build keyword arguments for the `continueRequest` command.
|
|
949
|
-
|
|
950
|
-
Returns:
|
|
951
|
-
build_kwargs_from_handlers_func_type: The internal function `_build_kwargs_from_handlers_func`.
|
|
952
|
-
"""
|
|
953
|
-
|
|
954
|
-
return _build_kwargs_from_handlers_func
|
|
955
|
-
|
|
956
|
-
def to_dict(self) -> _ContinueRequestAction:
|
|
957
|
-
"""
|
|
958
|
-
Converts the settings object to its dictionary representation.
|
|
959
|
-
|
|
960
|
-
Returns:
|
|
961
|
-
_ContinueRequestAction: The dictionary representation suitable for internal use.
|
|
962
|
-
"""
|
|
963
|
-
|
|
964
|
-
return _ContinueRequestAction(
|
|
965
|
-
kwargs_func=self.kwargs_func,
|
|
966
|
-
response_handle_func=self.response_handle_func,
|
|
967
|
-
parameters_handlers=self.parameters_handlers.to_dict()
|
|
968
|
-
if self.parameters_handlers is not None
|
|
969
|
-
else ContinueRequestHandlersSettings().to_dict(),
|
|
970
|
-
)
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
@dataclass
|
|
423
|
+
|
|
424
|
+
|
|
974
425
|
class RequestPausedActionsSettings(AbstractEventActionsSettings):
|
|
975
426
|
"""
|
|
976
427
|
Container for configurations of possible actions to take when a request is paused.
|
|
@@ -986,61 +437,89 @@ class RequestPausedActionsSettings(AbstractEventActionsSettings):
|
|
|
986
437
|
fail_request: Optional[FailRequestSettings] = None
|
|
987
438
|
fulfill_request: Optional[FulfillRequestSettings] = None
|
|
988
439
|
continue_response: Optional[ContinueResponseSettings] = None
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
"""
|
|
992
|
-
Converts the settings object to its dictionary representation.
|
|
993
|
-
|
|
994
|
-
Returns:
|
|
995
|
-
_RequestPausedActions: The dictionary representation suitable for internal use.
|
|
996
|
-
"""
|
|
997
|
-
|
|
998
|
-
return _RequestPausedActions(
|
|
999
|
-
continue_request=self.continue_request.to_dict()
|
|
1000
|
-
if self.continue_request
|
|
1001
|
-
else None,
|
|
1002
|
-
fail_request=self.fail_request.to_dict()
|
|
1003
|
-
if self.fail_request
|
|
1004
|
-
else None,
|
|
1005
|
-
fulfill_request=self.fulfill_request.to_dict()
|
|
1006
|
-
if self.fulfill_request
|
|
1007
|
-
else None,
|
|
1008
|
-
continue_response=self.continue_response.to_dict()
|
|
1009
|
-
if self.continue_response
|
|
1010
|
-
else None,
|
|
1011
|
-
)
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
@dataclass
|
|
440
|
+
|
|
441
|
+
|
|
1015
442
|
class RequestPausedActionsHandlerSettings(AbstractEventActionsHandlerSettings):
|
|
1016
443
|
"""
|
|
1017
444
|
Settings for handling the 'fetch.RequestPaused' event by choosing and executing specific actions.
|
|
1018
445
|
|
|
1019
446
|
Attributes:
|
|
1020
|
-
choose_action_func (request_paused_choose_action_func_type): A function that takes the DevTools instance and the event object and returns a
|
|
447
|
+
choose_action_func (request_paused_choose_action_func_type): A function that takes the DevTools instance and the event object and returns a List of action names (Literals) to execute. Defaults to `request_paused_choose_func`.
|
|
1021
448
|
actions (Optional[RequestPausedActionsSettings]): Container for the configuration of the available actions. Defaults to None.
|
|
1022
449
|
"""
|
|
1023
450
|
|
|
1024
|
-
choose_action_func:
|
|
451
|
+
choose_action_func: request_paused_choose_action_func_type = request_paused_choose_func
|
|
1025
452
|
actions: Optional[RequestPausedActionsSettings] = None
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
async def _handle_request_paused(
|
|
456
|
+
self: DevToolsTarget,
|
|
457
|
+
handler_settings: "RequestPausedSettings",
|
|
458
|
+
event: Any
|
|
459
|
+
):
|
|
460
|
+
"""
|
|
461
|
+
Handles the 'fetch.RequestPaused' CDP event.
|
|
462
|
+
|
|
463
|
+
This function determines which actions to take based on the `choose_action_func`
|
|
464
|
+
defined in the handler settings, builds the necessary keyword arguments for the
|
|
465
|
+
chosen actions using their respective parameter handlers, executes the CDP commands,
|
|
466
|
+
and processes their responses.
|
|
467
|
+
|
|
468
|
+
Args:
|
|
469
|
+
self (DevToolsTarget): The DevToolsTarget instance.
|
|
470
|
+
handler_settings (RequestPausedSettings): The configuration settings for handling the 'RequestPaused' event.
|
|
471
|
+
event (Any): The 'RequestPaused' event object received from the CDP.
|
|
472
|
+
|
|
473
|
+
Raises:
|
|
474
|
+
BaseException: If a critical error occurs during the event handling process.
|
|
475
|
+
"""
|
|
476
|
+
|
|
477
|
+
await self.log_cdp(level="INFO", message=f"Started to handle for '{event}'")
|
|
478
|
+
|
|
479
|
+
try:
|
|
480
|
+
chosen_actions_func_names = handler_settings.actions_handler.choose_action_func(self, event)
|
|
481
|
+
await self.log_cdp(level="INFO", message=f"Chosen actions: '{chosen_actions_func_names}'")
|
|
482
|
+
|
|
483
|
+
for action_func_name in chosen_actions_func_names:
|
|
484
|
+
chosen_action_func = getattr(handler_settings.actions_handler.actions, action_func_name)
|
|
1026
485
|
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
486
|
+
kwargs = await chosen_action_func.kwargs_func(self, chosen_action_func.parameters_handlers, event)
|
|
487
|
+
await self.log_cdp(level="INFO", message=f"Kwargs for '{action_func_name}': '{kwargs}'")
|
|
488
|
+
|
|
489
|
+
response_handle_func = chosen_action_func.response_handle_func
|
|
490
|
+
|
|
491
|
+
try:
|
|
492
|
+
response = await execute_cdp_command(
|
|
493
|
+
self=self,
|
|
494
|
+
error_mode="log",
|
|
495
|
+
function=self.devtools_package.get(["fetch", action_func_name]),
|
|
496
|
+
**kwargs
|
|
497
|
+
)
|
|
498
|
+
|
|
499
|
+
if isinstance(response, ExceptionThrown):
|
|
500
|
+
raise response.exception
|
|
501
|
+
|
|
502
|
+
await self.log_cdp(
|
|
503
|
+
level="RequestPaused",
|
|
504
|
+
message=f"Function '{action_func_name}' response: '{response}'"
|
|
505
|
+
)
|
|
506
|
+
|
|
507
|
+
if response_handle_func is not None:
|
|
508
|
+
self._nursery_object.start_soon(response_handle_func, self, response)
|
|
509
|
+
except* CDPEndExceptions:
|
|
510
|
+
pass
|
|
511
|
+
except* BaseException as error:
|
|
512
|
+
await self.log_cdp_error(error=error)
|
|
513
|
+
|
|
514
|
+
if handler_settings.on_error_func is not None:
|
|
515
|
+
handler_settings.on_error_func(self, event, error)
|
|
516
|
+
except* CDPEndExceptions as error:
|
|
517
|
+
raise error
|
|
518
|
+
except* BaseException as error:
|
|
519
|
+
await self.log_cdp_error(error=error)
|
|
520
|
+
raise error
|
|
521
|
+
|
|
522
|
+
|
|
1044
523
|
class RequestPausedSettings(AbstractEventSettings):
|
|
1045
524
|
"""
|
|
1046
525
|
Settings for handling the 'fetch.RequestPaused' event.
|
|
@@ -1049,70 +528,20 @@ class RequestPausedSettings(AbstractEventSettings):
|
|
|
1049
528
|
including buffer size, the actions to take, and error handling.
|
|
1050
529
|
|
|
1051
530
|
Attributes:
|
|
531
|
+
handle_function (handle_request_paused_func_type): The function responsible for processing the event.
|
|
532
|
+
class_to_use_path (str): The CDP event class path ("fetch.RequestPaused").
|
|
1052
533
|
listen_buffer_size (int): The buffer size for the event listener channel. Defaults to 100.
|
|
1053
534
|
actions_handler (Optional[RequestPausedActionsHandlerSettings]): Configuration for the event's actions handler, determining which action(s) to take (e.g., continueRequest, fulfillRequest) and how to build their parameters. Defaults to None.
|
|
1054
535
|
on_error_func (on_error_func_type): An optional function to call if an error occurs during event handling. Defaults to None.
|
|
1055
536
|
"""
|
|
1056
537
|
|
|
538
|
+
handle_function: handle_request_paused_func_type = _handle_request_paused
|
|
539
|
+
class_to_use_path: str = "fetch.RequestPaused"
|
|
1057
540
|
listen_buffer_size: int = 100
|
|
1058
541
|
actions_handler: Optional[RequestPausedActionsHandlerSettings] = None
|
|
1059
542
|
on_error_func: on_error_func_type = None
|
|
1060
|
-
|
|
1061
|
-
@property
|
|
1062
|
-
def handle_function(self) -> "handle_request_paused_func_type":
|
|
1063
|
-
"""
|
|
1064
|
-
Returns the main handler function for the 'fetch.RequestPaused' event.
|
|
1065
|
-
|
|
1066
|
-
Returns:
|
|
1067
|
-
handle_request_paused_func_type: The internal function `_handle_request_paused`.
|
|
1068
|
-
"""
|
|
1069
|
-
|
|
1070
|
-
return _handle_request_paused
|
|
1071
|
-
|
|
1072
|
-
@property
|
|
1073
|
-
def class_to_use_path(self) -> str:
|
|
1074
|
-
"""
|
|
1075
|
-
Returns the path to the CDP event class for 'fetch.RequestPaused'.
|
|
1076
|
-
|
|
1077
|
-
Returns:
|
|
1078
|
-
str: The string "fetch.RequestPaused".
|
|
1079
|
-
"""
|
|
1080
|
-
|
|
1081
|
-
return "fetch.RequestPaused"
|
|
1082
|
-
|
|
1083
|
-
def to_dict(self) -> _RequestPaused:
|
|
1084
|
-
"""
|
|
1085
|
-
Converts the settings object to its dictionary representation.
|
|
1086
|
-
|
|
1087
|
-
Returns:
|
|
1088
|
-
_RequestPaused: The dictionary representation suitable for internal use.
|
|
1089
|
-
"""
|
|
1090
|
-
|
|
1091
|
-
return _RequestPaused(
|
|
1092
|
-
class_to_use_path=self.class_to_use_path,
|
|
1093
|
-
listen_buffer_size=self.listen_buffer_size,
|
|
1094
|
-
handle_function=self.handle_function,
|
|
1095
|
-
actions_handler=self.actions_handler.to_dict()
|
|
1096
|
-
if self.actions_handler is not None
|
|
1097
|
-
else RequestPausedActionsHandlerSettings().to_dict(),
|
|
1098
|
-
on_error_func=self.on_error_func,
|
|
1099
|
-
)
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
class _FetchHandlers(TypedDict):
|
|
1103
|
-
"""
|
|
1104
|
-
Internal TypedDict for all event handlers within the Fetch domain.
|
|
1105
|
-
|
|
1106
|
-
Attributes:
|
|
1107
|
-
request_paused (Optional[_RequestPaused]): Configuration for the 'RequestPaused' event handler.
|
|
1108
|
-
auth_required (Optional[_AuthRequired]): Configuration for the 'AuthRequired' event handler.
|
|
1109
|
-
"""
|
|
1110
|
-
|
|
1111
|
-
request_paused: Optional[_RequestPaused]
|
|
1112
|
-
auth_required: Optional[_AuthRequired]
|
|
1113
543
|
|
|
1114
544
|
|
|
1115
|
-
@dataclass
|
|
1116
545
|
class FetchHandlersSettings(AbstractDomainHandlersSettings):
|
|
1117
546
|
"""
|
|
1118
547
|
Container for all handler settings within the Fetch domain.
|
|
@@ -1124,39 +553,8 @@ class FetchHandlersSettings(AbstractDomainHandlersSettings):
|
|
|
1124
553
|
|
|
1125
554
|
request_paused: Optional[RequestPausedSettings] = None
|
|
1126
555
|
auth_required: Optional[AuthRequiredSettings] = None
|
|
1127
|
-
|
|
1128
|
-
def to_dict(self) -> _FetchHandlers:
|
|
1129
|
-
"""
|
|
1130
|
-
Converts the settings object to its dictionary representation.
|
|
1131
|
-
|
|
1132
|
-
Returns:
|
|
1133
|
-
_FetchHandlers: The dictionary representation suitable for internal use.
|
|
1134
|
-
"""
|
|
1135
|
-
|
|
1136
|
-
return _FetchHandlers(
|
|
1137
|
-
request_paused=self.request_paused.to_dict()
|
|
1138
|
-
if self.request_paused is not None
|
|
1139
|
-
else None,
|
|
1140
|
-
auth_required=self.auth_required.to_dict()
|
|
1141
|
-
if self.auth_required is not None
|
|
1142
|
-
else None,
|
|
1143
|
-
)
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
class _FetchEnableKwargs(TypedDict, total=False):
|
|
1147
|
-
"""
|
|
1148
|
-
Internal TypedDict for keyword arguments to enable the Fetch domain.
|
|
1149
|
-
|
|
1150
|
-
Attributes:
|
|
1151
|
-
patterns (Optional[Sequence[Any]]): A list of request patterns to intercept.
|
|
1152
|
-
handle_auth_requests (Optional[bool]): Whether to intercept authentication requests.
|
|
1153
|
-
"""
|
|
1154
|
-
|
|
1155
|
-
patterns: Optional[Sequence[Any]]
|
|
1156
|
-
handle_auth_requests: Optional[bool]
|
|
1157
556
|
|
|
1158
557
|
|
|
1159
|
-
@dataclass
|
|
1160
558
|
class FetchEnableKwargsSettings(AbstractDomainEnableKwargsSettings):
|
|
1161
559
|
"""
|
|
1162
560
|
Keyword arguments for enabling the Fetch domain using `fetch.enable`.
|
|
@@ -1164,55 +562,14 @@ class FetchEnableKwargsSettings(AbstractDomainEnableKwargsSettings):
|
|
|
1164
562
|
These settings are passed to the `fetch.enable` CDP command when the Fetch domain is activated.
|
|
1165
563
|
|
|
1166
564
|
Attributes:
|
|
1167
|
-
patterns (Optional[Sequence[Any]]): A
|
|
565
|
+
patterns (Optional[Sequence[Any]]): A List of request patterns to intercept. Each pattern is typically a dictionary matching the CDP `Fetch.RequestPattern` type. If None, all requests are intercepted. Defaults to None.
|
|
1168
566
|
handle_auth_requests (Optional[bool]): Whether to intercept authentication requests (`fetch.AuthRequired` events). If True, `auth_required` events will be emitted. Defaults to None.
|
|
1169
567
|
"""
|
|
1170
568
|
|
|
1171
569
|
patterns: Optional[Sequence[Any]] = None
|
|
1172
570
|
handle_auth_requests: Optional[bool] = None
|
|
1173
|
-
|
|
1174
|
-
def to_dict(self) -> _FetchEnableKwargs:
|
|
1175
|
-
"""
|
|
1176
|
-
Converts the settings object to its dictionary representation.
|
|
1177
|
-
|
|
1178
|
-
Returns:
|
|
1179
|
-
_FetchEnableKwargs: The dictionary representation suitable for internal use.
|
|
1180
|
-
"""
|
|
1181
|
-
|
|
1182
|
-
kwargs = {}
|
|
1183
|
-
|
|
1184
|
-
if self.patterns is not None:
|
|
1185
|
-
kwargs["patterns"] = self.patterns
|
|
1186
|
-
|
|
1187
|
-
if self.handle_auth_requests is not None:
|
|
1188
|
-
kwargs["handle_auth_requests"] = self.handle_auth_requests
|
|
1189
|
-
|
|
1190
|
-
return _FetchEnableKwargs(**kwargs)
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
class _Fetch(AbstractDomain):
|
|
1194
|
-
"""
|
|
1195
|
-
Internal TypedDict for the complete Fetch domain configuration.
|
|
1196
571
|
|
|
1197
|
-
This structure is used internally by the DevTools manager to configure the
|
|
1198
|
-
Fetch domain, including how to enable/disable it and what event handlers to use.
|
|
1199
572
|
|
|
1200
|
-
Attributes:
|
|
1201
|
-
name (str): The name of the domain ('fetch').
|
|
1202
|
-
enable_func_path (str): The path to the function to enable the domain ("fetch.enable").
|
|
1203
|
-
enable_func_kwargs (Optional[_FetchEnableKwargs]): Keyword arguments for the enable function.
|
|
1204
|
-
disable_func_path (str): The path to the function to disable the domain ("fetch.disable").
|
|
1205
|
-
handlers (_FetchHandlers): The configured event handlers for the domain.
|
|
1206
|
-
"""
|
|
1207
|
-
|
|
1208
|
-
name: str
|
|
1209
|
-
enable_func_path: str
|
|
1210
|
-
enable_func_kwargs: Optional[_FetchEnableKwargs]
|
|
1211
|
-
disable_func_path: str
|
|
1212
|
-
handlers: _FetchHandlers
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
@dataclass
|
|
1216
573
|
class FetchSettings(AbstractDomainSettings):
|
|
1217
574
|
"""
|
|
1218
575
|
Top-level configuration for the Fetch domain.
|
|
@@ -1221,75 +578,41 @@ class FetchSettings(AbstractDomainSettings):
|
|
|
1221
578
|
including its enabling parameters and event handlers.
|
|
1222
579
|
|
|
1223
580
|
Attributes:
|
|
581
|
+
name (str): The name of the domain ("fetch").
|
|
582
|
+
disable_func_path (str): Path to disable command ("fetch.disable").
|
|
583
|
+
enable_func_path (str): Path to enable command ("fetch.enable").
|
|
584
|
+
exclude_target_types (Sequence[str]): List of target types to exclude.
|
|
585
|
+
include_target_types (Sequence[str]): List of target types to include.
|
|
1224
586
|
enable_func_kwargs (Optional[FetchEnableKwargsSettings]): Keyword arguments for enabling the Fetch domain using `fetch.enable`. Defaults to None.
|
|
1225
587
|
handlers (FetchHandlersSettings): Container for all handler settings within the Fetch domain (e.g., RequestPaused, AuthRequired). Defaults to None.
|
|
1226
588
|
"""
|
|
1227
589
|
|
|
590
|
+
name: str = "fetch"
|
|
591
|
+
disable_func_path: str = "fetch.disable"
|
|
592
|
+
enable_func_path: str = "fetch.enable"
|
|
593
|
+
exclude_target_types: Sequence[str] = Field(default_factory=list)
|
|
594
|
+
include_target_types: Sequence[str] = Field(default_factory=list)
|
|
1228
595
|
enable_func_kwargs: Optional[FetchEnableKwargsSettings] = None
|
|
1229
596
|
handlers: Optional[FetchHandlersSettings] = None
|
|
1230
|
-
|
|
1231
|
-
@property
|
|
1232
|
-
def disable_func_path(self) -> str:
|
|
1233
|
-
"""
|
|
1234
|
-
Returns the path to the function to disable the domain.
|
|
1235
|
-
|
|
1236
|
-
Returns:
|
|
1237
|
-
str: The string "fetch.disable".
|
|
1238
|
-
"""
|
|
1239
|
-
|
|
1240
|
-
return "fetch.disable"
|
|
1241
|
-
|
|
1242
|
-
@property
|
|
1243
|
-
def enable_func_path(self) -> str:
|
|
1244
|
-
"""
|
|
1245
|
-
Returns the path to the function to enable the domain.
|
|
1246
|
-
|
|
1247
|
-
Returns:
|
|
1248
|
-
str: The string "fetch.enable".
|
|
1249
|
-
"""
|
|
1250
|
-
|
|
1251
|
-
return "fetch.enable"
|
|
1252
|
-
|
|
1253
|
-
@property
|
|
1254
|
-
def name(self) -> str:
|
|
1255
|
-
"""
|
|
1256
|
-
Returns the name of the domain.
|
|
1257
|
-
|
|
1258
|
-
Returns:
|
|
1259
|
-
str: The string "fetch".
|
|
1260
|
-
"""
|
|
1261
|
-
|
|
1262
|
-
return "fetch"
|
|
1263
|
-
|
|
1264
|
-
def to_dict(self) -> _Fetch:
|
|
1265
|
-
"""
|
|
1266
|
-
Converts the settings object to its dictionary representation.
|
|
1267
|
-
|
|
1268
|
-
Returns:
|
|
1269
|
-
_Fetch: The dictionary representation suitable for internal use.
|
|
1270
|
-
"""
|
|
1271
|
-
|
|
1272
|
-
return _Fetch(
|
|
1273
|
-
name=self.name,
|
|
1274
|
-
enable_func_path=self.enable_func_path,
|
|
1275
|
-
enable_func_kwargs=self.enable_func_kwargs.to_dict()
|
|
1276
|
-
if self.enable_func_kwargs is not None
|
|
1277
|
-
else FetchEnableKwargsSettings().to_dict(),
|
|
1278
|
-
disable_func_path=self.disable_func_path,
|
|
1279
|
-
handlers=self.handlers.to_dict()
|
|
1280
|
-
if self.handlers is not None
|
|
1281
|
-
else FetchHandlersSettings().to_dict(),
|
|
1282
|
-
)
|
|
1283
597
|
|
|
1284
598
|
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
599
|
+
ContinueWithAuthParameterHandlersSettings.model_rebuild()
|
|
600
|
+
ContinueWithAuthParameterHandlersSettings.model_rebuild()
|
|
601
|
+
ContinueWithAuthSettings.model_rebuild()
|
|
602
|
+
AuthRequiredActionsSettings.model_rebuild()
|
|
603
|
+
AuthRequiredActionsHandlerSettings.model_rebuild()
|
|
604
|
+
AuthRequiredSettings.model_rebuild()
|
|
605
|
+
ContinueResponseHandlersSettings.model_rebuild()
|
|
606
|
+
ContinueResponseSettings.model_rebuild()
|
|
607
|
+
FulfillRequestHandlersSettings.model_rebuild()
|
|
608
|
+
FulfillRequestSettings.model_rebuild()
|
|
609
|
+
FailRequestHandlersSettings.model_rebuild()
|
|
610
|
+
FailRequestSettings.model_rebuild()
|
|
611
|
+
ContinueRequestHandlersSettings.model_rebuild()
|
|
612
|
+
ContinueRequestSettings.model_rebuild()
|
|
613
|
+
RequestPausedActionsSettings.model_rebuild()
|
|
614
|
+
RequestPausedActionsHandlerSettings.model_rebuild()
|
|
615
|
+
RequestPausedSettings.model_rebuild()
|
|
616
|
+
FetchHandlersSettings.model_rebuild()
|
|
617
|
+
FetchEnableKwargsSettings.model_rebuild()
|
|
618
|
+
FetchSettings.model_rebuild()
|