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,59 @@
|
|
|
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 selenium.webdriver.remote.remote_connection import RemoteConnection
|
|
10
|
+
from osn_selenium.webdrivers.unified.core.lifecycle import (
|
|
11
|
+
UnifiedCoreLifecycleMixin
|
|
12
|
+
)
|
|
13
|
+
from osn_selenium.abstract.webdriver.core.lifecycle import (
|
|
14
|
+
AbstractCoreLifecycleMixin
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
__all__ = ["CoreLifecycleMixin"]
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class CoreLifecycleMixin(UnifiedCoreLifecycleMixin, AbstractCoreLifecycleMixin):
|
|
22
|
+
"""
|
|
23
|
+
Mixin for managing the lifecycle of the Core WebDriver.
|
|
24
|
+
|
|
25
|
+
Handles the creation, startup, shutdown, and restarting processes of the
|
|
26
|
+
underlying browser instance, ensuring clean session management.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
def close_webdriver(self) -> None:
|
|
30
|
+
self._close_webdriver_impl()
|
|
31
|
+
|
|
32
|
+
def quit(self) -> None:
|
|
33
|
+
self._quit_impl()
|
|
34
|
+
|
|
35
|
+
def remote_connect_driver(self, command_executor: Union[str, RemoteConnection]) -> None:
|
|
36
|
+
self._remote_connect_driver_impl(command_executor=command_executor)
|
|
37
|
+
|
|
38
|
+
def restart_webdriver(
|
|
39
|
+
self,
|
|
40
|
+
flags: Optional[BrowserFlags] = None,
|
|
41
|
+
window_rect: Optional[WindowRect] = None,
|
|
42
|
+
) -> None:
|
|
43
|
+
self._restart_webdriver_impl(flags=flags, window_rect=window_rect)
|
|
44
|
+
|
|
45
|
+
def start_client(self) -> None:
|
|
46
|
+
self._start_client_impl()
|
|
47
|
+
|
|
48
|
+
def start_session(self, capabilities: Dict[str, Any]) -> None:
|
|
49
|
+
self._start_session_impl(capabilities=capabilities)
|
|
50
|
+
|
|
51
|
+
def start_webdriver(
|
|
52
|
+
self,
|
|
53
|
+
flags: Optional[BrowserFlags] = None,
|
|
54
|
+
window_rect: Optional[WindowRect] = None,
|
|
55
|
+
) -> None:
|
|
56
|
+
self._start_webdriver_impl(flags=flags, window_rect=window_rect)
|
|
57
|
+
|
|
58
|
+
def stop_client(self) -> None:
|
|
59
|
+
self._stop_client_impl()
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
from osn_selenium.webdrivers.unified.core.navigation import (
|
|
2
|
+
UnifiedCoreNavigationMixin
|
|
3
|
+
)
|
|
4
|
+
from osn_selenium.abstract.webdriver.core.navigation import (
|
|
5
|
+
AbstractCoreNavigationMixin
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
__all__ = ["CoreNavigationMixin"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class CoreNavigationMixin(UnifiedCoreNavigationMixin, AbstractCoreNavigationMixin):
|
|
13
|
+
"""
|
|
14
|
+
Mixin controlling browser navigation for Core WebDrivers.
|
|
15
|
+
|
|
16
|
+
Includes standard navigation commands such as visiting URLs, history
|
|
17
|
+
traversal (back/forward), and page refreshing.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
def back(self) -> None:
|
|
21
|
+
self._back_impl()
|
|
22
|
+
|
|
23
|
+
def current_url(self) -> str:
|
|
24
|
+
return self._current_url_impl()
|
|
25
|
+
|
|
26
|
+
def forward(self) -> None:
|
|
27
|
+
self._forward_impl()
|
|
28
|
+
|
|
29
|
+
def get(self, url: str) -> None:
|
|
30
|
+
self._get_impl(url=url)
|
|
31
|
+
|
|
32
|
+
def refresh(self) -> None:
|
|
33
|
+
self._refresh_impl()
|
|
34
|
+
|
|
35
|
+
def title(self) -> str:
|
|
36
|
+
return self._title_impl()
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
from typing import Any, List, Optional
|
|
2
|
+
from osn_selenium.instances.sync.script import Script
|
|
3
|
+
from osn_selenium.instances.convert import (
|
|
4
|
+
get_sync_instance_wrapper
|
|
5
|
+
)
|
|
6
|
+
from osn_selenium.webdrivers._args_helpers import (
|
|
7
|
+
unwrap_args,
|
|
8
|
+
wrap_sync_args
|
|
9
|
+
)
|
|
10
|
+
from osn_selenium.webdrivers.unified.core.script import (
|
|
11
|
+
UnifiedCoreScriptMixin
|
|
12
|
+
)
|
|
13
|
+
from osn_selenium.abstract.webdriver.core.script import (
|
|
14
|
+
AbstractCoreScriptMixin
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
__all__ = ["CoreScriptMixin"]
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class CoreScriptMixin(UnifiedCoreScriptMixin, AbstractCoreScriptMixin):
|
|
22
|
+
"""
|
|
23
|
+
Mixin for JavaScript execution and management in Core WebDrivers.
|
|
24
|
+
|
|
25
|
+
Allows execution of synchronous and asynchronous JavaScript, as well as
|
|
26
|
+
pinning scripts for repeated use.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
def execute_async_script(self, script: str, *args: Any) -> Any:
|
|
30
|
+
unwrapped = unwrap_args(args=args)
|
|
31
|
+
result = self._execute_async_script_impl(script, *unwrapped)
|
|
32
|
+
|
|
33
|
+
return wrap_sync_args(args=result)
|
|
34
|
+
|
|
35
|
+
def execute_script(self, script: str, *args: Any) -> Any:
|
|
36
|
+
unwrapped = unwrap_args(args=args)
|
|
37
|
+
result = self._execute_script_impl(script, *unwrapped)
|
|
38
|
+
|
|
39
|
+
return wrap_sync_args(args=result)
|
|
40
|
+
|
|
41
|
+
def get_pinned_scripts(self) -> List[str]:
|
|
42
|
+
return self._get_pinned_scripts_impl()
|
|
43
|
+
|
|
44
|
+
def pin_script(self, script: str, script_key: Optional[Any] = None) -> Any:
|
|
45
|
+
return self._pin_script_impl(script=script, script_key=script_key)
|
|
46
|
+
|
|
47
|
+
def script(self) -> Script:
|
|
48
|
+
legacy = self._script_impl()
|
|
49
|
+
|
|
50
|
+
return get_sync_instance_wrapper(wrapper_class=Script, legacy_object=legacy)
|
|
51
|
+
|
|
52
|
+
def unpin(self, script_key: Any) -> None:
|
|
53
|
+
self._unpin_impl(script_key=script_key)
|
|
@@ -0,0 +1,35 @@
|
|
|
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.settings import (
|
|
5
|
+
UnifiedCoreSettingsMixin
|
|
6
|
+
)
|
|
7
|
+
from osn_selenium.abstract.webdriver.core.settings import (
|
|
8
|
+
AbstractCoreSettingsMixin
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
__all__ = ["CoreSettingsMixin"]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class CoreSettingsMixin(UnifiedCoreSettingsMixin, AbstractCoreSettingsMixin):
|
|
16
|
+
"""
|
|
17
|
+
Mixin for configuring and updating settings of the Core WebDriver.
|
|
18
|
+
|
|
19
|
+
Provides methods to modify browser flags, window rectangles, and other
|
|
20
|
+
configuration parameters either before startup or during a reset.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
def reset_settings(
|
|
24
|
+
self,
|
|
25
|
+
flags: Optional[BrowserFlags] = None,
|
|
26
|
+
window_rect: Optional[WindowRect] = None,
|
|
27
|
+
) -> None:
|
|
28
|
+
self._reset_settings_impl(flags=flags, window_rect=window_rect)
|
|
29
|
+
|
|
30
|
+
def update_settings(
|
|
31
|
+
self,
|
|
32
|
+
flags: Optional[BrowserFlags] = None,
|
|
33
|
+
window_rect: Optional[WindowRect] = None,
|
|
34
|
+
) -> None:
|
|
35
|
+
self._update_settings_impl(flags=flags, window_rect=window_rect)
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
from typing import (
|
|
2
|
+
Any,
|
|
3
|
+
Dict,
|
|
4
|
+
List,
|
|
5
|
+
Optional
|
|
6
|
+
)
|
|
7
|
+
from osn_selenium.instances.sync.storage import Storage
|
|
8
|
+
from osn_selenium.instances.convert import (
|
|
9
|
+
get_sync_instance_wrapper
|
|
10
|
+
)
|
|
11
|
+
from osn_selenium.webdrivers.unified.core.storage import (
|
|
12
|
+
UnifiedCoreStorageMixin
|
|
13
|
+
)
|
|
14
|
+
from osn_selenium.abstract.webdriver.core.storage import (
|
|
15
|
+
AbstractCoreStorageMixin
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
__all__ = ["CoreStorageMixin"]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class CoreStorageMixin(UnifiedCoreStorageMixin, AbstractCoreStorageMixin):
|
|
23
|
+
"""
|
|
24
|
+
Mixin for managing browser storage and cookies in Core WebDrivers.
|
|
25
|
+
|
|
26
|
+
Provides methods to add, retrieve, and delete cookies, as well as access
|
|
27
|
+
other storage mechanisms.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
def add_cookie(self, cookie_dict: Dict[str, Any]) -> None:
|
|
31
|
+
self._add_cookie_impl(cookie_dict=cookie_dict)
|
|
32
|
+
|
|
33
|
+
def delete_all_cookies(self) -> None:
|
|
34
|
+
self._delete_all_cookies_impl()
|
|
35
|
+
|
|
36
|
+
def delete_cookie(self, name: str) -> None:
|
|
37
|
+
self._delete_cookie_impl(name=name)
|
|
38
|
+
|
|
39
|
+
def get_cookie(self, name: str) -> Optional[Dict[str, Any]]:
|
|
40
|
+
return self._get_cookie_impl(name=name)
|
|
41
|
+
|
|
42
|
+
def get_cookies(self) -> List[Dict[str, Any]]:
|
|
43
|
+
return self._get_cookies_impl()
|
|
44
|
+
|
|
45
|
+
def storage(self) -> Storage:
|
|
46
|
+
legacy = self._storage_impl()
|
|
47
|
+
|
|
48
|
+
return get_sync_instance_wrapper(wrapper_class=Storage, legacy_object=legacy)
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from selenium.webdriver.common.timeouts import Timeouts
|
|
3
|
+
from osn_selenium.webdrivers.unified.core.timeouts import (
|
|
4
|
+
UnifiedCoreTimeoutsMixin
|
|
5
|
+
)
|
|
6
|
+
from osn_selenium.abstract.webdriver.core.timeouts import (
|
|
7
|
+
AbstractCoreTimeoutsMixin
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
__all__ = ["CoreTimeoutsMixin"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class CoreTimeoutsMixin(UnifiedCoreTimeoutsMixin, AbstractCoreTimeoutsMixin):
|
|
15
|
+
"""
|
|
16
|
+
Mixin for configuring execution timeouts in Core WebDrivers.
|
|
17
|
+
|
|
18
|
+
Manages implicit waits, page load timeouts, and script execution limits
|
|
19
|
+
to control driver behavior during delays.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
def get_timeouts(self) -> Timeouts:
|
|
23
|
+
return self._get_timeouts_impl()
|
|
24
|
+
|
|
25
|
+
def implicitly_wait(self, time_to_wait: float) -> None:
|
|
26
|
+
self._implicitly_wait_impl(time_to_wait=time_to_wait)
|
|
27
|
+
|
|
28
|
+
def set_driver_timeouts(
|
|
29
|
+
self,
|
|
30
|
+
page_load_timeout: float,
|
|
31
|
+
implicit_wait_timeout: float,
|
|
32
|
+
script_timeout: float,
|
|
33
|
+
) -> None:
|
|
34
|
+
self._set_driver_timeouts_impl(
|
|
35
|
+
page_load_timeout=page_load_timeout,
|
|
36
|
+
implicit_wait_timeout=implicit_wait_timeout,
|
|
37
|
+
script_timeout=script_timeout,
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
def set_page_load_timeout(self, time_to_wait: float) -> None:
|
|
41
|
+
self._set_page_load_timeout_impl(time_to_wait=time_to_wait)
|
|
42
|
+
|
|
43
|
+
def set_script_timeout(self, time_to_wait: float) -> None:
|
|
44
|
+
self._set_script_timeout_impl(time_to_wait=time_to_wait)
|
|
45
|
+
|
|
46
|
+
def set_timeouts(self, timeouts: Timeouts) -> None:
|
|
47
|
+
self._set_timeouts_impl(timeouts=timeouts)
|
|
48
|
+
|
|
49
|
+
def update_times(
|
|
50
|
+
self,
|
|
51
|
+
temp_implicitly_wait: Optional[float] = None,
|
|
52
|
+
temp_page_load_timeout: Optional[float] = None,
|
|
53
|
+
temp_script_timeout: Optional[float] = None,
|
|
54
|
+
) -> None:
|
|
55
|
+
self._update_times_impl(
|
|
56
|
+
temp_implicitly_wait=temp_implicitly_wait,
|
|
57
|
+
temp_page_load_timeout=temp_page_load_timeout,
|
|
58
|
+
temp_script_timeout=temp_script_timeout,
|
|
59
|
+
)
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
from typing import (
|
|
2
|
+
List,
|
|
3
|
+
Literal,
|
|
4
|
+
Optional,
|
|
5
|
+
Union
|
|
6
|
+
)
|
|
7
|
+
from osn_selenium.instances.sync.switch_to import SwitchTo
|
|
8
|
+
from osn_selenium.models import (
|
|
9
|
+
Position,
|
|
10
|
+
Rectangle,
|
|
11
|
+
Size
|
|
12
|
+
)
|
|
13
|
+
from osn_selenium.instances.convert import (
|
|
14
|
+
get_sync_instance_wrapper
|
|
15
|
+
)
|
|
16
|
+
from osn_selenium.webdrivers.unified.core.window import (
|
|
17
|
+
UnifiedCoreWindowMixin
|
|
18
|
+
)
|
|
19
|
+
from osn_selenium.abstract.webdriver.core.window import (
|
|
20
|
+
AbstractCoreWindowMixin
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
__all__ = ["CoreWindowMixin"]
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class CoreWindowMixin(UnifiedCoreWindowMixin, AbstractCoreWindowMixin):
|
|
28
|
+
"""
|
|
29
|
+
Mixin for window and tab management in Core WebDrivers.
|
|
30
|
+
|
|
31
|
+
Controls window dimensions, position, state (minimized/maximized), and
|
|
32
|
+
switching between active window handles or frames.
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
def close(self) -> None:
|
|
36
|
+
self._close_impl()
|
|
37
|
+
|
|
38
|
+
def close_all_windows(self) -> None:
|
|
39
|
+
self._close_all_windows_impl()
|
|
40
|
+
|
|
41
|
+
def close_window(self, window: Optional[Union[str, int]] = None) -> None:
|
|
42
|
+
self._close_window_impl(window=window)
|
|
43
|
+
|
|
44
|
+
def current_window_handle(self) -> str:
|
|
45
|
+
return self._current_window_handle_impl()
|
|
46
|
+
|
|
47
|
+
def fullscreen_window(self) -> None:
|
|
48
|
+
self._fullscreen_window_impl()
|
|
49
|
+
|
|
50
|
+
def get_window_handle(self, window: Optional[Union[str, int]] = None) -> str:
|
|
51
|
+
return self._get_window_handle_impl(window=window)
|
|
52
|
+
|
|
53
|
+
def get_window_position(self, windowHandle: str = "current") -> Position:
|
|
54
|
+
position = self._get_window_position_impl(windowHandle=windowHandle)
|
|
55
|
+
return Position.model_validate(position)
|
|
56
|
+
|
|
57
|
+
def get_window_rect(self) -> Rectangle:
|
|
58
|
+
rectangle = self._get_window_rect_impl()
|
|
59
|
+
return Rectangle.model_validate(rectangle)
|
|
60
|
+
|
|
61
|
+
def get_window_size(self, windowHandle: str = "current") -> Size:
|
|
62
|
+
size = self._get_window_size_impl(windowHandle=windowHandle)
|
|
63
|
+
return Size.model_validate(size)
|
|
64
|
+
|
|
65
|
+
def maximize_window(self) -> None:
|
|
66
|
+
self._maximize_window_impl()
|
|
67
|
+
|
|
68
|
+
def minimize_window(self) -> None:
|
|
69
|
+
self._minimize_window_impl()
|
|
70
|
+
|
|
71
|
+
def orientation(self) -> Literal["LANDSCAPE", "PORTRAIT"]:
|
|
72
|
+
return self._orientation_get_impl()
|
|
73
|
+
|
|
74
|
+
def set_orientation(self, value: Literal["LANDSCAPE", "PORTRAIT"]) -> None:
|
|
75
|
+
self._orientation_set_impl(value=value)
|
|
76
|
+
|
|
77
|
+
def set_window_position(self, x: int, y: int, windowHandle: str = "current") -> Position:
|
|
78
|
+
position = self._set_window_position_impl(x=x, y=y, windowHandle=windowHandle)
|
|
79
|
+
return Position.model_validate(position)
|
|
80
|
+
|
|
81
|
+
def set_window_rect(
|
|
82
|
+
self,
|
|
83
|
+
x: Optional[int] = None,
|
|
84
|
+
y: Optional[int] = None,
|
|
85
|
+
width: Optional[int] = None,
|
|
86
|
+
height: Optional[int] = None,
|
|
87
|
+
) -> Rectangle:
|
|
88
|
+
rectangle = self._set_window_rect_impl(x=x, y=y, width=width, height=height)
|
|
89
|
+
return Rectangle.model_validate(rectangle)
|
|
90
|
+
|
|
91
|
+
def set_window_size(self, width: int, height: int, windowHandle: str = "current") -> None:
|
|
92
|
+
self._set_window_size_impl(width=width, height=height, windowHandle=windowHandle)
|
|
93
|
+
|
|
94
|
+
def switch_to(self) -> SwitchTo:
|
|
95
|
+
legacy = self._switch_to_impl()
|
|
96
|
+
return get_sync_instance_wrapper(wrapper_class=SwitchTo, legacy_object=legacy)
|
|
97
|
+
|
|
98
|
+
def window_handles(self) -> List[str]:
|
|
99
|
+
return self._window_handles_impl()
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
from osn_selenium.models import WindowRect
|
|
2
|
+
from typing import (
|
|
3
|
+
Mapping,
|
|
4
|
+
Optional,
|
|
5
|
+
Type
|
|
6
|
+
)
|
|
7
|
+
from osn_selenium._typehints import PATH_TYPEHINT
|
|
8
|
+
from osn_selenium.flags.edge import EdgeFlagsManager
|
|
9
|
+
from osn_selenium.flags.models.edge import EdgeFlags
|
|
10
|
+
from osn_selenium.webdrivers.sync.blink import BlinkWebDriver
|
|
11
|
+
from osn_selenium.webdrivers.sync.edge.base import EdgeBaseMixin
|
|
12
|
+
from osn_selenium.webdrivers.sync.edge.settings import EdgeSettingsMixin
|
|
13
|
+
from osn_selenium.webdrivers.sync.edge.lifecycle import EdgeLifecycleMixin
|
|
14
|
+
from osn_selenium.abstract.webdriver.edge import (
|
|
15
|
+
AbstractEdgeWebDriver
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
__all__ = ["EdgeWebDriver"]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class EdgeWebDriver(
|
|
23
|
+
EdgeBaseMixin,
|
|
24
|
+
EdgeLifecycleMixin,
|
|
25
|
+
EdgeSettingsMixin,
|
|
26
|
+
BlinkWebDriver,
|
|
27
|
+
AbstractEdgeWebDriver,
|
|
28
|
+
):
|
|
29
|
+
def __init__(
|
|
30
|
+
self,
|
|
31
|
+
webdriver_path: str,
|
|
32
|
+
flags_manager_type: Type[EdgeFlagsManager] = EdgeFlagsManager,
|
|
33
|
+
use_browser_exe: bool = True,
|
|
34
|
+
browser_name_in_system: str = "Microsoft Edge",
|
|
35
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
36
|
+
flags: Optional[EdgeFlags] = None,
|
|
37
|
+
start_page_url: str = "about:blank",
|
|
38
|
+
implicitly_wait: int = 5,
|
|
39
|
+
page_load_timeout: int = 5,
|
|
40
|
+
script_timeout: int = 5,
|
|
41
|
+
window_rect: Optional[WindowRect] = None,
|
|
42
|
+
cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
|
|
43
|
+
ignore_cdp_version_package_missing: bool = True,
|
|
44
|
+
):
|
|
45
|
+
"""
|
|
46
|
+
Initializes the synchronous Edge WebDriver with specified configuration.
|
|
47
|
+
|
|
48
|
+
Args:
|
|
49
|
+
webdriver_path (str): Path to the EdgeDriver executable.
|
|
50
|
+
flags_manager_type (Type[EdgeFlagsManager]): The class type used for managing Edge flags.
|
|
51
|
+
Defaults to EdgeFlagsManager.
|
|
52
|
+
use_browser_exe (bool): Whether to use a specific browser executable path or auto-detect.
|
|
53
|
+
Defaults to True.
|
|
54
|
+
browser_name_in_system (str): The name of the browser in the system registry or path.
|
|
55
|
+
Defaults to "Microsoft Edge".
|
|
56
|
+
browser_exe (Optional[PATH_TYPEHINT]): Explicit path to the Edge browser executable.
|
|
57
|
+
If None, it may be auto-detected based on other parameters.
|
|
58
|
+
flags (Optional[EdgeFlags]): Initial set of flags to configure the Edge instance.
|
|
59
|
+
start_page_url (str): The URL to navigate to immediately upon startup.
|
|
60
|
+
Defaults to "about:blank".
|
|
61
|
+
implicitly_wait (int): Default implicit wait time in seconds. Defaults to 5.
|
|
62
|
+
page_load_timeout (int): Default page load timeout in seconds. Defaults to 5.
|
|
63
|
+
script_timeout (int): Default script execution timeout in seconds. Defaults to 5.
|
|
64
|
+
window_rect (Optional[WindowRect]): Initial window dimensions and position.
|
|
65
|
+
If None, browser defaults are used.
|
|
66
|
+
cdp_versioned_packages_paths (Optional[Mapping[int, PATH_TYPEHINT]]): Custom local paths for specific CDP versions packages.
|
|
67
|
+
ignore_cdp_version_package_missing (bool): Whether to ignore missing CDP package errors.
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
BlinkWebDriver.__init__(
|
|
71
|
+
self,
|
|
72
|
+
browser_exe=browser_exe,
|
|
73
|
+
browser_name_in_system=browser_name_in_system,
|
|
74
|
+
webdriver_path=webdriver_path,
|
|
75
|
+
use_browser_exe=use_browser_exe,
|
|
76
|
+
flags_manager_type=flags_manager_type,
|
|
77
|
+
flags=flags,
|
|
78
|
+
implicitly_wait=implicitly_wait,
|
|
79
|
+
page_load_timeout=page_load_timeout,
|
|
80
|
+
script_timeout=script_timeout,
|
|
81
|
+
window_rect=window_rect,
|
|
82
|
+
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
83
|
+
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
EdgeBaseMixin.__init__(
|
|
87
|
+
self,
|
|
88
|
+
browser_exe=browser_exe,
|
|
89
|
+
browser_name_in_system=browser_name_in_system,
|
|
90
|
+
use_browser_exe=use_browser_exe,
|
|
91
|
+
webdriver_path=webdriver_path,
|
|
92
|
+
architecture="sync",
|
|
93
|
+
flags_manager_type=flags_manager_type,
|
|
94
|
+
flags=flags,
|
|
95
|
+
start_page_url=start_page_url,
|
|
96
|
+
implicitly_wait=implicitly_wait,
|
|
97
|
+
page_load_timeout=page_load_timeout,
|
|
98
|
+
script_timeout=script_timeout,
|
|
99
|
+
window_rect=window_rect,
|
|
100
|
+
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
101
|
+
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
102
|
+
)
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
from osn_selenium.models import WindowRect
|
|
2
|
+
from typing import (
|
|
3
|
+
Mapping,
|
|
4
|
+
Optional,
|
|
5
|
+
Type
|
|
6
|
+
)
|
|
7
|
+
from selenium.webdriver import Edge as legacyEdge
|
|
8
|
+
from osn_selenium.flags.edge import EdgeFlagsManager
|
|
9
|
+
from osn_selenium.flags.models.edge import EdgeFlags
|
|
10
|
+
from osn_selenium.webdrivers.sync.blink.base import BlinkBaseMixin
|
|
11
|
+
from osn_selenium.webdrivers.unified.edge.base import UnifiedEdgeBaseMixin
|
|
12
|
+
from osn_selenium._typehints import (
|
|
13
|
+
ARCHITECTURES_TYPEHINT,
|
|
14
|
+
PATH_TYPEHINT
|
|
15
|
+
)
|
|
16
|
+
from osn_selenium.abstract.webdriver.edge.base import (
|
|
17
|
+
AbstractEdgeBaseMixin
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
__all__ = ["EdgeBaseMixin"]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class EdgeBaseMixin(UnifiedEdgeBaseMixin, BlinkBaseMixin, AbstractEdgeBaseMixin):
|
|
25
|
+
"""
|
|
26
|
+
Base mixin for Edge WebDrivers handling core initialization and state management.
|
|
27
|
+
|
|
28
|
+
This class serves as the foundation for browser-specific implementations, managing
|
|
29
|
+
the WebDriver executable path, configuration flags, timeouts, and the active
|
|
30
|
+
driver instance.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
def __init__(
|
|
34
|
+
self,
|
|
35
|
+
webdriver_path: str,
|
|
36
|
+
architecture: ARCHITECTURES_TYPEHINT,
|
|
37
|
+
flags_manager_type: Type[EdgeFlagsManager] = EdgeFlagsManager,
|
|
38
|
+
use_browser_exe: bool = True,
|
|
39
|
+
browser_name_in_system: str = "Microsoft Edge",
|
|
40
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
41
|
+
flags: Optional[EdgeFlags] = None,
|
|
42
|
+
start_page_url: str = "about:blank",
|
|
43
|
+
implicitly_wait: int = 5,
|
|
44
|
+
page_load_timeout: int = 5,
|
|
45
|
+
script_timeout: int = 5,
|
|
46
|
+
window_rect: Optional[WindowRect] = None,
|
|
47
|
+
cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
|
|
48
|
+
ignore_cdp_version_package_missing: bool = True,
|
|
49
|
+
):
|
|
50
|
+
"""
|
|
51
|
+
Initializes the synchronous Edge WebDriver mixin with specified configuration.
|
|
52
|
+
|
|
53
|
+
Args:
|
|
54
|
+
webdriver_path (str): Path to the EdgeDriver executable.
|
|
55
|
+
architecture (ARCHITECTURE_TYPEHINT): System architecture.
|
|
56
|
+
flags_manager_type (Type[EdgeFlagsManager]): The class type used for managing Edge flags.
|
|
57
|
+
Defaults to EdgeFlagsManager.
|
|
58
|
+
use_browser_exe (bool): Whether to use a specific browser executable path or auto-detect.
|
|
59
|
+
Defaults to True.
|
|
60
|
+
browser_name_in_system (str): The name of the browser in the system registry or path.
|
|
61
|
+
Defaults to "Microsoft Edge".
|
|
62
|
+
browser_exe (Optional[PATH_TYPEHINT]): Explicit path to the Edge browser executable.
|
|
63
|
+
If None, it may be auto-detected based on other parameters.
|
|
64
|
+
flags (Optional[EdgeFlags]): Initial set of flags to configure the Edge instance.
|
|
65
|
+
start_page_url (str): The URL to navigate to immediately upon startup.
|
|
66
|
+
Defaults to "about:blank".
|
|
67
|
+
implicitly_wait (int): Default implicit wait time in seconds. Defaults to 5.
|
|
68
|
+
page_load_timeout (int): Default page load timeout in seconds. Defaults to 5.
|
|
69
|
+
script_timeout (int): Default script execution timeout in seconds. Defaults to 5.
|
|
70
|
+
window_rect (Optional[WindowRect]): Initial window dimensions and position.
|
|
71
|
+
If None, browser defaults are used.
|
|
72
|
+
cdp_versioned_packages_paths (Optional[Mapping[int, PATH_TYPEHINT]]): Custom local paths for specific CDP versions packages.
|
|
73
|
+
ignore_cdp_version_package_missing (bool): Whether to ignore missing CDP package errors.
|
|
74
|
+
"""
|
|
75
|
+
|
|
76
|
+
BlinkBaseMixin.__init__(
|
|
77
|
+
self,
|
|
78
|
+
browser_exe=browser_exe,
|
|
79
|
+
browser_name_in_system=browser_name_in_system,
|
|
80
|
+
use_browser_exe=use_browser_exe,
|
|
81
|
+
webdriver_path=webdriver_path,
|
|
82
|
+
architecture=architecture,
|
|
83
|
+
flags_manager_type=flags_manager_type,
|
|
84
|
+
flags=flags,
|
|
85
|
+
start_page_url=start_page_url,
|
|
86
|
+
implicitly_wait=implicitly_wait,
|
|
87
|
+
page_load_timeout=page_load_timeout,
|
|
88
|
+
script_timeout=script_timeout,
|
|
89
|
+
window_rect=window_rect,
|
|
90
|
+
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
91
|
+
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
UnifiedEdgeBaseMixin.__init__(
|
|
95
|
+
self,
|
|
96
|
+
webdriver_path=webdriver_path,
|
|
97
|
+
architecture=architecture,
|
|
98
|
+
flags_manager_type=flags_manager_type,
|
|
99
|
+
use_browser_exe=use_browser_exe,
|
|
100
|
+
browser_name_in_system=browser_name_in_system,
|
|
101
|
+
browser_exe=browser_exe,
|
|
102
|
+
flags=flags,
|
|
103
|
+
start_page_url=start_page_url,
|
|
104
|
+
implicitly_wait=implicitly_wait,
|
|
105
|
+
page_load_timeout=page_load_timeout,
|
|
106
|
+
script_timeout=script_timeout,
|
|
107
|
+
window_rect=window_rect,
|
|
108
|
+
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
109
|
+
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
@property
|
|
113
|
+
def driver(self) -> Optional[legacyEdge]:
|
|
114
|
+
return self._driver_impl
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from osn_selenium.models import WindowRect
|
|
3
|
+
from osn_selenium._typehints import PATH_TYPEHINT
|
|
4
|
+
from osn_selenium.flags.models.edge import EdgeFlags
|
|
5
|
+
from osn_selenium.webdrivers.sync.blink import BlinkLifecycleMixin
|
|
6
|
+
from osn_selenium.webdrivers.unified.edge.lifecycle import (
|
|
7
|
+
UnifiedEdgeLifecycleMixin
|
|
8
|
+
)
|
|
9
|
+
from osn_selenium.abstract.webdriver.edge.lifecycle import (
|
|
10
|
+
AbstractEdgeLifecycleMixin
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
__all__ = ["EdgeLifecycleMixin"]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class EdgeLifecycleMixin(
|
|
18
|
+
UnifiedEdgeLifecycleMixin,
|
|
19
|
+
BlinkLifecycleMixin,
|
|
20
|
+
AbstractEdgeLifecycleMixin
|
|
21
|
+
):
|
|
22
|
+
"""
|
|
23
|
+
Mixin for managing the lifecycle of the Edge WebDriver.
|
|
24
|
+
|
|
25
|
+
Handles the creation, startup, shutdown, and restarting processes of the
|
|
26
|
+
underlying browser instance, ensuring clean session management.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
def restart_webdriver(
|
|
30
|
+
self,
|
|
31
|
+
flags: Optional[EdgeFlags] = None,
|
|
32
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
33
|
+
browser_name_in_system: Optional[str] = None,
|
|
34
|
+
use_browser_exe: Optional[bool] = None,
|
|
35
|
+
start_page_url: Optional[str] = None,
|
|
36
|
+
window_rect: Optional[WindowRect] = None,
|
|
37
|
+
) -> None:
|
|
38
|
+
self._restart_webdriver_impl(
|
|
39
|
+
flags=flags,
|
|
40
|
+
browser_exe=browser_exe,
|
|
41
|
+
browser_name_in_system=browser_name_in_system,
|
|
42
|
+
use_browser_exe=use_browser_exe,
|
|
43
|
+
start_page_url=start_page_url,
|
|
44
|
+
window_rect=window_rect,
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
def start_webdriver(
|
|
48
|
+
self,
|
|
49
|
+
flags: Optional[EdgeFlags] = None,
|
|
50
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
51
|
+
browser_name_in_system: Optional[str] = None,
|
|
52
|
+
use_browser_exe: Optional[bool] = None,
|
|
53
|
+
start_page_url: Optional[str] = None,
|
|
54
|
+
window_rect: Optional[WindowRect] = None,
|
|
55
|
+
) -> None:
|
|
56
|
+
self._start_webdriver_impl(
|
|
57
|
+
flags=flags,
|
|
58
|
+
browser_exe=browser_exe,
|
|
59
|
+
browser_name_in_system=browser_name_in_system,
|
|
60
|
+
use_browser_exe=use_browser_exe,
|
|
61
|
+
start_page_url=start_page_url,
|
|
62
|
+
window_rect=window_rect,
|
|
63
|
+
)
|