osn-selenium 0.0.0__py3-none-any.whl → 1.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- osn_selenium/_base_models.py +41 -0
- osn_selenium/_cdp_import.py +253 -0
- osn_selenium/_functions.py +84 -0
- osn_selenium/_typehints.py +19 -0
- osn_selenium/abstract/executors/cdp/__init__.py +435 -0
- osn_selenium/abstract/executors/cdp/accessibility.py +62 -0
- osn_selenium/abstract/executors/cdp/animation.py +47 -0
- osn_selenium/abstract/executors/cdp/audits.py +39 -0
- osn_selenium/abstract/executors/cdp/autofill.py +34 -0
- osn_selenium/abstract/executors/cdp/background_service.py +22 -0
- osn_selenium/abstract/executors/cdp/bluetooth_emulation.py +95 -0
- osn_selenium/abstract/executors/cdp/browser.py +122 -0
- osn_selenium/abstract/executors/cdp/cache_storage.py +49 -0
- osn_selenium/abstract/executors/cdp/cast.py +31 -0
- osn_selenium/abstract/executors/cdp/console.py +18 -0
- osn_selenium/abstract/executors/cdp/css.py +197 -0
- osn_selenium/abstract/executors/cdp/debugger.py +198 -0
- osn_selenium/abstract/executors/cdp/device_access.py +22 -0
- osn_selenium/abstract/executors/cdp/device_orientation.py +14 -0
- osn_selenium/abstract/executors/cdp/dom.py +305 -0
- osn_selenium/abstract/executors/cdp/dom_debugger.py +57 -0
- osn_selenium/abstract/executors/cdp/dom_snapshot.py +42 -0
- osn_selenium/abstract/executors/cdp/dom_storage.py +31 -0
- osn_selenium/abstract/executors/cdp/emulation.py +259 -0
- osn_selenium/abstract/executors/cdp/event_breakpoints.py +18 -0
- osn_selenium/abstract/executors/cdp/extensions.py +31 -0
- osn_selenium/abstract/executors/cdp/fed_cm.py +35 -0
- osn_selenium/abstract/executors/cdp/fetch.py +76 -0
- osn_selenium/abstract/executors/cdp/file_system.py +11 -0
- osn_selenium/abstract/executors/cdp/headless_experimental.py +30 -0
- osn_selenium/abstract/executors/cdp/heap_profiler.py +73 -0
- osn_selenium/abstract/executors/cdp/indexed_db.py +99 -0
- osn_selenium/abstract/executors/cdp/input.py +158 -0
- osn_selenium/abstract/executors/cdp/inspector.py +14 -0
- osn_selenium/abstract/executors/cdp/io.py +24 -0
- osn_selenium/abstract/executors/cdp/layer_tree.py +61 -0
- osn_selenium/abstract/executors/cdp/log.py +27 -0
- osn_selenium/abstract/executors/cdp/media.py +14 -0
- osn_selenium/abstract/executors/cdp/memory.py +61 -0
- osn_selenium/abstract/executors/cdp/network.py +252 -0
- osn_selenium/abstract/executors/cdp/overlay.py +166 -0
- osn_selenium/abstract/executors/cdp/page.py +347 -0
- osn_selenium/abstract/executors/cdp/performance.py +28 -0
- osn_selenium/abstract/executors/cdp/performance_timeline.py +11 -0
- osn_selenium/abstract/executors/cdp/preload.py +14 -0
- osn_selenium/abstract/executors/cdp/profiler.py +54 -0
- osn_selenium/abstract/executors/cdp/pwa.py +46 -0
- osn_selenium/abstract/executors/cdp/runtime.py +176 -0
- osn_selenium/abstract/executors/cdp/schema.py +11 -0
- osn_selenium/abstract/executors/cdp/security.py +26 -0
- osn_selenium/abstract/executors/cdp/service_worker.py +54 -0
- osn_selenium/abstract/executors/cdp/storage.py +175 -0
- osn_selenium/abstract/executors/cdp/system_info.py +24 -0
- osn_selenium/abstract/executors/cdp/target.py +125 -0
- osn_selenium/abstract/executors/cdp/tethering.py +14 -0
- osn_selenium/abstract/executors/cdp/tracing.py +48 -0
- osn_selenium/abstract/executors/cdp/web_audio.py +19 -0
- osn_selenium/abstract/executors/cdp/web_authn.py +76 -0
- osn_selenium/abstract/executors/cdp.py +63 -0
- osn_selenium/abstract/executors/javascript.py +203 -0
- osn_selenium/abstract/instances/action_chains/__init__.py +12 -0
- osn_selenium/abstract/instances/action_chains/base.py +25 -0
- osn_selenium/abstract/instances/action_chains/click.py +93 -0
- osn_selenium/abstract/instances/action_chains/drag_and_drop.py +46 -0
- osn_selenium/abstract/instances/action_chains/hm_keyboard.py +44 -0
- osn_selenium/abstract/instances/action_chains/hm_move.py +104 -0
- osn_selenium/abstract/instances/action_chains/hm_scroll.py +75 -0
- osn_selenium/abstract/instances/action_chains/keyboard.py +79 -0
- osn_selenium/abstract/instances/action_chains/move.py +60 -0
- osn_selenium/abstract/instances/action_chains/scroll.py +61 -0
- osn_selenium/abstract/instances/action_chains/utils.py +44 -0
- osn_selenium/abstract/instances/alert.py +67 -0
- osn_selenium/abstract/instances/browser.py +76 -0
- osn_selenium/abstract/instances/browsing_context.py +310 -0
- osn_selenium/abstract/instances/dialog.py +107 -0
- osn_selenium/abstract/instances/fedcm.py +133 -0
- osn_selenium/abstract/instances/mobile.py +79 -0
- osn_selenium/abstract/instances/network.py +100 -0
- osn_selenium/abstract/instances/permissions.py +52 -0
- osn_selenium/abstract/instances/script.py +109 -0
- osn_selenium/abstract/instances/shadow_root.py +81 -0
- osn_selenium/abstract/instances/storage.py +98 -0
- osn_selenium/abstract/instances/switch_to.py +104 -0
- osn_selenium/abstract/instances/web_driver_wait.py +57 -0
- osn_selenium/abstract/instances/web_element.py +395 -0
- osn_selenium/abstract/instances/web_extension.py +70 -0
- osn_selenium/abstract/webdriver/blink/__init__.py +18 -0
- osn_selenium/abstract/webdriver/blink/base.py +80 -0
- osn_selenium/abstract/webdriver/blink/casting.py +82 -0
- osn_selenium/abstract/webdriver/blink/features.py +51 -0
- osn_selenium/abstract/webdriver/blink/lifecycle.py +76 -0
- osn_selenium/abstract/webdriver/blink/logging.py +40 -0
- osn_selenium/abstract/webdriver/blink/network.py +45 -0
- osn_selenium/abstract/webdriver/blink/settings.py +68 -0
- osn_selenium/abstract/webdriver/chrome/__init__.py +18 -0
- osn_selenium/abstract/webdriver/chrome/base.py +36 -0
- osn_selenium/abstract/webdriver/chrome/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/chrome/settings.py +110 -0
- osn_selenium/abstract/webdriver/core/__init__.py +16 -0
- osn_selenium/abstract/webdriver/core/actions.py +58 -0
- osn_selenium/abstract/webdriver/core/auth.py +145 -0
- osn_selenium/abstract/webdriver/core/base.py +298 -0
- osn_selenium/abstract/webdriver/core/capture.py +84 -0
- osn_selenium/abstract/webdriver/core/components.py +82 -0
- osn_selenium/abstract/webdriver/core/devtools.py +69 -0
- osn_selenium/abstract/webdriver/core/element.py +55 -0
- osn_selenium/abstract/webdriver/core/file.py +82 -0
- osn_selenium/abstract/webdriver/core/lifecycle.py +103 -0
- osn_selenium/abstract/webdriver/core/navigation.py +65 -0
- osn_selenium/abstract/webdriver/core/script.py +88 -0
- osn_selenium/abstract/webdriver/core/settings.py +43 -0
- osn_selenium/abstract/webdriver/core/storage.py +81 -0
- osn_selenium/abstract/webdriver/core/timeouts.py +101 -0
- osn_selenium/abstract/webdriver/core/window.py +237 -0
- osn_selenium/abstract/webdriver/edge/__init__.py +18 -0
- osn_selenium/abstract/webdriver/edge/base.py +36 -0
- osn_selenium/abstract/webdriver/edge/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/edge/settings.py +110 -0
- osn_selenium/abstract/webdriver/yandex/__init__.py +18 -0
- osn_selenium/abstract/webdriver/yandex/base.py +18 -0
- osn_selenium/abstract/webdriver/yandex/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/yandex/settings.py +110 -0
- osn_selenium/base_mixin.py +122 -0
- osn_selenium/browsers_handler/__init__.py +47 -17
- osn_selenium/browsers_handler/_linux.py +226 -0
- osn_selenium/browsers_handler/_windows.py +21 -14
- osn_selenium/browsers_handler/{types.py → models.py} +5 -2
- osn_selenium/dev_tools/_decorators.py +149 -0
- osn_selenium/dev_tools/_exception_helpers.py +116 -0
- osn_selenium/dev_tools/_functions.py +174 -0
- osn_selenium/dev_tools/_system_utils.py +35 -0
- osn_selenium/dev_tools/_typehints.py +35 -0
- osn_selenium/dev_tools/_validators.py +227 -0
- osn_selenium/dev_tools/_wrappers.py +92 -0
- osn_selenium/dev_tools/domains/__init__.py +7 -40
- osn_selenium/dev_tools/domains/abstract.py +98 -254
- osn_selenium/dev_tools/domains/fetch.py +229 -906
- osn_selenium/dev_tools/domains_default/fetch.py +40 -28
- osn_selenium/dev_tools/filters.py +40 -0
- osn_selenium/dev_tools/logger/main.py +214 -0
- osn_selenium/dev_tools/logger/models.py +232 -0
- osn_selenium/dev_tools/logger/target.py +278 -0
- osn_selenium/dev_tools/manager/__init__.py +16 -0
- osn_selenium/dev_tools/manager/base.py +124 -0
- osn_selenium/dev_tools/manager/lifecycle.py +236 -0
- osn_selenium/dev_tools/manager/logging.py +153 -0
- osn_selenium/dev_tools/manager/settings.py +89 -0
- osn_selenium/dev_tools/manager/targets.py +175 -0
- osn_selenium/dev_tools/models.py +49 -0
- osn_selenium/dev_tools/settings.py +139 -0
- osn_selenium/dev_tools/target/__init__.py +16 -0
- osn_selenium/dev_tools/target/base.py +427 -0
- osn_selenium/dev_tools/target/detach.py +54 -0
- osn_selenium/dev_tools/target/discovery.py +112 -0
- osn_selenium/dev_tools/target/events.py +120 -0
- osn_selenium/dev_tools/target/fingerprint.py +126 -0
- osn_selenium/dev_tools/target/lifecycle.py +184 -0
- osn_selenium/dev_tools/target/logging.py +163 -0
- osn_selenium/exceptions/__init__.py +1 -0
- osn_selenium/exceptions/base.py +9 -0
- osn_selenium/exceptions/configuration.py +84 -0
- osn_selenium/exceptions/dependencies.py +60 -0
- osn_selenium/exceptions/devtools.py +114 -0
- osn_selenium/exceptions/flags.py +45 -0
- osn_selenium/exceptions/instance.py +92 -0
- osn_selenium/exceptions/javascript.py +31 -0
- osn_selenium/exceptions/logic.py +31 -0
- osn_selenium/exceptions/path.py +77 -0
- osn_selenium/exceptions/platform.py +33 -0
- osn_selenium/exceptions/protocol.py +86 -0
- osn_selenium/exceptions/webdriver.py +44 -0
- osn_selenium/exceptions/window.py +63 -0
- osn_selenium/executors/__init__.py +1 -0
- osn_selenium/executors/sync/__init__.py +1 -0
- osn_selenium/executors/sync/cdp/__init__.py +550 -0
- osn_selenium/executors/sync/cdp/accessibility.py +74 -0
- osn_selenium/executors/sync/cdp/animation.py +50 -0
- osn_selenium/executors/sync/cdp/audits.py +48 -0
- osn_selenium/executors/sync/cdp/autofill.py +39 -0
- osn_selenium/executors/sync/cdp/background_service.py +30 -0
- osn_selenium/executors/sync/cdp/bluetooth_emulation.py +101 -0
- osn_selenium/executors/sync/cdp/browser.py +131 -0
- osn_selenium/executors/sync/cdp/cache_storage.py +66 -0
- osn_selenium/executors/sync/cdp/cast.py +38 -0
- osn_selenium/executors/sync/cdp/console.py +24 -0
- osn_selenium/executors/sync/cdp/css.py +187 -0
- osn_selenium/executors/sync/cdp/debugger.py +206 -0
- osn_selenium/executors/sync/cdp/device_access.py +27 -0
- osn_selenium/executors/sync/cdp/device_orientation.py +24 -0
- osn_selenium/executors/sync/cdp/dom.py +310 -0
- osn_selenium/executors/sync/cdp/dom_debugger.py +56 -0
- osn_selenium/executors/sync/cdp/dom_snapshot.py +58 -0
- osn_selenium/executors/sync/cdp/dom_storage.py +38 -0
- osn_selenium/executors/sync/cdp/emulation.py +270 -0
- osn_selenium/executors/sync/cdp/event_breakpoints.py +27 -0
- osn_selenium/executors/sync/cdp/extensions.py +39 -0
- osn_selenium/executors/sync/cdp/fed_cm.py +45 -0
- osn_selenium/executors/sync/cdp/fetch.py +96 -0
- osn_selenium/executors/sync/cdp/file_system.py +18 -0
- osn_selenium/executors/sync/cdp/headless_experimental.py +44 -0
- osn_selenium/executors/sync/cdp/heap_profiler.py +89 -0
- osn_selenium/executors/sync/cdp/indexed_db.py +142 -0
- osn_selenium/executors/sync/cdp/input.py +233 -0
- osn_selenium/executors/sync/cdp/inspector.py +21 -0
- osn_selenium/executors/sync/cdp/io.py +33 -0
- osn_selenium/executors/sync/cdp/layer_tree.py +71 -0
- osn_selenium/executors/sync/cdp/log.py +35 -0
- osn_selenium/executors/sync/cdp/media.py +21 -0
- osn_selenium/executors/sync/cdp/memory.py +62 -0
- osn_selenium/executors/sync/cdp/network.py +287 -0
- osn_selenium/executors/sync/cdp/overlay.py +174 -0
- osn_selenium/executors/sync/cdp/page.py +365 -0
- osn_selenium/executors/sync/cdp/performance.py +33 -0
- osn_selenium/executors/sync/cdp/performance_timeline.py +26 -0
- osn_selenium/executors/sync/cdp/preload.py +21 -0
- osn_selenium/executors/sync/cdp/profiler.py +58 -0
- osn_selenium/executors/sync/cdp/pwa.py +55 -0
- osn_selenium/executors/sync/cdp/runtime.py +221 -0
- osn_selenium/executors/sync/cdp/schema.py +23 -0
- osn_selenium/executors/sync/cdp/security.py +30 -0
- osn_selenium/executors/sync/cdp/service_worker.py +56 -0
- osn_selenium/executors/sync/cdp/storage.py +151 -0
- osn_selenium/executors/sync/cdp/system_info.py +30 -0
- osn_selenium/executors/sync/cdp/target.py +147 -0
- osn_selenium/executors/sync/cdp/tethering.py +21 -0
- osn_selenium/executors/sync/cdp/tracing.py +62 -0
- osn_selenium/executors/sync/cdp/web_audio.py +24 -0
- osn_selenium/executors/sync/cdp/web_authn.py +82 -0
- osn_selenium/executors/sync/cdp.py +100 -0
- osn_selenium/executors/sync/javascript.py +79 -0
- osn_selenium/executors/trio_threads/__init__.py +1 -0
- osn_selenium/executors/trio_threads/cdp/__init__.py +771 -0
- osn_selenium/executors/trio_threads/cdp/accessibility.py +87 -0
- osn_selenium/executors/trio_threads/cdp/animation.py +63 -0
- osn_selenium/executors/trio_threads/cdp/audits.py +57 -0
- osn_selenium/executors/trio_threads/cdp/autofill.py +52 -0
- osn_selenium/executors/trio_threads/cdp/background_service.py +40 -0
- osn_selenium/executors/trio_threads/cdp/bluetooth_emulation.py +111 -0
- osn_selenium/executors/trio_threads/cdp/browser.py +140 -0
- osn_selenium/executors/trio_threads/cdp/cache_storage.py +79 -0
- osn_selenium/executors/trio_threads/cdp/cast.py +47 -0
- osn_selenium/executors/trio_threads/cdp/console.py +33 -0
- osn_selenium/executors/trio_threads/cdp/css.py +196 -0
- osn_selenium/executors/trio_threads/cdp/debugger.py +219 -0
- osn_selenium/executors/trio_threads/cdp/device_access.py +40 -0
- osn_selenium/executors/trio_threads/cdp/device_orientation.py +34 -0
- osn_selenium/executors/trio_threads/cdp/dom.py +319 -0
- osn_selenium/executors/trio_threads/cdp/dom_debugger.py +69 -0
- osn_selenium/executors/trio_threads/cdp/dom_snapshot.py +71 -0
- osn_selenium/executors/trio_threads/cdp/dom_storage.py +51 -0
- osn_selenium/executors/trio_threads/cdp/emulation.py +283 -0
- osn_selenium/executors/trio_threads/cdp/event_breakpoints.py +37 -0
- osn_selenium/executors/trio_threads/cdp/extensions.py +52 -0
- osn_selenium/executors/trio_threads/cdp/fed_cm.py +54 -0
- osn_selenium/executors/trio_threads/cdp/fetch.py +105 -0
- osn_selenium/executors/trio_threads/cdp/file_system.py +31 -0
- osn_selenium/executors/trio_threads/cdp/headless_experimental.py +54 -0
- osn_selenium/executors/trio_threads/cdp/heap_profiler.py +102 -0
- osn_selenium/executors/trio_threads/cdp/indexed_db.py +155 -0
- osn_selenium/executors/trio_threads/cdp/input.py +242 -0
- osn_selenium/executors/trio_threads/cdp/inspector.py +34 -0
- osn_selenium/executors/trio_threads/cdp/io.py +42 -0
- osn_selenium/executors/trio_threads/cdp/layer_tree.py +84 -0
- osn_selenium/executors/trio_threads/cdp/log.py +44 -0
- osn_selenium/executors/trio_threads/cdp/media.py +30 -0
- osn_selenium/executors/trio_threads/cdp/memory.py +71 -0
- osn_selenium/executors/trio_threads/cdp/network.py +296 -0
- osn_selenium/executors/trio_threads/cdp/overlay.py +183 -0
- osn_selenium/executors/trio_threads/cdp/page.py +374 -0
- osn_selenium/executors/trio_threads/cdp/performance.py +46 -0
- osn_selenium/executors/trio_threads/cdp/performance_timeline.py +36 -0
- osn_selenium/executors/trio_threads/cdp/preload.py +30 -0
- osn_selenium/executors/trio_threads/cdp/profiler.py +71 -0
- osn_selenium/executors/trio_threads/cdp/pwa.py +64 -0
- osn_selenium/executors/trio_threads/cdp/runtime.py +230 -0
- osn_selenium/executors/trio_threads/cdp/schema.py +32 -0
- osn_selenium/executors/trio_threads/cdp/security.py +43 -0
- osn_selenium/executors/trio_threads/cdp/service_worker.py +69 -0
- osn_selenium/executors/trio_threads/cdp/storage.py +162 -0
- osn_selenium/executors/trio_threads/cdp/system_info.py +43 -0
- osn_selenium/executors/trio_threads/cdp/target.py +156 -0
- osn_selenium/executors/trio_threads/cdp/tethering.py +34 -0
- osn_selenium/executors/trio_threads/cdp/tracing.py +71 -0
- osn_selenium/executors/trio_threads/cdp/web_audio.py +37 -0
- osn_selenium/executors/trio_threads/cdp/web_authn.py +95 -0
- osn_selenium/executors/trio_threads/cdp.py +104 -0
- osn_selenium/executors/trio_threads/javascript.py +90 -0
- osn_selenium/executors/unified/__init__.py +1 -0
- osn_selenium/executors/unified/cdp/__init__.py +1 -0
- osn_selenium/executors/unified/cdp/accessibility.py +81 -0
- osn_selenium/executors/unified/cdp/animation.py +50 -0
- osn_selenium/executors/unified/cdp/audits.py +45 -0
- osn_selenium/executors/unified/cdp/autofill.py +41 -0
- osn_selenium/executors/unified/cdp/background_service.py +24 -0
- osn_selenium/executors/unified/cdp/bluetooth_emulation.py +132 -0
- osn_selenium/executors/unified/cdp/browser.py +143 -0
- osn_selenium/executors/unified/cdp/cache_storage.py +69 -0
- osn_selenium/executors/unified/cdp/cast.py +32 -0
- osn_selenium/executors/unified/cdp/console.py +18 -0
- osn_selenium/executors/unified/cdp/css.py +237 -0
- osn_selenium/executors/unified/cdp/debugger.py +243 -0
- osn_selenium/executors/unified/cdp/device_access.py +21 -0
- osn_selenium/executors/unified/cdp/device_orientation.py +18 -0
- osn_selenium/executors/unified/cdp/dom.py +380 -0
- osn_selenium/executors/unified/cdp/dom_debugger.py +65 -0
- osn_selenium/executors/unified/cdp/dom_snapshot.py +58 -0
- osn_selenium/executors/unified/cdp/dom_storage.py +38 -0
- osn_selenium/executors/unified/cdp/emulation.py +312 -0
- osn_selenium/executors/unified/cdp/event_breakpoints.py +24 -0
- osn_selenium/executors/unified/cdp/extensions.py +45 -0
- osn_selenium/executors/unified/cdp/fed_cm.py +51 -0
- osn_selenium/executors/unified/cdp/fetch.py +111 -0
- osn_selenium/executors/unified/cdp/file_system.py +15 -0
- osn_selenium/executors/unified/cdp/headless_experimental.py +38 -0
- osn_selenium/executors/unified/cdp/heap_profiler.py +101 -0
- osn_selenium/executors/unified/cdp/indexed_db.py +157 -0
- osn_selenium/executors/unified/cdp/input.py +254 -0
- osn_selenium/executors/unified/cdp/inspector.py +15 -0
- osn_selenium/executors/unified/cdp/io.py +29 -0
- osn_selenium/executors/unified/cdp/layer_tree.py +71 -0
- osn_selenium/executors/unified/cdp/log.py +29 -0
- osn_selenium/executors/unified/cdp/media.py +15 -0
- osn_selenium/executors/unified/cdp/memory.py +59 -0
- osn_selenium/executors/unified/cdp/network.py +323 -0
- osn_selenium/executors/unified/cdp/overlay.py +209 -0
- osn_selenium/executors/unified/cdp/page.py +410 -0
- osn_selenium/executors/unified/cdp/performance.py +27 -0
- osn_selenium/executors/unified/cdp/performance_timeline.py +17 -0
- osn_selenium/executors/unified/cdp/preload.py +15 -0
- osn_selenium/executors/unified/cdp/profiler.py +55 -0
- osn_selenium/executors/unified/cdp/pwa.py +55 -0
- osn_selenium/executors/unified/cdp/runtime.py +245 -0
- osn_selenium/executors/unified/cdp/schema.py +17 -0
- osn_selenium/executors/unified/cdp/security.py +27 -0
- osn_selenium/executors/unified/cdp/service_worker.py +62 -0
- osn_selenium/executors/unified/cdp/storage.py +178 -0
- osn_selenium/executors/unified/cdp/system_info.py +24 -0
- osn_selenium/executors/unified/cdp/target.py +165 -0
- osn_selenium/executors/unified/cdp/tethering.py +15 -0
- osn_selenium/executors/unified/cdp/tracing.py +62 -0
- osn_selenium/executors/unified/cdp/web_audio.py +18 -0
- osn_selenium/executors/unified/cdp/web_authn.py +103 -0
- osn_selenium/executors/unified/javascript.py +104 -0
- osn_selenium/flags/__init__.py +1 -0
- osn_selenium/flags/_functions.py +45 -0
- osn_selenium/flags/_typehints.py +34 -0
- osn_selenium/flags/_validators.py +101 -0
- osn_selenium/{webdrivers/BaseDriver/flags.py → flags/base.py} +159 -245
- osn_selenium/{webdrivers/Blink/flags.py → flags/blink.py} +130 -374
- osn_selenium/flags/chrome.py +259 -0
- osn_selenium/flags/edge.py +259 -0
- osn_selenium/flags/models/__init__.py +1 -0
- osn_selenium/flags/models/base.py +130 -0
- osn_selenium/flags/models/blink.py +263 -0
- osn_selenium/{webdrivers/Chrome/flags.py → flags/models/chrome.py} +25 -75
- osn_selenium/{webdrivers/Edge/flags.py → flags/models/edge.py} +25 -75
- osn_selenium/flags/models/values.py +44 -0
- osn_selenium/{webdrivers/Yandex/flags.py → flags/models/yandex.py} +26 -76
- osn_selenium/flags/yandex.py +259 -0
- osn_selenium/instances/__init__.py +1 -0
- osn_selenium/instances/_functions.py +242 -0
- osn_selenium/instances/_typehints.py +148 -0
- osn_selenium/instances/_utils.py +143 -0
- osn_selenium/instances/convert.py +287 -0
- osn_selenium/instances/protocols.py +105 -0
- osn_selenium/instances/sync/__init__.py +1 -0
- osn_selenium/instances/sync/action_chains/__init__.py +32 -0
- osn_selenium/instances/sync/action_chains/base.py +74 -0
- osn_selenium/instances/sync/action_chains/click.py +61 -0
- osn_selenium/instances/sync/action_chains/drag_and_drop.py +45 -0
- osn_selenium/instances/sync/action_chains/hm_keyboard.py +37 -0
- osn_selenium/instances/sync/action_chains/hm_move.py +81 -0
- osn_selenium/instances/sync/action_chains/hm_scroll.py +60 -0
- osn_selenium/instances/sync/action_chains/keyboard.py +55 -0
- osn_selenium/instances/sync/action_chains/move.py +46 -0
- osn_selenium/instances/sync/action_chains/scroll.py +43 -0
- osn_selenium/instances/sync/action_chains/utils.py +30 -0
- osn_selenium/instances/sync/alert.py +69 -0
- osn_selenium/instances/sync/browser.py +72 -0
- osn_selenium/instances/sync/browsing_context.py +193 -0
- osn_selenium/instances/sync/dialog.py +81 -0
- osn_selenium/instances/sync/fedcm.py +92 -0
- osn_selenium/instances/sync/mobile.py +75 -0
- osn_selenium/instances/sync/network.py +90 -0
- osn_selenium/instances/sync/permissions.py +80 -0
- osn_selenium/instances/sync/script.py +77 -0
- osn_selenium/instances/sync/shadow_root.py +113 -0
- osn_selenium/instances/sync/storage.py +91 -0
- osn_selenium/instances/sync/switch_to.py +92 -0
- osn_selenium/instances/sync/web_driver_wait.py +83 -0
- osn_selenium/instances/sync/web_element.py +179 -0
- osn_selenium/instances/sync/web_extension.py +77 -0
- osn_selenium/instances/trio_threads/__init__.py +1 -0
- osn_selenium/instances/trio_threads/action_chains/__init__.py +32 -0
- osn_selenium/instances/trio_threads/action_chains/base.py +88 -0
- osn_selenium/instances/trio_threads/action_chains/click.py +71 -0
- osn_selenium/instances/trio_threads/action_chains/drag_and_drop.py +49 -0
- osn_selenium/instances/trio_threads/action_chains/hm_keyboard.py +41 -0
- osn_selenium/instances/trio_threads/action_chains/hm_move.py +91 -0
- osn_selenium/instances/trio_threads/action_chains/hm_scroll.py +66 -0
- osn_selenium/instances/trio_threads/action_chains/keyboard.py +63 -0
- osn_selenium/instances/trio_threads/action_chains/move.py +52 -0
- osn_selenium/instances/trio_threads/action_chains/scroll.py +49 -0
- osn_selenium/instances/trio_threads/action_chains/utils.py +32 -0
- osn_selenium/instances/trio_threads/alert.py +87 -0
- osn_selenium/instances/trio_threads/browser.py +90 -0
- osn_selenium/instances/trio_threads/browsing_context.py +216 -0
- osn_selenium/instances/trio_threads/dialog.py +99 -0
- osn_selenium/instances/trio_threads/fedcm.py +110 -0
- osn_selenium/instances/trio_threads/mobile.py +93 -0
- osn_selenium/instances/trio_threads/network.py +108 -0
- osn_selenium/instances/trio_threads/permissions.py +102 -0
- osn_selenium/instances/trio_threads/script.py +95 -0
- osn_selenium/instances/trio_threads/shadow_root.py +154 -0
- osn_selenium/instances/trio_threads/storage.py +109 -0
- osn_selenium/instances/trio_threads/switch_to.py +124 -0
- osn_selenium/instances/trio_threads/web_driver_wait.py +101 -0
- osn_selenium/instances/trio_threads/web_element.py +217 -0
- osn_selenium/instances/trio_threads/web_extension.py +99 -0
- osn_selenium/instances/unified/__init__.py +1 -0
- osn_selenium/instances/unified/action_chains/__init__.py +22 -0
- osn_selenium/instances/unified/action_chains/base.py +31 -0
- osn_selenium/instances/unified/action_chains/click.py +27 -0
- osn_selenium/instances/unified/action_chains/drag_and_drop.py +24 -0
- osn_selenium/instances/unified/action_chains/hm_keyboard.py +30 -0
- osn_selenium/instances/unified/action_chains/hm_move.py +66 -0
- osn_selenium/instances/unified/action_chains/hm_scroll.py +79 -0
- osn_selenium/instances/unified/action_chains/keyboard.py +24 -0
- osn_selenium/instances/unified/action_chains/move.py +24 -0
- osn_selenium/instances/unified/action_chains/scroll.py +21 -0
- osn_selenium/instances/unified/action_chains/utils.py +19 -0
- osn_selenium/instances/unified/alert.py +29 -0
- osn_selenium/instances/unified/browser.py +33 -0
- osn_selenium/instances/unified/browsing_context.py +151 -0
- osn_selenium/instances/unified/dialog.py +42 -0
- osn_selenium/instances/unified/fedcm.py +48 -0
- osn_selenium/instances/unified/mobile.py +36 -0
- osn_selenium/instances/unified/network.py +50 -0
- osn_selenium/instances/unified/permissions.py +43 -0
- osn_selenium/instances/unified/script.py +38 -0
- osn_selenium/instances/unified/shadow_root.py +46 -0
- osn_selenium/instances/unified/storage.py +48 -0
- osn_selenium/instances/unified/switch_to.py +49 -0
- osn_selenium/instances/unified/web_driver_wait.py +45 -0
- osn_selenium/instances/unified/web_element.py +145 -0
- osn_selenium/instances/unified/web_extension.py +38 -0
- osn_selenium/javascript/__init__.py +1 -0
- osn_selenium/javascript/_functions.py +63 -0
- osn_selenium/javascript/fingerprint/__init__.py +120 -0
- osn_selenium/javascript/fingerprint/_decorators.py +41 -0
- osn_selenium/javascript/fingerprint/_detect/__init__.py +1 -0
- osn_selenium/javascript/fingerprint/_detect/functions.py +253 -0
- osn_selenium/javascript/fingerprint/_detect/templates.py +128 -0
- osn_selenium/javascript/fingerprint/_functions.py +35 -0
- osn_selenium/javascript/fingerprint/_typehints.py +27 -0
- osn_selenium/javascript/fingerprint/registry/__init__.py +7 -0
- osn_selenium/javascript/fingerprint/registry/_core_functions.py +236 -0
- osn_selenium/javascript/fingerprint/registry/_functions.py +923 -0
- osn_selenium/javascript/fingerprint/registry/_typehints.py +6 -0
- osn_selenium/javascript/fingerprint/registry/_utils.py +6 -0
- osn_selenium/javascript/fingerprint/registry/models.py +41 -0
- osn_selenium/javascript/fingerprint/spoof/__init__.py +1 -0
- osn_selenium/javascript/fingerprint/spoof/_functions.py +172 -0
- osn_selenium/javascript/fingerprint/spoof/_templates.py +134 -0
- osn_selenium/javascript/fingerprint/spoof/_typehints.py +22 -0
- osn_selenium/javascript/fingerprint/spoof/core_rules.py +141 -0
- osn_selenium/javascript/fingerprint/spoof/noise.py +51 -0
- osn_selenium/javascript/fingerprint/spoof/rules.py +313 -0
- osn_selenium/javascript/functions.py +44 -0
- osn_selenium/javascript/models.py +35 -0
- osn_selenium/javascript/scripts/start_fingerprint_detection.js +56 -0
- osn_selenium/models.py +94 -0
- osn_selenium/trio_threads_mixin.py +159 -0
- osn_selenium/webdrivers/_args_helpers.py +181 -0
- osn_selenium/webdrivers/_bridges.py +57 -0
- osn_selenium/webdrivers/_decorators.py +83 -0
- osn_selenium/webdrivers/_executable_tables/__init__.py +1 -0
- osn_selenium/webdrivers/_executable_tables/functions.py +113 -0
- osn_selenium/webdrivers/_executable_tables/models.py +19 -0
- osn_selenium/webdrivers/_typehints.py +10 -0
- osn_selenium/webdrivers/protocols.py +50 -0
- osn_selenium/webdrivers/sync/__init__.py +1 -0
- osn_selenium/webdrivers/sync/blink/__init__.py +124 -0
- osn_selenium/webdrivers/sync/blink/base.py +140 -0
- osn_selenium/webdrivers/sync/blink/casting.py +34 -0
- osn_selenium/webdrivers/sync/blink/features.py +28 -0
- osn_selenium/webdrivers/sync/blink/lifecycle.py +66 -0
- osn_selenium/webdrivers/sync/blink/logging.py +25 -0
- osn_selenium/webdrivers/sync/blink/network.py +28 -0
- osn_selenium/webdrivers/sync/blink/settings.py +63 -0
- osn_selenium/webdrivers/sync/chrome/__init__.py +102 -0
- osn_selenium/webdrivers/sync/chrome/base.py +118 -0
- osn_selenium/webdrivers/sync/chrome/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/chrome/settings.py +58 -0
- osn_selenium/webdrivers/sync/core/__init__.py +100 -0
- osn_selenium/webdrivers/sync/core/actions.py +59 -0
- osn_selenium/webdrivers/sync/core/auth.py +77 -0
- osn_selenium/webdrivers/sync/core/base.py +175 -0
- osn_selenium/webdrivers/sync/core/capture.py +37 -0
- osn_selenium/webdrivers/sync/core/comonents.py +57 -0
- osn_selenium/webdrivers/sync/core/devtools.py +47 -0
- osn_selenium/webdrivers/sync/core/element.py +42 -0
- osn_selenium/webdrivers/sync/core/file.py +40 -0
- osn_selenium/webdrivers/sync/core/lifecycle.py +59 -0
- osn_selenium/webdrivers/sync/core/navigation.py +36 -0
- osn_selenium/webdrivers/sync/core/script.py +53 -0
- osn_selenium/webdrivers/sync/core/settings.py +35 -0
- osn_selenium/webdrivers/sync/core/storage.py +48 -0
- osn_selenium/webdrivers/sync/core/timeouts.py +59 -0
- osn_selenium/webdrivers/sync/core/window.py +99 -0
- osn_selenium/webdrivers/sync/edge/__init__.py +102 -0
- osn_selenium/webdrivers/sync/edge/base.py +114 -0
- osn_selenium/webdrivers/sync/edge/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/edge/settings.py +58 -0
- osn_selenium/webdrivers/sync/yandex/__init__.py +102 -0
- osn_selenium/webdrivers/sync/yandex/base.py +111 -0
- osn_selenium/webdrivers/sync/yandex/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/yandex/settings.py +58 -0
- osn_selenium/webdrivers/trio_threads/__init__.py +1 -0
- osn_selenium/webdrivers/trio_threads/blink/__init__.py +134 -0
- osn_selenium/webdrivers/trio_threads/blink/base.py +143 -0
- osn_selenium/webdrivers/trio_threads/blink/casting.py +35 -0
- osn_selenium/webdrivers/trio_threads/blink/features.py +29 -0
- osn_selenium/webdrivers/trio_threads/blink/lifecycle.py +66 -0
- osn_selenium/webdrivers/trio_threads/blink/logging.py +26 -0
- osn_selenium/webdrivers/trio_threads/blink/network.py +29 -0
- osn_selenium/webdrivers/trio_threads/blink/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/chrome/__init__.py +114 -0
- osn_selenium/webdrivers/trio_threads/chrome/base.py +119 -0
- osn_selenium/webdrivers/trio_threads/chrome/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/chrome/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/core/__init__.py +115 -0
- osn_selenium/webdrivers/trio_threads/core/actions.py +72 -0
- osn_selenium/webdrivers/trio_threads/core/auth.py +88 -0
- osn_selenium/webdrivers/trio_threads/core/base.py +199 -0
- osn_selenium/webdrivers/trio_threads/core/capture.py +38 -0
- osn_selenium/webdrivers/trio_threads/core/comonents.py +92 -0
- osn_selenium/webdrivers/trio_threads/core/devtools.py +53 -0
- osn_selenium/webdrivers/trio_threads/core/element.py +58 -0
- osn_selenium/webdrivers/trio_threads/core/file.py +45 -0
- osn_selenium/webdrivers/trio_threads/core/lifecycle.py +60 -0
- osn_selenium/webdrivers/trio_threads/core/navigation.py +41 -0
- osn_selenium/webdrivers/trio_threads/core/script.py +59 -0
- osn_selenium/webdrivers/trio_threads/core/settings.py +36 -0
- osn_selenium/webdrivers/trio_threads/core/storage.py +54 -0
- osn_selenium/webdrivers/trio_threads/core/timeouts.py +60 -0
- osn_selenium/webdrivers/trio_threads/core/window.py +105 -0
- osn_selenium/webdrivers/trio_threads/edge/__init__.py +114 -0
- osn_selenium/webdrivers/trio_threads/edge/base.py +115 -0
- osn_selenium/webdrivers/trio_threads/edge/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/edge/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/yandex/__init__.py +114 -0
- osn_selenium/webdrivers/trio_threads/yandex/base.py +112 -0
- osn_selenium/webdrivers/trio_threads/yandex/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/yandex/settings.py +63 -0
- osn_selenium/webdrivers/unified/__init__.py +1 -0
- osn_selenium/webdrivers/unified/blink/__init__.py +1 -0
- osn_selenium/webdrivers/unified/blink/base.py +135 -0
- osn_selenium/webdrivers/unified/blink/casting.py +30 -0
- osn_selenium/webdrivers/unified/blink/features.py +22 -0
- osn_selenium/webdrivers/unified/blink/lifecycle.py +114 -0
- osn_selenium/webdrivers/unified/blink/logging.py +18 -0
- osn_selenium/webdrivers/unified/blink/network.py +22 -0
- osn_selenium/webdrivers/unified/blink/settings.py +86 -0
- osn_selenium/webdrivers/unified/chrome/__init__.py +1 -0
- osn_selenium/webdrivers/unified/chrome/base.py +58 -0
- osn_selenium/webdrivers/unified/chrome/lifecycle.py +88 -0
- osn_selenium/webdrivers/unified/chrome/settings.py +48 -0
- osn_selenium/webdrivers/unified/core/__init__.py +1 -0
- osn_selenium/webdrivers/unified/core/actions.py +43 -0
- osn_selenium/webdrivers/unified/core/auth.py +70 -0
- osn_selenium/webdrivers/unified/core/base.py +139 -0
- osn_selenium/webdrivers/unified/core/capture.py +32 -0
- osn_selenium/webdrivers/unified/core/components.py +32 -0
- osn_selenium/webdrivers/unified/core/devtools.py +35 -0
- osn_selenium/webdrivers/unified/core/element.py +24 -0
- osn_selenium/webdrivers/unified/core/file.py +35 -0
- osn_selenium/webdrivers/unified/core/lifecycle.py +84 -0
- osn_selenium/webdrivers/unified/core/navigation.py +31 -0
- osn_selenium/webdrivers/unified/core/script.py +32 -0
- osn_selenium/webdrivers/unified/core/settings.py +44 -0
- osn_selenium/webdrivers/unified/core/storage.py +37 -0
- osn_selenium/webdrivers/unified/core/timeouts.py +56 -0
- osn_selenium/webdrivers/unified/core/window.py +135 -0
- osn_selenium/webdrivers/unified/edge/__init__.py +1 -0
- osn_selenium/webdrivers/unified/edge/base.py +56 -0
- osn_selenium/webdrivers/unified/edge/lifecycle.py +88 -0
- osn_selenium/webdrivers/unified/edge/settings.py +48 -0
- osn_selenium/webdrivers/unified/yandex/__init__.py +1 -0
- osn_selenium/webdrivers/unified/yandex/base.py +58 -0
- osn_selenium/webdrivers/unified/yandex/lifecycle.py +58 -0
- osn_selenium/webdrivers/unified/yandex/settings.py +48 -0
- osn_selenium-1.1.0.dist-info/METADATA +252 -0
- osn_selenium-1.1.0.dist-info/RECORD +615 -0
- {osn_selenium-0.0.0.dist-info → osn_selenium-1.1.0.dist-info}/WHEEL +1 -1
- osn_selenium/captcha_workers/__init__.py +0 -26
- osn_selenium/dev_tools/_types.py +0 -22
- osn_selenium/dev_tools/errors.py +0 -89
- osn_selenium/dev_tools/logger.py +0 -558
- osn_selenium/dev_tools/manager.py +0 -1551
- osn_selenium/dev_tools/utils.py +0 -509
- osn_selenium/errors.py +0 -16
- osn_selenium/types.py +0 -118
- osn_selenium/webdrivers/BaseDriver/_utils.py +0 -37
- osn_selenium/webdrivers/BaseDriver/protocols.py +0 -2135
- osn_selenium/webdrivers/BaseDriver/trio_wrapper.py +0 -71
- osn_selenium/webdrivers/BaseDriver/webdriver.py +0 -2626
- osn_selenium/webdrivers/Blink/protocols.py +0 -330
- osn_selenium/webdrivers/Blink/webdriver.py +0 -637
- osn_selenium/webdrivers/Chrome/protocols.py +0 -228
- osn_selenium/webdrivers/Chrome/webdriver.py +0 -394
- osn_selenium/webdrivers/Edge/protocols.py +0 -228
- osn_selenium/webdrivers/Edge/webdriver.py +0 -394
- osn_selenium/webdrivers/Yandex/protocols.py +0 -211
- osn_selenium/webdrivers/Yandex/webdriver.py +0 -350
- osn_selenium/webdrivers/_functions.py +0 -504
- osn_selenium/webdrivers/types.py +0 -390
- osn_selenium-0.0.0.dist-info/METADATA +0 -710
- osn_selenium-0.0.0.dist-info/RECORD +0 -57
- /osn_selenium/{webdrivers/BaseDriver → abstract}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Blink → abstract/executors}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Chrome → abstract/instances}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Edge → abstract/webdriver}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Yandex → dev_tools/logger}/__init__.py +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/check_element_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_document_scroll_size.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_css.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_rect_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_random_element_point_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_position.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_rect.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_size.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/open_new_tab.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/stop_window_loading.js +0 -0
- {osn_selenium-0.0.0.dist-info → osn_selenium-1.1.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
from typing import (
|
|
2
|
+
Any,
|
|
3
|
+
List,
|
|
4
|
+
Optional,
|
|
5
|
+
Union
|
|
6
|
+
)
|
|
7
|
+
from osn_selenium.webdrivers._decorators import requires_driver
|
|
8
|
+
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
9
|
+
from selenium.webdriver.common.virtual_authenticator import (
|
|
10
|
+
Credential,
|
|
11
|
+
VirtualAuthenticatorOptions
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
__all__ = ["UnifiedCoreAuthMixin"]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class UnifiedCoreAuthMixin(UnifiedCoreBaseMixin):
|
|
19
|
+
@requires_driver
|
|
20
|
+
def _add_credential_impl(self, credential: Credential) -> None:
|
|
21
|
+
self._driver_impl.add_credential(credential=credential)
|
|
22
|
+
|
|
23
|
+
@requires_driver
|
|
24
|
+
def _add_virtual_authenticator_impl(self, options: VirtualAuthenticatorOptions) -> None:
|
|
25
|
+
self._driver_impl.add_virtual_authenticator(options=options)
|
|
26
|
+
|
|
27
|
+
@requires_driver
|
|
28
|
+
def _fedcm_dialog_impl(
|
|
29
|
+
self,
|
|
30
|
+
timeout: int = 5,
|
|
31
|
+
poll_frequency: float = 0.5,
|
|
32
|
+
ignored_exceptions: Any = None,
|
|
33
|
+
) -> Any:
|
|
34
|
+
return self._driver_impl.fedcm_dialog(
|
|
35
|
+
timeout=timeout,
|
|
36
|
+
poll_frequency=poll_frequency,
|
|
37
|
+
ignored_exceptions=ignored_exceptions,
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
@requires_driver
|
|
41
|
+
def _fedcm_impl(self) -> Any:
|
|
42
|
+
return self._driver_impl.fedcm
|
|
43
|
+
|
|
44
|
+
@requires_driver
|
|
45
|
+
def _get_credentials_impl(self) -> List[Credential]:
|
|
46
|
+
return self._driver_impl.get_credentials()
|
|
47
|
+
|
|
48
|
+
@requires_driver
|
|
49
|
+
def _remove_all_credentials_impl(self) -> None:
|
|
50
|
+
self._driver_impl.remove_all_credentials()
|
|
51
|
+
|
|
52
|
+
@requires_driver
|
|
53
|
+
def _remove_credential_impl(self, credential_id: Union[str, bytearray]) -> None:
|
|
54
|
+
self._driver_impl.remove_credential(credential_id=credential_id)
|
|
55
|
+
|
|
56
|
+
@requires_driver
|
|
57
|
+
def _remove_virtual_authenticator_impl(self) -> None:
|
|
58
|
+
self._driver_impl.remove_virtual_authenticator()
|
|
59
|
+
|
|
60
|
+
@requires_driver
|
|
61
|
+
def _set_user_verified_impl(self, verified: bool) -> None:
|
|
62
|
+
self._driver_impl.set_user_verified(verified=verified)
|
|
63
|
+
|
|
64
|
+
@requires_driver
|
|
65
|
+
def _supports_fedcm_impl(self) -> bool:
|
|
66
|
+
return self._driver_impl.supports_fedcm
|
|
67
|
+
|
|
68
|
+
@requires_driver
|
|
69
|
+
def _virtual_authenticator_id_impl(self) -> Optional[str]:
|
|
70
|
+
return self._driver_impl.virtual_authenticator_id
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
from osn_selenium._cdp_import import install_cdp_hook
|
|
2
|
+
from osn_selenium.models import WindowRect
|
|
3
|
+
from typing import (
|
|
4
|
+
Any,
|
|
5
|
+
Dict,
|
|
6
|
+
Mapping, Optional,
|
|
7
|
+
Type
|
|
8
|
+
)
|
|
9
|
+
from osn_selenium.flags.base import BrowserFlagsManager
|
|
10
|
+
from osn_selenium.flags.models.base import BrowserFlags
|
|
11
|
+
from selenium.webdriver.common.bidi.session import Session
|
|
12
|
+
from osn_selenium._typehints import (
|
|
13
|
+
ARCHITECTURES_TYPEHINT, PATH_TYPEHINT
|
|
14
|
+
)
|
|
15
|
+
from selenium.webdriver.remote.errorhandler import ErrorHandler
|
|
16
|
+
from osn_selenium.webdrivers._decorators import requires_driver
|
|
17
|
+
from selenium.webdriver.remote.locator_converter import LocatorConverter
|
|
18
|
+
from selenium.webdriver.remote.remote_connection import RemoteConnection
|
|
19
|
+
from osn_selenium.exceptions.webdriver import (
|
|
20
|
+
WebDriverNotStartedError
|
|
21
|
+
)
|
|
22
|
+
from selenium.webdriver.remote.webdriver import (
|
|
23
|
+
WebDriver as legacyWebDriver
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
__all__ = ["UnifiedCoreBaseMixin"]
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class UnifiedCoreBaseMixin:
|
|
31
|
+
def __init__(
|
|
32
|
+
self,
|
|
33
|
+
webdriver_path: str,
|
|
34
|
+
architecture: ARCHITECTURES_TYPEHINT,
|
|
35
|
+
flags_manager_type: Type[BrowserFlagsManager] = BrowserFlagsManager,
|
|
36
|
+
flags: Optional[BrowserFlags] = None,
|
|
37
|
+
implicitly_wait: int = 5,
|
|
38
|
+
page_load_timeout: int = 5,
|
|
39
|
+
script_timeout: int = 5,
|
|
40
|
+
window_rect: Optional[WindowRect] = None,
|
|
41
|
+
cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
|
|
42
|
+
ignore_cdp_version_package_missing: bool = True,
|
|
43
|
+
) -> None:
|
|
44
|
+
self._window_rect = window_rect
|
|
45
|
+
self._webdriver_path = webdriver_path
|
|
46
|
+
self._webdriver_flags_manager = flags_manager_type()
|
|
47
|
+
self._driver: Optional[legacyWebDriver] = None
|
|
48
|
+
self._architecture = architecture
|
|
49
|
+
self._base_implicitly_wait = float(implicitly_wait)
|
|
50
|
+
self._base_page_load_timeout = float(page_load_timeout)
|
|
51
|
+
self._base_script_timeout = float(script_timeout)
|
|
52
|
+
self._is_active = False
|
|
53
|
+
|
|
54
|
+
if flags is not None:
|
|
55
|
+
self._webdriver_flags_manager.update_flags(flags)
|
|
56
|
+
|
|
57
|
+
if not getattr(self, "cdp_hook_installed", False):
|
|
58
|
+
install_cdp_hook(cdp_paths=cdp_versioned_packages_paths, ignore_package_missing=ignore_cdp_version_package_missing)
|
|
59
|
+
setattr(self, "cdp_hook_installed", True)
|
|
60
|
+
|
|
61
|
+
@property
|
|
62
|
+
def _architecture_impl(self) -> ARCHITECTURES_TYPEHINT:
|
|
63
|
+
return self._architecture
|
|
64
|
+
|
|
65
|
+
@requires_driver
|
|
66
|
+
def _capabilities_impl(self) -> Dict[str, Any]:
|
|
67
|
+
return self._driver_impl.capabilities
|
|
68
|
+
|
|
69
|
+
@requires_driver
|
|
70
|
+
def _caps_get_impl(self) -> Dict[str, Any]:
|
|
71
|
+
return self._driver_impl.caps
|
|
72
|
+
|
|
73
|
+
@requires_driver
|
|
74
|
+
def _caps_set_impl(self, value: Dict[str, Any]) -> None:
|
|
75
|
+
self._driver_impl.caps = value
|
|
76
|
+
|
|
77
|
+
@requires_driver
|
|
78
|
+
def _command_executor_get_impl(self) -> RemoteConnection:
|
|
79
|
+
return self._driver_impl.command_executor
|
|
80
|
+
|
|
81
|
+
@requires_driver
|
|
82
|
+
def _command_executor_set_impl(self, value: RemoteConnection) -> None:
|
|
83
|
+
self._driver_impl.command_executor = value
|
|
84
|
+
|
|
85
|
+
@property
|
|
86
|
+
def _driver_impl(self) -> Optional[legacyWebDriver]:
|
|
87
|
+
return self._driver
|
|
88
|
+
|
|
89
|
+
def _ensure_driver(self) -> None:
|
|
90
|
+
if self._driver is None:
|
|
91
|
+
raise WebDriverNotStartedError()
|
|
92
|
+
|
|
93
|
+
@requires_driver
|
|
94
|
+
def _error_handler_get_impl(self) -> ErrorHandler:
|
|
95
|
+
return self._driver_impl.error_handler
|
|
96
|
+
|
|
97
|
+
@requires_driver
|
|
98
|
+
def _error_handler_set_impl(self, value: ErrorHandler) -> None:
|
|
99
|
+
self._driver_impl.error_handler = value
|
|
100
|
+
|
|
101
|
+
@requires_driver
|
|
102
|
+
def _execute_impl(self, driver_command: str, params: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
|
|
103
|
+
return self._driver_impl.execute(driver_command=driver_command, params=params)
|
|
104
|
+
|
|
105
|
+
@property
|
|
106
|
+
def _is_active_impl(self) -> bool:
|
|
107
|
+
return self._is_active
|
|
108
|
+
|
|
109
|
+
@requires_driver
|
|
110
|
+
def _locator_converter_get_impl(self) -> LocatorConverter:
|
|
111
|
+
return self._driver_impl.locator_converter
|
|
112
|
+
|
|
113
|
+
@requires_driver
|
|
114
|
+
def _locator_converter_set_impl(self, value: LocatorConverter) -> None:
|
|
115
|
+
self._driver_impl.locator_converter = value
|
|
116
|
+
|
|
117
|
+
@requires_driver
|
|
118
|
+
def _name_impl(self) -> str:
|
|
119
|
+
return self._driver_impl.name
|
|
120
|
+
|
|
121
|
+
@requires_driver
|
|
122
|
+
def _pinned_scripts_get_impl(self) -> Dict[str, Any]:
|
|
123
|
+
return self._driver_impl.pinned_scripts
|
|
124
|
+
|
|
125
|
+
@requires_driver
|
|
126
|
+
def _pinned_scripts_set_impl(self, value: Dict[str, Any]) -> None:
|
|
127
|
+
self._driver_impl.pinned_scripts = value
|
|
128
|
+
|
|
129
|
+
@requires_driver
|
|
130
|
+
def _session_id_get_impl(self) -> Optional[str]:
|
|
131
|
+
return self._driver_impl.session_id
|
|
132
|
+
|
|
133
|
+
@requires_driver
|
|
134
|
+
def _session_id_set_impl(self, value: Optional[str]) -> None:
|
|
135
|
+
self._driver_impl.session_id = value
|
|
136
|
+
|
|
137
|
+
@requires_driver
|
|
138
|
+
def _session_impl(self) -> Session:
|
|
139
|
+
return self._driver_impl._session
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from typing import Any, Optional
|
|
2
|
+
from osn_selenium.webdrivers._decorators import requires_driver
|
|
3
|
+
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
__all__ = ["UnifiedCoreCaptureMixin"]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class UnifiedCoreCaptureMixin(UnifiedCoreBaseMixin):
|
|
10
|
+
@requires_driver
|
|
11
|
+
def _get_screenshot_as_base64_impl(self) -> str:
|
|
12
|
+
return self._driver_impl.get_screenshot_as_base64()
|
|
13
|
+
|
|
14
|
+
@requires_driver
|
|
15
|
+
def _get_screenshot_as_file_impl(self, filename: str) -> bool:
|
|
16
|
+
return self._driver_impl.get_screenshot_as_file(filename=filename)
|
|
17
|
+
|
|
18
|
+
@requires_driver
|
|
19
|
+
def _get_screenshot_as_png_impl(self) -> bytes:
|
|
20
|
+
return self._driver_impl.get_screenshot_as_png()
|
|
21
|
+
|
|
22
|
+
@requires_driver
|
|
23
|
+
def _page_source_impl(self) -> str:
|
|
24
|
+
return self._driver_impl.page_source
|
|
25
|
+
|
|
26
|
+
@requires_driver
|
|
27
|
+
def _print_page_impl(self, print_options: Optional[Any] = None) -> str:
|
|
28
|
+
return self._driver_impl.print_page(print_options=print_options)
|
|
29
|
+
|
|
30
|
+
@requires_driver
|
|
31
|
+
def _save_screenshot_impl(self, filename: str) -> bool:
|
|
32
|
+
return self._driver_impl.save_screenshot(filename=filename)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from typing import Any
|
|
2
|
+
from osn_selenium.webdrivers._decorators import requires_driver
|
|
3
|
+
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
__all__ = ["UnifiedCoreComponentsMixin"]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class UnifiedCoreComponentsMixin(UnifiedCoreBaseMixin):
|
|
10
|
+
@requires_driver
|
|
11
|
+
def _browser_impl(self) -> Any:
|
|
12
|
+
return self._driver_impl.browser
|
|
13
|
+
|
|
14
|
+
@requires_driver
|
|
15
|
+
def _browsing_context_impl(self) -> Any:
|
|
16
|
+
return self._driver_impl.browsing_context
|
|
17
|
+
|
|
18
|
+
@requires_driver
|
|
19
|
+
def _dialog_impl(self) -> Any:
|
|
20
|
+
return self._driver_impl.dialog
|
|
21
|
+
|
|
22
|
+
@requires_driver
|
|
23
|
+
def _mobile_impl(self) -> Any:
|
|
24
|
+
return self._driver_impl.mobile
|
|
25
|
+
|
|
26
|
+
@requires_driver
|
|
27
|
+
def _permissions_impl(self) -> Any:
|
|
28
|
+
return self._driver_impl.permissions
|
|
29
|
+
|
|
30
|
+
@requires_driver
|
|
31
|
+
def _webextension_impl(self) -> Any:
|
|
32
|
+
return self._driver_impl.webextension
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
from contextlib import asynccontextmanager
|
|
2
|
+
from typing import (
|
|
3
|
+
Any,
|
|
4
|
+
AsyncGenerator,
|
|
5
|
+
Dict,
|
|
6
|
+
Tuple
|
|
7
|
+
)
|
|
8
|
+
from osn_selenium.webdrivers._decorators import requires_driver
|
|
9
|
+
from osn_selenium.webdrivers._args_helpers import build_cdp_kwargs
|
|
10
|
+
from selenium.webdriver.remote.bidi_connection import BidiConnection
|
|
11
|
+
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
12
|
+
from selenium.webdriver.remote.websocket_connection import WebSocketConnection
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
__all__ = ["UnifiedCoreDevToolsMixin"]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class UnifiedCoreDevToolsMixin(UnifiedCoreBaseMixin):
|
|
19
|
+
@asynccontextmanager
|
|
20
|
+
@requires_driver
|
|
21
|
+
async def _bidi_connection_impl(self) -> AsyncGenerator[BidiConnection, Any]:
|
|
22
|
+
async with self._driver_impl.bidi_connection() as bidi_connection:
|
|
23
|
+
yield bidi_connection
|
|
24
|
+
|
|
25
|
+
@requires_driver
|
|
26
|
+
def _execute_cdp_cmd_impl(self, cmd: str, cmd_args: Dict[str, Any]) -> Any:
|
|
27
|
+
return self._driver_impl.execute_cdp_cmd(cmd=cmd, cmd_args=build_cdp_kwargs(**cmd_args))
|
|
28
|
+
|
|
29
|
+
@requires_driver
|
|
30
|
+
def _network_impl(self) -> Any:
|
|
31
|
+
return self._driver_impl.network
|
|
32
|
+
|
|
33
|
+
@requires_driver
|
|
34
|
+
def _start_devtools_impl(self) -> Tuple[Any, WebSocketConnection]:
|
|
35
|
+
return self._driver_impl.start_devtools()
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from typing import List, Optional
|
|
2
|
+
from selenium.webdriver.common.by import By
|
|
3
|
+
from osn_selenium.webdrivers._decorators import requires_driver
|
|
4
|
+
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
5
|
+
from selenium.webdriver.remote.webelement import (
|
|
6
|
+
WebElement as legacyWebElement
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
__all__ = ["UnifiedCoreElementMixin"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class UnifiedCoreElementMixin(UnifiedCoreBaseMixin):
|
|
14
|
+
@requires_driver
|
|
15
|
+
def _create_web_element_impl(self, element_id: str) -> legacyWebElement:
|
|
16
|
+
return self._driver_impl.create_web_element(element_id=element_id)
|
|
17
|
+
|
|
18
|
+
@requires_driver
|
|
19
|
+
def _find_element_impl(self, by: str = By.ID, value: Optional[str] = None) -> legacyWebElement:
|
|
20
|
+
return self._driver_impl.find_element(by=by, value=value)
|
|
21
|
+
|
|
22
|
+
@requires_driver
|
|
23
|
+
def _find_elements_impl(self, by: str = By.ID, value: Optional[str] = None) -> List[legacyWebElement]:
|
|
24
|
+
return self._driver_impl.find_elements(by=by, value=value)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
from contextlib import contextmanager
|
|
2
|
+
from typing import Any, Generator, List
|
|
3
|
+
from osn_selenium.webdrivers._decorators import requires_driver
|
|
4
|
+
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
__all__ = ["UnifiedCoreFileMixin"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class UnifiedCoreFileMixin(UnifiedCoreBaseMixin):
|
|
11
|
+
@requires_driver
|
|
12
|
+
def _delete_downloadable_files_impl(self) -> None:
|
|
13
|
+
self._driver_impl.delete_downloadable_files()
|
|
14
|
+
|
|
15
|
+
@requires_driver
|
|
16
|
+
def _download_file_impl(self, file_name: str, target_directory: str) -> None:
|
|
17
|
+
self._driver_impl.download_file(file_name=file_name, target_directory=target_directory)
|
|
18
|
+
|
|
19
|
+
@contextmanager
|
|
20
|
+
@requires_driver
|
|
21
|
+
def _file_detector_context_impl(self, file_detector_class: Any, *args: Any, **kwargs: Any) -> Generator[None, Any, None]:
|
|
22
|
+
with self._driver_impl.file_detector_context(file_detector_class, *args, **kwargs) as file_detector:
|
|
23
|
+
yield file_detector
|
|
24
|
+
|
|
25
|
+
@requires_driver
|
|
26
|
+
def _file_detector_get_impl(self) -> Any:
|
|
27
|
+
return self._driver_impl.file_detector
|
|
28
|
+
|
|
29
|
+
@requires_driver
|
|
30
|
+
def _file_detector_set_impl(self, value: Any) -> None:
|
|
31
|
+
self._driver_impl.file_detector = value
|
|
32
|
+
|
|
33
|
+
@requires_driver
|
|
34
|
+
def _get_downloadable_files_impl(self) -> List[str]:
|
|
35
|
+
return self._driver_impl.get_downloadable_files()
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
from osn_selenium.models import WindowRect
|
|
2
|
+
from typing import (
|
|
3
|
+
Any,
|
|
4
|
+
Dict,
|
|
5
|
+
Optional,
|
|
6
|
+
Union
|
|
7
|
+
)
|
|
8
|
+
from osn_selenium.flags.models.base import BrowserFlags
|
|
9
|
+
from osn_selenium.webdrivers._decorators import requires_driver
|
|
10
|
+
from selenium.webdriver.remote.remote_connection import RemoteConnection
|
|
11
|
+
from osn_selenium.exceptions.logic import (
|
|
12
|
+
AbstractImplementationError
|
|
13
|
+
)
|
|
14
|
+
from selenium.webdriver.remote.webdriver import (
|
|
15
|
+
WebDriver as legacyWebDriver
|
|
16
|
+
)
|
|
17
|
+
from osn_selenium.webdrivers.unified.core.settings import (
|
|
18
|
+
UnifiedCoreSettingsMixin
|
|
19
|
+
)
|
|
20
|
+
from osn_selenium.webdrivers.unified.core.timeouts import (
|
|
21
|
+
UnifiedCoreTimeoutsMixin
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
__all__ = ["UnifiedCoreLifecycleMixin"]
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class UnifiedCoreLifecycleMixin(UnifiedCoreSettingsMixin, UnifiedCoreTimeoutsMixin):
|
|
29
|
+
def _remote_connect_driver_impl(self, command_executor: Union[str, RemoteConnection]) -> None:
|
|
30
|
+
self._driver = legacyWebDriver(
|
|
31
|
+
command_executor=command_executor,
|
|
32
|
+
options=self._webdriver_flags_manager.options,
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
self._set_driver_timeouts_impl(
|
|
36
|
+
page_load_timeout=self._base_page_load_timeout,
|
|
37
|
+
implicit_wait_timeout=self._base_implicitly_wait,
|
|
38
|
+
script_timeout=self._base_script_timeout,
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
self._is_active = True
|
|
42
|
+
|
|
43
|
+
def _create_driver_impl(self) -> None:
|
|
44
|
+
raise AbstractImplementationError(method_name="_create_driver_impl", class_name=self.__class__.__name__)
|
|
45
|
+
|
|
46
|
+
def _start_webdriver_impl(
|
|
47
|
+
self,
|
|
48
|
+
flags: Optional[BrowserFlags] = None,
|
|
49
|
+
window_rect: Optional[WindowRect] = None,
|
|
50
|
+
) -> None:
|
|
51
|
+
if self._driver_impl is None:
|
|
52
|
+
self._update_settings_impl(flags=flags, window_rect=window_rect)
|
|
53
|
+
self._create_driver_impl()
|
|
54
|
+
|
|
55
|
+
@requires_driver
|
|
56
|
+
def _quit_impl(self) -> None:
|
|
57
|
+
self._driver_impl.quit()
|
|
58
|
+
|
|
59
|
+
def _close_webdriver_impl(self) -> None:
|
|
60
|
+
if self._driver_impl is not None:
|
|
61
|
+
self._quit_impl()
|
|
62
|
+
|
|
63
|
+
self._driver = None
|
|
64
|
+
self._is_active = False
|
|
65
|
+
|
|
66
|
+
def _restart_webdriver_impl(
|
|
67
|
+
self,
|
|
68
|
+
flags: Optional[BrowserFlags] = None,
|
|
69
|
+
window_rect: Optional[WindowRect] = None,
|
|
70
|
+
) -> None:
|
|
71
|
+
self._close_webdriver_impl()
|
|
72
|
+
self._start_webdriver_impl(flags=flags, window_rect=window_rect)
|
|
73
|
+
|
|
74
|
+
@requires_driver
|
|
75
|
+
def _start_client_impl(self) -> None:
|
|
76
|
+
self._driver_impl.start_client()
|
|
77
|
+
|
|
78
|
+
@requires_driver
|
|
79
|
+
def _start_session_impl(self, capabilities: Dict[str, Any]) -> None:
|
|
80
|
+
self._driver_impl.start_session(capabilities=capabilities)
|
|
81
|
+
|
|
82
|
+
@requires_driver
|
|
83
|
+
def _stop_client_impl(self) -> None:
|
|
84
|
+
self._driver_impl.stop_client()
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from osn_selenium.webdrivers._decorators import requires_driver
|
|
2
|
+
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
__all__ = ["UnifiedCoreNavigationMixin"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class UnifiedCoreNavigationMixin(UnifiedCoreBaseMixin):
|
|
9
|
+
@requires_driver
|
|
10
|
+
def _back_impl(self) -> None:
|
|
11
|
+
self._driver_impl.back()
|
|
12
|
+
|
|
13
|
+
@requires_driver
|
|
14
|
+
def _current_url_impl(self) -> str:
|
|
15
|
+
return self._driver_impl.current_url
|
|
16
|
+
|
|
17
|
+
@requires_driver
|
|
18
|
+
def _forward_impl(self) -> None:
|
|
19
|
+
self._driver_impl.forward()
|
|
20
|
+
|
|
21
|
+
@requires_driver
|
|
22
|
+
def _get_impl(self, url: str) -> None:
|
|
23
|
+
self._driver_impl.get(url=url)
|
|
24
|
+
|
|
25
|
+
@requires_driver
|
|
26
|
+
def _refresh_impl(self) -> None:
|
|
27
|
+
self._driver_impl.refresh()
|
|
28
|
+
|
|
29
|
+
@requires_driver
|
|
30
|
+
def _title_impl(self) -> str:
|
|
31
|
+
return self._driver_impl.title
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from typing import Any, List, Optional
|
|
2
|
+
from osn_selenium.webdrivers._decorators import requires_driver
|
|
3
|
+
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
__all__ = ["UnifiedCoreScriptMixin"]
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class UnifiedCoreScriptMixin(UnifiedCoreBaseMixin):
|
|
10
|
+
@requires_driver
|
|
11
|
+
def _execute_async_script_impl(self, script: str, *args: Any) -> Any:
|
|
12
|
+
return self._driver_impl.execute_async_script(script, *args)
|
|
13
|
+
|
|
14
|
+
@requires_driver
|
|
15
|
+
def _execute_script_impl(self, script: str, *args: Any) -> Any:
|
|
16
|
+
return self._driver_impl.execute_script(script, *args)
|
|
17
|
+
|
|
18
|
+
@requires_driver
|
|
19
|
+
def _get_pinned_scripts_impl(self) -> List[str]:
|
|
20
|
+
return self._driver_impl.get_pinned_scripts()
|
|
21
|
+
|
|
22
|
+
@requires_driver
|
|
23
|
+
def _pin_script_impl(self, script: str, script_key: Optional[Any] = None) -> Any:
|
|
24
|
+
return self._driver_impl.pin_script(script=script, script_key=script_key)
|
|
25
|
+
|
|
26
|
+
@requires_driver
|
|
27
|
+
def _script_impl(self) -> Any:
|
|
28
|
+
return self._driver_impl.script
|
|
29
|
+
|
|
30
|
+
@requires_driver
|
|
31
|
+
def _unpin_impl(self, script_key: Any) -> None:
|
|
32
|
+
self._driver_impl.unpin(script_key=script_key)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from osn_selenium.models import WindowRect
|
|
3
|
+
from osn_selenium.flags.models.base import BrowserFlags
|
|
4
|
+
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
5
|
+
from osn_selenium.exceptions.webdriver import (
|
|
6
|
+
WebDriverAlreadyRunningError
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
__all__ = ["UnifiedCoreSettingsMixin"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class UnifiedCoreSettingsMixin(UnifiedCoreBaseMixin):
|
|
14
|
+
def _reset_settings_impl(
|
|
15
|
+
self,
|
|
16
|
+
flags: Optional[BrowserFlags] = None,
|
|
17
|
+
window_rect: Optional[WindowRect] = None,
|
|
18
|
+
) -> None:
|
|
19
|
+
if not self._is_active_impl:
|
|
20
|
+
if window_rect is None:
|
|
21
|
+
window_rect = WindowRect()
|
|
22
|
+
|
|
23
|
+
if flags is not None:
|
|
24
|
+
self._webdriver_flags_manager.set_flags(flags=flags)
|
|
25
|
+
else:
|
|
26
|
+
self._webdriver_flags_manager.clear_flags()
|
|
27
|
+
|
|
28
|
+
self._window_rect = window_rect
|
|
29
|
+
else:
|
|
30
|
+
raise WebDriverAlreadyRunningError()
|
|
31
|
+
|
|
32
|
+
def _update_settings_impl(
|
|
33
|
+
self,
|
|
34
|
+
flags: Optional[BrowserFlags] = None,
|
|
35
|
+
window_rect: Optional[WindowRect] = None,
|
|
36
|
+
) -> None:
|
|
37
|
+
if not self._is_active_impl:
|
|
38
|
+
if flags is not None:
|
|
39
|
+
self._webdriver_flags_manager.update_flags(flags=flags)
|
|
40
|
+
|
|
41
|
+
if window_rect is not None:
|
|
42
|
+
self._window_rect = window_rect
|
|
43
|
+
else:
|
|
44
|
+
raise WebDriverAlreadyRunningError()
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from typing import (
|
|
2
|
+
Any,
|
|
3
|
+
Dict,
|
|
4
|
+
List,
|
|
5
|
+
Optional
|
|
6
|
+
)
|
|
7
|
+
from osn_selenium.webdrivers._decorators import requires_driver
|
|
8
|
+
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
__all__ = ["UnifiedCoreStorageMixin"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class UnifiedCoreStorageMixin(UnifiedCoreBaseMixin):
|
|
15
|
+
@requires_driver
|
|
16
|
+
def _add_cookie_impl(self, cookie_dict: Dict[str, Any]) -> None:
|
|
17
|
+
self._driver_impl.add_cookie(cookie_dict=cookie_dict)
|
|
18
|
+
|
|
19
|
+
@requires_driver
|
|
20
|
+
def _delete_all_cookies_impl(self) -> None:
|
|
21
|
+
self._driver_impl.delete_all_cookies()
|
|
22
|
+
|
|
23
|
+
@requires_driver
|
|
24
|
+
def _delete_cookie_impl(self, name: str) -> None:
|
|
25
|
+
self._driver_impl.delete_cookie(name=name)
|
|
26
|
+
|
|
27
|
+
@requires_driver
|
|
28
|
+
def _get_cookie_impl(self, name: str) -> Optional[Dict[str, Any]]:
|
|
29
|
+
return self._driver_impl.get_cookie(name=name)
|
|
30
|
+
|
|
31
|
+
@requires_driver
|
|
32
|
+
def _get_cookies_impl(self) -> List[Dict[str, Any]]:
|
|
33
|
+
return self._driver_impl.get_cookies()
|
|
34
|
+
|
|
35
|
+
@requires_driver
|
|
36
|
+
def _storage_impl(self) -> Any:
|
|
37
|
+
return self._driver_impl.storage
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from selenium.webdriver.common.timeouts import Timeouts
|
|
3
|
+
from osn_selenium.webdrivers._decorators import requires_driver
|
|
4
|
+
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
__all__ = ["UnifiedCoreTimeoutsMixin"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class UnifiedCoreTimeoutsMixin(UnifiedCoreBaseMixin):
|
|
11
|
+
@requires_driver
|
|
12
|
+
def _get_timeouts_impl(self) -> Timeouts:
|
|
13
|
+
return self._driver_impl.timeouts
|
|
14
|
+
|
|
15
|
+
@requires_driver
|
|
16
|
+
def _implicitly_wait_impl(self, time_to_wait: float) -> None:
|
|
17
|
+
self._driver_impl.implicitly_wait(time_to_wait=time_to_wait)
|
|
18
|
+
|
|
19
|
+
@requires_driver
|
|
20
|
+
def _set_page_load_timeout_impl(self, time_to_wait: float) -> None:
|
|
21
|
+
self._driver_impl.set_page_load_timeout(time_to_wait=time_to_wait)
|
|
22
|
+
|
|
23
|
+
@requires_driver
|
|
24
|
+
def _set_script_timeout_impl(self, time_to_wait: float) -> None:
|
|
25
|
+
self._driver_impl.set_script_timeout(time_to_wait=time_to_wait)
|
|
26
|
+
|
|
27
|
+
@requires_driver
|
|
28
|
+
def _set_timeouts_impl(self, timeouts: Timeouts) -> None:
|
|
29
|
+
self._driver_impl.timeouts = timeouts
|
|
30
|
+
|
|
31
|
+
@requires_driver
|
|
32
|
+
def _set_driver_timeouts_impl(
|
|
33
|
+
self,
|
|
34
|
+
page_load_timeout: float,
|
|
35
|
+
implicit_wait_timeout: float,
|
|
36
|
+
script_timeout: float,
|
|
37
|
+
) -> None:
|
|
38
|
+
self._driver_impl.set_page_load_timeout(page_load_timeout)
|
|
39
|
+
self._driver_impl.implicitly_wait(implicit_wait_timeout)
|
|
40
|
+
self._driver_impl.set_script_timeout(script_timeout)
|
|
41
|
+
|
|
42
|
+
def _update_times_impl(
|
|
43
|
+
self,
|
|
44
|
+
temp_implicitly_wait: Optional[float] = None,
|
|
45
|
+
temp_page_load_timeout: Optional[float] = None,
|
|
46
|
+
temp_script_timeout: Optional[float] = None,
|
|
47
|
+
) -> None:
|
|
48
|
+
implicitly_wait = temp_implicitly_wait if temp_implicitly_wait is not None else self._base_implicitly_wait
|
|
49
|
+
page_load_timeout = temp_page_load_timeout if temp_page_load_timeout is not None else self._base_page_load_timeout
|
|
50
|
+
script_timeout = temp_script_timeout if temp_script_timeout is not None else self._base_script_timeout
|
|
51
|
+
|
|
52
|
+
self._set_driver_timeouts_impl(
|
|
53
|
+
page_load_timeout=page_load_timeout,
|
|
54
|
+
implicit_wait_timeout=implicitly_wait,
|
|
55
|
+
script_timeout=script_timeout,
|
|
56
|
+
)
|