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,18 @@
|
|
|
1
|
+
from abc import ABC
|
|
2
|
+
from osn_selenium.abstract.webdriver.core import (
|
|
3
|
+
AbstractCoreWebDriver as AbstractBaseWebDriver
|
|
4
|
+
)
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
__all__ = ["AbstractBlinkWebDriver"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class AbstractBlinkWebDriver(AbstractBaseWebDriver, ABC):
|
|
11
|
+
"""
|
|
12
|
+
Abstract base class for Blink-based WebDrivers.
|
|
13
|
+
|
|
14
|
+
Combines the standard WebDriver interface with Blink-specific functionality,
|
|
15
|
+
specifically access to the Chrome DevTools Protocol (CDP).
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
pass
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
from abc import abstractmethod
|
|
2
|
+
from selenium import webdriver
|
|
3
|
+
from typing import Optional, Union
|
|
4
|
+
from osn_selenium._typehints import PATH_TYPEHINT
|
|
5
|
+
from osn_selenium.abstract.webdriver.core.base import (
|
|
6
|
+
AbstractCoreBaseMixin
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
__all__ = ["AbstractBlinkBaseMixin"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class AbstractBlinkBaseMixin(AbstractCoreBaseMixin):
|
|
14
|
+
"""
|
|
15
|
+
Abstract mixin defining the base interface for Blink-based WebDrivers (Chrome, Edge).
|
|
16
|
+
|
|
17
|
+
This mixin establishes the contract for managing the browser executable path,
|
|
18
|
+
debugging connection details, and the underlying Selenium driver instance.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
@property
|
|
22
|
+
@abstractmethod
|
|
23
|
+
def browser_exe(self) -> Optional[PATH_TYPEHINT]:
|
|
24
|
+
"""
|
|
25
|
+
Returns the file path to the browser executable.
|
|
26
|
+
|
|
27
|
+
Returns:
|
|
28
|
+
Optional[PATH_TYPEHINT]: The path to the executable,
|
|
29
|
+
or None if not managed by this instance.
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
...
|
|
33
|
+
|
|
34
|
+
@property
|
|
35
|
+
@abstractmethod
|
|
36
|
+
def debugging_ip(self) -> Optional[str]:
|
|
37
|
+
"""
|
|
38
|
+
Returns the IP address used for the remote debugging protocol.
|
|
39
|
+
|
|
40
|
+
Returns:
|
|
41
|
+
Optional[str]: The debugging IP address (e.g., "127.0.0.1"), or None if not set.
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
...
|
|
45
|
+
|
|
46
|
+
@property
|
|
47
|
+
@abstractmethod
|
|
48
|
+
def debugging_port(self) -> Optional[int]:
|
|
49
|
+
"""
|
|
50
|
+
Returns the port number used for the remote debugging protocol.
|
|
51
|
+
|
|
52
|
+
Returns:
|
|
53
|
+
Optional[int]: The debugging port, or None if not set.
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
...
|
|
57
|
+
|
|
58
|
+
@property
|
|
59
|
+
@abstractmethod
|
|
60
|
+
def driver(self) -> Optional[Union[webdriver.Chrome, webdriver.Edge]]:
|
|
61
|
+
"""
|
|
62
|
+
Returns the underlying Selenium WebDriver instance.
|
|
63
|
+
|
|
64
|
+
Returns:
|
|
65
|
+
Optional[Union[webdriver.Chrome, webdriver.Edge]]: The driver instance,
|
|
66
|
+
or None if not started.
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
...
|
|
70
|
+
|
|
71
|
+
@abstractmethod
|
|
72
|
+
def set_start_page_url(self, start_page_url: str) -> None:
|
|
73
|
+
"""
|
|
74
|
+
Sets the URL that the browser should navigate to upon startup.
|
|
75
|
+
|
|
76
|
+
Args:
|
|
77
|
+
start_page_url (str): The URL to set as the start page.
|
|
78
|
+
"""
|
|
79
|
+
|
|
80
|
+
...
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
from typing import Any, Dict, List
|
|
2
|
+
from abc import ABC, abstractmethod
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
__all__ = ["AbstractBlinkCastingMixin"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class AbstractBlinkCastingMixin(ABC):
|
|
9
|
+
"""
|
|
10
|
+
Abstract mixin defining the interface for casting/mirroring functionality
|
|
11
|
+
in Blink-based browsers.
|
|
12
|
+
|
|
13
|
+
Provides methods to discover sinks (receivers) and control tab or desktop mirroring sessions.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
@abstractmethod
|
|
17
|
+
def get_sinks(self) -> List[Dict[str, Any]]:
|
|
18
|
+
"""
|
|
19
|
+
Retrieves a list of available casting sinks (receivers).
|
|
20
|
+
|
|
21
|
+
Returns:
|
|
22
|
+
List[Dict[str, Any]]: A list of dictionaries, where each dictionary represents
|
|
23
|
+
a discovered sink and its properties.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
...
|
|
27
|
+
|
|
28
|
+
@abstractmethod
|
|
29
|
+
def set_sink_to_use(self, sink_name: str) -> Dict[str, Any]:
|
|
30
|
+
"""
|
|
31
|
+
Selects a specific sink to be used for future casting operations.
|
|
32
|
+
|
|
33
|
+
Args:
|
|
34
|
+
sink_name (str): The name of the sink to select.
|
|
35
|
+
|
|
36
|
+
Returns:
|
|
37
|
+
Dict[str, Any]: A dictionary containing the command response or status.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
...
|
|
41
|
+
|
|
42
|
+
@abstractmethod
|
|
43
|
+
def start_desktop_mirroring(self, sink_name: str) -> Dict[str, Any]:
|
|
44
|
+
"""
|
|
45
|
+
Starts mirroring the entire desktop to the specified sink.
|
|
46
|
+
|
|
47
|
+
Args:
|
|
48
|
+
sink_name (str): The name of the sink to cast the desktop to.
|
|
49
|
+
|
|
50
|
+
Returns:
|
|
51
|
+
Dict[str, Any]: A dictionary containing the command response or status.
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
...
|
|
55
|
+
|
|
56
|
+
@abstractmethod
|
|
57
|
+
def start_tab_mirroring(self, sink_name: str) -> Dict[str, Any]:
|
|
58
|
+
"""
|
|
59
|
+
Starts mirroring the current browser tab to the specified sink.
|
|
60
|
+
|
|
61
|
+
Args:
|
|
62
|
+
sink_name (str): The name of the sink to cast the tab to.
|
|
63
|
+
|
|
64
|
+
Returns:
|
|
65
|
+
Dict[str, Any]: A dictionary containing the command response or status.
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
...
|
|
69
|
+
|
|
70
|
+
@abstractmethod
|
|
71
|
+
def stop_casting(self, sink_name: str) -> Dict[str, Any]:
|
|
72
|
+
"""
|
|
73
|
+
Stops the active casting session on the specified sink.
|
|
74
|
+
|
|
75
|
+
Args:
|
|
76
|
+
sink_name (str): The name of the sink (receiver) to stop casting to.
|
|
77
|
+
|
|
78
|
+
Returns:
|
|
79
|
+
Dict[str, Any]: A dictionary containing the command response or status.
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
...
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
from abc import ABC, abstractmethod
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
__all__ = ["AbstractBlinkFeaturesMixin"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class AbstractBlinkFeaturesMixin(ABC):
|
|
9
|
+
"""
|
|
10
|
+
Abstract mixin defining the interface for specific Blink browser features.
|
|
11
|
+
|
|
12
|
+
Includes functionality for handling permissions, launching apps, and retrieving
|
|
13
|
+
browser issue messages.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
@abstractmethod
|
|
17
|
+
def get_issue_message(self) -> Any:
|
|
18
|
+
"""
|
|
19
|
+
Retrieves the current issue message or status from the browser, if any.
|
|
20
|
+
|
|
21
|
+
Returns:
|
|
22
|
+
Any: The issue message object or string.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
...
|
|
26
|
+
|
|
27
|
+
@abstractmethod
|
|
28
|
+
def launch_app(self, id: str) -> Dict[str, Any]:
|
|
29
|
+
"""
|
|
30
|
+
Launches an installed application within the browser by its ID.
|
|
31
|
+
|
|
32
|
+
Args:
|
|
33
|
+
id (str): The identifier of the application to launch.
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
Dict[str, Any]: A dictionary containing the result of the launch operation.
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
...
|
|
40
|
+
|
|
41
|
+
@abstractmethod
|
|
42
|
+
def set_permissions(self, name: str, value: str) -> None:
|
|
43
|
+
"""
|
|
44
|
+
Sets a specific permission for the browser context.
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
name (str): The name of the permission (e.g., "camera", "microphone").
|
|
48
|
+
value (str): The value to set (e.g., "granted", "denied").
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
...
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from abc import abstractmethod
|
|
3
|
+
from osn_selenium.models import WindowRect
|
|
4
|
+
from osn_selenium._typehints import PATH_TYPEHINT
|
|
5
|
+
from osn_selenium.flags.models.blink import BlinkFlags
|
|
6
|
+
from osn_selenium.abstract.webdriver.core.lifecycle import (
|
|
7
|
+
AbstractCoreLifecycleMixin
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
__all__ = ["AbstractBlinkLifecycleMixin"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class AbstractBlinkLifecycleMixin(AbstractCoreLifecycleMixin):
|
|
15
|
+
"""
|
|
16
|
+
Abstract mixin defining the lifecycle management interface for Blink-based WebDrivers.
|
|
17
|
+
|
|
18
|
+
Handles creation, startup, shutdown, and restarting of the WebDriver instance
|
|
19
|
+
and the associated browser process.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
@abstractmethod
|
|
23
|
+
async def close_webdriver(self) -> None:
|
|
24
|
+
"""
|
|
25
|
+
Closes the WebDriver connection and terminates the browser process.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
...
|
|
29
|
+
|
|
30
|
+
@abstractmethod
|
|
31
|
+
async def restart_webdriver(
|
|
32
|
+
self,
|
|
33
|
+
flags: Optional[BlinkFlags] = None,
|
|
34
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
35
|
+
browser_name_in_system: Optional[str] = None,
|
|
36
|
+
use_browser_exe: Optional[bool] = None,
|
|
37
|
+
start_page_url: Optional[str] = None,
|
|
38
|
+
window_rect: Optional[WindowRect] = None,
|
|
39
|
+
) -> None:
|
|
40
|
+
"""
|
|
41
|
+
Restarts the WebDriver and browser, applying new settings if provided.
|
|
42
|
+
|
|
43
|
+
Args:
|
|
44
|
+
flags (Optional[BlinkFlags]): Configuration flags for the new session.
|
|
45
|
+
browser_exe (Optional[PATH_TYPEHINT]): Path to the browser executable.
|
|
46
|
+
browser_name_in_system (Optional[str]): Name of the browser in the system.
|
|
47
|
+
use_browser_exe (Optional[bool]): Whether to manage the browser executable process.
|
|
48
|
+
start_page_url (Optional[str]): URL to open after restart.
|
|
49
|
+
window_rect (Optional[WindowRect]): Initial window dimensions.
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
...
|
|
53
|
+
|
|
54
|
+
@abstractmethod
|
|
55
|
+
async def start_webdriver(
|
|
56
|
+
self,
|
|
57
|
+
flags: Optional[BlinkFlags] = None,
|
|
58
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
59
|
+
browser_name_in_system: Optional[str] = None,
|
|
60
|
+
use_browser_exe: Optional[bool] = None,
|
|
61
|
+
start_page_url: Optional[str] = None,
|
|
62
|
+
window_rect: Optional[WindowRect] = None,
|
|
63
|
+
) -> None:
|
|
64
|
+
"""
|
|
65
|
+
Starts the WebDriver and the browser instance.
|
|
66
|
+
|
|
67
|
+
Args:
|
|
68
|
+
flags (Optional[BlinkFlags]): Configuration flags for the browser.
|
|
69
|
+
browser_exe (Optional[PATH_TYPEHINT]): Path to the browser executable.
|
|
70
|
+
browser_name_in_system (Optional[str]): Name of the browser in the OS registry/system.
|
|
71
|
+
use_browser_exe (Optional[bool]): Whether to manage the browser executable process.
|
|
72
|
+
start_page_url (Optional[str]): URL to open immediately upon start.
|
|
73
|
+
window_rect (Optional[WindowRect]): Initial dimensions and position of the window.
|
|
74
|
+
"""
|
|
75
|
+
|
|
76
|
+
...
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
from typing import Any, List
|
|
2
|
+
from abc import ABC, abstractmethod
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
__all__ = ["AbstractBlinkLoggingMixin"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class AbstractBlinkLoggingMixin(ABC):
|
|
9
|
+
"""
|
|
10
|
+
Abstract mixin defining the interface for accessing browser logs.
|
|
11
|
+
|
|
12
|
+
Allows retrieving specific log types (e.g., browser, performance, client) supported
|
|
13
|
+
by the Blink-based browser.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
@abstractmethod
|
|
17
|
+
def get_log(self, log_type: str) -> Any:
|
|
18
|
+
"""
|
|
19
|
+
Retrieves the logs for a specific log type.
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
log_type (str): The type of log to retrieve (must be one of the available log types).
|
|
23
|
+
|
|
24
|
+
Returns:
|
|
25
|
+
Any: The log entries, typically a list of dictionaries containing log messages.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
...
|
|
29
|
+
|
|
30
|
+
@abstractmethod
|
|
31
|
+
def log_types(self) -> List[str]:
|
|
32
|
+
"""
|
|
33
|
+
Retrieves the list of available log types.
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
List[str]: A list of strings representing the available log types
|
|
37
|
+
(e.g., ['browser', 'driver', 'client', 'performance']).
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
...
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
from abc import ABC, abstractmethod
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
__all__ = ["AbstractBlinkNetworkMixin"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class AbstractBlinkNetworkMixin(ABC):
|
|
9
|
+
"""
|
|
10
|
+
Abstract mixin defining the interface for network emulation and condition management.
|
|
11
|
+
|
|
12
|
+
Provides methods to simulate network conditions such as latency, throughput, and
|
|
13
|
+
offline status in a Blink-based browser.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
@abstractmethod
|
|
17
|
+
def delete_network_conditions(self) -> None:
|
|
18
|
+
"""
|
|
19
|
+
Resets the network conditions to the default state (no emulation/throttling).
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
...
|
|
23
|
+
|
|
24
|
+
@abstractmethod
|
|
25
|
+
def get_network_conditions(self) -> Dict[str, Any]:
|
|
26
|
+
"""
|
|
27
|
+
Retrieves the currently active network emulation conditions.
|
|
28
|
+
|
|
29
|
+
Returns:
|
|
30
|
+
Dict[str, Any]: A dictionary containing the current network settings.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
...
|
|
34
|
+
|
|
35
|
+
@abstractmethod
|
|
36
|
+
def set_network_conditions(self, **network_conditions: Dict[str, Any]) -> None:
|
|
37
|
+
"""
|
|
38
|
+
Sets the network emulation conditions.
|
|
39
|
+
|
|
40
|
+
Args:
|
|
41
|
+
**network_conditions (Dict[str, Any]): Key-value pairs defining the network conditions
|
|
42
|
+
(e.g., offline status, latency, download_throughput, upload_throughput).
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
...
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from abc import abstractmethod
|
|
3
|
+
from osn_selenium.models import WindowRect
|
|
4
|
+
from osn_selenium._typehints import PATH_TYPEHINT
|
|
5
|
+
from osn_selenium.flags.models.blink import BlinkFlags
|
|
6
|
+
from osn_selenium.abstract.webdriver.core.settings import (
|
|
7
|
+
AbstractCoreSettingsMixin
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
__all__ = ["AbstractBlinkSettingsMixin"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class AbstractBlinkSettingsMixin(AbstractCoreSettingsMixin):
|
|
15
|
+
"""
|
|
16
|
+
Abstract mixin defining the interface for managing browser settings and configuration.
|
|
17
|
+
|
|
18
|
+
Provides methods to update or reset the browser's runtime configuration, including
|
|
19
|
+
flags, executable paths, and window geometry.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
@abstractmethod
|
|
23
|
+
def reset_settings(
|
|
24
|
+
self,
|
|
25
|
+
flags: Optional[BlinkFlags] = None,
|
|
26
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
27
|
+
browser_name_in_system: Optional[str] = None,
|
|
28
|
+
use_browser_exe: Optional[bool] = None,
|
|
29
|
+
start_page_url: str = "",
|
|
30
|
+
window_rect: Optional[WindowRect] = None,
|
|
31
|
+
) -> None:
|
|
32
|
+
"""
|
|
33
|
+
Resets the browser settings to their default or specified values.
|
|
34
|
+
|
|
35
|
+
Args:
|
|
36
|
+
flags (Optional[BlinkFlags]): Flags to set (overwriting previous configuration).
|
|
37
|
+
browser_exe (Optional[PATH_TYPEHINT]): Path to the browser executable.
|
|
38
|
+
browser_name_in_system (Optional[str]): System name for the browser.
|
|
39
|
+
use_browser_exe (Optional[bool]): Flag to enable/disable executable management.
|
|
40
|
+
start_page_url (str): The start page URL (defaults to empty string).
|
|
41
|
+
window_rect (Optional[WindowRect]): Window dimensions.
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
...
|
|
45
|
+
|
|
46
|
+
@abstractmethod
|
|
47
|
+
def update_settings(
|
|
48
|
+
self,
|
|
49
|
+
flags: Optional[BlinkFlags] = 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
|
+
"""
|
|
57
|
+
Updates the browser settings without performing a full reset.
|
|
58
|
+
|
|
59
|
+
Args:
|
|
60
|
+
flags (Optional[BlinkFlags]): New flags to merge or apply.
|
|
61
|
+
browser_exe (Optional[PATH_TYPEHINT]): New path to the browser executable.
|
|
62
|
+
browser_name_in_system (Optional[str]): New system name for the browser.
|
|
63
|
+
use_browser_exe (Optional[bool]): Flag to enable/disable executable management.
|
|
64
|
+
start_page_url (Optional[str]): New start page URL.
|
|
65
|
+
window_rect (Optional[WindowRect]): New window dimensions.
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
...
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from abc import ABC
|
|
2
|
+
from osn_selenium.abstract.webdriver.blink import (
|
|
3
|
+
AbstractBlinkWebDriver
|
|
4
|
+
)
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
__all__ = ["AbstractChromeWebDriver"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class AbstractChromeWebDriver(AbstractBlinkWebDriver, ABC):
|
|
11
|
+
"""
|
|
12
|
+
Abstract composite class representing a full Chrome WebDriver.
|
|
13
|
+
|
|
14
|
+
Combines lifecycle, settings, and base functionality for Chrome-based browsers.
|
|
15
|
+
Serves as the main entry point for abstract Chrome implementations.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
pass
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from abc import abstractmethod
|
|
3
|
+
from selenium.webdriver.chrome.webdriver import (
|
|
4
|
+
WebDriver as legacyWebDriver
|
|
5
|
+
)
|
|
6
|
+
from osn_selenium.abstract.webdriver.blink.base import (
|
|
7
|
+
AbstractBlinkBaseMixin
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
__all__ = ["AbstractChromeBaseMixin"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class AbstractChromeBaseMixin(AbstractBlinkBaseMixin):
|
|
15
|
+
"""
|
|
16
|
+
Abstract mixin defining the base interface for Chrome-based WebDrivers.
|
|
17
|
+
|
|
18
|
+
This class serves as a foundational component for Chrome WebDriver implementations,
|
|
19
|
+
providing access to the underlying Selenium WebDriver instance.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
@property
|
|
23
|
+
@abstractmethod
|
|
24
|
+
def driver(self) -> Optional[legacyWebDriver]:
|
|
25
|
+
"""
|
|
26
|
+
Gets the underlying Selenium WebDriver instance associated with this object.
|
|
27
|
+
|
|
28
|
+
This property provides direct access to the WebDriver object (e.g., Chrome)
|
|
29
|
+
that is being controlled, allowing for direct Selenium operations if needed.
|
|
30
|
+
|
|
31
|
+
Returns:
|
|
32
|
+
Optional[legacyWebDriver]:
|
|
33
|
+
The active WebDriver instance, or None if no driver is currently set or active.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
...
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from abc import abstractmethod
|
|
3
|
+
from osn_selenium.models import WindowRect
|
|
4
|
+
from osn_selenium._typehints import PATH_TYPEHINT
|
|
5
|
+
from osn_selenium.flags.models.chrome import ChromeFlags
|
|
6
|
+
from osn_selenium.abstract.webdriver.blink.lifecycle import (
|
|
7
|
+
AbstractBlinkLifecycleMixin
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
__all__ = ["AbstractChromeLifecycleMixin"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class AbstractChromeLifecycleMixin(AbstractBlinkLifecycleMixin):
|
|
15
|
+
"""
|
|
16
|
+
Abstract mixin managing the lifecycle of a Chrome WebDriver session.
|
|
17
|
+
|
|
18
|
+
Defines the contract for creating, starting, and restarting the Chrome browser
|
|
19
|
+
and its associated WebDriver service.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
@abstractmethod
|
|
23
|
+
def restart_webdriver(
|
|
24
|
+
self,
|
|
25
|
+
flags: Optional[ChromeFlags] = None,
|
|
26
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
27
|
+
browser_name_in_system: Optional[str] = None,
|
|
28
|
+
use_browser_exe: Optional[bool] = None,
|
|
29
|
+
start_page_url: Optional[str] = None,
|
|
30
|
+
window_rect: Optional[WindowRect] = None,
|
|
31
|
+
):
|
|
32
|
+
"""
|
|
33
|
+
Restarts the WebDriver and browser session gracefully.
|
|
34
|
+
|
|
35
|
+
Performs a clean restart by first closing the existing WebDriver session and browser
|
|
36
|
+
(using `close_webdriver`), and then initiating a new session (using `start_webdriver`)
|
|
37
|
+
with potentially updated settings. If settings arguments are provided, they override
|
|
38
|
+
the existing settings for the new session; otherwise, the current settings are used.
|
|
39
|
+
|
|
40
|
+
Args:
|
|
41
|
+
flags (Optional[ChromeFlags]): Override flags for the new session.
|
|
42
|
+
If provided, these flags will be applied. If `None`, current settings are used.
|
|
43
|
+
browser_exe (Optional[PATH_TYPEHINT]): Override browser executable for the new session.
|
|
44
|
+
If provided, this path will be used. If `None`, current settings are used.
|
|
45
|
+
browser_name_in_system (Optional[str]): Override browser name for auto-detection for the new session.
|
|
46
|
+
Only takes effect if `use_browser_exe` is also provided. If `None`, current settings are used.
|
|
47
|
+
use_browser_exe (Optional[bool]): Override auto-detection behavior for the new session.
|
|
48
|
+
If provided, this boolean determines if the browser executable is auto-detected.
|
|
49
|
+
If `None`, current settings are used.
|
|
50
|
+
start_page_url (Optional[str]): Override start page URL for the new session.
|
|
51
|
+
If provided, this URL will be used. If `None`, current setting is used.
|
|
52
|
+
window_rect (Optional[WindowRect]): Override window rectangle for the new session.
|
|
53
|
+
If provided, these dimensions will be used. If `None`, current settings are used.
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
...
|
|
57
|
+
|
|
58
|
+
@abstractmethod
|
|
59
|
+
def start_webdriver(
|
|
60
|
+
self,
|
|
61
|
+
flags: Optional[ChromeFlags] = None,
|
|
62
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
63
|
+
browser_name_in_system: Optional[str] = None,
|
|
64
|
+
use_browser_exe: Optional[bool] = None,
|
|
65
|
+
start_page_url: Optional[str] = None,
|
|
66
|
+
window_rect: Optional[WindowRect] = None,
|
|
67
|
+
):
|
|
68
|
+
"""
|
|
69
|
+
Starts the WebDriver service and the browser session.
|
|
70
|
+
|
|
71
|
+
Initializes and starts the WebDriver instance and the associated browser process.
|
|
72
|
+
It first updates settings based on provided parameters (if the driver is not already running),
|
|
73
|
+
checks if a browser process needs to be started, starts it if necessary using Popen,
|
|
74
|
+
waits for it to become active, and then creates the WebDriver client instance (`self.driver`).
|
|
75
|
+
|
|
76
|
+
Args:
|
|
77
|
+
flags (Optional[ChromeFlags]): Override flags for this start.
|
|
78
|
+
If provided, these flags will be applied. If `None`, current settings are used.
|
|
79
|
+
browser_exe (Optional[PATH_TYPEHINT]): Override browser executable path for this start.
|
|
80
|
+
If provided, this path will be used. If `None`, current settings are used.
|
|
81
|
+
browser_name_in_system (Optional[str]): Override browser name for auto-detection for this start.
|
|
82
|
+
Only takes effect if `use_browser_exe` is also provided. If `None`, current settings are used.
|
|
83
|
+
use_browser_exe (Optional[bool]): Override auto-detection behavior for this start.
|
|
84
|
+
If provided, this boolean determines if the browser executable is auto-detected.
|
|
85
|
+
If `None`, current settings are used.
|
|
86
|
+
start_page_url (Optional[str]): Override start page URL for this start.
|
|
87
|
+
If provided, this URL will be used. If `None`, current setting is used.
|
|
88
|
+
window_rect (Optional[WindowRect]): Override window rectangle for this start.
|
|
89
|
+
If provided, these dimensions will be used. If `None`, current settings are used.
|
|
90
|
+
"""
|
|
91
|
+
|
|
92
|
+
...
|