osn-selenium 0.0.0__py3-none-any.whl → 1.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- osn_selenium/_base_models.py +41 -0
- osn_selenium/_cdp_import.py +253 -0
- osn_selenium/_functions.py +84 -0
- osn_selenium/_typehints.py +19 -0
- osn_selenium/abstract/executors/cdp/__init__.py +435 -0
- osn_selenium/abstract/executors/cdp/accessibility.py +62 -0
- osn_selenium/abstract/executors/cdp/animation.py +47 -0
- osn_selenium/abstract/executors/cdp/audits.py +39 -0
- osn_selenium/abstract/executors/cdp/autofill.py +34 -0
- osn_selenium/abstract/executors/cdp/background_service.py +22 -0
- osn_selenium/abstract/executors/cdp/bluetooth_emulation.py +95 -0
- osn_selenium/abstract/executors/cdp/browser.py +122 -0
- osn_selenium/abstract/executors/cdp/cache_storage.py +49 -0
- osn_selenium/abstract/executors/cdp/cast.py +31 -0
- osn_selenium/abstract/executors/cdp/console.py +18 -0
- osn_selenium/abstract/executors/cdp/css.py +197 -0
- osn_selenium/abstract/executors/cdp/debugger.py +198 -0
- osn_selenium/abstract/executors/cdp/device_access.py +22 -0
- osn_selenium/abstract/executors/cdp/device_orientation.py +14 -0
- osn_selenium/abstract/executors/cdp/dom.py +305 -0
- osn_selenium/abstract/executors/cdp/dom_debugger.py +57 -0
- osn_selenium/abstract/executors/cdp/dom_snapshot.py +42 -0
- osn_selenium/abstract/executors/cdp/dom_storage.py +31 -0
- osn_selenium/abstract/executors/cdp/emulation.py +259 -0
- osn_selenium/abstract/executors/cdp/event_breakpoints.py +18 -0
- osn_selenium/abstract/executors/cdp/extensions.py +31 -0
- osn_selenium/abstract/executors/cdp/fed_cm.py +35 -0
- osn_selenium/abstract/executors/cdp/fetch.py +76 -0
- osn_selenium/abstract/executors/cdp/file_system.py +11 -0
- osn_selenium/abstract/executors/cdp/headless_experimental.py +30 -0
- osn_selenium/abstract/executors/cdp/heap_profiler.py +73 -0
- osn_selenium/abstract/executors/cdp/indexed_db.py +99 -0
- osn_selenium/abstract/executors/cdp/input.py +158 -0
- osn_selenium/abstract/executors/cdp/inspector.py +14 -0
- osn_selenium/abstract/executors/cdp/io.py +24 -0
- osn_selenium/abstract/executors/cdp/layer_tree.py +61 -0
- osn_selenium/abstract/executors/cdp/log.py +27 -0
- osn_selenium/abstract/executors/cdp/media.py +14 -0
- osn_selenium/abstract/executors/cdp/memory.py +61 -0
- osn_selenium/abstract/executors/cdp/network.py +252 -0
- osn_selenium/abstract/executors/cdp/overlay.py +166 -0
- osn_selenium/abstract/executors/cdp/page.py +347 -0
- osn_selenium/abstract/executors/cdp/performance.py +28 -0
- osn_selenium/abstract/executors/cdp/performance_timeline.py +11 -0
- osn_selenium/abstract/executors/cdp/preload.py +14 -0
- osn_selenium/abstract/executors/cdp/profiler.py +54 -0
- osn_selenium/abstract/executors/cdp/pwa.py +46 -0
- osn_selenium/abstract/executors/cdp/runtime.py +176 -0
- osn_selenium/abstract/executors/cdp/schema.py +11 -0
- osn_selenium/abstract/executors/cdp/security.py +26 -0
- osn_selenium/abstract/executors/cdp/service_worker.py +54 -0
- osn_selenium/abstract/executors/cdp/storage.py +175 -0
- osn_selenium/abstract/executors/cdp/system_info.py +24 -0
- osn_selenium/abstract/executors/cdp/target.py +125 -0
- osn_selenium/abstract/executors/cdp/tethering.py +14 -0
- osn_selenium/abstract/executors/cdp/tracing.py +48 -0
- osn_selenium/abstract/executors/cdp/web_audio.py +19 -0
- osn_selenium/abstract/executors/cdp/web_authn.py +76 -0
- osn_selenium/abstract/executors/cdp.py +63 -0
- osn_selenium/abstract/executors/javascript.py +203 -0
- osn_selenium/abstract/instances/action_chains/__init__.py +12 -0
- osn_selenium/abstract/instances/action_chains/base.py +25 -0
- osn_selenium/abstract/instances/action_chains/click.py +93 -0
- osn_selenium/abstract/instances/action_chains/drag_and_drop.py +46 -0
- osn_selenium/abstract/instances/action_chains/hm_keyboard.py +44 -0
- osn_selenium/abstract/instances/action_chains/hm_move.py +104 -0
- osn_selenium/abstract/instances/action_chains/hm_scroll.py +75 -0
- osn_selenium/abstract/instances/action_chains/keyboard.py +79 -0
- osn_selenium/abstract/instances/action_chains/move.py +60 -0
- osn_selenium/abstract/instances/action_chains/scroll.py +61 -0
- osn_selenium/abstract/instances/action_chains/utils.py +44 -0
- osn_selenium/abstract/instances/alert.py +67 -0
- osn_selenium/abstract/instances/browser.py +76 -0
- osn_selenium/abstract/instances/browsing_context.py +310 -0
- osn_selenium/abstract/instances/dialog.py +107 -0
- osn_selenium/abstract/instances/fedcm.py +133 -0
- osn_selenium/abstract/instances/mobile.py +79 -0
- osn_selenium/abstract/instances/network.py +100 -0
- osn_selenium/abstract/instances/permissions.py +52 -0
- osn_selenium/abstract/instances/script.py +109 -0
- osn_selenium/abstract/instances/shadow_root.py +81 -0
- osn_selenium/abstract/instances/storage.py +98 -0
- osn_selenium/abstract/instances/switch_to.py +104 -0
- osn_selenium/abstract/instances/web_driver_wait.py +57 -0
- osn_selenium/abstract/instances/web_element.py +395 -0
- osn_selenium/abstract/instances/web_extension.py +70 -0
- osn_selenium/abstract/webdriver/blink/__init__.py +18 -0
- osn_selenium/abstract/webdriver/blink/base.py +80 -0
- osn_selenium/abstract/webdriver/blink/casting.py +82 -0
- osn_selenium/abstract/webdriver/blink/features.py +51 -0
- osn_selenium/abstract/webdriver/blink/lifecycle.py +76 -0
- osn_selenium/abstract/webdriver/blink/logging.py +40 -0
- osn_selenium/abstract/webdriver/blink/network.py +45 -0
- osn_selenium/abstract/webdriver/blink/settings.py +68 -0
- osn_selenium/abstract/webdriver/chrome/__init__.py +18 -0
- osn_selenium/abstract/webdriver/chrome/base.py +36 -0
- osn_selenium/abstract/webdriver/chrome/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/chrome/settings.py +110 -0
- osn_selenium/abstract/webdriver/core/__init__.py +16 -0
- osn_selenium/abstract/webdriver/core/actions.py +58 -0
- osn_selenium/abstract/webdriver/core/auth.py +145 -0
- osn_selenium/abstract/webdriver/core/base.py +298 -0
- osn_selenium/abstract/webdriver/core/capture.py +84 -0
- osn_selenium/abstract/webdriver/core/components.py +82 -0
- osn_selenium/abstract/webdriver/core/devtools.py +69 -0
- osn_selenium/abstract/webdriver/core/element.py +55 -0
- osn_selenium/abstract/webdriver/core/file.py +82 -0
- osn_selenium/abstract/webdriver/core/lifecycle.py +103 -0
- osn_selenium/abstract/webdriver/core/navigation.py +65 -0
- osn_selenium/abstract/webdriver/core/script.py +88 -0
- osn_selenium/abstract/webdriver/core/settings.py +43 -0
- osn_selenium/abstract/webdriver/core/storage.py +81 -0
- osn_selenium/abstract/webdriver/core/timeouts.py +101 -0
- osn_selenium/abstract/webdriver/core/window.py +237 -0
- osn_selenium/abstract/webdriver/edge/__init__.py +18 -0
- osn_selenium/abstract/webdriver/edge/base.py +36 -0
- osn_selenium/abstract/webdriver/edge/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/edge/settings.py +110 -0
- osn_selenium/abstract/webdriver/yandex/__init__.py +18 -0
- osn_selenium/abstract/webdriver/yandex/base.py +18 -0
- osn_selenium/abstract/webdriver/yandex/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/yandex/settings.py +110 -0
- osn_selenium/base_mixin.py +122 -0
- osn_selenium/browsers_handler/__init__.py +47 -17
- osn_selenium/browsers_handler/_linux.py +226 -0
- osn_selenium/browsers_handler/_windows.py +21 -14
- osn_selenium/browsers_handler/{types.py → models.py} +5 -2
- osn_selenium/dev_tools/_decorators.py +149 -0
- osn_selenium/dev_tools/_exception_helpers.py +116 -0
- osn_selenium/dev_tools/_functions.py +174 -0
- osn_selenium/dev_tools/_system_utils.py +35 -0
- osn_selenium/dev_tools/_typehints.py +35 -0
- osn_selenium/dev_tools/_validators.py +227 -0
- osn_selenium/dev_tools/_wrappers.py +92 -0
- osn_selenium/dev_tools/domains/__init__.py +7 -40
- osn_selenium/dev_tools/domains/abstract.py +98 -254
- osn_selenium/dev_tools/domains/fetch.py +229 -906
- osn_selenium/dev_tools/domains_default/fetch.py +40 -28
- osn_selenium/dev_tools/filters.py +40 -0
- osn_selenium/dev_tools/logger/main.py +214 -0
- osn_selenium/dev_tools/logger/models.py +232 -0
- osn_selenium/dev_tools/logger/target.py +278 -0
- osn_selenium/dev_tools/manager/__init__.py +16 -0
- osn_selenium/dev_tools/manager/base.py +124 -0
- osn_selenium/dev_tools/manager/lifecycle.py +236 -0
- osn_selenium/dev_tools/manager/logging.py +153 -0
- osn_selenium/dev_tools/manager/settings.py +89 -0
- osn_selenium/dev_tools/manager/targets.py +175 -0
- osn_selenium/dev_tools/models.py +49 -0
- osn_selenium/dev_tools/settings.py +139 -0
- osn_selenium/dev_tools/target/__init__.py +16 -0
- osn_selenium/dev_tools/target/base.py +427 -0
- osn_selenium/dev_tools/target/detach.py +54 -0
- osn_selenium/dev_tools/target/discovery.py +112 -0
- osn_selenium/dev_tools/target/events.py +120 -0
- osn_selenium/dev_tools/target/fingerprint.py +126 -0
- osn_selenium/dev_tools/target/lifecycle.py +184 -0
- osn_selenium/dev_tools/target/logging.py +163 -0
- osn_selenium/exceptions/__init__.py +1 -0
- osn_selenium/exceptions/base.py +9 -0
- osn_selenium/exceptions/configuration.py +84 -0
- osn_selenium/exceptions/dependencies.py +60 -0
- osn_selenium/exceptions/devtools.py +114 -0
- osn_selenium/exceptions/flags.py +45 -0
- osn_selenium/exceptions/instance.py +92 -0
- osn_selenium/exceptions/javascript.py +31 -0
- osn_selenium/exceptions/logic.py +31 -0
- osn_selenium/exceptions/path.py +77 -0
- osn_selenium/exceptions/platform.py +33 -0
- osn_selenium/exceptions/protocol.py +86 -0
- osn_selenium/exceptions/webdriver.py +44 -0
- osn_selenium/exceptions/window.py +63 -0
- osn_selenium/executors/__init__.py +1 -0
- osn_selenium/executors/sync/__init__.py +1 -0
- osn_selenium/executors/sync/cdp/__init__.py +550 -0
- osn_selenium/executors/sync/cdp/accessibility.py +74 -0
- osn_selenium/executors/sync/cdp/animation.py +50 -0
- osn_selenium/executors/sync/cdp/audits.py +48 -0
- osn_selenium/executors/sync/cdp/autofill.py +39 -0
- osn_selenium/executors/sync/cdp/background_service.py +30 -0
- osn_selenium/executors/sync/cdp/bluetooth_emulation.py +101 -0
- osn_selenium/executors/sync/cdp/browser.py +131 -0
- osn_selenium/executors/sync/cdp/cache_storage.py +66 -0
- osn_selenium/executors/sync/cdp/cast.py +38 -0
- osn_selenium/executors/sync/cdp/console.py +24 -0
- osn_selenium/executors/sync/cdp/css.py +187 -0
- osn_selenium/executors/sync/cdp/debugger.py +206 -0
- osn_selenium/executors/sync/cdp/device_access.py +27 -0
- osn_selenium/executors/sync/cdp/device_orientation.py +24 -0
- osn_selenium/executors/sync/cdp/dom.py +310 -0
- osn_selenium/executors/sync/cdp/dom_debugger.py +56 -0
- osn_selenium/executors/sync/cdp/dom_snapshot.py +58 -0
- osn_selenium/executors/sync/cdp/dom_storage.py +38 -0
- osn_selenium/executors/sync/cdp/emulation.py +270 -0
- osn_selenium/executors/sync/cdp/event_breakpoints.py +27 -0
- osn_selenium/executors/sync/cdp/extensions.py +39 -0
- osn_selenium/executors/sync/cdp/fed_cm.py +45 -0
- osn_selenium/executors/sync/cdp/fetch.py +96 -0
- osn_selenium/executors/sync/cdp/file_system.py +18 -0
- osn_selenium/executors/sync/cdp/headless_experimental.py +44 -0
- osn_selenium/executors/sync/cdp/heap_profiler.py +89 -0
- osn_selenium/executors/sync/cdp/indexed_db.py +142 -0
- osn_selenium/executors/sync/cdp/input.py +233 -0
- osn_selenium/executors/sync/cdp/inspector.py +21 -0
- osn_selenium/executors/sync/cdp/io.py +33 -0
- osn_selenium/executors/sync/cdp/layer_tree.py +71 -0
- osn_selenium/executors/sync/cdp/log.py +35 -0
- osn_selenium/executors/sync/cdp/media.py +21 -0
- osn_selenium/executors/sync/cdp/memory.py +62 -0
- osn_selenium/executors/sync/cdp/network.py +287 -0
- osn_selenium/executors/sync/cdp/overlay.py +174 -0
- osn_selenium/executors/sync/cdp/page.py +365 -0
- osn_selenium/executors/sync/cdp/performance.py +33 -0
- osn_selenium/executors/sync/cdp/performance_timeline.py +26 -0
- osn_selenium/executors/sync/cdp/preload.py +21 -0
- osn_selenium/executors/sync/cdp/profiler.py +58 -0
- osn_selenium/executors/sync/cdp/pwa.py +55 -0
- osn_selenium/executors/sync/cdp/runtime.py +221 -0
- osn_selenium/executors/sync/cdp/schema.py +23 -0
- osn_selenium/executors/sync/cdp/security.py +30 -0
- osn_selenium/executors/sync/cdp/service_worker.py +56 -0
- osn_selenium/executors/sync/cdp/storage.py +151 -0
- osn_selenium/executors/sync/cdp/system_info.py +30 -0
- osn_selenium/executors/sync/cdp/target.py +147 -0
- osn_selenium/executors/sync/cdp/tethering.py +21 -0
- osn_selenium/executors/sync/cdp/tracing.py +62 -0
- osn_selenium/executors/sync/cdp/web_audio.py +24 -0
- osn_selenium/executors/sync/cdp/web_authn.py +82 -0
- osn_selenium/executors/sync/cdp.py +100 -0
- osn_selenium/executors/sync/javascript.py +79 -0
- osn_selenium/executors/trio_threads/__init__.py +1 -0
- osn_selenium/executors/trio_threads/cdp/__init__.py +771 -0
- osn_selenium/executors/trio_threads/cdp/accessibility.py +87 -0
- osn_selenium/executors/trio_threads/cdp/animation.py +63 -0
- osn_selenium/executors/trio_threads/cdp/audits.py +57 -0
- osn_selenium/executors/trio_threads/cdp/autofill.py +52 -0
- osn_selenium/executors/trio_threads/cdp/background_service.py +40 -0
- osn_selenium/executors/trio_threads/cdp/bluetooth_emulation.py +111 -0
- osn_selenium/executors/trio_threads/cdp/browser.py +140 -0
- osn_selenium/executors/trio_threads/cdp/cache_storage.py +79 -0
- osn_selenium/executors/trio_threads/cdp/cast.py +47 -0
- osn_selenium/executors/trio_threads/cdp/console.py +33 -0
- osn_selenium/executors/trio_threads/cdp/css.py +196 -0
- osn_selenium/executors/trio_threads/cdp/debugger.py +219 -0
- osn_selenium/executors/trio_threads/cdp/device_access.py +40 -0
- osn_selenium/executors/trio_threads/cdp/device_orientation.py +34 -0
- osn_selenium/executors/trio_threads/cdp/dom.py +319 -0
- osn_selenium/executors/trio_threads/cdp/dom_debugger.py +69 -0
- osn_selenium/executors/trio_threads/cdp/dom_snapshot.py +71 -0
- osn_selenium/executors/trio_threads/cdp/dom_storage.py +51 -0
- osn_selenium/executors/trio_threads/cdp/emulation.py +283 -0
- osn_selenium/executors/trio_threads/cdp/event_breakpoints.py +37 -0
- osn_selenium/executors/trio_threads/cdp/extensions.py +52 -0
- osn_selenium/executors/trio_threads/cdp/fed_cm.py +54 -0
- osn_selenium/executors/trio_threads/cdp/fetch.py +105 -0
- osn_selenium/executors/trio_threads/cdp/file_system.py +31 -0
- osn_selenium/executors/trio_threads/cdp/headless_experimental.py +54 -0
- osn_selenium/executors/trio_threads/cdp/heap_profiler.py +102 -0
- osn_selenium/executors/trio_threads/cdp/indexed_db.py +155 -0
- osn_selenium/executors/trio_threads/cdp/input.py +242 -0
- osn_selenium/executors/trio_threads/cdp/inspector.py +34 -0
- osn_selenium/executors/trio_threads/cdp/io.py +42 -0
- osn_selenium/executors/trio_threads/cdp/layer_tree.py +84 -0
- osn_selenium/executors/trio_threads/cdp/log.py +44 -0
- osn_selenium/executors/trio_threads/cdp/media.py +30 -0
- osn_selenium/executors/trio_threads/cdp/memory.py +71 -0
- osn_selenium/executors/trio_threads/cdp/network.py +296 -0
- osn_selenium/executors/trio_threads/cdp/overlay.py +183 -0
- osn_selenium/executors/trio_threads/cdp/page.py +374 -0
- osn_selenium/executors/trio_threads/cdp/performance.py +46 -0
- osn_selenium/executors/trio_threads/cdp/performance_timeline.py +36 -0
- osn_selenium/executors/trio_threads/cdp/preload.py +30 -0
- osn_selenium/executors/trio_threads/cdp/profiler.py +71 -0
- osn_selenium/executors/trio_threads/cdp/pwa.py +64 -0
- osn_selenium/executors/trio_threads/cdp/runtime.py +230 -0
- osn_selenium/executors/trio_threads/cdp/schema.py +32 -0
- osn_selenium/executors/trio_threads/cdp/security.py +43 -0
- osn_selenium/executors/trio_threads/cdp/service_worker.py +69 -0
- osn_selenium/executors/trio_threads/cdp/storage.py +162 -0
- osn_selenium/executors/trio_threads/cdp/system_info.py +43 -0
- osn_selenium/executors/trio_threads/cdp/target.py +156 -0
- osn_selenium/executors/trio_threads/cdp/tethering.py +34 -0
- osn_selenium/executors/trio_threads/cdp/tracing.py +71 -0
- osn_selenium/executors/trio_threads/cdp/web_audio.py +37 -0
- osn_selenium/executors/trio_threads/cdp/web_authn.py +95 -0
- osn_selenium/executors/trio_threads/cdp.py +104 -0
- osn_selenium/executors/trio_threads/javascript.py +90 -0
- osn_selenium/executors/unified/__init__.py +1 -0
- osn_selenium/executors/unified/cdp/__init__.py +1 -0
- osn_selenium/executors/unified/cdp/accessibility.py +81 -0
- osn_selenium/executors/unified/cdp/animation.py +50 -0
- osn_selenium/executors/unified/cdp/audits.py +45 -0
- osn_selenium/executors/unified/cdp/autofill.py +41 -0
- osn_selenium/executors/unified/cdp/background_service.py +24 -0
- osn_selenium/executors/unified/cdp/bluetooth_emulation.py +132 -0
- osn_selenium/executors/unified/cdp/browser.py +143 -0
- osn_selenium/executors/unified/cdp/cache_storage.py +69 -0
- osn_selenium/executors/unified/cdp/cast.py +32 -0
- osn_selenium/executors/unified/cdp/console.py +18 -0
- osn_selenium/executors/unified/cdp/css.py +237 -0
- osn_selenium/executors/unified/cdp/debugger.py +243 -0
- osn_selenium/executors/unified/cdp/device_access.py +21 -0
- osn_selenium/executors/unified/cdp/device_orientation.py +18 -0
- osn_selenium/executors/unified/cdp/dom.py +380 -0
- osn_selenium/executors/unified/cdp/dom_debugger.py +65 -0
- osn_selenium/executors/unified/cdp/dom_snapshot.py +58 -0
- osn_selenium/executors/unified/cdp/dom_storage.py +38 -0
- osn_selenium/executors/unified/cdp/emulation.py +312 -0
- osn_selenium/executors/unified/cdp/event_breakpoints.py +24 -0
- osn_selenium/executors/unified/cdp/extensions.py +45 -0
- osn_selenium/executors/unified/cdp/fed_cm.py +51 -0
- osn_selenium/executors/unified/cdp/fetch.py +111 -0
- osn_selenium/executors/unified/cdp/file_system.py +15 -0
- osn_selenium/executors/unified/cdp/headless_experimental.py +38 -0
- osn_selenium/executors/unified/cdp/heap_profiler.py +101 -0
- osn_selenium/executors/unified/cdp/indexed_db.py +157 -0
- osn_selenium/executors/unified/cdp/input.py +254 -0
- osn_selenium/executors/unified/cdp/inspector.py +15 -0
- osn_selenium/executors/unified/cdp/io.py +29 -0
- osn_selenium/executors/unified/cdp/layer_tree.py +71 -0
- osn_selenium/executors/unified/cdp/log.py +29 -0
- osn_selenium/executors/unified/cdp/media.py +15 -0
- osn_selenium/executors/unified/cdp/memory.py +59 -0
- osn_selenium/executors/unified/cdp/network.py +323 -0
- osn_selenium/executors/unified/cdp/overlay.py +209 -0
- osn_selenium/executors/unified/cdp/page.py +410 -0
- osn_selenium/executors/unified/cdp/performance.py +27 -0
- osn_selenium/executors/unified/cdp/performance_timeline.py +17 -0
- osn_selenium/executors/unified/cdp/preload.py +15 -0
- osn_selenium/executors/unified/cdp/profiler.py +55 -0
- osn_selenium/executors/unified/cdp/pwa.py +55 -0
- osn_selenium/executors/unified/cdp/runtime.py +245 -0
- osn_selenium/executors/unified/cdp/schema.py +17 -0
- osn_selenium/executors/unified/cdp/security.py +27 -0
- osn_selenium/executors/unified/cdp/service_worker.py +62 -0
- osn_selenium/executors/unified/cdp/storage.py +178 -0
- osn_selenium/executors/unified/cdp/system_info.py +24 -0
- osn_selenium/executors/unified/cdp/target.py +165 -0
- osn_selenium/executors/unified/cdp/tethering.py +15 -0
- osn_selenium/executors/unified/cdp/tracing.py +62 -0
- osn_selenium/executors/unified/cdp/web_audio.py +18 -0
- osn_selenium/executors/unified/cdp/web_authn.py +103 -0
- osn_selenium/executors/unified/javascript.py +104 -0
- osn_selenium/flags/__init__.py +1 -0
- osn_selenium/flags/_functions.py +45 -0
- osn_selenium/flags/_typehints.py +34 -0
- osn_selenium/flags/_validators.py +101 -0
- osn_selenium/{webdrivers/BaseDriver/flags.py → flags/base.py} +159 -245
- osn_selenium/{webdrivers/Blink/flags.py → flags/blink.py} +130 -374
- osn_selenium/flags/chrome.py +259 -0
- osn_selenium/flags/edge.py +259 -0
- osn_selenium/flags/models/__init__.py +1 -0
- osn_selenium/flags/models/base.py +130 -0
- osn_selenium/flags/models/blink.py +263 -0
- osn_selenium/{webdrivers/Chrome/flags.py → flags/models/chrome.py} +25 -75
- osn_selenium/{webdrivers/Edge/flags.py → flags/models/edge.py} +25 -75
- osn_selenium/flags/models/values.py +44 -0
- osn_selenium/{webdrivers/Yandex/flags.py → flags/models/yandex.py} +26 -76
- osn_selenium/flags/yandex.py +259 -0
- osn_selenium/instances/__init__.py +1 -0
- osn_selenium/instances/_functions.py +242 -0
- osn_selenium/instances/_typehints.py +148 -0
- osn_selenium/instances/_utils.py +143 -0
- osn_selenium/instances/convert.py +287 -0
- osn_selenium/instances/protocols.py +105 -0
- osn_selenium/instances/sync/__init__.py +1 -0
- osn_selenium/instances/sync/action_chains/__init__.py +32 -0
- osn_selenium/instances/sync/action_chains/base.py +74 -0
- osn_selenium/instances/sync/action_chains/click.py +61 -0
- osn_selenium/instances/sync/action_chains/drag_and_drop.py +45 -0
- osn_selenium/instances/sync/action_chains/hm_keyboard.py +37 -0
- osn_selenium/instances/sync/action_chains/hm_move.py +81 -0
- osn_selenium/instances/sync/action_chains/hm_scroll.py +60 -0
- osn_selenium/instances/sync/action_chains/keyboard.py +55 -0
- osn_selenium/instances/sync/action_chains/move.py +46 -0
- osn_selenium/instances/sync/action_chains/scroll.py +43 -0
- osn_selenium/instances/sync/action_chains/utils.py +30 -0
- osn_selenium/instances/sync/alert.py +69 -0
- osn_selenium/instances/sync/browser.py +72 -0
- osn_selenium/instances/sync/browsing_context.py +193 -0
- osn_selenium/instances/sync/dialog.py +81 -0
- osn_selenium/instances/sync/fedcm.py +92 -0
- osn_selenium/instances/sync/mobile.py +75 -0
- osn_selenium/instances/sync/network.py +90 -0
- osn_selenium/instances/sync/permissions.py +80 -0
- osn_selenium/instances/sync/script.py +77 -0
- osn_selenium/instances/sync/shadow_root.py +113 -0
- osn_selenium/instances/sync/storage.py +91 -0
- osn_selenium/instances/sync/switch_to.py +92 -0
- osn_selenium/instances/sync/web_driver_wait.py +83 -0
- osn_selenium/instances/sync/web_element.py +179 -0
- osn_selenium/instances/sync/web_extension.py +77 -0
- osn_selenium/instances/trio_threads/__init__.py +1 -0
- osn_selenium/instances/trio_threads/action_chains/__init__.py +32 -0
- osn_selenium/instances/trio_threads/action_chains/base.py +88 -0
- osn_selenium/instances/trio_threads/action_chains/click.py +71 -0
- osn_selenium/instances/trio_threads/action_chains/drag_and_drop.py +49 -0
- osn_selenium/instances/trio_threads/action_chains/hm_keyboard.py +41 -0
- osn_selenium/instances/trio_threads/action_chains/hm_move.py +91 -0
- osn_selenium/instances/trio_threads/action_chains/hm_scroll.py +66 -0
- osn_selenium/instances/trio_threads/action_chains/keyboard.py +63 -0
- osn_selenium/instances/trio_threads/action_chains/move.py +52 -0
- osn_selenium/instances/trio_threads/action_chains/scroll.py +49 -0
- osn_selenium/instances/trio_threads/action_chains/utils.py +32 -0
- osn_selenium/instances/trio_threads/alert.py +87 -0
- osn_selenium/instances/trio_threads/browser.py +90 -0
- osn_selenium/instances/trio_threads/browsing_context.py +216 -0
- osn_selenium/instances/trio_threads/dialog.py +99 -0
- osn_selenium/instances/trio_threads/fedcm.py +110 -0
- osn_selenium/instances/trio_threads/mobile.py +93 -0
- osn_selenium/instances/trio_threads/network.py +108 -0
- osn_selenium/instances/trio_threads/permissions.py +102 -0
- osn_selenium/instances/trio_threads/script.py +95 -0
- osn_selenium/instances/trio_threads/shadow_root.py +154 -0
- osn_selenium/instances/trio_threads/storage.py +109 -0
- osn_selenium/instances/trio_threads/switch_to.py +124 -0
- osn_selenium/instances/trio_threads/web_driver_wait.py +101 -0
- osn_selenium/instances/trio_threads/web_element.py +217 -0
- osn_selenium/instances/trio_threads/web_extension.py +99 -0
- osn_selenium/instances/unified/__init__.py +1 -0
- osn_selenium/instances/unified/action_chains/__init__.py +22 -0
- osn_selenium/instances/unified/action_chains/base.py +31 -0
- osn_selenium/instances/unified/action_chains/click.py +27 -0
- osn_selenium/instances/unified/action_chains/drag_and_drop.py +24 -0
- osn_selenium/instances/unified/action_chains/hm_keyboard.py +30 -0
- osn_selenium/instances/unified/action_chains/hm_move.py +66 -0
- osn_selenium/instances/unified/action_chains/hm_scroll.py +79 -0
- osn_selenium/instances/unified/action_chains/keyboard.py +24 -0
- osn_selenium/instances/unified/action_chains/move.py +24 -0
- osn_selenium/instances/unified/action_chains/scroll.py +21 -0
- osn_selenium/instances/unified/action_chains/utils.py +19 -0
- osn_selenium/instances/unified/alert.py +29 -0
- osn_selenium/instances/unified/browser.py +33 -0
- osn_selenium/instances/unified/browsing_context.py +151 -0
- osn_selenium/instances/unified/dialog.py +42 -0
- osn_selenium/instances/unified/fedcm.py +48 -0
- osn_selenium/instances/unified/mobile.py +36 -0
- osn_selenium/instances/unified/network.py +50 -0
- osn_selenium/instances/unified/permissions.py +43 -0
- osn_selenium/instances/unified/script.py +38 -0
- osn_selenium/instances/unified/shadow_root.py +46 -0
- osn_selenium/instances/unified/storage.py +48 -0
- osn_selenium/instances/unified/switch_to.py +49 -0
- osn_selenium/instances/unified/web_driver_wait.py +45 -0
- osn_selenium/instances/unified/web_element.py +145 -0
- osn_selenium/instances/unified/web_extension.py +38 -0
- osn_selenium/javascript/__init__.py +1 -0
- osn_selenium/javascript/_functions.py +63 -0
- osn_selenium/javascript/fingerprint/__init__.py +120 -0
- osn_selenium/javascript/fingerprint/_decorators.py +41 -0
- osn_selenium/javascript/fingerprint/_detect/__init__.py +1 -0
- osn_selenium/javascript/fingerprint/_detect/functions.py +253 -0
- osn_selenium/javascript/fingerprint/_detect/templates.py +128 -0
- osn_selenium/javascript/fingerprint/_functions.py +35 -0
- osn_selenium/javascript/fingerprint/_typehints.py +27 -0
- osn_selenium/javascript/fingerprint/registry/__init__.py +7 -0
- osn_selenium/javascript/fingerprint/registry/_core_functions.py +236 -0
- osn_selenium/javascript/fingerprint/registry/_functions.py +923 -0
- osn_selenium/javascript/fingerprint/registry/_typehints.py +6 -0
- osn_selenium/javascript/fingerprint/registry/_utils.py +6 -0
- osn_selenium/javascript/fingerprint/registry/models.py +41 -0
- osn_selenium/javascript/fingerprint/spoof/__init__.py +1 -0
- osn_selenium/javascript/fingerprint/spoof/_functions.py +172 -0
- osn_selenium/javascript/fingerprint/spoof/_templates.py +134 -0
- osn_selenium/javascript/fingerprint/spoof/_typehints.py +22 -0
- osn_selenium/javascript/fingerprint/spoof/core_rules.py +141 -0
- osn_selenium/javascript/fingerprint/spoof/noise.py +51 -0
- osn_selenium/javascript/fingerprint/spoof/rules.py +313 -0
- osn_selenium/javascript/functions.py +44 -0
- osn_selenium/javascript/models.py +35 -0
- osn_selenium/javascript/scripts/start_fingerprint_detection.js +56 -0
- osn_selenium/models.py +94 -0
- osn_selenium/trio_threads_mixin.py +159 -0
- osn_selenium/webdrivers/_args_helpers.py +181 -0
- osn_selenium/webdrivers/_bridges.py +57 -0
- osn_selenium/webdrivers/_decorators.py +83 -0
- osn_selenium/webdrivers/_executable_tables/__init__.py +1 -0
- osn_selenium/webdrivers/_executable_tables/functions.py +113 -0
- osn_selenium/webdrivers/_executable_tables/models.py +19 -0
- osn_selenium/webdrivers/_typehints.py +10 -0
- osn_selenium/webdrivers/protocols.py +50 -0
- osn_selenium/webdrivers/sync/__init__.py +1 -0
- osn_selenium/webdrivers/sync/blink/__init__.py +124 -0
- osn_selenium/webdrivers/sync/blink/base.py +140 -0
- osn_selenium/webdrivers/sync/blink/casting.py +34 -0
- osn_selenium/webdrivers/sync/blink/features.py +28 -0
- osn_selenium/webdrivers/sync/blink/lifecycle.py +66 -0
- osn_selenium/webdrivers/sync/blink/logging.py +25 -0
- osn_selenium/webdrivers/sync/blink/network.py +28 -0
- osn_selenium/webdrivers/sync/blink/settings.py +63 -0
- osn_selenium/webdrivers/sync/chrome/__init__.py +102 -0
- osn_selenium/webdrivers/sync/chrome/base.py +118 -0
- osn_selenium/webdrivers/sync/chrome/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/chrome/settings.py +58 -0
- osn_selenium/webdrivers/sync/core/__init__.py +100 -0
- osn_selenium/webdrivers/sync/core/actions.py +59 -0
- osn_selenium/webdrivers/sync/core/auth.py +77 -0
- osn_selenium/webdrivers/sync/core/base.py +175 -0
- osn_selenium/webdrivers/sync/core/capture.py +37 -0
- osn_selenium/webdrivers/sync/core/comonents.py +57 -0
- osn_selenium/webdrivers/sync/core/devtools.py +47 -0
- osn_selenium/webdrivers/sync/core/element.py +42 -0
- osn_selenium/webdrivers/sync/core/file.py +40 -0
- osn_selenium/webdrivers/sync/core/lifecycle.py +59 -0
- osn_selenium/webdrivers/sync/core/navigation.py +36 -0
- osn_selenium/webdrivers/sync/core/script.py +53 -0
- osn_selenium/webdrivers/sync/core/settings.py +35 -0
- osn_selenium/webdrivers/sync/core/storage.py +48 -0
- osn_selenium/webdrivers/sync/core/timeouts.py +59 -0
- osn_selenium/webdrivers/sync/core/window.py +99 -0
- osn_selenium/webdrivers/sync/edge/__init__.py +102 -0
- osn_selenium/webdrivers/sync/edge/base.py +114 -0
- osn_selenium/webdrivers/sync/edge/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/edge/settings.py +58 -0
- osn_selenium/webdrivers/sync/yandex/__init__.py +102 -0
- osn_selenium/webdrivers/sync/yandex/base.py +111 -0
- osn_selenium/webdrivers/sync/yandex/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/yandex/settings.py +58 -0
- osn_selenium/webdrivers/trio_threads/__init__.py +1 -0
- osn_selenium/webdrivers/trio_threads/blink/__init__.py +134 -0
- osn_selenium/webdrivers/trio_threads/blink/base.py +143 -0
- osn_selenium/webdrivers/trio_threads/blink/casting.py +35 -0
- osn_selenium/webdrivers/trio_threads/blink/features.py +29 -0
- osn_selenium/webdrivers/trio_threads/blink/lifecycle.py +66 -0
- osn_selenium/webdrivers/trio_threads/blink/logging.py +26 -0
- osn_selenium/webdrivers/trio_threads/blink/network.py +29 -0
- osn_selenium/webdrivers/trio_threads/blink/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/chrome/__init__.py +114 -0
- osn_selenium/webdrivers/trio_threads/chrome/base.py +119 -0
- osn_selenium/webdrivers/trio_threads/chrome/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/chrome/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/core/__init__.py +115 -0
- osn_selenium/webdrivers/trio_threads/core/actions.py +72 -0
- osn_selenium/webdrivers/trio_threads/core/auth.py +88 -0
- osn_selenium/webdrivers/trio_threads/core/base.py +199 -0
- osn_selenium/webdrivers/trio_threads/core/capture.py +38 -0
- osn_selenium/webdrivers/trio_threads/core/comonents.py +92 -0
- osn_selenium/webdrivers/trio_threads/core/devtools.py +53 -0
- osn_selenium/webdrivers/trio_threads/core/element.py +58 -0
- osn_selenium/webdrivers/trio_threads/core/file.py +45 -0
- osn_selenium/webdrivers/trio_threads/core/lifecycle.py +60 -0
- osn_selenium/webdrivers/trio_threads/core/navigation.py +41 -0
- osn_selenium/webdrivers/trio_threads/core/script.py +59 -0
- osn_selenium/webdrivers/trio_threads/core/settings.py +36 -0
- osn_selenium/webdrivers/trio_threads/core/storage.py +54 -0
- osn_selenium/webdrivers/trio_threads/core/timeouts.py +60 -0
- osn_selenium/webdrivers/trio_threads/core/window.py +105 -0
- osn_selenium/webdrivers/trio_threads/edge/__init__.py +114 -0
- osn_selenium/webdrivers/trio_threads/edge/base.py +115 -0
- osn_selenium/webdrivers/trio_threads/edge/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/edge/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/yandex/__init__.py +114 -0
- osn_selenium/webdrivers/trio_threads/yandex/base.py +112 -0
- osn_selenium/webdrivers/trio_threads/yandex/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/yandex/settings.py +63 -0
- osn_selenium/webdrivers/unified/__init__.py +1 -0
- osn_selenium/webdrivers/unified/blink/__init__.py +1 -0
- osn_selenium/webdrivers/unified/blink/base.py +135 -0
- osn_selenium/webdrivers/unified/blink/casting.py +30 -0
- osn_selenium/webdrivers/unified/blink/features.py +22 -0
- osn_selenium/webdrivers/unified/blink/lifecycle.py +114 -0
- osn_selenium/webdrivers/unified/blink/logging.py +18 -0
- osn_selenium/webdrivers/unified/blink/network.py +22 -0
- osn_selenium/webdrivers/unified/blink/settings.py +86 -0
- osn_selenium/webdrivers/unified/chrome/__init__.py +1 -0
- osn_selenium/webdrivers/unified/chrome/base.py +58 -0
- osn_selenium/webdrivers/unified/chrome/lifecycle.py +88 -0
- osn_selenium/webdrivers/unified/chrome/settings.py +48 -0
- osn_selenium/webdrivers/unified/core/__init__.py +1 -0
- osn_selenium/webdrivers/unified/core/actions.py +43 -0
- osn_selenium/webdrivers/unified/core/auth.py +70 -0
- osn_selenium/webdrivers/unified/core/base.py +139 -0
- osn_selenium/webdrivers/unified/core/capture.py +32 -0
- osn_selenium/webdrivers/unified/core/components.py +32 -0
- osn_selenium/webdrivers/unified/core/devtools.py +35 -0
- osn_selenium/webdrivers/unified/core/element.py +24 -0
- osn_selenium/webdrivers/unified/core/file.py +35 -0
- osn_selenium/webdrivers/unified/core/lifecycle.py +84 -0
- osn_selenium/webdrivers/unified/core/navigation.py +31 -0
- osn_selenium/webdrivers/unified/core/script.py +32 -0
- osn_selenium/webdrivers/unified/core/settings.py +44 -0
- osn_selenium/webdrivers/unified/core/storage.py +37 -0
- osn_selenium/webdrivers/unified/core/timeouts.py +56 -0
- osn_selenium/webdrivers/unified/core/window.py +135 -0
- osn_selenium/webdrivers/unified/edge/__init__.py +1 -0
- osn_selenium/webdrivers/unified/edge/base.py +56 -0
- osn_selenium/webdrivers/unified/edge/lifecycle.py +88 -0
- osn_selenium/webdrivers/unified/edge/settings.py +48 -0
- osn_selenium/webdrivers/unified/yandex/__init__.py +1 -0
- osn_selenium/webdrivers/unified/yandex/base.py +58 -0
- osn_selenium/webdrivers/unified/yandex/lifecycle.py +58 -0
- osn_selenium/webdrivers/unified/yandex/settings.py +48 -0
- osn_selenium-1.1.0.dist-info/METADATA +252 -0
- osn_selenium-1.1.0.dist-info/RECORD +615 -0
- {osn_selenium-0.0.0.dist-info → osn_selenium-1.1.0.dist-info}/WHEEL +1 -1
- osn_selenium/captcha_workers/__init__.py +0 -26
- osn_selenium/dev_tools/_types.py +0 -22
- osn_selenium/dev_tools/errors.py +0 -89
- osn_selenium/dev_tools/logger.py +0 -558
- osn_selenium/dev_tools/manager.py +0 -1551
- osn_selenium/dev_tools/utils.py +0 -509
- osn_selenium/errors.py +0 -16
- osn_selenium/types.py +0 -118
- osn_selenium/webdrivers/BaseDriver/_utils.py +0 -37
- osn_selenium/webdrivers/BaseDriver/protocols.py +0 -2135
- osn_selenium/webdrivers/BaseDriver/trio_wrapper.py +0 -71
- osn_selenium/webdrivers/BaseDriver/webdriver.py +0 -2626
- osn_selenium/webdrivers/Blink/protocols.py +0 -330
- osn_selenium/webdrivers/Blink/webdriver.py +0 -637
- osn_selenium/webdrivers/Chrome/protocols.py +0 -228
- osn_selenium/webdrivers/Chrome/webdriver.py +0 -394
- osn_selenium/webdrivers/Edge/protocols.py +0 -228
- osn_selenium/webdrivers/Edge/webdriver.py +0 -394
- osn_selenium/webdrivers/Yandex/protocols.py +0 -211
- osn_selenium/webdrivers/Yandex/webdriver.py +0 -350
- osn_selenium/webdrivers/_functions.py +0 -504
- osn_selenium/webdrivers/types.py +0 -390
- osn_selenium-0.0.0.dist-info/METADATA +0 -710
- osn_selenium-0.0.0.dist-info/RECORD +0 -57
- /osn_selenium/{webdrivers/BaseDriver → abstract}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Blink → abstract/executors}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Chrome → abstract/instances}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Edge → abstract/webdriver}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Yandex → dev_tools/logger}/__init__.py +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/check_element_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_document_scroll_size.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_css.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_rect_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_random_element_point_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_position.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_rect.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_size.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/open_new_tab.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/stop_window_loading.js +0 -0
- {osn_selenium-0.0.0.dist-info → osn_selenium-1.1.0.dist-info}/top_level.txt +0 -0
|
@@ -1,330 +0,0 @@
|
|
|
1
|
-
import pathlib
|
|
2
|
-
from selenium import webdriver
|
|
3
|
-
from osn_selenium.types import WindowRect
|
|
4
|
-
from osn_selenium.webdrivers.types import _any_flags_mapping
|
|
5
|
-
from typing import (
|
|
6
|
-
Optional,
|
|
7
|
-
Protocol,
|
|
8
|
-
TYPE_CHECKING,
|
|
9
|
-
Union,
|
|
10
|
-
runtime_checkable
|
|
11
|
-
)
|
|
12
|
-
from osn_selenium.webdrivers.BaseDriver.protocols import (
|
|
13
|
-
TrioWebDriverWrapperProtocol
|
|
14
|
-
)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
if TYPE_CHECKING:
|
|
18
|
-
from osn_selenium.webdrivers.Blink.webdriver import BlinkWebDriver
|
|
19
|
-
from osn_selenium.webdrivers.Blink.flags import BlinkFlagsManager, BlinkFlags
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
@runtime_checkable
|
|
23
|
-
class TrioBlinkWebDriverWrapperProtocol(TrioWebDriverWrapperProtocol, Protocol):
|
|
24
|
-
"""
|
|
25
|
-
Wraps BlinkWebDriver methods for asynchronous execution using Trio.
|
|
26
|
-
|
|
27
|
-
This class acts as a proxy to a `BrowserWebDriver` instance. It intercepts
|
|
28
|
-
method calls and executes them in a separate thread using `trio.to_thread.run_sync`,
|
|
29
|
-
allowing synchronous WebDriver operations to be called from asynchronous Trio code
|
|
30
|
-
without blocking the event loop. Properties and non-callable attributes are accessed directly.
|
|
31
|
-
|
|
32
|
-
Attributes:
|
|
33
|
-
_webdriver (BrowserWebDriver): The underlying synchronous BrowserWebDriver instance.
|
|
34
|
-
_excluding_functions (list[str]): A list of attribute names on the wrapped object
|
|
35
|
-
that should *not* be accessible through this wrapper,
|
|
36
|
-
typically because they are irrelevant or dangerous
|
|
37
|
-
in an async context handled by the wrapper.
|
|
38
|
-
"""
|
|
39
|
-
|
|
40
|
-
_webdriver: "BlinkWebDriver"
|
|
41
|
-
_webdriver_flags_manager: "BlinkFlagsManager"
|
|
42
|
-
_driver: Optional[Union[webdriver.Chrome, webdriver.Edge]]
|
|
43
|
-
|
|
44
|
-
async def _check_browser_exe_active(self) -> bool:
|
|
45
|
-
"""
|
|
46
|
-
Checks if the WebDriver is active by verifying if the debugging port is in use.
|
|
47
|
-
|
|
48
|
-
Determines if a WebDriver instance is currently running and active by checking if the configured
|
|
49
|
-
debugging port is in use by any process. This is a way to verify if a browser session is active
|
|
50
|
-
without directly querying the WebDriver itself.
|
|
51
|
-
|
|
52
|
-
Returns:
|
|
53
|
-
bool: True if the WebDriver is active (debugging port is in use), False otherwise.
|
|
54
|
-
"""
|
|
55
|
-
|
|
56
|
-
...
|
|
57
|
-
|
|
58
|
-
async def _find_debugging_port(self, debugging_port: Optional[int]) -> int:
|
|
59
|
-
"""
|
|
60
|
-
Finds an appropriate debugging port, either reusing a previous session's port or finding a free port.
|
|
61
|
-
|
|
62
|
-
Attempts to locate a suitable debugging port for the browser. It first tries to reuse a debugging port
|
|
63
|
-
from a previous browser session if a profile directory is specified and a previous session is found.
|
|
64
|
-
If no previous session is found or if no profile directory is specified, it attempts to use the provided
|
|
65
|
-
`debugging_port` if available, or finds a minimum free port if no port is provided or the provided port is in use.
|
|
66
|
-
|
|
67
|
-
Args:
|
|
68
|
-
debugging_port (Optional[int]): Requested debugging port number. If provided, the method attempts to use this port. Defaults to None.
|
|
69
|
-
|
|
70
|
-
Returns:
|
|
71
|
-
int: The debugging port number to use. This is either a reused port from a previous session, the provided port if available, or a newly found free port.
|
|
72
|
-
"""
|
|
73
|
-
|
|
74
|
-
...
|
|
75
|
-
|
|
76
|
-
async def _set_debugging_port(self, debugging_port: Optional[int], debugging_address: Optional[str]):
|
|
77
|
-
"""
|
|
78
|
-
Sets the debugging port and address.
|
|
79
|
-
|
|
80
|
-
Configures the browser to start with a specific debugging port. This port is used for external tools,
|
|
81
|
-
like debuggers or browser automation frameworks, to connect to and control the browser instance.
|
|
82
|
-
Setting a fixed debugging port can be useful for consistent remote debugging or automation setups.
|
|
83
|
-
|
|
84
|
-
Args:
|
|
85
|
-
debugging_port (Optional[int]): Debugging port number. If None or 0, the browser chooses a port automatically.
|
|
86
|
-
debugging_address (Optional[str]): The IP address for the debugger to listen on. Defaults to '127.0.0.1'.
|
|
87
|
-
"""
|
|
88
|
-
|
|
89
|
-
...
|
|
90
|
-
|
|
91
|
-
@property
|
|
92
|
-
def browser_exe(self) -> Optional[Union[str, pathlib.Path]]:
|
|
93
|
-
"""
|
|
94
|
-
Gets the path to the browser executable.
|
|
95
|
-
|
|
96
|
-
Returns:
|
|
97
|
-
Optional[Union[str, pathlib.Path]]: The path to the browser executable.
|
|
98
|
-
"""
|
|
99
|
-
|
|
100
|
-
...
|
|
101
|
-
|
|
102
|
-
async def close_webdriver(self):
|
|
103
|
-
"""
|
|
104
|
-
Closes the WebDriver instance and terminates the associated browser subprocess.
|
|
105
|
-
|
|
106
|
-
Quits the current WebDriver session, closes all browser windows, and then forcefully terminates
|
|
107
|
-
the browser process. This ensures a clean shutdown of the browser and WebDriver environment.
|
|
108
|
-
"""
|
|
109
|
-
|
|
110
|
-
...
|
|
111
|
-
|
|
112
|
-
@property
|
|
113
|
-
def debugging_ip(self) -> Optional[str]:
|
|
114
|
-
"""
|
|
115
|
-
Gets the IP address part of the debugger address.
|
|
116
|
-
|
|
117
|
-
Returns:
|
|
118
|
-
Optional[str]: The IP address of the debugger, or None if not set.
|
|
119
|
-
"""
|
|
120
|
-
|
|
121
|
-
...
|
|
122
|
-
|
|
123
|
-
@property
|
|
124
|
-
def debugging_port(self) -> Optional[int]:
|
|
125
|
-
"""
|
|
126
|
-
Gets the currently set debugging port.
|
|
127
|
-
|
|
128
|
-
Retrieves the debugging port number that the browser instance is configured to use.
|
|
129
|
-
|
|
130
|
-
Returns:
|
|
131
|
-
Optional[int]: The debugging port number, or None if not set.
|
|
132
|
-
"""
|
|
133
|
-
|
|
134
|
-
...
|
|
135
|
-
|
|
136
|
-
@property
|
|
137
|
-
def driver(self) -> Optional[Union[webdriver.Chrome, webdriver.Edge]]:
|
|
138
|
-
"""
|
|
139
|
-
Gets the underlying Selenium WebDriver instance associated with this object.
|
|
140
|
-
|
|
141
|
-
This property provides direct access to the WebDriver object (e.g., Chrome, Edge)
|
|
142
|
-
that is being controlled, allowing for direct Selenium operations if needed.
|
|
143
|
-
|
|
144
|
-
Returns:
|
|
145
|
-
Optional[Union[webdriver.Chrome, webdriver.Edge]]:
|
|
146
|
-
The active WebDriver instance, or None if no driver is currently set or active.
|
|
147
|
-
"""
|
|
148
|
-
|
|
149
|
-
...
|
|
150
|
-
|
|
151
|
-
def reset_settings(
|
|
152
|
-
self,
|
|
153
|
-
flags: Optional[Union["BlinkFlags", _any_flags_mapping]] = None,
|
|
154
|
-
browser_exe: Optional[Union[str, pathlib.Path]] = None,
|
|
155
|
-
browser_name_in_system: Optional[str] = None,
|
|
156
|
-
use_browser_exe: Optional[bool] = None,
|
|
157
|
-
start_page_url: str = "",
|
|
158
|
-
window_rect: Optional[WindowRect] = None,
|
|
159
|
-
trio_tokens_limit: Union[int, float] = 40,
|
|
160
|
-
):
|
|
161
|
-
"""
|
|
162
|
-
Resets various configurable browser settings to their specified or default values.
|
|
163
|
-
|
|
164
|
-
This method allows for reconfiguring the WebDriver's operational parameters,
|
|
165
|
-
such as browser flags, executable path, start URL, window dimensions, and
|
|
166
|
-
concurrency limits. It is crucial that the browser session is *not* active
|
|
167
|
-
when this method is called; otherwise, a warning will be issued, and no changes
|
|
168
|
-
will be applied.
|
|
169
|
-
|
|
170
|
-
Args:
|
|
171
|
-
flags (Optional[Union[BlinkFlags, Mapping[str, Any]]]): New browser flags to apply.
|
|
172
|
-
If provided, existing flags are cleared and replaced with these.
|
|
173
|
-
If `None`, all custom flags are cleared, and the browser will start with default flags.
|
|
174
|
-
browser_exe (Optional[Union[str, pathlib.Path]]): The explicit path to the browser executable.
|
|
175
|
-
If provided, this path will be used. If `None`, the executable path managed by the
|
|
176
|
-
flags manager will be cleared, and then potentially re-detected based on
|
|
177
|
-
`use_browser_exe` and `browser_name_in_system`.
|
|
178
|
-
browser_name_in_system (Optional[str]): The common name of the browser (e.g., "Chrome", "Edge").
|
|
179
|
-
Used in conjunction with `use_browser_exe` to automatically detect the browser executable path.
|
|
180
|
-
This parameter only takes effect if `use_browser_exe` is explicitly `True` or `False`.
|
|
181
|
-
If `None`, no automatic detection based on name will occur through this method call.
|
|
182
|
-
use_browser_exe (Optional[bool]): Controls the automatic detection of the browser executable.
|
|
183
|
-
If `True` (and `browser_name_in_system` is provided), the browser executable path
|
|
184
|
-
will be automatically detected if `browser_exe` is `None`.
|
|
185
|
-
If `False` (and `browser_name_in_system` is provided), any existing `browser_exe`
|
|
186
|
-
path in the flags manager will be cleared.
|
|
187
|
-
If `None`, the current `use_browser_exe` state is maintained for the `_detect_browser_exe` logic.
|
|
188
|
-
start_page_url (str): The URL that the browser will attempt to navigate to
|
|
189
|
-
immediately after starting. Defaults to an empty string.
|
|
190
|
-
window_rect (Optional[WindowRect]): The initial window size and position settings.
|
|
191
|
-
If `None`, it defaults to a new `WindowRect()` instance, effectively resetting
|
|
192
|
-
to the browser's default window behavior.
|
|
193
|
-
trio_tokens_limit (Union[int, float]): The maximum number of concurrent synchronous
|
|
194
|
-
WebDriver operations allowed by the Trio capacity limiter. Defaults to 40.
|
|
195
|
-
"""
|
|
196
|
-
|
|
197
|
-
...
|
|
198
|
-
|
|
199
|
-
def restart_webdriver(
|
|
200
|
-
self,
|
|
201
|
-
flags: Optional[Union["BlinkFlags", _any_flags_mapping]] = None,
|
|
202
|
-
browser_exe: Optional[Union[str, pathlib.Path]] = None,
|
|
203
|
-
browser_name_in_system: Optional[str] = None,
|
|
204
|
-
use_browser_exe: Optional[bool] = None,
|
|
205
|
-
start_page_url: Optional[str] = None,
|
|
206
|
-
window_rect: Optional[WindowRect] = None,
|
|
207
|
-
trio_tokens_limit: Optional[Union[int, float]] = None,
|
|
208
|
-
):
|
|
209
|
-
"""
|
|
210
|
-
Restarts the WebDriver and browser session gracefully.
|
|
211
|
-
|
|
212
|
-
Performs a clean restart by first closing the existing WebDriver session and browser
|
|
213
|
-
(using `close_webdriver`), and then initiating a new session (using `start_webdriver`)
|
|
214
|
-
with potentially updated settings. If settings arguments are provided, they override
|
|
215
|
-
the existing settings for the new session; otherwise, the current settings are used.
|
|
216
|
-
|
|
217
|
-
Args:
|
|
218
|
-
flags (Optional[Union[BlinkFlags, Mapping[str, Any]]]): Override flags for the new session.
|
|
219
|
-
If provided, these flags will be applied. If `None`, current settings are used.
|
|
220
|
-
browser_exe (Optional[Union[str, pathlib.Path]]): Override browser executable for the new session.
|
|
221
|
-
If provided, this path will be used. If `None`, current settings are used.
|
|
222
|
-
browser_name_in_system (Optional[str]): Override browser name for auto-detection for the new session.
|
|
223
|
-
Only takes effect if `use_browser_exe` is also provided. If `None`, current settings are used.
|
|
224
|
-
use_browser_exe (Optional[bool]): Override auto-detection behavior for the new session.
|
|
225
|
-
If provided, this boolean determines if the browser executable is auto-detected.
|
|
226
|
-
If `None`, current settings are used.
|
|
227
|
-
start_page_url (Optional[str]): Override start page URL for the new session.
|
|
228
|
-
If provided, this URL will be used. If `None`, current setting is used.
|
|
229
|
-
window_rect (Optional[WindowRect]): Override window rectangle for the new session.
|
|
230
|
-
If provided, these dimensions will be used. If `None`, current settings are used.
|
|
231
|
-
trio_tokens_limit (Optional[Union[int, float]]): Override Trio token limit for the new session.
|
|
232
|
-
If provided, this limit will be used. If `None`, current setting is used.
|
|
233
|
-
"""
|
|
234
|
-
|
|
235
|
-
...
|
|
236
|
-
|
|
237
|
-
async def set_start_page_url(self, start_page_url: str):
|
|
238
|
-
"""
|
|
239
|
-
Sets the URL that the browser will open upon starting.
|
|
240
|
-
|
|
241
|
-
Args:
|
|
242
|
-
start_page_url (str): The URL to set as the start page.
|
|
243
|
-
"""
|
|
244
|
-
|
|
245
|
-
...
|
|
246
|
-
|
|
247
|
-
def start_webdriver(
|
|
248
|
-
self,
|
|
249
|
-
flags: Optional[Union["BlinkFlags", _any_flags_mapping]] = None,
|
|
250
|
-
browser_exe: Optional[Union[str, pathlib.Path]] = None,
|
|
251
|
-
browser_name_in_system: Optional[str] = None,
|
|
252
|
-
use_browser_exe: Optional[bool] = None,
|
|
253
|
-
start_page_url: Optional[str] = None,
|
|
254
|
-
window_rect: Optional[WindowRect] = None,
|
|
255
|
-
trio_tokens_limit: Optional[Union[int, float]] = None,
|
|
256
|
-
):
|
|
257
|
-
"""
|
|
258
|
-
Starts the WebDriver service and the browser session.
|
|
259
|
-
|
|
260
|
-
Initializes and starts the WebDriver instance and the associated browser process.
|
|
261
|
-
It first updates settings based on provided parameters (if the driver is not already running),
|
|
262
|
-
checks if a browser process needs to be started, starts it if necessary using Popen,
|
|
263
|
-
waits for it to become active, and then creates the WebDriver client instance (`self.driver`).
|
|
264
|
-
|
|
265
|
-
Args:
|
|
266
|
-
flags (Optional[Union[BlinkFlags, Mapping[str, Any]]]): Override flags for this start.
|
|
267
|
-
If provided, these flags will be applied. If `None`, current settings are used.
|
|
268
|
-
browser_exe (Optional[Union[str, pathlib.Path]]): Override browser executable path for this start.
|
|
269
|
-
If provided, this path will be used. If `None`, current settings are used.
|
|
270
|
-
browser_name_in_system (Optional[str]): Override browser name for auto-detection for this start.
|
|
271
|
-
Only takes effect if `use_browser_exe` is also provided. If `None`, current settings are used.
|
|
272
|
-
use_browser_exe (Optional[bool]): Override auto-detection behavior for this start.
|
|
273
|
-
If provided, this boolean determines if the browser executable is auto-detected.
|
|
274
|
-
If `None`, current settings are used.
|
|
275
|
-
start_page_url (Optional[str]): Override start page URL for this start.
|
|
276
|
-
If provided, this URL will be used. If `None`, current setting is used.
|
|
277
|
-
window_rect (Optional[WindowRect]): Override window rectangle for this start.
|
|
278
|
-
If provided, these dimensions will be used. If `None`, current settings are used.
|
|
279
|
-
trio_tokens_limit (Optional[Union[int, float]]): Override Trio token limit for this start.
|
|
280
|
-
If provided, this limit will be used. If `None`, current setting is used.
|
|
281
|
-
"""
|
|
282
|
-
|
|
283
|
-
...
|
|
284
|
-
|
|
285
|
-
def update_settings(
|
|
286
|
-
self,
|
|
287
|
-
flags: Optional[Union["BlinkFlags", _any_flags_mapping]] = None,
|
|
288
|
-
browser_exe: Optional[Union[str, pathlib.Path]] = None,
|
|
289
|
-
browser_name_in_system: Optional[str] = None,
|
|
290
|
-
use_browser_exe: Optional[bool] = None,
|
|
291
|
-
start_page_url: Optional[str] = None,
|
|
292
|
-
window_rect: Optional[WindowRect] = None,
|
|
293
|
-
trio_tokens_limit: Optional[Union[int, float]] = None,
|
|
294
|
-
):
|
|
295
|
-
"""
|
|
296
|
-
Updates various browser settings selectively without resetting others.
|
|
297
|
-
|
|
298
|
-
This method allows for dynamic updating of browser settings. Only the settings
|
|
299
|
-
for which a non-None value is provided will be updated. Settings passed as `None`
|
|
300
|
-
will retain their current values. This method can be called whether the browser
|
|
301
|
-
is active or not, but some changes might only take effect after the browser is
|
|
302
|
-
restarted.
|
|
303
|
-
|
|
304
|
-
Args:
|
|
305
|
-
flags (Optional[Union[BlinkFlags, Mapping[str, Any]]]): New browser flags to update.
|
|
306
|
-
If provided, these flags will be merged with or overwrite existing flags
|
|
307
|
-
within the flags manager. If `None`, existing flags remain unchanged.
|
|
308
|
-
browser_exe (Optional[Union[str, pathlib.Path]]): The new path to the browser executable.
|
|
309
|
-
If provided, this path will be set in the flags manager. If `None`, the
|
|
310
|
-
current browser executable path remains unchanged.
|
|
311
|
-
browser_name_in_system (Optional[str]): The common name of the browser (e.g., "Chrome", "Edge").
|
|
312
|
-
Used in conjunction with `use_browser_exe` to automatically detect the browser executable path.
|
|
313
|
-
This parameter only takes effect if `use_browser_exe` is explicitly provided.
|
|
314
|
-
If `None`, no automatic detection based on name will occur through this method call.
|
|
315
|
-
use_browser_exe (Optional[bool]): Controls the automatic detection of the browser executable.
|
|
316
|
-
If `True` (and `browser_name_in_system` is provided), the browser executable path
|
|
317
|
-
will be automatically detected if `browser_exe` is `None`.
|
|
318
|
-
If `False` (and `browser_name_in_system` is provided), any existing `browser_exe`
|
|
319
|
-
path in the flags manager will be cleared.
|
|
320
|
-
If `None`, the current `use_browser_exe` state is maintained for the `_detect_browser_exe` logic.
|
|
321
|
-
start_page_url (Optional[str]): The new URL that the browser will attempt to navigate to
|
|
322
|
-
immediately after starting. If `None`, the current start page URL remains unchanged.
|
|
323
|
-
window_rect (Optional[WindowRect]): The new window size and position settings.
|
|
324
|
-
If `None`, the current window rectangle settings remain unchanged.
|
|
325
|
-
trio_tokens_limit (Optional[Union[int, float]]): The new maximum number of concurrent
|
|
326
|
-
asynchronous operations allowed by the Trio capacity limiter. If `None`, the
|
|
327
|
-
current limit remains unchanged.
|
|
328
|
-
"""
|
|
329
|
-
|
|
330
|
-
...
|