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
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from typing import (
|
|
3
|
+
Callable,
|
|
4
|
+
Mapping,
|
|
5
|
+
Optional,
|
|
6
|
+
Sequence,
|
|
7
|
+
Union
|
|
8
|
+
)
|
|
9
|
+
from selenium.webdriver.common.bidi.browsing_context import (
|
|
10
|
+
BrowsingContext as legacyBrowsingContext,
|
|
11
|
+
BrowsingContextInfo
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
__all__ = ["AbstractBrowsingContext"]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class AbstractBrowsingContext(ABC):
|
|
19
|
+
"""
|
|
20
|
+
Abstract base class for managing browsing contexts.
|
|
21
|
+
|
|
22
|
+
Defines the interface for creating, closing, navigating, and interacting
|
|
23
|
+
with browsing contexts (e.g., tabs, windows).
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
@abstractmethod
|
|
27
|
+
def activate(self, context: str) -> None:
|
|
28
|
+
"""
|
|
29
|
+
Activates (brings to the front) a browsing context.
|
|
30
|
+
|
|
31
|
+
Args:
|
|
32
|
+
context (str): The ID of the browsing context to activate.
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
...
|
|
36
|
+
|
|
37
|
+
@abstractmethod
|
|
38
|
+
def add_event_handler(
|
|
39
|
+
self,
|
|
40
|
+
event: str,
|
|
41
|
+
callback: Callable,
|
|
42
|
+
contexts: Optional[Sequence[str]] = None,
|
|
43
|
+
) -> int:
|
|
44
|
+
"""
|
|
45
|
+
Adds an event handler for browsing context events.
|
|
46
|
+
|
|
47
|
+
Args:
|
|
48
|
+
event (str): The name of the event to listen for.
|
|
49
|
+
callback (Callable): The function to call when the event occurs.
|
|
50
|
+
contexts (Optional[Sequence[str]]): A list of context IDs to listen on.
|
|
51
|
+
|
|
52
|
+
Returns:
|
|
53
|
+
int: The ID of the newly added event handler.
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
...
|
|
57
|
+
|
|
58
|
+
@abstractmethod
|
|
59
|
+
def capture_screenshot(
|
|
60
|
+
self,
|
|
61
|
+
context: str,
|
|
62
|
+
origin: str = 'viewport',
|
|
63
|
+
format: Optional[Mapping] = None,
|
|
64
|
+
clip: Optional[Mapping] = None,
|
|
65
|
+
) -> str:
|
|
66
|
+
"""
|
|
67
|
+
Captures a screenshot of a browsing context.
|
|
68
|
+
|
|
69
|
+
Args:
|
|
70
|
+
context (str): The ID of the browsing context to capture.
|
|
71
|
+
origin (str): The origin of the screenshot ('viewport' or 'document').
|
|
72
|
+
format (Optional[Mapping]): Image format options.
|
|
73
|
+
clip (Optional[Mapping]): A clip rectangle to capture a specific area.
|
|
74
|
+
|
|
75
|
+
Returns:
|
|
76
|
+
str: A base64-encoded string of the screenshot image data.
|
|
77
|
+
"""
|
|
78
|
+
|
|
79
|
+
...
|
|
80
|
+
|
|
81
|
+
@abstractmethod
|
|
82
|
+
def clear_event_handlers(self) -> None:
|
|
83
|
+
"""
|
|
84
|
+
Clears all registered event handlers for browsing contexts.
|
|
85
|
+
"""
|
|
86
|
+
|
|
87
|
+
...
|
|
88
|
+
|
|
89
|
+
@abstractmethod
|
|
90
|
+
def close(self, context: str, prompt_unload: bool = False) -> None:
|
|
91
|
+
"""
|
|
92
|
+
Closes a browsing context.
|
|
93
|
+
|
|
94
|
+
Args:
|
|
95
|
+
context (str): The ID of the browsing context to close.
|
|
96
|
+
prompt_unload (bool): Whether to handle any beforeunload prompts.
|
|
97
|
+
"""
|
|
98
|
+
|
|
99
|
+
...
|
|
100
|
+
|
|
101
|
+
@abstractmethod
|
|
102
|
+
def create(
|
|
103
|
+
self,
|
|
104
|
+
type: str,
|
|
105
|
+
reference_context: Optional[str] = None,
|
|
106
|
+
background: bool = False,
|
|
107
|
+
user_context: Optional[str] = None,
|
|
108
|
+
) -> str:
|
|
109
|
+
"""
|
|
110
|
+
Creates a new browsing context.
|
|
111
|
+
|
|
112
|
+
Args:
|
|
113
|
+
type (str): The type of context to create ('tab' or 'window').
|
|
114
|
+
reference_context (Optional[str]): A reference context for positioning.
|
|
115
|
+
background (bool): Whether to create the context in the background.
|
|
116
|
+
user_context (Optional[str]): The user context to create it in.
|
|
117
|
+
|
|
118
|
+
Returns:
|
|
119
|
+
str: The ID of the newly created browsing context.
|
|
120
|
+
"""
|
|
121
|
+
|
|
122
|
+
...
|
|
123
|
+
|
|
124
|
+
@abstractmethod
|
|
125
|
+
def get_tree(self, max_depth: Optional[int] = None, root: Optional[str] = None) -> Sequence[BrowsingContextInfo]:
|
|
126
|
+
"""
|
|
127
|
+
Retrieves the tree of browsing contexts.
|
|
128
|
+
|
|
129
|
+
Args:
|
|
130
|
+
max_depth (Optional[int]): The maximum depth of the tree to retrieve.
|
|
131
|
+
root (Optional[str]): The root context ID to start from.
|
|
132
|
+
|
|
133
|
+
Returns:
|
|
134
|
+
Sequence[BrowsingContextInfo]: A sequence of browsing context information objects.
|
|
135
|
+
"""
|
|
136
|
+
|
|
137
|
+
...
|
|
138
|
+
|
|
139
|
+
@abstractmethod
|
|
140
|
+
def handle_user_prompt(
|
|
141
|
+
self,
|
|
142
|
+
context: str,
|
|
143
|
+
accept: Optional[bool] = None,
|
|
144
|
+
user_text: Optional[str] = None,
|
|
145
|
+
) -> None:
|
|
146
|
+
"""
|
|
147
|
+
Handles a user prompt (e.g., alert, confirm, prompt).
|
|
148
|
+
|
|
149
|
+
Args:
|
|
150
|
+
context (str): The ID of the browsing context with the prompt.
|
|
151
|
+
accept (Optional[bool]): Whether to accept or dismiss the prompt.
|
|
152
|
+
user_text (Optional[str]): Text to enter into a prompt.
|
|
153
|
+
"""
|
|
154
|
+
|
|
155
|
+
...
|
|
156
|
+
|
|
157
|
+
@property
|
|
158
|
+
@abstractmethod
|
|
159
|
+
def legacy(self) -> legacyBrowsingContext:
|
|
160
|
+
"""
|
|
161
|
+
Returns the underlying legacy Selenium BrowsingContext instance.
|
|
162
|
+
|
|
163
|
+
This provides a way to access the original Selenium object for operations
|
|
164
|
+
not covered by this abstract interface.
|
|
165
|
+
|
|
166
|
+
Returns:
|
|
167
|
+
legacyBrowsingContext: The legacy Selenium BrowsingContext object.
|
|
168
|
+
"""
|
|
169
|
+
|
|
170
|
+
...
|
|
171
|
+
|
|
172
|
+
@abstractmethod
|
|
173
|
+
def locate_nodes(
|
|
174
|
+
self,
|
|
175
|
+
context: str,
|
|
176
|
+
locator: Mapping,
|
|
177
|
+
max_node_count: Optional[int] = None,
|
|
178
|
+
serialization_options: Optional[Mapping] = None,
|
|
179
|
+
start_nodes: Optional[Sequence[Mapping]] = None,
|
|
180
|
+
) -> Sequence[Mapping]:
|
|
181
|
+
"""
|
|
182
|
+
Locates nodes within a browsing context.
|
|
183
|
+
|
|
184
|
+
Args:
|
|
185
|
+
context (str): The ID of the browsing context.
|
|
186
|
+
locator (Mapping): The locator strategy and value.
|
|
187
|
+
max_node_count (Optional[int]): The maximum number of nodes to return.
|
|
188
|
+
serialization_options (Optional[Mapping]): Options for serializing the nodes.
|
|
189
|
+
start_nodes (Optional[Sequence[Mapping]]): Nodes to start the search from.
|
|
190
|
+
|
|
191
|
+
Returns:
|
|
192
|
+
Sequence[Mapping]: A sequence of found nodes.
|
|
193
|
+
"""
|
|
194
|
+
|
|
195
|
+
...
|
|
196
|
+
|
|
197
|
+
@abstractmethod
|
|
198
|
+
def navigate(self, context: str, url: str, wait: Optional[str] = None) -> Mapping:
|
|
199
|
+
"""
|
|
200
|
+
Navigates a browsing context to a new URL.
|
|
201
|
+
|
|
202
|
+
Args:
|
|
203
|
+
context (str): The ID of the browsing context.
|
|
204
|
+
url (str): The URL to navigate to.
|
|
205
|
+
wait (Optional[str]): The page load strategy ('none', 'eager', 'interactive', 'complete').
|
|
206
|
+
|
|
207
|
+
Returns:
|
|
208
|
+
Mapping: A dictionary with navigation information.
|
|
209
|
+
"""
|
|
210
|
+
|
|
211
|
+
...
|
|
212
|
+
|
|
213
|
+
@abstractmethod
|
|
214
|
+
def print(
|
|
215
|
+
self,
|
|
216
|
+
context: str,
|
|
217
|
+
background: bool = False,
|
|
218
|
+
margin: Optional[Mapping] = None,
|
|
219
|
+
orientation: str = 'portrait',
|
|
220
|
+
page: Optional[Mapping] = None,
|
|
221
|
+
page_ranges: Optional[Sequence[Union[int, str]]] = None,
|
|
222
|
+
scale: float = 1.0,
|
|
223
|
+
shrink_to_fit: bool = True,
|
|
224
|
+
) -> str:
|
|
225
|
+
"""
|
|
226
|
+
Prints the page to a PDF.
|
|
227
|
+
|
|
228
|
+
Args:
|
|
229
|
+
context (str): The ID of the browsing context.
|
|
230
|
+
background (bool): Whether to print background graphics.
|
|
231
|
+
margin (Optional[Mapping]): Margins for the page.
|
|
232
|
+
orientation (str): Page orientation ('portrait' or 'landscape').
|
|
233
|
+
page (Optional[Mapping]): Page size settings.
|
|
234
|
+
page_ranges (Optional[Sequence[Union[int, str]]]): Page ranges to print.
|
|
235
|
+
scale (float): The scale of the webpage rendering.
|
|
236
|
+
shrink_to_fit (bool): Whether to shrink the content to fit the page size.
|
|
237
|
+
|
|
238
|
+
Returns:
|
|
239
|
+
str: A base64-encoded string of the PDF data.
|
|
240
|
+
"""
|
|
241
|
+
|
|
242
|
+
...
|
|
243
|
+
|
|
244
|
+
@abstractmethod
|
|
245
|
+
def reload(
|
|
246
|
+
self,
|
|
247
|
+
context: str,
|
|
248
|
+
ignore_cache: Optional[bool] = None,
|
|
249
|
+
wait: Optional[str] = None,
|
|
250
|
+
) -> Mapping:
|
|
251
|
+
"""
|
|
252
|
+
Reloads the current page in a browsing context.
|
|
253
|
+
|
|
254
|
+
Args:
|
|
255
|
+
context (str): The ID of the browsing context.
|
|
256
|
+
ignore_cache (Optional[bool]): If True, bypasses the cache.
|
|
257
|
+
wait (Optional[str]): The page load strategy ('none', 'eager', 'interactive', 'complete').
|
|
258
|
+
|
|
259
|
+
Returns:
|
|
260
|
+
Mapping: A dictionary with navigation information.
|
|
261
|
+
"""
|
|
262
|
+
|
|
263
|
+
...
|
|
264
|
+
|
|
265
|
+
@abstractmethod
|
|
266
|
+
def remove_event_handler(self, event: str, callback_id: int) -> None:
|
|
267
|
+
"""
|
|
268
|
+
Removes an event handler.
|
|
269
|
+
|
|
270
|
+
Args:
|
|
271
|
+
event (str): The name of the event.
|
|
272
|
+
callback_id (int): The ID of the handler to remove.
|
|
273
|
+
"""
|
|
274
|
+
|
|
275
|
+
...
|
|
276
|
+
|
|
277
|
+
@abstractmethod
|
|
278
|
+
def set_viewport(
|
|
279
|
+
self,
|
|
280
|
+
context: Optional[str] = None,
|
|
281
|
+
viewport: Optional[Mapping] = None,
|
|
282
|
+
device_pixel_ratio: Optional[float] = None,
|
|
283
|
+
user_contexts: Optional[Sequence[str]] = None,
|
|
284
|
+
) -> None:
|
|
285
|
+
"""
|
|
286
|
+
Sets the viewport for a browsing context.
|
|
287
|
+
|
|
288
|
+
Args:
|
|
289
|
+
context (Optional[str]): The ID of the browsing context.
|
|
290
|
+
viewport (Optional[Mapping]): A dictionary with 'width' and 'height'.
|
|
291
|
+
device_pixel_ratio (Optional[float]): The device pixel ratio.
|
|
292
|
+
user_contexts (Optional[Sequence[str]]): A sequence of user context IDs to apply this to.
|
|
293
|
+
"""
|
|
294
|
+
|
|
295
|
+
...
|
|
296
|
+
|
|
297
|
+
@abstractmethod
|
|
298
|
+
def traverse_history(self, context: str, delta: int) -> Mapping:
|
|
299
|
+
"""
|
|
300
|
+
Traverses the browsing history by a given delta.
|
|
301
|
+
|
|
302
|
+
Args:
|
|
303
|
+
context (str): The ID of the browsing context.
|
|
304
|
+
delta (int): The number of steps to go forward (positive) or backward (negative).
|
|
305
|
+
|
|
306
|
+
Returns:
|
|
307
|
+
Mapping: A dictionary with navigation information.
|
|
308
|
+
"""
|
|
309
|
+
|
|
310
|
+
...
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from typing import Optional, Sequence
|
|
3
|
+
from selenium.webdriver.common.fedcm.account import Account
|
|
4
|
+
from selenium.webdriver.common.fedcm.dialog import (
|
|
5
|
+
Dialog as legacyDialog
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
__all__ = ["AbstractDialog"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class AbstractDialog(ABC):
|
|
13
|
+
"""
|
|
14
|
+
Abstract base class for a FedCM (Federated Credential Management) dialog.
|
|
15
|
+
|
|
16
|
+
Defines the interface for interacting with a FedCM dialog, such as
|
|
17
|
+
retrieving accounts, selecting an account, and dismissing or accepting the dialog.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
@abstractmethod
|
|
21
|
+
def accept(self) -> None:
|
|
22
|
+
"""
|
|
23
|
+
Accepts the dialog.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
...
|
|
27
|
+
|
|
28
|
+
@abstractmethod
|
|
29
|
+
def dismiss(self) -> None:
|
|
30
|
+
"""
|
|
31
|
+
Dismisses the dialog.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
...
|
|
35
|
+
|
|
36
|
+
@abstractmethod
|
|
37
|
+
def get_accounts(self) -> Sequence[Account]:
|
|
38
|
+
"""
|
|
39
|
+
Gets the list of accounts displayed in the dialog.
|
|
40
|
+
|
|
41
|
+
Returns:
|
|
42
|
+
Sequence[Account]: A sequence of Account objects.
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
...
|
|
46
|
+
|
|
47
|
+
@property
|
|
48
|
+
@abstractmethod
|
|
49
|
+
def legacy(self) -> legacyDialog:
|
|
50
|
+
"""
|
|
51
|
+
Returns the underlying legacy Selenium Dialog instance.
|
|
52
|
+
|
|
53
|
+
This provides a way to access the original Selenium object for operations
|
|
54
|
+
not covered by this abstract interface.
|
|
55
|
+
|
|
56
|
+
Returns:
|
|
57
|
+
legacyDialog: The legacy Selenium Dialog object.
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
...
|
|
61
|
+
|
|
62
|
+
@abstractmethod
|
|
63
|
+
def select_account(self, index: int) -> None:
|
|
64
|
+
"""
|
|
65
|
+
Selects an account from the list in the dialog.
|
|
66
|
+
|
|
67
|
+
Args:
|
|
68
|
+
index (int): The index of the account to select.
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
...
|
|
72
|
+
|
|
73
|
+
@property
|
|
74
|
+
@abstractmethod
|
|
75
|
+
def subtitle(self) -> Optional[str]:
|
|
76
|
+
"""
|
|
77
|
+
The subtitle of the dialog.
|
|
78
|
+
|
|
79
|
+
Returns:
|
|
80
|
+
Optional[str]: The dialog subtitle, or None if not available.
|
|
81
|
+
"""
|
|
82
|
+
|
|
83
|
+
...
|
|
84
|
+
|
|
85
|
+
@property
|
|
86
|
+
@abstractmethod
|
|
87
|
+
def title(self) -> str:
|
|
88
|
+
"""
|
|
89
|
+
The title of the dialog.
|
|
90
|
+
|
|
91
|
+
Returns:
|
|
92
|
+
str: The dialog title.
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
...
|
|
96
|
+
|
|
97
|
+
@property
|
|
98
|
+
@abstractmethod
|
|
99
|
+
def type(self) -> Optional[str]:
|
|
100
|
+
"""
|
|
101
|
+
The type of the dialog.
|
|
102
|
+
|
|
103
|
+
Returns:
|
|
104
|
+
Optional[str]: The dialog type, or None if not available.
|
|
105
|
+
"""
|
|
106
|
+
|
|
107
|
+
...
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from typing import (
|
|
3
|
+
Mapping,
|
|
4
|
+
Optional,
|
|
5
|
+
Sequence
|
|
6
|
+
)
|
|
7
|
+
from selenium.webdriver.remote.fedcm import FedCM as legacyFedCM
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
__all__ = ["AbstractFedCM"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class AbstractFedCM(ABC):
|
|
14
|
+
"""
|
|
15
|
+
Abstract base class for Federated Credential Management (FedCM) API.
|
|
16
|
+
|
|
17
|
+
Defines the interface for interacting with the FedCM dialog, managing accounts,
|
|
18
|
+
and controlling cooldown periods.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
@abstractmethod
|
|
22
|
+
def accept(self) -> None:
|
|
23
|
+
"""
|
|
24
|
+
Accepts the FedCM dialog, typically confirming the selected account.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
...
|
|
28
|
+
|
|
29
|
+
@property
|
|
30
|
+
@abstractmethod
|
|
31
|
+
def account_list(self) -> Sequence[Mapping]:
|
|
32
|
+
"""
|
|
33
|
+
The list of accounts displayed in the FedCM dialog.
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
Sequence[Mapping]: A sequence of dictionaries, each representing an account.
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
...
|
|
40
|
+
|
|
41
|
+
@property
|
|
42
|
+
@abstractmethod
|
|
43
|
+
def dialog_type(self) -> str:
|
|
44
|
+
"""
|
|
45
|
+
The type of the FedCM dialog.
|
|
46
|
+
|
|
47
|
+
Returns:
|
|
48
|
+
str: The dialog type (e.g., 'AccountChooser', 'AutoReauthn').
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
...
|
|
52
|
+
|
|
53
|
+
@abstractmethod
|
|
54
|
+
def disable_delay(self) -> None:
|
|
55
|
+
"""
|
|
56
|
+
Disables the delay for FedCM operations.
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
...
|
|
60
|
+
|
|
61
|
+
@abstractmethod
|
|
62
|
+
def dismiss(self) -> None:
|
|
63
|
+
"""
|
|
64
|
+
Dismisses the FedCM dialog.
|
|
65
|
+
"""
|
|
66
|
+
|
|
67
|
+
...
|
|
68
|
+
|
|
69
|
+
@abstractmethod
|
|
70
|
+
def enable_delay(self) -> None:
|
|
71
|
+
"""
|
|
72
|
+
Enables the delay for FedCM operations, useful for testing.
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
...
|
|
76
|
+
|
|
77
|
+
@property
|
|
78
|
+
@abstractmethod
|
|
79
|
+
def legacy(self) -> legacyFedCM:
|
|
80
|
+
"""
|
|
81
|
+
Returns the underlying legacy Selenium FedCM instance.
|
|
82
|
+
|
|
83
|
+
This provides a way to access the original Selenium object for operations
|
|
84
|
+
not covered by this abstract interface.
|
|
85
|
+
|
|
86
|
+
Returns:
|
|
87
|
+
legacyFedCM: The legacy Selenium FedCM object.
|
|
88
|
+
"""
|
|
89
|
+
|
|
90
|
+
...
|
|
91
|
+
|
|
92
|
+
@abstractmethod
|
|
93
|
+
def reset_cooldown(self) -> None:
|
|
94
|
+
"""
|
|
95
|
+
Resets the FedCM cooldown timer.
|
|
96
|
+
"""
|
|
97
|
+
|
|
98
|
+
...
|
|
99
|
+
|
|
100
|
+
@abstractmethod
|
|
101
|
+
def select_account(self, index: int) -> None:
|
|
102
|
+
"""
|
|
103
|
+
Selects an account from the list in the dialog.
|
|
104
|
+
|
|
105
|
+
Args:
|
|
106
|
+
index (int): The index of the account to select.
|
|
107
|
+
"""
|
|
108
|
+
|
|
109
|
+
...
|
|
110
|
+
|
|
111
|
+
@property
|
|
112
|
+
@abstractmethod
|
|
113
|
+
def subtitle(self) -> Optional[str]:
|
|
114
|
+
"""
|
|
115
|
+
The subtitle of the FedCM dialog.
|
|
116
|
+
|
|
117
|
+
Returns:
|
|
118
|
+
Optional[str]: The dialog subtitle, or None if it doesn't exist.
|
|
119
|
+
"""
|
|
120
|
+
|
|
121
|
+
...
|
|
122
|
+
|
|
123
|
+
@property
|
|
124
|
+
@abstractmethod
|
|
125
|
+
def title(self) -> str:
|
|
126
|
+
"""
|
|
127
|
+
The title of the FedCM dialog.
|
|
128
|
+
|
|
129
|
+
Returns:
|
|
130
|
+
str: The dialog title.
|
|
131
|
+
"""
|
|
132
|
+
|
|
133
|
+
...
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
from typing import Any, Sequence
|
|
2
|
+
from abc import ABC, abstractmethod
|
|
3
|
+
from selenium.webdriver.remote.mobile import (
|
|
4
|
+
Mobile as legacyMobile
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
__all__ = ["AbstractMobile"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class AbstractMobile(ABC):
|
|
12
|
+
"""
|
|
13
|
+
Abstract base class for mobile-specific interactions.
|
|
14
|
+
|
|
15
|
+
Defines the interface for managing network connections and contexts
|
|
16
|
+
in a mobile environment.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
@abstractmethod
|
|
20
|
+
def context(self) -> str:
|
|
21
|
+
"""
|
|
22
|
+
The current context handle.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
...
|
|
26
|
+
|
|
27
|
+
@abstractmethod
|
|
28
|
+
def contexts(self) -> Sequence[str]:
|
|
29
|
+
"""
|
|
30
|
+
A sequence of available context handles.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
...
|
|
34
|
+
|
|
35
|
+
@property
|
|
36
|
+
@abstractmethod
|
|
37
|
+
def legacy(self) -> legacyMobile:
|
|
38
|
+
"""
|
|
39
|
+
Returns the underlying legacy Selenium Mobile instance.
|
|
40
|
+
|
|
41
|
+
This provides a way to access the original Selenium object for operations
|
|
42
|
+
not covered by this abstract interface.
|
|
43
|
+
|
|
44
|
+
Returns:
|
|
45
|
+
legacyMobile: The legacy Selenium Mobile object.
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
...
|
|
49
|
+
|
|
50
|
+
@property
|
|
51
|
+
@abstractmethod
|
|
52
|
+
def network_connection(self) -> Any:
|
|
53
|
+
"""
|
|
54
|
+
The current network connection type.
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
...
|
|
58
|
+
|
|
59
|
+
@abstractmethod
|
|
60
|
+
def set_context(self, new_context: str) -> None:
|
|
61
|
+
"""
|
|
62
|
+
Sets the current context.
|
|
63
|
+
|
|
64
|
+
Args:
|
|
65
|
+
new_context (str): The handle of the context to switch to.
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
...
|
|
69
|
+
|
|
70
|
+
@abstractmethod
|
|
71
|
+
def set_network_connection(self, network: Any) -> None:
|
|
72
|
+
"""
|
|
73
|
+
Sets the network connection type.
|
|
74
|
+
|
|
75
|
+
Args:
|
|
76
|
+
network (Any): The network type to set.
|
|
77
|
+
"""
|
|
78
|
+
|
|
79
|
+
...
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from typing import (
|
|
3
|
+
Any,
|
|
4
|
+
Callable,
|
|
5
|
+
Optional,
|
|
6
|
+
Sequence
|
|
7
|
+
)
|
|
8
|
+
from selenium.webdriver.common.bidi.network import (
|
|
9
|
+
Network as legacyNetwork
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
__all__ = ["AbstractNetwork"]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class AbstractNetwork(ABC):
|
|
17
|
+
"""
|
|
18
|
+
Abstract base class for network interception.
|
|
19
|
+
|
|
20
|
+
Defines the interface for adding and removing handlers for network events
|
|
21
|
+
and authentication challenges.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
@abstractmethod
|
|
25
|
+
def add_auth_handler(self, username: str, password: str) -> None:
|
|
26
|
+
"""
|
|
27
|
+
Adds a handler for authentication challenges.
|
|
28
|
+
|
|
29
|
+
Args:
|
|
30
|
+
username (str): The username for authentication.
|
|
31
|
+
password (str): The password for authentication.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
...
|
|
35
|
+
|
|
36
|
+
@abstractmethod
|
|
37
|
+
def add_request_handler(
|
|
38
|
+
self,
|
|
39
|
+
event: Any,
|
|
40
|
+
callback: Callable,
|
|
41
|
+
url_patterns: Optional[Sequence[str]] = None,
|
|
42
|
+
contexts: Optional[Sequence[str]] = None,
|
|
43
|
+
) -> None:
|
|
44
|
+
"""
|
|
45
|
+
Adds a handler for a network request event.
|
|
46
|
+
|
|
47
|
+
Args:
|
|
48
|
+
event (Any): The network event to listen for.
|
|
49
|
+
callback (Callable): The function to call when the event occurs.
|
|
50
|
+
url_patterns (Optional[Sequence[str]]): URL patterns to filter requests.
|
|
51
|
+
contexts (Optional[Sequence[str]]): Browsing context IDs to filter requests.
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
...
|
|
55
|
+
|
|
56
|
+
@abstractmethod
|
|
57
|
+
def clear_request_handlers(self) -> None:
|
|
58
|
+
"""
|
|
59
|
+
Clears all registered network request handlers.
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
...
|
|
63
|
+
|
|
64
|
+
@property
|
|
65
|
+
@abstractmethod
|
|
66
|
+
def legacy(self) -> legacyNetwork:
|
|
67
|
+
"""
|
|
68
|
+
Returns the underlying legacy Selenium Network instance.
|
|
69
|
+
|
|
70
|
+
This provides a way to access the original Selenium object for operations
|
|
71
|
+
not covered by this abstract interface.
|
|
72
|
+
|
|
73
|
+
Returns:
|
|
74
|
+
legacyNetwork: The legacy Selenium Network object.
|
|
75
|
+
"""
|
|
76
|
+
|
|
77
|
+
...
|
|
78
|
+
|
|
79
|
+
@abstractmethod
|
|
80
|
+
def remove_auth_handler(self, callback_id: str) -> None:
|
|
81
|
+
"""
|
|
82
|
+
Removes an authentication handler.
|
|
83
|
+
|
|
84
|
+
Args:
|
|
85
|
+
callback_id (str): The ID of the handler to remove.
|
|
86
|
+
"""
|
|
87
|
+
|
|
88
|
+
...
|
|
89
|
+
|
|
90
|
+
@abstractmethod
|
|
91
|
+
def remove_request_handler(self, event: Any, callback_id: str) -> None:
|
|
92
|
+
"""
|
|
93
|
+
Removes a network request handler.
|
|
94
|
+
|
|
95
|
+
Args:
|
|
96
|
+
event (Any): The network event to stop listening to.
|
|
97
|
+
callback_id (str): The ID of the handler to remove.
|
|
98
|
+
"""
|
|
99
|
+
|
|
100
|
+
...
|