osn-selenium 0.0.0__py3-none-any.whl → 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- osn_selenium/_functions.py +84 -0
- osn_selenium/_typehints.py +19 -0
- osn_selenium/abstract/executors/cdp/__init__.py +435 -0
- osn_selenium/abstract/executors/cdp/accessibility.py +62 -0
- osn_selenium/abstract/executors/cdp/animation.py +47 -0
- osn_selenium/abstract/executors/cdp/audits.py +39 -0
- osn_selenium/abstract/executors/cdp/autofill.py +34 -0
- osn_selenium/abstract/executors/cdp/background_service.py +22 -0
- osn_selenium/abstract/executors/cdp/bluetooth_emulation.py +95 -0
- osn_selenium/abstract/executors/cdp/browser.py +122 -0
- osn_selenium/abstract/executors/cdp/cache_storage.py +49 -0
- osn_selenium/abstract/executors/cdp/cast.py +31 -0
- osn_selenium/abstract/executors/cdp/console.py +18 -0
- osn_selenium/abstract/executors/cdp/css.py +197 -0
- osn_selenium/abstract/executors/cdp/debugger.py +198 -0
- osn_selenium/abstract/executors/cdp/device_access.py +22 -0
- osn_selenium/abstract/executors/cdp/device_orientation.py +14 -0
- osn_selenium/abstract/executors/cdp/dom.py +305 -0
- osn_selenium/abstract/executors/cdp/dom_debugger.py +57 -0
- osn_selenium/abstract/executors/cdp/dom_snapshot.py +42 -0
- osn_selenium/abstract/executors/cdp/dom_storage.py +31 -0
- osn_selenium/abstract/executors/cdp/emulation.py +259 -0
- osn_selenium/abstract/executors/cdp/event_breakpoints.py +18 -0
- osn_selenium/abstract/executors/cdp/extensions.py +31 -0
- osn_selenium/abstract/executors/cdp/fed_cm.py +35 -0
- osn_selenium/abstract/executors/cdp/fetch.py +76 -0
- osn_selenium/abstract/executors/cdp/file_system.py +11 -0
- osn_selenium/abstract/executors/cdp/headless_experimental.py +30 -0
- osn_selenium/abstract/executors/cdp/heap_profiler.py +73 -0
- osn_selenium/abstract/executors/cdp/indexed_db.py +99 -0
- osn_selenium/abstract/executors/cdp/input.py +158 -0
- osn_selenium/abstract/executors/cdp/inspector.py +14 -0
- osn_selenium/abstract/executors/cdp/io.py +24 -0
- osn_selenium/abstract/executors/cdp/layer_tree.py +61 -0
- osn_selenium/abstract/executors/cdp/log.py +27 -0
- osn_selenium/abstract/executors/cdp/media.py +14 -0
- osn_selenium/abstract/executors/cdp/memory.py +61 -0
- osn_selenium/abstract/executors/cdp/network.py +252 -0
- osn_selenium/abstract/executors/cdp/overlay.py +166 -0
- osn_selenium/abstract/executors/cdp/page.py +347 -0
- osn_selenium/abstract/executors/cdp/performance.py +28 -0
- osn_selenium/abstract/executors/cdp/performance_timeline.py +11 -0
- osn_selenium/abstract/executors/cdp/preload.py +14 -0
- osn_selenium/abstract/executors/cdp/profiler.py +54 -0
- osn_selenium/abstract/executors/cdp/pwa.py +46 -0
- osn_selenium/abstract/executors/cdp/runtime.py +176 -0
- osn_selenium/abstract/executors/cdp/schema.py +11 -0
- osn_selenium/abstract/executors/cdp/security.py +26 -0
- osn_selenium/abstract/executors/cdp/service_worker.py +54 -0
- osn_selenium/abstract/executors/cdp/storage.py +175 -0
- osn_selenium/abstract/executors/cdp/system_info.py +24 -0
- osn_selenium/abstract/executors/cdp/target.py +125 -0
- osn_selenium/abstract/executors/cdp/tethering.py +14 -0
- osn_selenium/abstract/executors/cdp/tracing.py +48 -0
- osn_selenium/abstract/executors/cdp/web_audio.py +19 -0
- osn_selenium/abstract/executors/cdp/web_authn.py +76 -0
- osn_selenium/abstract/executors/javascript.py +203 -0
- osn_selenium/abstract/instances/action_chains/__init__.py +12 -0
- osn_selenium/abstract/instances/action_chains/base.py +25 -0
- osn_selenium/abstract/instances/action_chains/click.py +93 -0
- osn_selenium/abstract/instances/action_chains/drag_and_drop.py +46 -0
- osn_selenium/abstract/instances/action_chains/hm_keyboard.py +44 -0
- osn_selenium/abstract/instances/action_chains/hm_move.py +104 -0
- osn_selenium/abstract/instances/action_chains/hm_scroll.py +75 -0
- osn_selenium/abstract/instances/action_chains/keyboard.py +79 -0
- osn_selenium/abstract/instances/action_chains/move.py +60 -0
- osn_selenium/abstract/instances/action_chains/scroll.py +61 -0
- osn_selenium/abstract/instances/action_chains/utils.py +44 -0
- osn_selenium/abstract/instances/alert.py +67 -0
- osn_selenium/abstract/instances/browser.py +76 -0
- osn_selenium/abstract/instances/browsing_context.py +310 -0
- osn_selenium/abstract/instances/dialog.py +107 -0
- osn_selenium/abstract/instances/fedcm.py +133 -0
- osn_selenium/abstract/instances/mobile.py +79 -0
- osn_selenium/abstract/instances/network.py +100 -0
- osn_selenium/abstract/instances/permissions.py +52 -0
- osn_selenium/abstract/instances/script.py +109 -0
- osn_selenium/abstract/instances/shadow_root.py +81 -0
- osn_selenium/abstract/instances/storage.py +98 -0
- osn_selenium/abstract/instances/switch_to.py +104 -0
- osn_selenium/abstract/instances/web_driver_wait.py +57 -0
- osn_selenium/abstract/instances/web_element.py +395 -0
- osn_selenium/abstract/instances/web_extension.py +70 -0
- osn_selenium/abstract/webdriver/blink/__init__.py +18 -0
- osn_selenium/abstract/webdriver/blink/base.py +80 -0
- osn_selenium/abstract/webdriver/blink/casting.py +82 -0
- osn_selenium/abstract/webdriver/blink/features.py +51 -0
- osn_selenium/abstract/webdriver/blink/lifecycle.py +76 -0
- osn_selenium/abstract/webdriver/blink/logging.py +40 -0
- osn_selenium/abstract/webdriver/blink/network.py +45 -0
- osn_selenium/abstract/webdriver/blink/settings.py +68 -0
- osn_selenium/abstract/webdriver/chrome/__init__.py +18 -0
- osn_selenium/abstract/webdriver/chrome/base.py +36 -0
- osn_selenium/abstract/webdriver/chrome/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/chrome/settings.py +110 -0
- osn_selenium/abstract/webdriver/core/__init__.py +16 -0
- osn_selenium/abstract/webdriver/core/actions.py +58 -0
- osn_selenium/abstract/webdriver/core/auth.py +145 -0
- osn_selenium/abstract/webdriver/core/base.py +298 -0
- osn_selenium/abstract/webdriver/core/capture.py +84 -0
- osn_selenium/abstract/webdriver/core/components.py +82 -0
- osn_selenium/abstract/webdriver/core/devtools.py +69 -0
- osn_selenium/abstract/webdriver/core/element.py +55 -0
- osn_selenium/abstract/webdriver/core/file.py +82 -0
- osn_selenium/abstract/webdriver/core/lifecycle.py +103 -0
- osn_selenium/abstract/webdriver/core/navigation.py +65 -0
- osn_selenium/abstract/webdriver/core/script.py +88 -0
- osn_selenium/abstract/webdriver/core/settings.py +43 -0
- osn_selenium/abstract/webdriver/core/storage.py +81 -0
- osn_selenium/abstract/webdriver/core/timeouts.py +101 -0
- osn_selenium/abstract/webdriver/core/window.py +237 -0
- osn_selenium/abstract/webdriver/edge/__init__.py +18 -0
- osn_selenium/abstract/webdriver/edge/base.py +36 -0
- osn_selenium/abstract/webdriver/edge/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/edge/settings.py +110 -0
- osn_selenium/abstract/webdriver/yandex/__init__.py +18 -0
- osn_selenium/abstract/webdriver/yandex/base.py +18 -0
- osn_selenium/abstract/webdriver/yandex/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/yandex/settings.py +110 -0
- osn_selenium/base_mixin.py +122 -0
- osn_selenium/browsers_handler/__init__.py +47 -17
- osn_selenium/browsers_handler/_linux.py +226 -0
- osn_selenium/browsers_handler/_windows.py +21 -14
- osn_selenium/browsers_handler/{types.py → models.py} +5 -2
- osn_selenium/dev_tools/_decorators.py +140 -0
- osn_selenium/dev_tools/_exception_helpers.py +116 -0
- osn_selenium/dev_tools/_functions.py +174 -0
- osn_selenium/dev_tools/_system_utils.py +35 -0
- osn_selenium/dev_tools/_typehints.py +32 -0
- osn_selenium/dev_tools/_validators.py +227 -0
- osn_selenium/dev_tools/_wrappers.py +95 -0
- osn_selenium/dev_tools/domains/__init__.py +7 -40
- osn_selenium/dev_tools/domains/abstract.py +98 -254
- osn_selenium/dev_tools/domains/fetch.py +229 -906
- osn_selenium/dev_tools/domains_default/fetch.py +40 -28
- osn_selenium/dev_tools/filters.py +40 -0
- osn_selenium/dev_tools/logger/main.py +226 -0
- osn_selenium/dev_tools/logger/models.py +232 -0
- osn_selenium/dev_tools/logger/target.py +258 -0
- osn_selenium/dev_tools/manager/__init__.py +16 -0
- osn_selenium/dev_tools/manager/base.py +147 -0
- osn_selenium/dev_tools/manager/lifecycle.py +236 -0
- osn_selenium/dev_tools/manager/logging.py +153 -0
- osn_selenium/dev_tools/manager/settings.py +89 -0
- osn_selenium/dev_tools/manager/targets.py +175 -0
- osn_selenium/dev_tools/models.py +49 -0
- osn_selenium/dev_tools/settings.py +135 -0
- osn_selenium/dev_tools/target/__init__.py +16 -0
- osn_selenium/dev_tools/target/base.py +438 -0
- osn_selenium/dev_tools/target/detach.py +54 -0
- osn_selenium/dev_tools/target/discovery.py +112 -0
- osn_selenium/dev_tools/target/events.py +120 -0
- osn_selenium/dev_tools/target/fingerprint.py +126 -0
- osn_selenium/dev_tools/target/lifecycle.py +179 -0
- osn_selenium/dev_tools/target/logging.py +155 -0
- osn_selenium/exceptions/__init__.py +1 -0
- osn_selenium/exceptions/base.py +9 -0
- osn_selenium/exceptions/configuration.py +84 -0
- osn_selenium/exceptions/devtools.py +114 -0
- osn_selenium/exceptions/flags.py +45 -0
- osn_selenium/exceptions/instance.py +92 -0
- osn_selenium/exceptions/javascript.py +31 -0
- osn_selenium/exceptions/logic.py +31 -0
- osn_selenium/exceptions/path.py +77 -0
- osn_selenium/exceptions/platform.py +33 -0
- osn_selenium/exceptions/protocol.py +86 -0
- osn_selenium/exceptions/webdriver.py +44 -0
- osn_selenium/exceptions/window.py +63 -0
- osn_selenium/executors/__init__.py +1 -0
- osn_selenium/executors/sync/__init__.py +1 -0
- osn_selenium/executors/sync/cdp/__init__.py +550 -0
- osn_selenium/executors/sync/cdp/accessibility.py +74 -0
- osn_selenium/executors/sync/cdp/animation.py +50 -0
- osn_selenium/executors/sync/cdp/audits.py +48 -0
- osn_selenium/executors/sync/cdp/autofill.py +39 -0
- osn_selenium/executors/sync/cdp/background_service.py +30 -0
- osn_selenium/executors/sync/cdp/bluetooth_emulation.py +101 -0
- osn_selenium/executors/sync/cdp/browser.py +131 -0
- osn_selenium/executors/sync/cdp/cache_storage.py +66 -0
- osn_selenium/executors/sync/cdp/cast.py +38 -0
- osn_selenium/executors/sync/cdp/console.py +24 -0
- osn_selenium/executors/sync/cdp/css.py +187 -0
- osn_selenium/executors/sync/cdp/debugger.py +206 -0
- osn_selenium/executors/sync/cdp/device_access.py +27 -0
- osn_selenium/executors/sync/cdp/device_orientation.py +24 -0
- osn_selenium/executors/sync/cdp/dom.py +310 -0
- osn_selenium/executors/sync/cdp/dom_debugger.py +56 -0
- osn_selenium/executors/sync/cdp/dom_snapshot.py +58 -0
- osn_selenium/executors/sync/cdp/dom_storage.py +38 -0
- osn_selenium/executors/sync/cdp/emulation.py +270 -0
- osn_selenium/executors/sync/cdp/event_breakpoints.py +27 -0
- osn_selenium/executors/sync/cdp/extensions.py +39 -0
- osn_selenium/executors/sync/cdp/fed_cm.py +45 -0
- osn_selenium/executors/sync/cdp/fetch.py +96 -0
- osn_selenium/executors/sync/cdp/file_system.py +18 -0
- osn_selenium/executors/sync/cdp/headless_experimental.py +44 -0
- osn_selenium/executors/sync/cdp/heap_profiler.py +89 -0
- osn_selenium/executors/sync/cdp/indexed_db.py +142 -0
- osn_selenium/executors/sync/cdp/input.py +233 -0
- osn_selenium/executors/sync/cdp/inspector.py +21 -0
- osn_selenium/executors/sync/cdp/io.py +33 -0
- osn_selenium/executors/sync/cdp/layer_tree.py +71 -0
- osn_selenium/executors/sync/cdp/log.py +35 -0
- osn_selenium/executors/sync/cdp/media.py +21 -0
- osn_selenium/executors/sync/cdp/memory.py +62 -0
- osn_selenium/executors/sync/cdp/network.py +287 -0
- osn_selenium/executors/sync/cdp/overlay.py +174 -0
- osn_selenium/executors/sync/cdp/page.py +365 -0
- osn_selenium/executors/sync/cdp/performance.py +33 -0
- osn_selenium/executors/sync/cdp/performance_timeline.py +26 -0
- osn_selenium/executors/sync/cdp/preload.py +21 -0
- osn_selenium/executors/sync/cdp/profiler.py +58 -0
- osn_selenium/executors/sync/cdp/pwa.py +55 -0
- osn_selenium/executors/sync/cdp/runtime.py +221 -0
- osn_selenium/executors/sync/cdp/schema.py +23 -0
- osn_selenium/executors/sync/cdp/security.py +30 -0
- osn_selenium/executors/sync/cdp/service_worker.py +56 -0
- osn_selenium/executors/sync/cdp/storage.py +151 -0
- osn_selenium/executors/sync/cdp/system_info.py +30 -0
- osn_selenium/executors/sync/cdp/target.py +147 -0
- osn_selenium/executors/sync/cdp/tethering.py +21 -0
- osn_selenium/executors/sync/cdp/tracing.py +62 -0
- osn_selenium/executors/sync/cdp/web_audio.py +24 -0
- osn_selenium/executors/sync/cdp/web_authn.py +82 -0
- osn_selenium/executors/sync/javascript.py +79 -0
- osn_selenium/executors/trio_threads/__init__.py +1 -0
- osn_selenium/executors/trio_threads/cdp/__init__.py +771 -0
- osn_selenium/executors/trio_threads/cdp/accessibility.py +87 -0
- osn_selenium/executors/trio_threads/cdp/animation.py +63 -0
- osn_selenium/executors/trio_threads/cdp/audits.py +57 -0
- osn_selenium/executors/trio_threads/cdp/autofill.py +52 -0
- osn_selenium/executors/trio_threads/cdp/background_service.py +40 -0
- osn_selenium/executors/trio_threads/cdp/bluetooth_emulation.py +111 -0
- osn_selenium/executors/trio_threads/cdp/browser.py +140 -0
- osn_selenium/executors/trio_threads/cdp/cache_storage.py +79 -0
- osn_selenium/executors/trio_threads/cdp/cast.py +47 -0
- osn_selenium/executors/trio_threads/cdp/console.py +33 -0
- osn_selenium/executors/trio_threads/cdp/css.py +196 -0
- osn_selenium/executors/trio_threads/cdp/debugger.py +219 -0
- osn_selenium/executors/trio_threads/cdp/device_access.py +40 -0
- osn_selenium/executors/trio_threads/cdp/device_orientation.py +34 -0
- osn_selenium/executors/trio_threads/cdp/dom.py +319 -0
- osn_selenium/executors/trio_threads/cdp/dom_debugger.py +69 -0
- osn_selenium/executors/trio_threads/cdp/dom_snapshot.py +71 -0
- osn_selenium/executors/trio_threads/cdp/dom_storage.py +51 -0
- osn_selenium/executors/trio_threads/cdp/emulation.py +283 -0
- osn_selenium/executors/trio_threads/cdp/event_breakpoints.py +37 -0
- osn_selenium/executors/trio_threads/cdp/extensions.py +52 -0
- osn_selenium/executors/trio_threads/cdp/fed_cm.py +54 -0
- osn_selenium/executors/trio_threads/cdp/fetch.py +105 -0
- osn_selenium/executors/trio_threads/cdp/file_system.py +31 -0
- osn_selenium/executors/trio_threads/cdp/headless_experimental.py +54 -0
- osn_selenium/executors/trio_threads/cdp/heap_profiler.py +102 -0
- osn_selenium/executors/trio_threads/cdp/indexed_db.py +155 -0
- osn_selenium/executors/trio_threads/cdp/input.py +242 -0
- osn_selenium/executors/trio_threads/cdp/inspector.py +34 -0
- osn_selenium/executors/trio_threads/cdp/io.py +42 -0
- osn_selenium/executors/trio_threads/cdp/layer_tree.py +84 -0
- osn_selenium/executors/trio_threads/cdp/log.py +44 -0
- osn_selenium/executors/trio_threads/cdp/media.py +30 -0
- osn_selenium/executors/trio_threads/cdp/memory.py +71 -0
- osn_selenium/executors/trio_threads/cdp/network.py +296 -0
- osn_selenium/executors/trio_threads/cdp/overlay.py +183 -0
- osn_selenium/executors/trio_threads/cdp/page.py +374 -0
- osn_selenium/executors/trio_threads/cdp/performance.py +46 -0
- osn_selenium/executors/trio_threads/cdp/performance_timeline.py +36 -0
- osn_selenium/executors/trio_threads/cdp/preload.py +30 -0
- osn_selenium/executors/trio_threads/cdp/profiler.py +71 -0
- osn_selenium/executors/trio_threads/cdp/pwa.py +64 -0
- osn_selenium/executors/trio_threads/cdp/runtime.py +230 -0
- osn_selenium/executors/trio_threads/cdp/schema.py +32 -0
- osn_selenium/executors/trio_threads/cdp/security.py +43 -0
- osn_selenium/executors/trio_threads/cdp/service_worker.py +69 -0
- osn_selenium/executors/trio_threads/cdp/storage.py +162 -0
- osn_selenium/executors/trio_threads/cdp/system_info.py +43 -0
- osn_selenium/executors/trio_threads/cdp/target.py +156 -0
- osn_selenium/executors/trio_threads/cdp/tethering.py +34 -0
- osn_selenium/executors/trio_threads/cdp/tracing.py +71 -0
- osn_selenium/executors/trio_threads/cdp/web_audio.py +37 -0
- osn_selenium/executors/trio_threads/cdp/web_authn.py +95 -0
- osn_selenium/executors/trio_threads/javascript.py +90 -0
- osn_selenium/executors/unified/__init__.py +1 -0
- osn_selenium/executors/unified/cdp/__init__.py +1 -0
- osn_selenium/executors/unified/cdp/accessibility.py +81 -0
- osn_selenium/executors/unified/cdp/animation.py +50 -0
- osn_selenium/executors/unified/cdp/audits.py +45 -0
- osn_selenium/executors/unified/cdp/autofill.py +41 -0
- osn_selenium/executors/unified/cdp/background_service.py +24 -0
- osn_selenium/executors/unified/cdp/bluetooth_emulation.py +132 -0
- osn_selenium/executors/unified/cdp/browser.py +143 -0
- osn_selenium/executors/unified/cdp/cache_storage.py +69 -0
- osn_selenium/executors/unified/cdp/cast.py +32 -0
- osn_selenium/executors/unified/cdp/console.py +18 -0
- osn_selenium/executors/unified/cdp/css.py +237 -0
- osn_selenium/executors/unified/cdp/debugger.py +243 -0
- osn_selenium/executors/unified/cdp/device_access.py +21 -0
- osn_selenium/executors/unified/cdp/device_orientation.py +18 -0
- osn_selenium/executors/unified/cdp/dom.py +380 -0
- osn_selenium/executors/unified/cdp/dom_debugger.py +65 -0
- osn_selenium/executors/unified/cdp/dom_snapshot.py +58 -0
- osn_selenium/executors/unified/cdp/dom_storage.py +38 -0
- osn_selenium/executors/unified/cdp/emulation.py +312 -0
- osn_selenium/executors/unified/cdp/event_breakpoints.py +24 -0
- osn_selenium/executors/unified/cdp/extensions.py +45 -0
- osn_selenium/executors/unified/cdp/fed_cm.py +51 -0
- osn_selenium/executors/unified/cdp/fetch.py +111 -0
- osn_selenium/executors/unified/cdp/file_system.py +15 -0
- osn_selenium/executors/unified/cdp/headless_experimental.py +38 -0
- osn_selenium/executors/unified/cdp/heap_profiler.py +101 -0
- osn_selenium/executors/unified/cdp/indexed_db.py +157 -0
- osn_selenium/executors/unified/cdp/input.py +254 -0
- osn_selenium/executors/unified/cdp/inspector.py +15 -0
- osn_selenium/executors/unified/cdp/io.py +29 -0
- osn_selenium/executors/unified/cdp/layer_tree.py +71 -0
- osn_selenium/executors/unified/cdp/log.py +29 -0
- osn_selenium/executors/unified/cdp/media.py +15 -0
- osn_selenium/executors/unified/cdp/memory.py +59 -0
- osn_selenium/executors/unified/cdp/network.py +323 -0
- osn_selenium/executors/unified/cdp/overlay.py +209 -0
- osn_selenium/executors/unified/cdp/page.py +410 -0
- osn_selenium/executors/unified/cdp/performance.py +27 -0
- osn_selenium/executors/unified/cdp/performance_timeline.py +17 -0
- osn_selenium/executors/unified/cdp/preload.py +15 -0
- osn_selenium/executors/unified/cdp/profiler.py +55 -0
- osn_selenium/executors/unified/cdp/pwa.py +55 -0
- osn_selenium/executors/unified/cdp/runtime.py +245 -0
- osn_selenium/executors/unified/cdp/schema.py +17 -0
- osn_selenium/executors/unified/cdp/security.py +27 -0
- osn_selenium/executors/unified/cdp/service_worker.py +62 -0
- osn_selenium/executors/unified/cdp/storage.py +178 -0
- osn_selenium/executors/unified/cdp/system_info.py +24 -0
- osn_selenium/executors/unified/cdp/target.py +165 -0
- osn_selenium/executors/unified/cdp/tethering.py +15 -0
- osn_selenium/executors/unified/cdp/tracing.py +62 -0
- osn_selenium/executors/unified/cdp/web_audio.py +18 -0
- osn_selenium/executors/unified/cdp/web_authn.py +103 -0
- osn_selenium/executors/unified/javascript.py +108 -0
- osn_selenium/flags/__init__.py +1 -0
- osn_selenium/flags/_functions.py +45 -0
- osn_selenium/flags/_typehints.py +34 -0
- osn_selenium/flags/_validators.py +101 -0
- osn_selenium/{webdrivers/BaseDriver/flags.py → flags/base.py} +165 -243
- osn_selenium/{webdrivers/Blink/flags.py → flags/blink.py} +133 -371
- osn_selenium/flags/chrome.py +259 -0
- osn_selenium/flags/edge.py +259 -0
- osn_selenium/flags/models/__init__.py +1 -0
- osn_selenium/flags/models/base.py +130 -0
- osn_selenium/flags/models/blink.py +263 -0
- osn_selenium/{webdrivers/Chrome/flags.py → flags/models/chrome.py} +25 -75
- osn_selenium/{webdrivers/Edge/flags.py → flags/models/edge.py} +25 -75
- osn_selenium/flags/models/values.py +44 -0
- osn_selenium/{webdrivers/Yandex/flags.py → flags/models/yandex.py} +26 -76
- osn_selenium/flags/yandex.py +259 -0
- osn_selenium/instances/__init__.py +1 -0
- osn_selenium/instances/_functions.py +242 -0
- osn_selenium/instances/_typehints.py +148 -0
- osn_selenium/instances/_utils.py +143 -0
- osn_selenium/instances/convert.py +287 -0
- osn_selenium/instances/protocols.py +105 -0
- osn_selenium/instances/sync/__init__.py +1 -0
- osn_selenium/instances/sync/action_chains/__init__.py +26 -0
- osn_selenium/instances/sync/action_chains/base.py +74 -0
- osn_selenium/instances/sync/action_chains/click.py +61 -0
- osn_selenium/instances/sync/action_chains/drag_and_drop.py +45 -0
- osn_selenium/instances/sync/action_chains/hm_keyboard.py +37 -0
- osn_selenium/instances/sync/action_chains/hm_move.py +81 -0
- osn_selenium/instances/sync/action_chains/hm_scroll.py +60 -0
- osn_selenium/instances/sync/action_chains/keyboard.py +55 -0
- osn_selenium/instances/sync/action_chains/move.py +46 -0
- osn_selenium/instances/sync/action_chains/scroll.py +43 -0
- osn_selenium/instances/sync/action_chains/utils.py +30 -0
- osn_selenium/instances/sync/alert.py +69 -0
- osn_selenium/instances/sync/browser.py +72 -0
- osn_selenium/instances/sync/browsing_context.py +193 -0
- osn_selenium/instances/sync/dialog.py +81 -0
- osn_selenium/instances/sync/fedcm.py +92 -0
- osn_selenium/instances/sync/mobile.py +75 -0
- osn_selenium/instances/sync/network.py +90 -0
- osn_selenium/instances/sync/permissions.py +80 -0
- osn_selenium/instances/sync/script.py +77 -0
- osn_selenium/instances/sync/shadow_root.py +91 -0
- osn_selenium/instances/sync/storage.py +91 -0
- osn_selenium/instances/sync/switch_to.py +92 -0
- osn_selenium/instances/sync/web_driver_wait.py +83 -0
- osn_selenium/instances/sync/web_element.py +179 -0
- osn_selenium/instances/sync/web_extension.py +77 -0
- osn_selenium/instances/trio_threads/__init__.py +1 -0
- osn_selenium/instances/trio_threads/action_chains/__init__.py +26 -0
- osn_selenium/instances/trio_threads/action_chains/base.py +88 -0
- osn_selenium/instances/trio_threads/action_chains/click.py +71 -0
- osn_selenium/instances/trio_threads/action_chains/drag_and_drop.py +49 -0
- osn_selenium/instances/trio_threads/action_chains/hm_keyboard.py +41 -0
- osn_selenium/instances/trio_threads/action_chains/hm_move.py +91 -0
- osn_selenium/instances/trio_threads/action_chains/hm_scroll.py +66 -0
- osn_selenium/instances/trio_threads/action_chains/keyboard.py +63 -0
- osn_selenium/instances/trio_threads/action_chains/move.py +52 -0
- osn_selenium/instances/trio_threads/action_chains/scroll.py +49 -0
- osn_selenium/instances/trio_threads/action_chains/utils.py +32 -0
- osn_selenium/instances/trio_threads/alert.py +87 -0
- osn_selenium/instances/trio_threads/browser.py +90 -0
- osn_selenium/instances/trio_threads/browsing_context.py +216 -0
- osn_selenium/instances/trio_threads/dialog.py +99 -0
- osn_selenium/instances/trio_threads/fedcm.py +110 -0
- osn_selenium/instances/trio_threads/mobile.py +93 -0
- osn_selenium/instances/trio_threads/network.py +108 -0
- osn_selenium/instances/trio_threads/permissions.py +102 -0
- osn_selenium/instances/trio_threads/script.py +95 -0
- osn_selenium/instances/trio_threads/shadow_root.py +123 -0
- osn_selenium/instances/trio_threads/storage.py +109 -0
- osn_selenium/instances/trio_threads/switch_to.py +124 -0
- osn_selenium/instances/trio_threads/web_driver_wait.py +101 -0
- osn_selenium/instances/trio_threads/web_element.py +217 -0
- osn_selenium/instances/trio_threads/web_extension.py +99 -0
- osn_selenium/instances/unified/__init__.py +1 -0
- osn_selenium/instances/unified/action_chains/__init__.py +22 -0
- osn_selenium/instances/unified/action_chains/base.py +31 -0
- osn_selenium/instances/unified/action_chains/click.py +27 -0
- osn_selenium/instances/unified/action_chains/drag_and_drop.py +24 -0
- osn_selenium/instances/unified/action_chains/hm_keyboard.py +30 -0
- osn_selenium/instances/unified/action_chains/hm_move.py +66 -0
- osn_selenium/instances/unified/action_chains/hm_scroll.py +79 -0
- osn_selenium/instances/unified/action_chains/keyboard.py +24 -0
- osn_selenium/instances/unified/action_chains/move.py +24 -0
- osn_selenium/instances/unified/action_chains/scroll.py +21 -0
- osn_selenium/instances/unified/action_chains/utils.py +19 -0
- osn_selenium/instances/unified/alert.py +29 -0
- osn_selenium/instances/unified/browser.py +33 -0
- osn_selenium/instances/unified/browsing_context.py +151 -0
- osn_selenium/instances/unified/dialog.py +42 -0
- osn_selenium/instances/unified/fedcm.py +48 -0
- osn_selenium/instances/unified/mobile.py +36 -0
- osn_selenium/instances/unified/network.py +50 -0
- osn_selenium/instances/unified/permissions.py +43 -0
- osn_selenium/instances/unified/script.py +38 -0
- osn_selenium/instances/unified/shadow_root.py +46 -0
- osn_selenium/instances/unified/storage.py +48 -0
- osn_selenium/instances/unified/switch_to.py +49 -0
- osn_selenium/instances/unified/web_driver_wait.py +45 -0
- osn_selenium/instances/unified/web_element.py +145 -0
- osn_selenium/instances/unified/web_extension.py +38 -0
- osn_selenium/javascript/__init__.py +1 -0
- osn_selenium/javascript/_functions.py +63 -0
- osn_selenium/javascript/fingerprint/__init__.py +120 -0
- osn_selenium/javascript/fingerprint/_decorators.py +41 -0
- osn_selenium/javascript/fingerprint/_detect/__init__.py +1 -0
- osn_selenium/javascript/fingerprint/_detect/functions.py +253 -0
- osn_selenium/javascript/fingerprint/_detect/templates.py +128 -0
- osn_selenium/javascript/fingerprint/_functions.py +35 -0
- osn_selenium/javascript/fingerprint/_typehints.py +27 -0
- osn_selenium/javascript/fingerprint/registry/__init__.py +7 -0
- osn_selenium/javascript/fingerprint/registry/_core_functions.py +236 -0
- osn_selenium/javascript/fingerprint/registry/_functions.py +923 -0
- osn_selenium/javascript/fingerprint/registry/_typehints.py +6 -0
- osn_selenium/javascript/fingerprint/registry/_utils.py +6 -0
- osn_selenium/javascript/fingerprint/registry/models.py +41 -0
- osn_selenium/javascript/fingerprint/spoof/__init__.py +1 -0
- osn_selenium/javascript/fingerprint/spoof/_functions.py +172 -0
- osn_selenium/javascript/fingerprint/spoof/_templates.py +134 -0
- osn_selenium/javascript/fingerprint/spoof/_typehints.py +22 -0
- osn_selenium/javascript/fingerprint/spoof/core_rules.py +141 -0
- osn_selenium/javascript/fingerprint/spoof/noise.py +51 -0
- osn_selenium/javascript/fingerprint/spoof/rules.py +313 -0
- osn_selenium/javascript/functions.py +44 -0
- osn_selenium/javascript/models.py +35 -0
- osn_selenium/javascript/scripts/start_fingerprint_detection.js +56 -0
- osn_selenium/models.py +139 -0
- osn_selenium/webdrivers/_args_helpers.py +181 -0
- osn_selenium/webdrivers/_bridges.py +57 -0
- osn_selenium/webdrivers/_decorators.py +83 -0
- osn_selenium/webdrivers/_executable_tables/__init__.py +1 -0
- osn_selenium/webdrivers/_executable_tables/functions.py +113 -0
- osn_selenium/webdrivers/_executable_tables/models.py +19 -0
- osn_selenium/webdrivers/_typehints.py +10 -0
- osn_selenium/webdrivers/protocols.py +50 -0
- osn_selenium/webdrivers/sync/__init__.py +1 -0
- osn_selenium/webdrivers/sync/blink/__init__.py +114 -0
- osn_selenium/webdrivers/sync/blink/base.py +128 -0
- osn_selenium/webdrivers/sync/blink/casting.py +34 -0
- osn_selenium/webdrivers/sync/blink/features.py +28 -0
- osn_selenium/webdrivers/sync/blink/lifecycle.py +66 -0
- osn_selenium/webdrivers/sync/blink/logging.py +25 -0
- osn_selenium/webdrivers/sync/blink/network.py +28 -0
- osn_selenium/webdrivers/sync/blink/settings.py +63 -0
- osn_selenium/webdrivers/sync/chrome/__init__.py +67 -0
- osn_selenium/webdrivers/sync/chrome/base.py +106 -0
- osn_selenium/webdrivers/sync/chrome/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/chrome/settings.py +58 -0
- osn_selenium/webdrivers/sync/core/__init__.py +91 -0
- osn_selenium/webdrivers/sync/core/actions.py +59 -0
- osn_selenium/webdrivers/sync/core/auth.py +77 -0
- osn_selenium/webdrivers/sync/core/base.py +167 -0
- osn_selenium/webdrivers/sync/core/capture.py +37 -0
- osn_selenium/webdrivers/sync/core/comonents.py +57 -0
- osn_selenium/webdrivers/sync/core/devtools.py +47 -0
- osn_selenium/webdrivers/sync/core/element.py +42 -0
- osn_selenium/webdrivers/sync/core/file.py +40 -0
- osn_selenium/webdrivers/sync/core/lifecycle.py +59 -0
- osn_selenium/webdrivers/sync/core/navigation.py +36 -0
- osn_selenium/webdrivers/sync/core/script.py +53 -0
- osn_selenium/webdrivers/sync/core/settings.py +35 -0
- osn_selenium/webdrivers/sync/core/storage.py +48 -0
- osn_selenium/webdrivers/sync/core/timeouts.py +59 -0
- osn_selenium/webdrivers/sync/core/window.py +99 -0
- osn_selenium/webdrivers/sync/edge/__init__.py +67 -0
- osn_selenium/webdrivers/sync/edge/base.py +102 -0
- osn_selenium/webdrivers/sync/edge/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/edge/settings.py +58 -0
- osn_selenium/webdrivers/sync/yandex/__init__.py +67 -0
- osn_selenium/webdrivers/sync/yandex/base.py +99 -0
- osn_selenium/webdrivers/sync/yandex/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/yandex/settings.py +58 -0
- osn_selenium/webdrivers/trio_threads/__init__.py +1 -0
- osn_selenium/webdrivers/trio_threads/blink/__init__.py +124 -0
- osn_selenium/webdrivers/trio_threads/blink/base.py +133 -0
- osn_selenium/webdrivers/trio_threads/blink/casting.py +35 -0
- osn_selenium/webdrivers/trio_threads/blink/features.py +29 -0
- osn_selenium/webdrivers/trio_threads/blink/lifecycle.py +66 -0
- osn_selenium/webdrivers/trio_threads/blink/logging.py +26 -0
- osn_selenium/webdrivers/trio_threads/blink/network.py +29 -0
- osn_selenium/webdrivers/trio_threads/blink/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/chrome/__init__.py +81 -0
- osn_selenium/webdrivers/trio_threads/chrome/base.py +107 -0
- osn_selenium/webdrivers/trio_threads/chrome/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/chrome/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/core/__init__.py +109 -0
- osn_selenium/webdrivers/trio_threads/core/actions.py +72 -0
- osn_selenium/webdrivers/trio_threads/core/auth.py +88 -0
- osn_selenium/webdrivers/trio_threads/core/base.py +191 -0
- osn_selenium/webdrivers/trio_threads/core/capture.py +38 -0
- osn_selenium/webdrivers/trio_threads/core/comonents.py +92 -0
- osn_selenium/webdrivers/trio_threads/core/devtools.py +53 -0
- osn_selenium/webdrivers/trio_threads/core/element.py +58 -0
- osn_selenium/webdrivers/trio_threads/core/file.py +45 -0
- osn_selenium/webdrivers/trio_threads/core/lifecycle.py +60 -0
- osn_selenium/webdrivers/trio_threads/core/navigation.py +41 -0
- osn_selenium/webdrivers/trio_threads/core/script.py +59 -0
- osn_selenium/webdrivers/trio_threads/core/settings.py +36 -0
- osn_selenium/webdrivers/trio_threads/core/storage.py +54 -0
- osn_selenium/webdrivers/trio_threads/core/timeouts.py +60 -0
- osn_selenium/webdrivers/trio_threads/core/window.py +105 -0
- osn_selenium/webdrivers/trio_threads/edge/__init__.py +81 -0
- osn_selenium/webdrivers/trio_threads/edge/base.py +103 -0
- osn_selenium/webdrivers/trio_threads/edge/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/edge/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/yandex/__init__.py +81 -0
- osn_selenium/webdrivers/trio_threads/yandex/base.py +100 -0
- osn_selenium/webdrivers/trio_threads/yandex/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/yandex/settings.py +63 -0
- osn_selenium/webdrivers/unified/__init__.py +1 -0
- osn_selenium/webdrivers/unified/blink/__init__.py +1 -0
- osn_selenium/webdrivers/unified/blink/base.py +131 -0
- osn_selenium/webdrivers/unified/blink/casting.py +30 -0
- osn_selenium/webdrivers/unified/blink/features.py +22 -0
- osn_selenium/webdrivers/unified/blink/lifecycle.py +114 -0
- osn_selenium/webdrivers/unified/blink/logging.py +18 -0
- osn_selenium/webdrivers/unified/blink/network.py +22 -0
- osn_selenium/webdrivers/unified/blink/settings.py +86 -0
- osn_selenium/webdrivers/unified/chrome/__init__.py +1 -0
- osn_selenium/webdrivers/unified/chrome/base.py +54 -0
- osn_selenium/webdrivers/unified/chrome/lifecycle.py +88 -0
- osn_selenium/webdrivers/unified/chrome/settings.py +48 -0
- osn_selenium/webdrivers/unified/core/__init__.py +1 -0
- osn_selenium/webdrivers/unified/core/actions.py +43 -0
- osn_selenium/webdrivers/unified/core/auth.py +70 -0
- osn_selenium/webdrivers/unified/core/base.py +132 -0
- osn_selenium/webdrivers/unified/core/capture.py +32 -0
- osn_selenium/webdrivers/unified/core/components.py +32 -0
- osn_selenium/webdrivers/unified/core/devtools.py +35 -0
- osn_selenium/webdrivers/unified/core/element.py +24 -0
- osn_selenium/webdrivers/unified/core/file.py +35 -0
- osn_selenium/webdrivers/unified/core/lifecycle.py +84 -0
- osn_selenium/webdrivers/unified/core/navigation.py +31 -0
- osn_selenium/webdrivers/unified/core/script.py +32 -0
- osn_selenium/webdrivers/unified/core/settings.py +44 -0
- osn_selenium/webdrivers/unified/core/storage.py +37 -0
- osn_selenium/webdrivers/unified/core/timeouts.py +56 -0
- osn_selenium/webdrivers/unified/core/window.py +135 -0
- osn_selenium/webdrivers/unified/edge/__init__.py +1 -0
- osn_selenium/webdrivers/unified/edge/base.py +52 -0
- osn_selenium/webdrivers/unified/edge/lifecycle.py +88 -0
- osn_selenium/webdrivers/unified/edge/settings.py +48 -0
- osn_selenium/webdrivers/unified/yandex/__init__.py +1 -0
- osn_selenium/webdrivers/unified/yandex/base.py +54 -0
- osn_selenium/webdrivers/unified/yandex/lifecycle.py +58 -0
- osn_selenium/webdrivers/unified/yandex/settings.py +48 -0
- osn_selenium-1.0.0.dist-info/METADATA +239 -0
- osn_selenium-1.0.0.dist-info/RECORD +608 -0
- {osn_selenium-0.0.0.dist-info → osn_selenium-1.0.0.dist-info}/WHEEL +1 -1
- osn_selenium/captcha_workers/__init__.py +0 -26
- osn_selenium/dev_tools/_types.py +0 -22
- osn_selenium/dev_tools/errors.py +0 -89
- osn_selenium/dev_tools/logger.py +0 -558
- osn_selenium/dev_tools/manager.py +0 -1551
- osn_selenium/dev_tools/utils.py +0 -509
- osn_selenium/errors.py +0 -16
- osn_selenium/types.py +0 -118
- osn_selenium/webdrivers/BaseDriver/_utils.py +0 -37
- osn_selenium/webdrivers/BaseDriver/protocols.py +0 -2135
- osn_selenium/webdrivers/BaseDriver/trio_wrapper.py +0 -71
- osn_selenium/webdrivers/BaseDriver/webdriver.py +0 -2626
- osn_selenium/webdrivers/Blink/protocols.py +0 -330
- osn_selenium/webdrivers/Blink/webdriver.py +0 -637
- osn_selenium/webdrivers/Chrome/protocols.py +0 -228
- osn_selenium/webdrivers/Chrome/webdriver.py +0 -394
- osn_selenium/webdrivers/Edge/protocols.py +0 -228
- osn_selenium/webdrivers/Edge/webdriver.py +0 -394
- osn_selenium/webdrivers/Yandex/protocols.py +0 -211
- osn_selenium/webdrivers/Yandex/webdriver.py +0 -350
- osn_selenium/webdrivers/_functions.py +0 -504
- osn_selenium/webdrivers/types.py +0 -390
- osn_selenium-0.0.0.dist-info/METADATA +0 -710
- osn_selenium-0.0.0.dist-info/RECORD +0 -57
- /osn_selenium/{webdrivers/BaseDriver → abstract}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Blink → abstract/executors}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Chrome → abstract/instances}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Edge → abstract/webdriver}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Yandex → dev_tools/logger}/__init__.py +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/check_element_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_document_scroll_size.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_css.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_rect_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_random_element_point_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_position.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_rect.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_size.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/open_new_tab.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/stop_window_loading.js +0 -0
- {osn_selenium-0.0.0.dist-info → osn_selenium-1.0.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
from osn_selenium.base_mixin import TrioThreadMixin
|
|
2
|
+
from typing import (
|
|
3
|
+
Any,
|
|
4
|
+
Dict,
|
|
5
|
+
List,
|
|
6
|
+
Optional
|
|
7
|
+
)
|
|
8
|
+
from osn_selenium.instances.trio_threads.storage import Storage
|
|
9
|
+
from osn_selenium.instances.convert import (
|
|
10
|
+
get_trio_thread_instance_wrapper
|
|
11
|
+
)
|
|
12
|
+
from osn_selenium.webdrivers.unified.core.storage import (
|
|
13
|
+
UnifiedCoreStorageMixin
|
|
14
|
+
)
|
|
15
|
+
from osn_selenium.abstract.webdriver.core.storage import (
|
|
16
|
+
AbstractCoreStorageMixin
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
__all__ = ["CoreStorageMixin"]
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class CoreStorageMixin(UnifiedCoreStorageMixin, TrioThreadMixin, AbstractCoreStorageMixin):
|
|
24
|
+
"""
|
|
25
|
+
Mixin for managing browser storage and cookies in Core WebDrivers.
|
|
26
|
+
|
|
27
|
+
Provides methods to add, retrieve, and delete cookies, as well as access
|
|
28
|
+
other storage mechanisms.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
async def add_cookie(self, cookie_dict: Dict[str, Any]) -> None:
|
|
32
|
+
await self.sync_to_trio(sync_function=self._add_cookie_impl)(cookie_dict=cookie_dict)
|
|
33
|
+
|
|
34
|
+
async def delete_all_cookies(self) -> None:
|
|
35
|
+
await self.sync_to_trio(sync_function=self._delete_all_cookies_impl)()
|
|
36
|
+
|
|
37
|
+
async def delete_cookie(self, name: str) -> None:
|
|
38
|
+
await self.sync_to_trio(sync_function=self._delete_cookie_impl)(name=name)
|
|
39
|
+
|
|
40
|
+
async def get_cookie(self, name: str) -> Optional[Dict[str, Any]]:
|
|
41
|
+
return await self.sync_to_trio(sync_function=self._get_cookie_impl)(name=name)
|
|
42
|
+
|
|
43
|
+
async def get_cookies(self) -> List[Dict[str, Any]]:
|
|
44
|
+
return await self.sync_to_trio(sync_function=self._get_cookies_impl)()
|
|
45
|
+
|
|
46
|
+
async def storage(self) -> Storage:
|
|
47
|
+
legacy = await self.sync_to_trio(sync_function=self._storage_impl)()
|
|
48
|
+
|
|
49
|
+
return get_trio_thread_instance_wrapper(
|
|
50
|
+
wrapper_class=Storage,
|
|
51
|
+
legacy_object=legacy,
|
|
52
|
+
lock=self._lock,
|
|
53
|
+
limiter=self._capacity_limiter,
|
|
54
|
+
)
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from osn_selenium.base_mixin import TrioThreadMixin
|
|
3
|
+
from selenium.webdriver.common.timeouts import Timeouts
|
|
4
|
+
from osn_selenium.webdrivers.unified.core.timeouts import (
|
|
5
|
+
UnifiedCoreTimeoutsMixin
|
|
6
|
+
)
|
|
7
|
+
from osn_selenium.abstract.webdriver.core.timeouts import (
|
|
8
|
+
AbstractCoreTimeoutsMixin
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
__all__ = ["CoreTimeoutsMixin"]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class CoreTimeoutsMixin(UnifiedCoreTimeoutsMixin, TrioThreadMixin, AbstractCoreTimeoutsMixin):
|
|
16
|
+
"""
|
|
17
|
+
Mixin for configuring execution timeouts in Core WebDrivers.
|
|
18
|
+
|
|
19
|
+
Manages implicit waits, page load timeouts, and script execution limits
|
|
20
|
+
to control driver behavior during delays.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
async def get_timeouts(self) -> Timeouts:
|
|
24
|
+
return await self.sync_to_trio(sync_function=self._get_timeouts_impl)()
|
|
25
|
+
|
|
26
|
+
async def implicitly_wait(self, time_to_wait: float) -> None:
|
|
27
|
+
await self.sync_to_trio(sync_function=self._implicitly_wait_impl)(time_to_wait=time_to_wait)
|
|
28
|
+
|
|
29
|
+
async def set_driver_timeouts(
|
|
30
|
+
self,
|
|
31
|
+
page_load_timeout: float,
|
|
32
|
+
implicit_wait_timeout: float,
|
|
33
|
+
script_timeout: float,
|
|
34
|
+
) -> None:
|
|
35
|
+
await self.sync_to_trio(sync_function=self._set_driver_timeouts_impl)(
|
|
36
|
+
page_load_timeout=page_load_timeout,
|
|
37
|
+
implicit_wait_timeout=implicit_wait_timeout,
|
|
38
|
+
script_timeout=script_timeout,
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
async def set_page_load_timeout(self, time_to_wait: float) -> None:
|
|
42
|
+
await self.sync_to_trio(sync_function=self._set_page_load_timeout_impl)(time_to_wait=time_to_wait)
|
|
43
|
+
|
|
44
|
+
async def set_script_timeout(self, time_to_wait: float) -> None:
|
|
45
|
+
await self.sync_to_trio(sync_function=self._set_script_timeout_impl)(time_to_wait=time_to_wait)
|
|
46
|
+
|
|
47
|
+
async def set_timeouts(self, timeouts: Timeouts) -> None:
|
|
48
|
+
await self.sync_to_trio(sync_function=self._set_timeouts_impl)(timeouts=timeouts)
|
|
49
|
+
|
|
50
|
+
async def update_times(
|
|
51
|
+
self,
|
|
52
|
+
temp_implicitly_wait: Optional[float] = None,
|
|
53
|
+
temp_page_load_timeout: Optional[float] = None,
|
|
54
|
+
temp_script_timeout: Optional[float] = None,
|
|
55
|
+
) -> None:
|
|
56
|
+
await self.sync_to_trio(sync_function=self._update_times_impl)(
|
|
57
|
+
temp_implicitly_wait=temp_implicitly_wait,
|
|
58
|
+
temp_page_load_timeout=temp_page_load_timeout,
|
|
59
|
+
temp_script_timeout=temp_script_timeout,
|
|
60
|
+
)
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
from osn_selenium.base_mixin import TrioThreadMixin
|
|
2
|
+
from typing import (
|
|
3
|
+
List,
|
|
4
|
+
Literal,
|
|
5
|
+
Optional,
|
|
6
|
+
Union
|
|
7
|
+
)
|
|
8
|
+
from osn_selenium.models import (
|
|
9
|
+
Position,
|
|
10
|
+
Rectangle,
|
|
11
|
+
Size
|
|
12
|
+
)
|
|
13
|
+
from osn_selenium.instances.trio_threads.switch_to import SwitchTo
|
|
14
|
+
from osn_selenium.instances.convert import (
|
|
15
|
+
get_trio_thread_instance_wrapper
|
|
16
|
+
)
|
|
17
|
+
from osn_selenium.webdrivers.unified.core.window import (
|
|
18
|
+
UnifiedCoreWindowMixin
|
|
19
|
+
)
|
|
20
|
+
from osn_selenium.abstract.webdriver.core.window import (
|
|
21
|
+
AbstractCoreWindowMixin
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
__all__ = ["CoreWindowMixin"]
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class CoreWindowMixin(UnifiedCoreWindowMixin, TrioThreadMixin, AbstractCoreWindowMixin):
|
|
29
|
+
"""
|
|
30
|
+
Mixin for window and tab management in Core WebDrivers.
|
|
31
|
+
|
|
32
|
+
Controls window dimensions, position, state (minimized/maximized), and
|
|
33
|
+
switching between active window handles or frames.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
async def close(self) -> None:
|
|
37
|
+
await self.sync_to_trio(sync_function=self._close_impl)()
|
|
38
|
+
|
|
39
|
+
async def close_all_windows(self) -> None:
|
|
40
|
+
await self.sync_to_trio(sync_function=self._close_all_windows_impl)()
|
|
41
|
+
|
|
42
|
+
async def close_window(self, window: Optional[Union[str, int]] = None) -> None:
|
|
43
|
+
await self.sync_to_trio(sync_function=self._close_window_impl)(window=window)
|
|
44
|
+
|
|
45
|
+
async def current_window_handle(self) -> str:
|
|
46
|
+
return await self.sync_to_trio(sync_function=self._current_window_handle_impl)()
|
|
47
|
+
|
|
48
|
+
async def fullscreen_window(self) -> None:
|
|
49
|
+
await self.sync_to_trio(sync_function=self._fullscreen_window_impl)()
|
|
50
|
+
|
|
51
|
+
async def get_window_handle(self, window: Optional[Union[str, int]] = None) -> str:
|
|
52
|
+
return await self.sync_to_trio(sync_function=self._get_window_handle_impl)(window=window)
|
|
53
|
+
|
|
54
|
+
async def get_window_position(self, windowHandle: str = "current") -> Position:
|
|
55
|
+
position = await self.sync_to_trio(sync_function=self._get_window_position_impl)(windowHandle=windowHandle)
|
|
56
|
+
return Position.model_validate(position)
|
|
57
|
+
|
|
58
|
+
async def get_window_rect(self) -> Rectangle:
|
|
59
|
+
rectangle = await self.sync_to_trio(sync_function=self._get_window_rect_impl)()
|
|
60
|
+
return Rectangle.model_validate(rectangle)
|
|
61
|
+
|
|
62
|
+
async def get_window_size(self, windowHandle: str = "current") -> Size:
|
|
63
|
+
size = await self.sync_to_trio(sync_function=self._get_window_size_impl)(windowHandle=windowHandle)
|
|
64
|
+
return Size.model_validate(size)
|
|
65
|
+
|
|
66
|
+
async def maximize_window(self) -> None:
|
|
67
|
+
await self.sync_to_trio(sync_function=self._maximize_window_impl)()
|
|
68
|
+
|
|
69
|
+
async def minimize_window(self) -> None:
|
|
70
|
+
await self.sync_to_trio(sync_function=self._minimize_window_impl)()
|
|
71
|
+
|
|
72
|
+
async def orientation(self) -> Literal["LANDSCAPE", "PORTRAIT"]:
|
|
73
|
+
return await self.sync_to_trio(sync_function=self._orientation_get_impl)()
|
|
74
|
+
|
|
75
|
+
async def set_orientation(self, value: Literal["LANDSCAPE", "PORTRAIT"]) -> None:
|
|
76
|
+
await self.sync_to_trio(sync_function=self._orientation_set_impl)(value=value)
|
|
77
|
+
|
|
78
|
+
async def set_window_position(self, x: int, y: int, windowHandle: str = "current") -> Position:
|
|
79
|
+
position = await self.sync_to_trio(sync_function=self._set_window_position_impl)(x=x, y=y, windowHandle=windowHandle)
|
|
80
|
+
return Position.model_validate(position)
|
|
81
|
+
|
|
82
|
+
async def set_window_rect(
|
|
83
|
+
self,
|
|
84
|
+
x: Optional[int] = None,
|
|
85
|
+
y: Optional[int] = None,
|
|
86
|
+
width: Optional[int] = None,
|
|
87
|
+
height: Optional[int] = None,
|
|
88
|
+
) -> Rectangle:
|
|
89
|
+
rectangle = await self.sync_to_trio(sync_function=self._set_window_rect_impl)(x=x, y=y, width=width, height=height)
|
|
90
|
+
return Rectangle.model_validate(rectangle)
|
|
91
|
+
|
|
92
|
+
async def set_window_size(self, width: int, height: int, windowHandle: str = "current") -> None:
|
|
93
|
+
await self.sync_to_trio(sync_function=self._set_window_size_impl)(width=width, height=height, windowHandle=windowHandle)
|
|
94
|
+
|
|
95
|
+
async def switch_to(self) -> SwitchTo:
|
|
96
|
+
legacy = await self.sync_to_trio(sync_function=self._switch_to_impl)()
|
|
97
|
+
return get_trio_thread_instance_wrapper(
|
|
98
|
+
wrapper_class=SwitchTo,
|
|
99
|
+
legacy_object=legacy,
|
|
100
|
+
lock=self._lock,
|
|
101
|
+
limiter=self._capacity_limiter,
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
async def window_handles(self) -> List[str]:
|
|
105
|
+
return await self.sync_to_trio(sync_function=self._window_handles_impl)()
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import trio
|
|
2
|
+
from typing import Optional, Type
|
|
3
|
+
from osn_selenium.models import WindowRect
|
|
4
|
+
from osn_selenium._typehints import PATH_TYPEHINT
|
|
5
|
+
from osn_selenium.flags.edge import EdgeFlagsManager
|
|
6
|
+
from osn_selenium.flags.models.edge import EdgeFlags
|
|
7
|
+
from osn_selenium.dev_tools.settings import DevToolsSettings
|
|
8
|
+
from osn_selenium.webdrivers.trio_threads.blink import BlinkWebDriver
|
|
9
|
+
from osn_selenium.webdrivers.trio_threads.edge.base import EdgeBaseMixin
|
|
10
|
+
from osn_selenium.abstract.webdriver.edge import (
|
|
11
|
+
AbstractEdgeWebDriver
|
|
12
|
+
)
|
|
13
|
+
from osn_selenium.webdrivers.trio_threads.edge.settings import EdgeSettingsMixin
|
|
14
|
+
from osn_selenium.webdrivers.trio_threads.edge.lifecycle import EdgeLifecycleMixin
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
__all__ = ["EdgeWebDriver"]
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class EdgeWebDriver(
|
|
21
|
+
EdgeBaseMixin,
|
|
22
|
+
EdgeLifecycleMixin,
|
|
23
|
+
EdgeSettingsMixin,
|
|
24
|
+
BlinkWebDriver,
|
|
25
|
+
AbstractEdgeWebDriver,
|
|
26
|
+
):
|
|
27
|
+
"""
|
|
28
|
+
Concrete Edge WebDriver implementation combining all functional mixins.
|
|
29
|
+
|
|
30
|
+
This class aggregates lifecycle management, element interaction, navigation,
|
|
31
|
+
and browser-specific features into a single usable driver instance.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
def __init__(
|
|
35
|
+
self,
|
|
36
|
+
webdriver_path: str,
|
|
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
|
+
devtools_settings: Optional[DevToolsSettings] = None,
|
|
48
|
+
capacity_limiter: Optional[trio.CapacityLimiter] = None,
|
|
49
|
+
):
|
|
50
|
+
BlinkWebDriver.__init__(
|
|
51
|
+
self,
|
|
52
|
+
browser_exe=browser_exe,
|
|
53
|
+
browser_name_in_system=browser_name_in_system,
|
|
54
|
+
webdriver_path=webdriver_path,
|
|
55
|
+
use_browser_exe=use_browser_exe,
|
|
56
|
+
flags_manager_type=flags_manager_type,
|
|
57
|
+
flags=flags,
|
|
58
|
+
implicitly_wait=implicitly_wait,
|
|
59
|
+
page_load_timeout=page_load_timeout,
|
|
60
|
+
script_timeout=script_timeout,
|
|
61
|
+
window_rect=window_rect,
|
|
62
|
+
devtools_settings=devtools_settings,
|
|
63
|
+
capacity_limiter=capacity_limiter,
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
EdgeBaseMixin.__init__(
|
|
67
|
+
self,
|
|
68
|
+
browser_exe=browser_exe,
|
|
69
|
+
browser_name_in_system=browser_name_in_system,
|
|
70
|
+
use_browser_exe=use_browser_exe,
|
|
71
|
+
webdriver_path=webdriver_path,
|
|
72
|
+
architecture="trio_threads",
|
|
73
|
+
flags_manager_type=flags_manager_type,
|
|
74
|
+
flags=flags,
|
|
75
|
+
start_page_url=start_page_url,
|
|
76
|
+
implicitly_wait=implicitly_wait,
|
|
77
|
+
page_load_timeout=page_load_timeout,
|
|
78
|
+
script_timeout=script_timeout,
|
|
79
|
+
window_rect=window_rect,
|
|
80
|
+
capacity_limiter=capacity_limiter,
|
|
81
|
+
)
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import trio
|
|
2
|
+
from typing import Optional, Type
|
|
3
|
+
from osn_selenium.models import WindowRect
|
|
4
|
+
from selenium.webdriver import Edge as legacyEdge
|
|
5
|
+
from osn_selenium.flags.edge import EdgeFlagsManager
|
|
6
|
+
from osn_selenium.flags.models.edge import EdgeFlags
|
|
7
|
+
from osn_selenium.webdrivers.trio_threads.blink.base import BlinkBaseMixin
|
|
8
|
+
from osn_selenium.webdrivers.unified.edge.base import UnifiedEdgeBaseMixin
|
|
9
|
+
from osn_selenium._typehints import (
|
|
10
|
+
ARCHITECTURES_TYPEHINT,
|
|
11
|
+
PATH_TYPEHINT
|
|
12
|
+
)
|
|
13
|
+
from osn_selenium.abstract.webdriver.edge.base import (
|
|
14
|
+
AbstractEdgeBaseMixin
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
__all__ = ["EdgeBaseMixin"]
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class EdgeBaseMixin(UnifiedEdgeBaseMixin, BlinkBaseMixin, AbstractEdgeBaseMixin):
|
|
22
|
+
"""
|
|
23
|
+
Base mixin for Edge WebDrivers handling core initialization and state management.
|
|
24
|
+
|
|
25
|
+
This class serves as the foundation for browser-specific implementations, managing
|
|
26
|
+
the WebDriver executable path, configuration flags, timeouts, and the active
|
|
27
|
+
driver instance.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
def __init__(
|
|
31
|
+
self,
|
|
32
|
+
webdriver_path: str,
|
|
33
|
+
architecture: ARCHITECTURES_TYPEHINT,
|
|
34
|
+
flags_manager_type: Type[EdgeFlagsManager] = EdgeFlagsManager,
|
|
35
|
+
use_browser_exe: bool = True,
|
|
36
|
+
browser_name_in_system: str = "Microsoft Edge",
|
|
37
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
38
|
+
flags: Optional[EdgeFlags] = None,
|
|
39
|
+
start_page_url: str = "about:blank",
|
|
40
|
+
implicitly_wait: int = 5,
|
|
41
|
+
page_load_timeout: int = 5,
|
|
42
|
+
script_timeout: int = 5,
|
|
43
|
+
window_rect: Optional[WindowRect] = None,
|
|
44
|
+
capacity_limiter: Optional[trio.CapacityLimiter] = None,
|
|
45
|
+
):
|
|
46
|
+
"""
|
|
47
|
+
Initializes the Trio-based Edge WebDriver mixin.
|
|
48
|
+
|
|
49
|
+
Args:
|
|
50
|
+
webdriver_path (str): Path to the EdgeDriver executable.
|
|
51
|
+
architecture (ARCHITECTURE_TYPEHINT): System architecture.
|
|
52
|
+
flags_manager_type (Type[EdgeFlagsManager]): The class type used for managing Edge flags.
|
|
53
|
+
Defaults to EdgeFlagsManager.
|
|
54
|
+
use_browser_exe (bool): Whether to use a specific browser executable path or auto-detect.
|
|
55
|
+
Defaults to True.
|
|
56
|
+
browser_name_in_system (str): The name of the browser in the system registry or path.
|
|
57
|
+
Defaults to "Microsoft Edge".
|
|
58
|
+
browser_exe (Optional[PATH_TYPEHINT]): Explicit path to the Edge browser executable.
|
|
59
|
+
flags (Optional[EdgeFlags]): Initial set of flags.
|
|
60
|
+
start_page_url (str): The initial URL. Defaults to "about:blank".
|
|
61
|
+
implicitly_wait (int): Default implicit wait time.
|
|
62
|
+
page_load_timeout (int): Default page load timeout.
|
|
63
|
+
script_timeout (int): Default script timeout.
|
|
64
|
+
window_rect (Optional[WindowRect]): Initial window dimensions.
|
|
65
|
+
capacity_limiter (Optional[trio.CapacityLimiter]): Trio capacity limiter.
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
BlinkBaseMixin.__init__(
|
|
69
|
+
self,
|
|
70
|
+
browser_exe=browser_exe,
|
|
71
|
+
browser_name_in_system=browser_name_in_system,
|
|
72
|
+
use_browser_exe=use_browser_exe,
|
|
73
|
+
webdriver_path=webdriver_path,
|
|
74
|
+
architecture=architecture,
|
|
75
|
+
flags_manager_type=flags_manager_type,
|
|
76
|
+
flags=flags,
|
|
77
|
+
start_page_url=start_page_url,
|
|
78
|
+
implicitly_wait=implicitly_wait,
|
|
79
|
+
page_load_timeout=page_load_timeout,
|
|
80
|
+
script_timeout=script_timeout,
|
|
81
|
+
window_rect=window_rect,
|
|
82
|
+
capacity_limiter=capacity_limiter,
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
UnifiedEdgeBaseMixin.__init__(
|
|
86
|
+
self,
|
|
87
|
+
webdriver_path=webdriver_path,
|
|
88
|
+
architecture=architecture,
|
|
89
|
+
flags_manager_type=flags_manager_type,
|
|
90
|
+
use_browser_exe=use_browser_exe,
|
|
91
|
+
browser_name_in_system=browser_name_in_system,
|
|
92
|
+
browser_exe=browser_exe,
|
|
93
|
+
flags=flags,
|
|
94
|
+
start_page_url=start_page_url,
|
|
95
|
+
implicitly_wait=implicitly_wait,
|
|
96
|
+
page_load_timeout=page_load_timeout,
|
|
97
|
+
script_timeout=script_timeout,
|
|
98
|
+
window_rect=window_rect,
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
@property
|
|
102
|
+
def driver(self) -> Optional[legacyEdge]:
|
|
103
|
+
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.trio_threads.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
|
+
async 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
|
+
await self.sync_to_trio(sync_function=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
|
+
async 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
|
+
await self.sync_to_trio(sync_function=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
|
+
)
|
|
@@ -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.trio_threads.blink import BlinkSettingsMixin
|
|
6
|
+
from osn_selenium.webdrivers.unified.edge.settings import (
|
|
7
|
+
UnifiedEdgeSettingsMixin
|
|
8
|
+
)
|
|
9
|
+
from osn_selenium.abstract.webdriver.edge.settings import (
|
|
10
|
+
AbstractEdgeSettingsMixin
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
__all__ = ["EdgeSettingsMixin"]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class EdgeSettingsMixin(
|
|
18
|
+
UnifiedEdgeSettingsMixin,
|
|
19
|
+
BlinkSettingsMixin,
|
|
20
|
+
AbstractEdgeSettingsMixin
|
|
21
|
+
):
|
|
22
|
+
"""
|
|
23
|
+
Mixin for configuring and updating settings of the Edge WebDriver.
|
|
24
|
+
|
|
25
|
+
Provides methods to modify browser flags, window rectangles, and other
|
|
26
|
+
configuration parameters either before startup or during a reset.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
async def reset_settings(
|
|
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: str = "",
|
|
36
|
+
window_rect: Optional[WindowRect] = None,
|
|
37
|
+
) -> None:
|
|
38
|
+
await self.sync_to_trio(sync_function=self._reset_settings_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
|
+
async def update_settings(
|
|
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
|
+
await self.sync_to_trio(sync_function=self._update_settings_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
|
+
)
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import trio
|
|
2
|
+
from typing import Optional, Type
|
|
3
|
+
from osn_selenium.models import WindowRect
|
|
4
|
+
from osn_selenium._typehints import PATH_TYPEHINT
|
|
5
|
+
from osn_selenium.flags.models.yandex import YandexFlags
|
|
6
|
+
from osn_selenium.flags.yandex import YandexFlagsManager
|
|
7
|
+
from osn_selenium.dev_tools.settings import DevToolsSettings
|
|
8
|
+
from osn_selenium.webdrivers.trio_threads.chrome import ChromeWebDriver
|
|
9
|
+
from osn_selenium.webdrivers.trio_threads.yandex.base import YandexBaseMixin
|
|
10
|
+
from osn_selenium.abstract.webdriver.yandex import (
|
|
11
|
+
AbstractYandexWebDriver
|
|
12
|
+
)
|
|
13
|
+
from osn_selenium.webdrivers.trio_threads.yandex.settings import YandexSettingsMixin
|
|
14
|
+
from osn_selenium.webdrivers.trio_threads.yandex.lifecycle import YandexLifecycleMixin
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
__all__ = ["YandexWebDriver"]
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class YandexWebDriver(
|
|
21
|
+
YandexBaseMixin,
|
|
22
|
+
YandexLifecycleMixin,
|
|
23
|
+
YandexSettingsMixin,
|
|
24
|
+
ChromeWebDriver,
|
|
25
|
+
AbstractYandexWebDriver,
|
|
26
|
+
):
|
|
27
|
+
"""
|
|
28
|
+
Concrete Yandex WebDriver implementation combining all functional mixins.
|
|
29
|
+
|
|
30
|
+
This class aggregates lifecycle management, element interaction, navigation,
|
|
31
|
+
and browser-specific features into a single usable driver instance.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
def __init__(
|
|
35
|
+
self,
|
|
36
|
+
webdriver_path: str,
|
|
37
|
+
flags_manager_type: Type[YandexFlagsManager] = YandexFlagsManager,
|
|
38
|
+
use_browser_exe: bool = True,
|
|
39
|
+
browser_name_in_system: str = "Yandex",
|
|
40
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
41
|
+
flags: Optional[YandexFlags] = 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
|
+
devtools_settings: Optional[DevToolsSettings] = None,
|
|
48
|
+
capacity_limiter: Optional[trio.CapacityLimiter] = None,
|
|
49
|
+
):
|
|
50
|
+
ChromeWebDriver.__init__(
|
|
51
|
+
self,
|
|
52
|
+
browser_exe=browser_exe,
|
|
53
|
+
browser_name_in_system=browser_name_in_system,
|
|
54
|
+
webdriver_path=webdriver_path,
|
|
55
|
+
use_browser_exe=use_browser_exe,
|
|
56
|
+
flags_manager_type=flags_manager_type,
|
|
57
|
+
flags=flags,
|
|
58
|
+
implicitly_wait=implicitly_wait,
|
|
59
|
+
page_load_timeout=page_load_timeout,
|
|
60
|
+
script_timeout=script_timeout,
|
|
61
|
+
window_rect=window_rect,
|
|
62
|
+
devtools_settings=devtools_settings,
|
|
63
|
+
capacity_limiter=capacity_limiter,
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
YandexBaseMixin.__init__(
|
|
67
|
+
self,
|
|
68
|
+
browser_exe=browser_exe,
|
|
69
|
+
browser_name_in_system=browser_name_in_system,
|
|
70
|
+
use_browser_exe=use_browser_exe,
|
|
71
|
+
webdriver_path=webdriver_path,
|
|
72
|
+
architecture="trio_threads",
|
|
73
|
+
flags_manager_type=flags_manager_type,
|
|
74
|
+
flags=flags,
|
|
75
|
+
start_page_url=start_page_url,
|
|
76
|
+
implicitly_wait=implicitly_wait,
|
|
77
|
+
page_load_timeout=page_load_timeout,
|
|
78
|
+
script_timeout=script_timeout,
|
|
79
|
+
window_rect=window_rect,
|
|
80
|
+
capacity_limiter=capacity_limiter,
|
|
81
|
+
)
|