osn-selenium 0.0.0__py3-none-any.whl → 1.0.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/_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/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 +140 -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 +32 -0
- osn_selenium/dev_tools/_validators.py +227 -0
- osn_selenium/dev_tools/_wrappers.py +95 -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 +226 -0
- osn_selenium/dev_tools/logger/models.py +232 -0
- osn_selenium/dev_tools/logger/target.py +258 -0
- osn_selenium/dev_tools/manager/__init__.py +16 -0
- osn_selenium/dev_tools/manager/base.py +147 -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 +135 -0
- osn_selenium/dev_tools/target/__init__.py +16 -0
- osn_selenium/dev_tools/target/base.py +438 -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 +179 -0
- osn_selenium/dev_tools/target/logging.py +155 -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/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/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/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 +108 -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} +165 -243
- osn_selenium/{webdrivers/Blink/flags.py → flags/blink.py} +133 -371
- 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 +26 -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 +91 -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 +26 -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 +123 -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 +139 -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 +114 -0
- osn_selenium/webdrivers/sync/blink/base.py +128 -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 +67 -0
- osn_selenium/webdrivers/sync/chrome/base.py +106 -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 +91 -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 +167 -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 +67 -0
- osn_selenium/webdrivers/sync/edge/base.py +102 -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 +67 -0
- osn_selenium/webdrivers/sync/yandex/base.py +99 -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 +124 -0
- osn_selenium/webdrivers/trio_threads/blink/base.py +133 -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 +81 -0
- osn_selenium/webdrivers/trio_threads/chrome/base.py +107 -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 +109 -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 +191 -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 +81 -0
- osn_selenium/webdrivers/trio_threads/edge/base.py +103 -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 +81 -0
- osn_selenium/webdrivers/trio_threads/yandex/base.py +100 -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 +131 -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 +54 -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 +132 -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 +52 -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 +54 -0
- osn_selenium/webdrivers/unified/yandex/lifecycle.py +58 -0
- osn_selenium/webdrivers/unified/yandex/settings.py +48 -0
- osn_selenium-1.0.0.dist-info/METADATA +239 -0
- osn_selenium-1.0.0.dist-info/RECORD +608 -0
- {osn_selenium-0.0.0.dist-info → osn_selenium-1.0.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.0.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from typing import (
|
|
3
|
+
Optional,
|
|
4
|
+
TYPE_CHECKING
|
|
5
|
+
)
|
|
6
|
+
from osn_selenium.instances._typehints import WEB_ELEMENT_TYPEHINT
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
__all__ = ["AbstractKeyboardMixin"]
|
|
10
|
+
|
|
11
|
+
if TYPE_CHECKING:
|
|
12
|
+
from osn_selenium.abstract.instances.action_chains import AbstractActionChains
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class AbstractKeyboardMixin(ABC):
|
|
16
|
+
"""
|
|
17
|
+
Mixin class providing abstract methods for keyboard interactions.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
@abstractmethod
|
|
21
|
+
def key_down(self, value: str, element: Optional[WEB_ELEMENT_TYPEHINT]) -> "AbstractActionChains":
|
|
22
|
+
"""
|
|
23
|
+
Performs a key press without releasing it.
|
|
24
|
+
|
|
25
|
+
Args:
|
|
26
|
+
value (str): The key to press (e.g., Keys.CONTROL).
|
|
27
|
+
element (Optional[WEB_ELEMENT_TYPEHINT]): The element to focus before pressing the key.
|
|
28
|
+
If None, the key is pressed without focusing on an element.
|
|
29
|
+
|
|
30
|
+
Returns:
|
|
31
|
+
AbstractActionChains: The instance of ActionChains for method chaining.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
...
|
|
35
|
+
|
|
36
|
+
@abstractmethod
|
|
37
|
+
def key_up(self, value: str, element: Optional[WEB_ELEMENT_TYPEHINT]) -> "AbstractActionChains":
|
|
38
|
+
"""
|
|
39
|
+
Performs a key release.
|
|
40
|
+
|
|
41
|
+
Args:
|
|
42
|
+
value (str): The key to release (e.g., Keys.CONTROL).
|
|
43
|
+
element (Optional[WEB_ELEMENT_TYPEHINT]): The element to focus before releasing the key.
|
|
44
|
+
If None, the key is released without focusing on an element.
|
|
45
|
+
|
|
46
|
+
Returns:
|
|
47
|
+
AbstractActionChains: The instance of ActionChains for method chaining.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
...
|
|
51
|
+
|
|
52
|
+
@abstractmethod
|
|
53
|
+
def send_keys(self, *keys_to_send: str) -> "AbstractActionChains":
|
|
54
|
+
"""
|
|
55
|
+
Sends keys to the current focused element.
|
|
56
|
+
|
|
57
|
+
Args:
|
|
58
|
+
keys_to_send (str): The keys to send.
|
|
59
|
+
|
|
60
|
+
Returns:
|
|
61
|
+
AbstractActionChains: The instance of ActionChains for method chaining.
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
...
|
|
65
|
+
|
|
66
|
+
@abstractmethod
|
|
67
|
+
def send_keys_to_element(self, element: WEB_ELEMENT_TYPEHINT, *keys_to_send: str) -> "AbstractActionChains":
|
|
68
|
+
"""
|
|
69
|
+
Sends keys to a specific element.
|
|
70
|
+
|
|
71
|
+
Args:
|
|
72
|
+
element (WEB_ELEMENT_TYPEHINT): The element to send keys to.
|
|
73
|
+
keys_to_send (str): The keys to send.
|
|
74
|
+
|
|
75
|
+
Returns:
|
|
76
|
+
AbstractActionChains: The instance of ActionChains for method chaining.
|
|
77
|
+
"""
|
|
78
|
+
|
|
79
|
+
...
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
from typing import TYPE_CHECKING
|
|
2
|
+
from abc import ABC, abstractmethod
|
|
3
|
+
from osn_selenium.instances._typehints import WEB_ELEMENT_TYPEHINT
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
__all__ = ["AbstractMoveMixin"]
|
|
7
|
+
|
|
8
|
+
if TYPE_CHECKING:
|
|
9
|
+
from osn_selenium.abstract.instances.action_chains import AbstractActionChains
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class AbstractMoveMixin(ABC):
|
|
13
|
+
"""
|
|
14
|
+
Mixin class providing abstract methods for mouse movement interactions.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
@abstractmethod
|
|
18
|
+
def move_by_offset(self, xoffset: int, yoffset: int) -> "AbstractActionChains":
|
|
19
|
+
"""
|
|
20
|
+
Moves the mouse to an offset from the current position.
|
|
21
|
+
|
|
22
|
+
Args:
|
|
23
|
+
xoffset (int): The horizontal offset to move by.
|
|
24
|
+
yoffset (int): The vertical offset to move by.
|
|
25
|
+
|
|
26
|
+
Returns:
|
|
27
|
+
AbstractActionChains: The instance of ActionChains for method chaining.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
...
|
|
31
|
+
|
|
32
|
+
@abstractmethod
|
|
33
|
+
def move_to_element(self, to_element: WEB_ELEMENT_TYPEHINT) -> "AbstractActionChains":
|
|
34
|
+
"""
|
|
35
|
+
Moves the mouse to the middle of the specified element.
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
to_element (WEB_ELEMENT_TYPEHINT): The element to move to.
|
|
39
|
+
|
|
40
|
+
Returns:
|
|
41
|
+
AbstractActionChains: The instance of ActionChains for method chaining.
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
...
|
|
45
|
+
|
|
46
|
+
@abstractmethod
|
|
47
|
+
def move_to_element_with_offset(self, to_element: WEB_ELEMENT_TYPEHINT, xoffset: int, yoffset: int) -> "AbstractActionChains":
|
|
48
|
+
"""
|
|
49
|
+
Moves the mouse to an offset from the center of an element.
|
|
50
|
+
|
|
51
|
+
Args:
|
|
52
|
+
to_element (WEB_ELEMENT_TYPEHINT): The element to move to.
|
|
53
|
+
xoffset (int): The horizontal offset from the element's center.
|
|
54
|
+
yoffset (int): The vertical offset from the element's center.
|
|
55
|
+
|
|
56
|
+
Returns:
|
|
57
|
+
AbstractActionChains: The instance of ActionChains for method chaining.
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
...
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
from typing import TYPE_CHECKING
|
|
2
|
+
from abc import ABC, abstractmethod
|
|
3
|
+
from osn_selenium.instances._typehints import WEB_ELEMENT_TYPEHINT
|
|
4
|
+
from selenium.webdriver.common.actions.wheel_input import ScrollOrigin
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
__all__ = ["AbstractScrollMixin"]
|
|
8
|
+
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from osn_selenium.abstract.instances.action_chains import AbstractActionChains
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class AbstractScrollMixin(ABC):
|
|
14
|
+
"""
|
|
15
|
+
Mixin class providing abstract methods for wheel/scroll interactions.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
@abstractmethod
|
|
19
|
+
def scroll_by_amount(self, delta_x: int, delta_y: int) -> "AbstractActionChains":
|
|
20
|
+
"""
|
|
21
|
+
Scrolls by a given amount from the current position.
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
delta_x (int): The horizontal scroll amount.
|
|
25
|
+
delta_y (int): The vertical scroll amount.
|
|
26
|
+
|
|
27
|
+
Returns:
|
|
28
|
+
AbstractActionChains: The instance of ActionChains for method chaining.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
...
|
|
32
|
+
|
|
33
|
+
@abstractmethod
|
|
34
|
+
def scroll_from_origin(self, scroll_origin: ScrollOrigin, delta_x: int, delta_y: int) -> "AbstractActionChains":
|
|
35
|
+
"""
|
|
36
|
+
Scrolls from a specific origin Point by a given offset.
|
|
37
|
+
|
|
38
|
+
Args:
|
|
39
|
+
scroll_origin (ScrollOrigin): The origin Point to start scrolling from.
|
|
40
|
+
delta_x (int): The horizontal scroll amount.
|
|
41
|
+
delta_y (int): The vertical scroll amount.
|
|
42
|
+
|
|
43
|
+
Returns:
|
|
44
|
+
AbstractActionChains: The instance of ActionChains for method chaining.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
...
|
|
48
|
+
|
|
49
|
+
@abstractmethod
|
|
50
|
+
def scroll_to_element(self, element: WEB_ELEMENT_TYPEHINT) -> "AbstractActionChains":
|
|
51
|
+
"""
|
|
52
|
+
Scrolls the view to bring the element into view.
|
|
53
|
+
|
|
54
|
+
Args:
|
|
55
|
+
element (WEB_ELEMENT_TYPEHINT): The element to scroll to.
|
|
56
|
+
|
|
57
|
+
Returns:
|
|
58
|
+
AbstractActionChains: The instance of ActionChains for method chaining.
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
...
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from typing import TYPE_CHECKING, Union
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
__all__ = ["AbstractUtilsMixin"]
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
from osn_selenium.abstract.instances.action_chains import AbstractActionChains
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class AbstractUtilsMixin(ABC):
|
|
12
|
+
"""
|
|
13
|
+
Mixin class providing utility methods for action chains.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
@abstractmethod
|
|
17
|
+
def pause(self, seconds: Union[float, int]) -> "AbstractActionChains":
|
|
18
|
+
"""
|
|
19
|
+
Pauses the execution for a specified duration.
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
seconds (Union[float, int]): The duration to pause in seconds.
|
|
23
|
+
|
|
24
|
+
Returns:
|
|
25
|
+
AbstractActionChains: The instance of ActionChains for method chaining.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
...
|
|
29
|
+
|
|
30
|
+
@abstractmethod
|
|
31
|
+
def perform(self) -> None:
|
|
32
|
+
"""
|
|
33
|
+
Performs all stored actions.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
...
|
|
37
|
+
|
|
38
|
+
@abstractmethod
|
|
39
|
+
def reset_actions(self) -> None:
|
|
40
|
+
"""
|
|
41
|
+
Clears all actions that are already stored locally and on the remote end.
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
...
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from selenium.webdriver.common.alert import Alert as legacyAlert
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
__all__ = ["AbstractAlert"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class AbstractAlert(ABC):
|
|
9
|
+
"""
|
|
10
|
+
Abstract base class for an alert dialog.
|
|
11
|
+
|
|
12
|
+
Defines the interface for interacting with JavaScript alerts,
|
|
13
|
+
prompts, and confirmation dialogs.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
@abstractmethod
|
|
17
|
+
def accept(self) -> None:
|
|
18
|
+
"""
|
|
19
|
+
Accepts the alert.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
...
|
|
23
|
+
|
|
24
|
+
@abstractmethod
|
|
25
|
+
def dismiss(self) -> None:
|
|
26
|
+
"""
|
|
27
|
+
Dismisses the alert.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
...
|
|
31
|
+
|
|
32
|
+
@property
|
|
33
|
+
@abstractmethod
|
|
34
|
+
def legacy(self) -> legacyAlert:
|
|
35
|
+
"""
|
|
36
|
+
Returns the underlying legacy Selenium Alert instance.
|
|
37
|
+
|
|
38
|
+
This provides a way to access the original Selenium object for operations
|
|
39
|
+
not covered by this abstract interface.
|
|
40
|
+
|
|
41
|
+
Returns:
|
|
42
|
+
legacyAlert: The legacy Selenium Alert object.
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
...
|
|
46
|
+
|
|
47
|
+
@abstractmethod
|
|
48
|
+
def send_keys(self, keysToSend: str) -> None:
|
|
49
|
+
"""
|
|
50
|
+
Sends keys to the alert's prompt.
|
|
51
|
+
|
|
52
|
+
Args:
|
|
53
|
+
keysToSend (str): The text to send to the prompt.
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
...
|
|
57
|
+
|
|
58
|
+
@abstractmethod
|
|
59
|
+
def text(self) -> str:
|
|
60
|
+
"""
|
|
61
|
+
The text of the alert.
|
|
62
|
+
|
|
63
|
+
Returns:
|
|
64
|
+
str: The text displayed in the alert.
|
|
65
|
+
"""
|
|
66
|
+
|
|
67
|
+
...
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
from typing import Sequence
|
|
2
|
+
from abc import ABC, abstractmethod
|
|
3
|
+
from selenium.webdriver.common.bidi.browser import (
|
|
4
|
+
Browser as legacyBrowser,
|
|
5
|
+
ClientWindowInfo
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
__all__ = ["AbstractBrowser"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class AbstractBrowser(ABC):
|
|
13
|
+
"""
|
|
14
|
+
Abstract base class for browser-level interactions.
|
|
15
|
+
|
|
16
|
+
Defines the interface for managing user contexts and client windows.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
@abstractmethod
|
|
20
|
+
def create_user_context(self) -> str:
|
|
21
|
+
"""
|
|
22
|
+
Creates a new user context.
|
|
23
|
+
|
|
24
|
+
Returns:
|
|
25
|
+
str: The ID of the newly created user context.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
...
|
|
29
|
+
|
|
30
|
+
@abstractmethod
|
|
31
|
+
def get_client_windows(self) -> Sequence[ClientWindowInfo]:
|
|
32
|
+
"""
|
|
33
|
+
Gets information about all client windows.
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
Sequence[ClientWindowInfo]: A sequence of ClientWindowInfo objects.
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
...
|
|
40
|
+
|
|
41
|
+
@abstractmethod
|
|
42
|
+
def get_user_contexts(self) -> Sequence[str]:
|
|
43
|
+
"""
|
|
44
|
+
Gets a list of all user context IDs.
|
|
45
|
+
|
|
46
|
+
Returns:
|
|
47
|
+
Sequence[str]: A sequence of user context IDs.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
...
|
|
51
|
+
|
|
52
|
+
@property
|
|
53
|
+
@abstractmethod
|
|
54
|
+
def legacy(self) -> legacyBrowser:
|
|
55
|
+
"""
|
|
56
|
+
Returns the underlying legacy Selenium Browser instance.
|
|
57
|
+
|
|
58
|
+
This provides a way to access the original Selenium object for operations
|
|
59
|
+
not covered by this abstract interface.
|
|
60
|
+
|
|
61
|
+
Returns:
|
|
62
|
+
legacyBrowser: The legacy Selenium Browser object.
|
|
63
|
+
"""
|
|
64
|
+
|
|
65
|
+
...
|
|
66
|
+
|
|
67
|
+
@abstractmethod
|
|
68
|
+
def remove_user_context(self, user_context_id: str) -> None:
|
|
69
|
+
"""
|
|
70
|
+
Removes a user context.
|
|
71
|
+
|
|
72
|
+
Args:
|
|
73
|
+
user_context_id (str): The ID of the user context to remove.
|
|
74
|
+
"""
|
|
75
|
+
|
|
76
|
+
...
|
|
@@ -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
|
+
...
|