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,98 @@
|
|
|
1
|
+
from typing import Optional, Union
|
|
2
|
+
from abc import ABC, abstractmethod
|
|
3
|
+
from selenium.webdriver.common.bidi.storage import (
|
|
4
|
+
BrowsingContextPartitionDescriptor,
|
|
5
|
+
CookieFilter,
|
|
6
|
+
DeleteCookiesResult,
|
|
7
|
+
GetCookiesResult,
|
|
8
|
+
PartialCookie,
|
|
9
|
+
SetCookieResult,
|
|
10
|
+
Storage as legacyStorage,
|
|
11
|
+
StorageKeyPartitionDescriptor
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
__all__ = ["AbstractStorage"]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class AbstractStorage(ABC):
|
|
19
|
+
"""
|
|
20
|
+
Abstract base class for interacting with browser storage.
|
|
21
|
+
|
|
22
|
+
Defines the interface for managing cookies within different browsing contexts.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
@abstractmethod
|
|
26
|
+
def delete_cookies(
|
|
27
|
+
self,
|
|
28
|
+
filter: Optional[CookieFilter] = None,
|
|
29
|
+
partition: Optional[Union[BrowsingContextPartitionDescriptor, StorageKeyPartitionDescriptor]] = None,
|
|
30
|
+
) -> DeleteCookiesResult:
|
|
31
|
+
"""
|
|
32
|
+
Deletes cookies.
|
|
33
|
+
|
|
34
|
+
Args:
|
|
35
|
+
filter (Optional[CookieFilter]): A filter to select which cookies to delete.
|
|
36
|
+
partition (Optional[Union[BrowsingContextPartitionDescriptor, StorageKeyPartitionDescriptor]]):
|
|
37
|
+
The storage partition to delete cookies from.
|
|
38
|
+
|
|
39
|
+
Returns:
|
|
40
|
+
DeleteCookiesResult: The result of the delete cookies operation.
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
...
|
|
44
|
+
|
|
45
|
+
@abstractmethod
|
|
46
|
+
def get_cookies(
|
|
47
|
+
self,
|
|
48
|
+
filter: Optional[CookieFilter] = None,
|
|
49
|
+
partition: Optional[Union[BrowsingContextPartitionDescriptor, StorageKeyPartitionDescriptor]] = None,
|
|
50
|
+
) -> GetCookiesResult:
|
|
51
|
+
"""
|
|
52
|
+
Gets cookies from the browser.
|
|
53
|
+
|
|
54
|
+
Args:
|
|
55
|
+
filter (Optional[CookieFilter]): A filter to apply to the cookies.
|
|
56
|
+
partition (Optional[Union[BrowsingContextPartitionDescriptor, StorageKeyPartitionDescriptor]]):
|
|
57
|
+
The storage partition to retrieve cookies from.
|
|
58
|
+
|
|
59
|
+
Returns:
|
|
60
|
+
GetCookiesResult: The result containing the retrieved cookies.
|
|
61
|
+
"""
|
|
62
|
+
|
|
63
|
+
...
|
|
64
|
+
|
|
65
|
+
@property
|
|
66
|
+
@abstractmethod
|
|
67
|
+
def legacy(self) -> legacyStorage:
|
|
68
|
+
"""
|
|
69
|
+
Returns the underlying legacy Selenium Storage instance.
|
|
70
|
+
|
|
71
|
+
This provides a way to access the original Selenium object for operations
|
|
72
|
+
not covered by this abstract interface.
|
|
73
|
+
|
|
74
|
+
Returns:
|
|
75
|
+
legacyStorage: The legacy Selenium Storage object.
|
|
76
|
+
"""
|
|
77
|
+
|
|
78
|
+
...
|
|
79
|
+
|
|
80
|
+
@abstractmethod
|
|
81
|
+
def set_cookie(
|
|
82
|
+
self,
|
|
83
|
+
cookie: PartialCookie,
|
|
84
|
+
partition: Optional[Union[BrowsingContextPartitionDescriptor, StorageKeyPartitionDescriptor]] = None,
|
|
85
|
+
) -> SetCookieResult:
|
|
86
|
+
"""
|
|
87
|
+
Sets a cookie.
|
|
88
|
+
|
|
89
|
+
Args:
|
|
90
|
+
cookie (PartialCookie): The cookie to set.
|
|
91
|
+
partition (Optional[Union[BrowsingContextPartitionDescriptor, StorageKeyPartitionDescriptor]]):
|
|
92
|
+
The storage partition to set the cookie in.
|
|
93
|
+
|
|
94
|
+
Returns:
|
|
95
|
+
SetCookieResult: The result of the set cookie operation.
|
|
96
|
+
"""
|
|
97
|
+
|
|
98
|
+
...
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
from typing import Optional, Union
|
|
2
|
+
from abc import ABC, abstractmethod
|
|
3
|
+
from selenium.webdriver.common.alert import Alert
|
|
4
|
+
from osn_selenium.abstract.instances.web_element import AbstractWebElement
|
|
5
|
+
from selenium.webdriver.remote.switch_to import (
|
|
6
|
+
SwitchTo as legacySwitchTo
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
__all__ = ["AbstractSwitchTo"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class AbstractSwitchTo(ABC):
|
|
14
|
+
"""
|
|
15
|
+
Abstract base class for context switching.
|
|
16
|
+
|
|
17
|
+
Defines the interface for switching between frames, windows, and alerts.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
@abstractmethod
|
|
21
|
+
def active_element(self) -> AbstractWebElement:
|
|
22
|
+
"""
|
|
23
|
+
Returns the element with focus, or the body if no element has focus.
|
|
24
|
+
|
|
25
|
+
Returns:
|
|
26
|
+
AbstractWebElement: The currently active WebElement.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
...
|
|
30
|
+
|
|
31
|
+
@abstractmethod
|
|
32
|
+
def alert(self) -> Alert:
|
|
33
|
+
"""
|
|
34
|
+
Switches to the currently active alert.
|
|
35
|
+
|
|
36
|
+
Returns:
|
|
37
|
+
Alert: The Alert object for the active alert.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
...
|
|
41
|
+
|
|
42
|
+
@abstractmethod
|
|
43
|
+
def default_content(self) -> None:
|
|
44
|
+
"""
|
|
45
|
+
Switches focus to the default content of a page.
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
...
|
|
49
|
+
|
|
50
|
+
@abstractmethod
|
|
51
|
+
def frame(self, frame_reference: Union[str, int, AbstractWebElement]) -> None:
|
|
52
|
+
"""
|
|
53
|
+
Switches focus to the specified frame.
|
|
54
|
+
|
|
55
|
+
Args:
|
|
56
|
+
frame_reference (Union[str, int, AbstractWebElement]): The name, index, or WebElement of the frame.
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
...
|
|
60
|
+
|
|
61
|
+
@property
|
|
62
|
+
@abstractmethod
|
|
63
|
+
def legacy(self) -> legacySwitchTo:
|
|
64
|
+
"""
|
|
65
|
+
Returns the underlying legacy Selenium SwitchTo instance.
|
|
66
|
+
|
|
67
|
+
This provides a way to access the original Selenium object for operations
|
|
68
|
+
not covered by this abstract interface.
|
|
69
|
+
|
|
70
|
+
Returns:
|
|
71
|
+
legacySwitchTo: The legacy Selenium SwitchTo object.
|
|
72
|
+
"""
|
|
73
|
+
|
|
74
|
+
...
|
|
75
|
+
|
|
76
|
+
@abstractmethod
|
|
77
|
+
def new_window(self, type_hint: Optional[str] = None) -> None:
|
|
78
|
+
"""
|
|
79
|
+
Creates a new window and switches to it.
|
|
80
|
+
|
|
81
|
+
Args:
|
|
82
|
+
type_hint (Optional[str]): Specifies the type of new window, e.g., 'tab' or 'window'.
|
|
83
|
+
"""
|
|
84
|
+
|
|
85
|
+
...
|
|
86
|
+
|
|
87
|
+
@abstractmethod
|
|
88
|
+
def parent_frame(self) -> None:
|
|
89
|
+
"""
|
|
90
|
+
Switches focus to the parent frame.
|
|
91
|
+
"""
|
|
92
|
+
|
|
93
|
+
...
|
|
94
|
+
|
|
95
|
+
@abstractmethod
|
|
96
|
+
def window(self, window_name: str) -> None:
|
|
97
|
+
"""
|
|
98
|
+
Switches focus to the specified window.
|
|
99
|
+
|
|
100
|
+
Args:
|
|
101
|
+
window_name (str): The name or window handle of the window to switch to.
|
|
102
|
+
"""
|
|
103
|
+
|
|
104
|
+
...
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
from typing import Any, Callable
|
|
2
|
+
from abc import ABC, abstractmethod
|
|
3
|
+
from selenium.webdriver.support.wait import (
|
|
4
|
+
WebDriverWait as legacyWebDriverWait
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
__all__ = ["AbstractWebDriverWait"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class AbstractWebDriverWait(ABC):
|
|
12
|
+
"""
|
|
13
|
+
Abstract base class for WebDriver wait implementations.
|
|
14
|
+
|
|
15
|
+
Provides the interface for waiting until a condition is met or a timeout occurs.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
@abstractmethod
|
|
19
|
+
def legacy(self) -> legacyWebDriverWait:
|
|
20
|
+
"""
|
|
21
|
+
Returns the underlying Selenium WebDriverWait instance.
|
|
22
|
+
|
|
23
|
+
Returns:
|
|
24
|
+
legacyWebDriverWait: The original Selenium wait object.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
...
|
|
28
|
+
|
|
29
|
+
@abstractmethod
|
|
30
|
+
def until(self, method: Callable[[Any], Any], message: str = "") -> Any:
|
|
31
|
+
"""
|
|
32
|
+
Waits until the method returns a non-false value.
|
|
33
|
+
|
|
34
|
+
Args:
|
|
35
|
+
method (Callable[[Any], Any]): The condition to evaluate.
|
|
36
|
+
message (str): Optional message for TimeoutException.
|
|
37
|
+
|
|
38
|
+
Returns:
|
|
39
|
+
Any: The return value of the method.
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
...
|
|
43
|
+
|
|
44
|
+
@abstractmethod
|
|
45
|
+
def until_not(self, method: Callable[[Any], Any], message: str = "") -> Any:
|
|
46
|
+
"""
|
|
47
|
+
Waits until the method returns a false value.
|
|
48
|
+
|
|
49
|
+
Args:
|
|
50
|
+
method (Callable[[Any], Any]): The condition to evaluate.
|
|
51
|
+
message (str): Optional message for TimeoutException.
|
|
52
|
+
|
|
53
|
+
Returns:
|
|
54
|
+
Any: The return value of the method.
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
...
|
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from selenium.webdriver.common.by import By
|
|
3
|
+
from osn_selenium.abstract.instances.shadow_root import AbstractShadowRoot
|
|
4
|
+
from typing import (
|
|
5
|
+
Any,
|
|
6
|
+
Iterable,
|
|
7
|
+
Mapping,
|
|
8
|
+
Optional,
|
|
9
|
+
Self,
|
|
10
|
+
Sequence
|
|
11
|
+
)
|
|
12
|
+
from selenium.webdriver.remote.webelement import (
|
|
13
|
+
WebElement as legacyWebElement
|
|
14
|
+
)
|
|
15
|
+
from osn_selenium.abstract.instances.web_driver_wait import (
|
|
16
|
+
AbstractWebDriverWait
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
__all__ = ["AbstractWebElement"]
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class AbstractWebElement(ABC):
|
|
24
|
+
"""
|
|
25
|
+
Abstract base class for a web element.
|
|
26
|
+
|
|
27
|
+
Defines the interface for interacting with an element on a web page,
|
|
28
|
+
such as clicking, sending keys, and retrieving attributes.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
@abstractmethod
|
|
32
|
+
def __eq__(self, element: Self) -> bool:
|
|
33
|
+
"""
|
|
34
|
+
Checks if two elements are equal.
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
element (Self): The element to compare with.
|
|
38
|
+
|
|
39
|
+
Returns:
|
|
40
|
+
bool: True if the elements are the same, False otherwise.
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
...
|
|
44
|
+
|
|
45
|
+
@abstractmethod
|
|
46
|
+
def __hash__(self) -> int:
|
|
47
|
+
"""
|
|
48
|
+
Returns the hash of the element's ID.
|
|
49
|
+
|
|
50
|
+
Returns:
|
|
51
|
+
int: The hash value.
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
...
|
|
55
|
+
|
|
56
|
+
@abstractmethod
|
|
57
|
+
def __ne__(self, element: Self) -> bool:
|
|
58
|
+
"""
|
|
59
|
+
Checks if two elements are not equal.
|
|
60
|
+
|
|
61
|
+
Args:
|
|
62
|
+
element (Self): The element to compare with.
|
|
63
|
+
|
|
64
|
+
Returns:
|
|
65
|
+
bool: True if the elements are not the same, False otherwise.
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
...
|
|
69
|
+
|
|
70
|
+
@abstractmethod
|
|
71
|
+
def __repr__(self) -> str:
|
|
72
|
+
"""
|
|
73
|
+
Returns a string representation of the WebElement.
|
|
74
|
+
|
|
75
|
+
Returns:
|
|
76
|
+
str: The string representation.
|
|
77
|
+
"""
|
|
78
|
+
|
|
79
|
+
...
|
|
80
|
+
|
|
81
|
+
@abstractmethod
|
|
82
|
+
def accessible_name(self) -> str:
|
|
83
|
+
"""
|
|
84
|
+
The accessible name of the element.
|
|
85
|
+
"""
|
|
86
|
+
|
|
87
|
+
...
|
|
88
|
+
|
|
89
|
+
@abstractmethod
|
|
90
|
+
def aria_role(self) -> str:
|
|
91
|
+
"""
|
|
92
|
+
The ARIA role of the element.
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
...
|
|
96
|
+
|
|
97
|
+
@abstractmethod
|
|
98
|
+
def clear(self) -> None:
|
|
99
|
+
"""
|
|
100
|
+
Clears the text if it's a text entry element.
|
|
101
|
+
"""
|
|
102
|
+
|
|
103
|
+
...
|
|
104
|
+
|
|
105
|
+
@abstractmethod
|
|
106
|
+
def click(self) -> None:
|
|
107
|
+
"""
|
|
108
|
+
Clicks the element.
|
|
109
|
+
"""
|
|
110
|
+
|
|
111
|
+
...
|
|
112
|
+
|
|
113
|
+
@abstractmethod
|
|
114
|
+
def find_element(self, by: str = By.ID, value: Optional[str] = None) -> Self:
|
|
115
|
+
"""
|
|
116
|
+
Finds a child element within this element's context.
|
|
117
|
+
|
|
118
|
+
Args:
|
|
119
|
+
by (str): The strategy to use for finding the element.
|
|
120
|
+
value (Optional[str]): The value of the locator.
|
|
121
|
+
|
|
122
|
+
Returns:
|
|
123
|
+
AbstractWebElement: The found WebElement.
|
|
124
|
+
"""
|
|
125
|
+
|
|
126
|
+
...
|
|
127
|
+
|
|
128
|
+
@abstractmethod
|
|
129
|
+
def find_elements(self, by: str = By.ID, value: Optional[str] = None) -> Sequence[Self]:
|
|
130
|
+
"""
|
|
131
|
+
Finds all child elements within this element's context.
|
|
132
|
+
|
|
133
|
+
Args:
|
|
134
|
+
by (str): The strategy to use for finding elements.
|
|
135
|
+
value (Optional[str]): The value of the locator.
|
|
136
|
+
|
|
137
|
+
Returns:
|
|
138
|
+
Sequence[Self]: A sequence of found WebElements.
|
|
139
|
+
"""
|
|
140
|
+
|
|
141
|
+
...
|
|
142
|
+
|
|
143
|
+
@abstractmethod
|
|
144
|
+
def get_attribute(self, name: str) -> Optional[str]:
|
|
145
|
+
"""
|
|
146
|
+
Gets the given attribute or property of the element.
|
|
147
|
+
|
|
148
|
+
Args:
|
|
149
|
+
name (str): The name of the attribute/property.
|
|
150
|
+
|
|
151
|
+
Returns:
|
|
152
|
+
Optional[str]: The value of the attribute/property, or None if it does not exist.
|
|
153
|
+
"""
|
|
154
|
+
|
|
155
|
+
...
|
|
156
|
+
|
|
157
|
+
@abstractmethod
|
|
158
|
+
def get_dom_attribute(self, name: str) -> Optional[str]:
|
|
159
|
+
"""
|
|
160
|
+
Gets the given attribute of the element from the DOM.
|
|
161
|
+
|
|
162
|
+
Args:
|
|
163
|
+
name (str): The name of the attribute.
|
|
164
|
+
|
|
165
|
+
Returns:
|
|
166
|
+
Optional[str]: The value of the attribute, or None if it does not exist.
|
|
167
|
+
"""
|
|
168
|
+
|
|
169
|
+
...
|
|
170
|
+
|
|
171
|
+
@abstractmethod
|
|
172
|
+
def get_property(self, name: str) -> Any:
|
|
173
|
+
"""
|
|
174
|
+
Gets the given property of the element.
|
|
175
|
+
|
|
176
|
+
Args:
|
|
177
|
+
name (str): The name of the property.
|
|
178
|
+
|
|
179
|
+
Returns:
|
|
180
|
+
Any: The value of the property.
|
|
181
|
+
"""
|
|
182
|
+
|
|
183
|
+
...
|
|
184
|
+
|
|
185
|
+
@abstractmethod
|
|
186
|
+
def id(self) -> str:
|
|
187
|
+
"""
|
|
188
|
+
The internal ID used by the WebDriver.
|
|
189
|
+
"""
|
|
190
|
+
|
|
191
|
+
...
|
|
192
|
+
|
|
193
|
+
@abstractmethod
|
|
194
|
+
def is_displayed(self) -> bool:
|
|
195
|
+
"""
|
|
196
|
+
Whether the element is visible to a user.
|
|
197
|
+
|
|
198
|
+
Returns:
|
|
199
|
+
bool: True if the element is displayed, False otherwise.
|
|
200
|
+
"""
|
|
201
|
+
|
|
202
|
+
...
|
|
203
|
+
|
|
204
|
+
@abstractmethod
|
|
205
|
+
def is_enabled(self) -> bool:
|
|
206
|
+
"""
|
|
207
|
+
Whether the element is enabled.
|
|
208
|
+
|
|
209
|
+
Returns:
|
|
210
|
+
bool: True if the element is enabled, False otherwise.
|
|
211
|
+
"""
|
|
212
|
+
|
|
213
|
+
...
|
|
214
|
+
|
|
215
|
+
@abstractmethod
|
|
216
|
+
def is_selected(self) -> bool:
|
|
217
|
+
"""
|
|
218
|
+
Whether the element is selected.
|
|
219
|
+
|
|
220
|
+
Returns:
|
|
221
|
+
bool: True if the element is selected, False otherwise.
|
|
222
|
+
"""
|
|
223
|
+
|
|
224
|
+
...
|
|
225
|
+
|
|
226
|
+
@property
|
|
227
|
+
@abstractmethod
|
|
228
|
+
def legacy(self) -> legacyWebElement:
|
|
229
|
+
"""
|
|
230
|
+
Returns the underlying legacy Selenium WebElement instance.
|
|
231
|
+
|
|
232
|
+
This provides a way to access the original Selenium object for operations
|
|
233
|
+
not covered by this abstract interface.
|
|
234
|
+
|
|
235
|
+
Returns:
|
|
236
|
+
legacyWebElement: The legacy Selenium WebElement object.
|
|
237
|
+
"""
|
|
238
|
+
|
|
239
|
+
...
|
|
240
|
+
|
|
241
|
+
@abstractmethod
|
|
242
|
+
def location(self) -> Mapping[str, int]:
|
|
243
|
+
"""
|
|
244
|
+
The location of the element in the renderable canvas.
|
|
245
|
+
"""
|
|
246
|
+
|
|
247
|
+
...
|
|
248
|
+
|
|
249
|
+
@abstractmethod
|
|
250
|
+
def location_once_scrolled_into_view(self) -> Mapping[str, int]:
|
|
251
|
+
"""
|
|
252
|
+
The location of the element after scrolling it into view.
|
|
253
|
+
"""
|
|
254
|
+
|
|
255
|
+
...
|
|
256
|
+
|
|
257
|
+
@abstractmethod
|
|
258
|
+
def parent(self) -> Self:
|
|
259
|
+
"""
|
|
260
|
+
The parent of this element (the WebDriver instance).
|
|
261
|
+
"""
|
|
262
|
+
|
|
263
|
+
...
|
|
264
|
+
|
|
265
|
+
@abstractmethod
|
|
266
|
+
def rect(self) -> Mapping[str, int]:
|
|
267
|
+
"""
|
|
268
|
+
A dictionary with the size and location of the element.
|
|
269
|
+
"""
|
|
270
|
+
|
|
271
|
+
...
|
|
272
|
+
|
|
273
|
+
@abstractmethod
|
|
274
|
+
def screenshot(self, filename: str) -> bool:
|
|
275
|
+
"""
|
|
276
|
+
Saves a screenshot of the element to a file.
|
|
277
|
+
|
|
278
|
+
Args:
|
|
279
|
+
filename (str): The full path of the file.
|
|
280
|
+
|
|
281
|
+
Returns:
|
|
282
|
+
bool: True if successful, False otherwise.
|
|
283
|
+
"""
|
|
284
|
+
|
|
285
|
+
...
|
|
286
|
+
|
|
287
|
+
@abstractmethod
|
|
288
|
+
def screenshot_as_base64(self) -> str:
|
|
289
|
+
"""
|
|
290
|
+
A base64-encoded PNG image of the element.
|
|
291
|
+
"""
|
|
292
|
+
|
|
293
|
+
...
|
|
294
|
+
|
|
295
|
+
@abstractmethod
|
|
296
|
+
def screenshot_as_png(self) -> bytes:
|
|
297
|
+
"""
|
|
298
|
+
A PNG image of the element, as binary data.
|
|
299
|
+
"""
|
|
300
|
+
|
|
301
|
+
...
|
|
302
|
+
|
|
303
|
+
@abstractmethod
|
|
304
|
+
def send_keys(self, *value: str) -> None:
|
|
305
|
+
"""
|
|
306
|
+
Simulates typing into the element.
|
|
307
|
+
|
|
308
|
+
Args:
|
|
309
|
+
*value (str): A sequence of strings to send.
|
|
310
|
+
"""
|
|
311
|
+
|
|
312
|
+
...
|
|
313
|
+
|
|
314
|
+
@abstractmethod
|
|
315
|
+
def session_id(self) -> str:
|
|
316
|
+
"""
|
|
317
|
+
The session ID of the WebDriver controlling this element.
|
|
318
|
+
"""
|
|
319
|
+
|
|
320
|
+
...
|
|
321
|
+
|
|
322
|
+
@abstractmethod
|
|
323
|
+
def shadow_root(self) -> AbstractShadowRoot:
|
|
324
|
+
"""
|
|
325
|
+
The shadow root of this element.
|
|
326
|
+
"""
|
|
327
|
+
|
|
328
|
+
...
|
|
329
|
+
|
|
330
|
+
@abstractmethod
|
|
331
|
+
def size(self) -> Mapping[str, int]:
|
|
332
|
+
"""
|
|
333
|
+
The size of the element.
|
|
334
|
+
"""
|
|
335
|
+
|
|
336
|
+
...
|
|
337
|
+
|
|
338
|
+
@abstractmethod
|
|
339
|
+
def submit(self) -> None:
|
|
340
|
+
"""
|
|
341
|
+
Submits a form.
|
|
342
|
+
"""
|
|
343
|
+
|
|
344
|
+
...
|
|
345
|
+
|
|
346
|
+
@abstractmethod
|
|
347
|
+
def tag_name(self) -> str:
|
|
348
|
+
"""
|
|
349
|
+
The tag name of this element.
|
|
350
|
+
"""
|
|
351
|
+
|
|
352
|
+
...
|
|
353
|
+
|
|
354
|
+
@abstractmethod
|
|
355
|
+
def text(self) -> str:
|
|
356
|
+
"""
|
|
357
|
+
The text of the element.
|
|
358
|
+
"""
|
|
359
|
+
|
|
360
|
+
...
|
|
361
|
+
|
|
362
|
+
@abstractmethod
|
|
363
|
+
def value_of_css_property(self, property_name: str) -> str:
|
|
364
|
+
"""
|
|
365
|
+
The value of a CSS property.
|
|
366
|
+
|
|
367
|
+
Args:
|
|
368
|
+
property_name (str): The name of the CSS property.
|
|
369
|
+
|
|
370
|
+
Returns:
|
|
371
|
+
str: The value of the property.
|
|
372
|
+
"""
|
|
373
|
+
|
|
374
|
+
...
|
|
375
|
+
|
|
376
|
+
@abstractmethod
|
|
377
|
+
def web_driver_wait(
|
|
378
|
+
self,
|
|
379
|
+
timeout: float,
|
|
380
|
+
poll_frequency: float = 0.5,
|
|
381
|
+
ignored_exceptions: Optional[Iterable[BaseException]] = None,
|
|
382
|
+
) -> AbstractWebDriverWait:
|
|
383
|
+
"""
|
|
384
|
+
Creates a wait instance for this element.
|
|
385
|
+
|
|
386
|
+
Args:
|
|
387
|
+
timeout (float): Total time to wait in seconds.
|
|
388
|
+
poll_frequency (float): Sleep interval between polls. Defaults to 0.5.
|
|
389
|
+
ignored_exceptions (Optional[Iterable[BaseException]]): Exceptions to ignore during polling.
|
|
390
|
+
|
|
391
|
+
Returns:
|
|
392
|
+
AbstractWebDriverWait: The wait instance.
|
|
393
|
+
"""
|
|
394
|
+
|
|
395
|
+
...
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from typing import (
|
|
3
|
+
Any,
|
|
4
|
+
Mapping,
|
|
5
|
+
Optional,
|
|
6
|
+
Union
|
|
7
|
+
)
|
|
8
|
+
from selenium.webdriver.common.bidi.webextension import (
|
|
9
|
+
WebExtension as legacyWebExtension
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
__all__ = ["AbstractWebExtension"]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class AbstractWebExtension(ABC):
|
|
17
|
+
"""
|
|
18
|
+
Abstract base class for managing browser extensions.
|
|
19
|
+
|
|
20
|
+
Defines the interface for installing and uninstalling web extensions.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
@abstractmethod
|
|
24
|
+
def install(
|
|
25
|
+
self,
|
|
26
|
+
path: Optional[str] = None,
|
|
27
|
+
archive_path: Optional[str] = None,
|
|
28
|
+
base64_value: Optional[str] = None,
|
|
29
|
+
) -> Mapping[str, Any]:
|
|
30
|
+
"""
|
|
31
|
+
Installs a web extension.
|
|
32
|
+
|
|
33
|
+
Args:
|
|
34
|
+
path (Optional[str]): Path to the extension file (.crx or .xpi).
|
|
35
|
+
archive_path (Optional[str]): Path to a zipped extension directory.
|
|
36
|
+
base64_value (Optional[str]): Base64 encoded extension data.
|
|
37
|
+
|
|
38
|
+
Returns:
|
|
39
|
+
Mapping[str, Any]: A dictionary containing the result of the installation,
|
|
40
|
+
typically including the extension ID.
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
...
|
|
44
|
+
|
|
45
|
+
@property
|
|
46
|
+
@abstractmethod
|
|
47
|
+
def legacy(self) -> legacyWebExtension:
|
|
48
|
+
"""
|
|
49
|
+
Returns the underlying legacy Selenium WebExtension instance.
|
|
50
|
+
|
|
51
|
+
This provides a way to access the original Selenium object for operations
|
|
52
|
+
not covered by this abstract interface.
|
|
53
|
+
|
|
54
|
+
Returns:
|
|
55
|
+
legacyWebExtension: The legacy Selenium WebExtension object.
|
|
56
|
+
"""
|
|
57
|
+
|
|
58
|
+
...
|
|
59
|
+
|
|
60
|
+
@abstractmethod
|
|
61
|
+
def uninstall(self, extension_id_or_result: Union[str, Mapping[str, Any]]) -> None:
|
|
62
|
+
"""
|
|
63
|
+
Uninstalls a web extension.
|
|
64
|
+
|
|
65
|
+
Args:
|
|
66
|
+
extension_id_or_result (Union[str, Mapping[str, Any]]): The ID of the extension
|
|
67
|
+
or the result dictionary from an install operation.
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
...
|