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,28 +1,32 @@
|
|
|
1
1
|
import pathlib
|
|
2
|
-
from typing import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
from typing import Dict, List, Optional
|
|
3
|
+
from osn_selenium._functions import validate_path
|
|
4
|
+
from osn_selenium._typehints import PATH_TYPEHINT
|
|
5
|
+
from osn_selenium.flags.base import BrowserFlagsManager
|
|
6
|
+
from osn_selenium.exceptions.flags import FlagNotDefinedError
|
|
7
|
+
from osn_selenium.flags._functions import (
|
|
8
|
+
build_first_start_argument
|
|
7
9
|
)
|
|
8
|
-
from osn_selenium.
|
|
9
|
-
|
|
10
|
-
BrowserAttributes,
|
|
11
|
-
BrowserExperimentalOptions,
|
|
12
|
-
BrowserFlagsManager
|
|
10
|
+
from osn_selenium.exceptions.logic import (
|
|
11
|
+
AbstractImplementationError
|
|
13
12
|
)
|
|
14
|
-
from osn_selenium.
|
|
15
|
-
|
|
13
|
+
from osn_selenium.flags._typehints import (
|
|
14
|
+
BLINK_WEBDRIVER_OPTION_TYPEHINT
|
|
15
|
+
)
|
|
16
|
+
from osn_selenium.flags.models.base import (
|
|
16
17
|
FlagDefinition,
|
|
17
18
|
FlagNotDefined,
|
|
18
|
-
FlagType
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
FlagType
|
|
20
|
+
)
|
|
21
|
+
from osn_selenium.flags.models.blink import (
|
|
22
|
+
BlinkArguments,
|
|
23
|
+
BlinkAttributes,
|
|
24
|
+
BlinkExperimentalOptions,
|
|
25
|
+
BlinkFeatures,
|
|
26
|
+
BlinkFlags
|
|
22
27
|
)
|
|
23
|
-
from osn_selenium.
|
|
28
|
+
from osn_selenium.flags._validators import (
|
|
24
29
|
bool_adding_validation_function,
|
|
25
|
-
build_first_start_argument,
|
|
26
30
|
int_adding_validation_function,
|
|
27
31
|
optional_bool_adding_validation_function,
|
|
28
32
|
path_adding_validation_function,
|
|
@@ -30,236 +34,7 @@ from osn_selenium.webdrivers._functions import (
|
|
|
30
34
|
)
|
|
31
35
|
|
|
32
36
|
|
|
33
|
-
|
|
34
|
-
"""
|
|
35
|
-
Typed dictionary for experimental options specific to Blink-based browsers.
|
|
36
|
-
|
|
37
|
-
Attributes:
|
|
38
|
-
debugger_address (Optional[str]): The address (IP:port) of the remote debugger.
|
|
39
|
-
"""
|
|
40
|
-
|
|
41
|
-
debugger_address: Optional[str]
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
class BlinkFeatures(TypedDict, total=False):
|
|
45
|
-
"""
|
|
46
|
-
Typed dictionary for Blink-specific feature flags.
|
|
47
|
-
|
|
48
|
-
These flags control experimental or internal features within the Blink rendering engine.
|
|
49
|
-
|
|
50
|
-
Attributes:
|
|
51
|
-
calculate_native_win_occlusion (Optional[bool]): Controls native window occlusion calculation.
|
|
52
|
-
accept_ch_frame (Optional[bool]): Enables/disables Accept-CH frame.
|
|
53
|
-
avoid_unload_check_sync (Optional[bool]): Avoids synchronous unload checks.
|
|
54
|
-
bfcache_feature (Optional[bool]): Controls the Back-Forward Cache feature.
|
|
55
|
-
heavy_ad_mitigations (Optional[bool]): Enables/disables heavy ad mitigations.
|
|
56
|
-
isolate_origins (Optional[bool]): Controls origin isolation.
|
|
57
|
-
lazy_frame_loading (Optional[bool]): Enables/disables lazy frame loading.
|
|
58
|
-
script_streaming (Optional[bool]): Controls script streaming.
|
|
59
|
-
global_media_controls (Optional[bool]): Enables/disables global media controls.
|
|
60
|
-
improved_cookie_controls (Optional[bool]): Enables/disables improved cookie controls.
|
|
61
|
-
privacy_sandbox_settings4 (Optional[bool]): Controls Privacy Sandbox settings (version 4).
|
|
62
|
-
media_router (Optional[bool]): Enables/disables media router.
|
|
63
|
-
autofill_server_comm (Optional[bool]): Controls autofill server communication.
|
|
64
|
-
cert_transparency_updater (Optional[bool]): Controls certificate transparency updater.
|
|
65
|
-
optimization_hints (Optional[bool]): Enables/disables optimization hints.
|
|
66
|
-
dial_media_route_provider (Optional[bool]): Controls DIAL media route provider.
|
|
67
|
-
paint_holding (Optional[bool]): Enables/disables paint holding.
|
|
68
|
-
destroy_profile_on_browser_close (Optional[bool]): Destroys user profile on browser close.
|
|
69
|
-
site_per_process (Optional[bool]): Enforces site isolation (site-per-process model).
|
|
70
|
-
automation_controlled (Optional[bool]): Indicates if the browser is controlled by automation.
|
|
71
|
-
"""
|
|
72
|
-
|
|
73
|
-
calculate_native_win_occlusion: Optional[bool]
|
|
74
|
-
accept_ch_frame: Optional[bool]
|
|
75
|
-
avoid_unload_check_sync: Optional[bool]
|
|
76
|
-
bfcache_feature: Optional[bool]
|
|
77
|
-
heavy_ad_mitigations: Optional[bool]
|
|
78
|
-
isolate_origins: Optional[bool]
|
|
79
|
-
lazy_frame_loading: Optional[bool]
|
|
80
|
-
script_streaming: Optional[bool]
|
|
81
|
-
global_media_controls: Optional[bool]
|
|
82
|
-
improved_cookie_controls: Optional[bool]
|
|
83
|
-
privacy_sandbox_settings4: Optional[bool]
|
|
84
|
-
media_router: Optional[bool]
|
|
85
|
-
autofill_server_comm: Optional[bool]
|
|
86
|
-
cert_transparency_updater: Optional[bool]
|
|
87
|
-
optimization_hints: Optional[bool]
|
|
88
|
-
dial_media_route_provider: Optional[bool]
|
|
89
|
-
paint_holding: Optional[bool]
|
|
90
|
-
destroy_profile_on_browser_close: Optional[bool]
|
|
91
|
-
site_per_process: Optional[bool]
|
|
92
|
-
automation_controlled: Optional[bool]
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
class BlinkAttributes(BrowserAttributes, total=False):
|
|
96
|
-
"""
|
|
97
|
-
Typed dictionary for WebDriver attributes specific to Blink-based browsers.
|
|
98
|
-
|
|
99
|
-
Attributes:
|
|
100
|
-
enable_bidi (Optional[bool]): Enables/disables BiDi (Bidirectional) protocol mapper.
|
|
101
|
-
"""
|
|
102
|
-
|
|
103
|
-
pass
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
class BlinkArguments(BrowserArguments, total=False):
|
|
107
|
-
"""
|
|
108
|
-
Typed dictionary for command-line arguments specific to Blink-based browsers.
|
|
109
|
-
|
|
110
|
-
Attributes:
|
|
111
|
-
se_downloads_enabled (bool): Enables/disables Selenium downloads.
|
|
112
|
-
headless_mode (bool): Runs the browser in headless mode (without a UI).
|
|
113
|
-
mute_audio (bool): Mutes audio output from the browser.
|
|
114
|
-
no_first_run (bool): Prevents the browser from showing the "first run" experience.
|
|
115
|
-
disable_background_timer_throttling (bool): Disables throttling of background timers.
|
|
116
|
-
disable_backgrounding_occluded_windows (bool): Prevents backgrounding of occluded windows.
|
|
117
|
-
disable_hang_monitor (bool): Disables the browser's hang monitor.
|
|
118
|
-
disable_ipc_flooding_protection (bool): Disables IPC flooding protection.
|
|
119
|
-
disable_renderer_backgrounding (bool): Prevents renderer processes from being backgrounded.
|
|
120
|
-
disable_back_forward_cache (bool): Disables the Back-Forward Cache.
|
|
121
|
-
disable_notifications (bool): Disables web notifications.
|
|
122
|
-
disable_popup_blocking (bool): Disables the built-in popup blocker.
|
|
123
|
-
disable_prompt_on_repost (bool): Disables the prompt when reposting form data.
|
|
124
|
-
disable_sync (bool): Disables browser synchronization features.
|
|
125
|
-
disable_background_networking (bool): Disables background network activity.
|
|
126
|
-
disable_breakpad (bool): Disables the crash reporter.
|
|
127
|
-
disable_component_update (bool): Disables component updates.
|
|
128
|
-
disable_domain_reliability (bool): Disables domain reliability monitoring.
|
|
129
|
-
disable_new_content_rendering_timeout (bool): Disables timeout for new content rendering.
|
|
130
|
-
disable_threaded_animation (bool): Disables threaded animation.
|
|
131
|
-
disable_threaded_scrolling (bool): Disables threaded scrolling.
|
|
132
|
-
disable_checker_imaging (bool): Disables checker imaging.
|
|
133
|
-
disable_image_animation_resync (bool): Disables image animation resynchronization.
|
|
134
|
-
disable_partial_raster (bool): Disables partial rasterization.
|
|
135
|
-
disable_skia_runtime_opts (bool): Disables Skia runtime optimizations.
|
|
136
|
-
disable_dev_shm_usage (bool): Disables the use of /dev/shm (important for Docker).
|
|
137
|
-
disable_gpu (bool): Disables GPU hardware acceleration.
|
|
138
|
-
aggressive_cache_discard (bool): Enables aggressive discarding of cached data.
|
|
139
|
-
allow_running_insecure_content (bool): Allows running insecure content on HTTPS pages.
|
|
140
|
-
no_process_per_site (bool): Runs all sites in a single process (less secure, but saves memory).
|
|
141
|
-
enable_precise_memory_info (bool): Enables precise memory information reporting.
|
|
142
|
-
use_fake_device_for_media_stream (bool): Uses a fake camera/microphone for media streams.
|
|
143
|
-
use_fake_ui_for_media_stream (bool): Uses a fake UI for media stream requests.
|
|
144
|
-
deny_permission_prompts (bool): Automatically denies all permission prompts.
|
|
145
|
-
disable_external_intent_requests (bool): Disables external intent requests.
|
|
146
|
-
noerrdialogs (bool): Suppresses error dialogs.
|
|
147
|
-
enable_automation (bool): Enables automation features.
|
|
148
|
-
test_type (bool): Sets the browser to test mode.
|
|
149
|
-
remote_debugging_pipe (bool): Uses a pipe for remote debugging instead of a port.
|
|
150
|
-
silent_debugger_extension_api (bool): Silences debugger extension API warnings.
|
|
151
|
-
enable_logging_stderr (bool): Enables logging to stderr.
|
|
152
|
-
password_store_basic (bool): Uses a basic password store.
|
|
153
|
-
use_mock_keychain (bool): Uses a mock keychain for testing.
|
|
154
|
-
enable_crash_reporter_for_testing (bool): Enables crash reporter for testing purposes.
|
|
155
|
-
metrics_recording_only (bool): Records metrics without sending them.
|
|
156
|
-
no_pings (bool): Disables sending pings.
|
|
157
|
-
allow_pre_commit_input (bool): Allows pre-commit input.
|
|
158
|
-
deterministic_mode (bool): Runs the browser in a more deterministic mode.
|
|
159
|
-
run_all_compositor_stages_before_draw (bool): Runs all compositor stages before drawing.
|
|
160
|
-
enable_begin_frame_control (bool): Enables begin frame control.
|
|
161
|
-
in_process_gpu (bool): Runs the GPU process in-process.
|
|
162
|
-
block_new_web_contents (bool): Blocks new web contents (e.g., pop-ups).
|
|
163
|
-
new_window (bool): Opens a new window instead of a new tab.
|
|
164
|
-
no_service_autorun (bool): Disables service autorun.
|
|
165
|
-
process_per_tab (bool): Runs each tab in its own process.
|
|
166
|
-
single_process (bool): Runs the browser in a single process (less stable).
|
|
167
|
-
no_sandbox (bool): Disables the sandbox (less secure, but can fix some issues).
|
|
168
|
-
user_agent (Optional[str]): Sets a custom user agent string.
|
|
169
|
-
user_data_dir (Optional[str]): Specifies the user data directory.
|
|
170
|
-
proxy_server (Optional[str]): Specifies a proxy server to use.
|
|
171
|
-
remote_debugging_port (Optional[int]): Specifies the remote debugging port.
|
|
172
|
-
remote_debugging_address (Optional[str]): Specifies the remote debugging address.
|
|
173
|
-
use_file_for_fake_video_capture (Optional[Union[str, pathlib.Path]]): Uses a file for fake video capture.
|
|
174
|
-
autoplay_policy (Optional[AutoplayPolicyType]): Sets the autoplay policy.
|
|
175
|
-
log_level (Optional[LogLevelType]): Sets the browser's log level.
|
|
176
|
-
use_gl (Optional[UseGLType]): Specifies the GL backend to use.
|
|
177
|
-
force_color_profile (Optional[str]): Forces a specific color profile.
|
|
178
|
-
"""
|
|
179
|
-
|
|
180
|
-
headless_mode: bool
|
|
181
|
-
mute_audio: bool
|
|
182
|
-
no_first_run: bool
|
|
183
|
-
disable_background_timer_throttling: bool
|
|
184
|
-
disable_backgrounding_occluded_windows: bool
|
|
185
|
-
disable_hang_monitor: bool
|
|
186
|
-
disable_ipc_flooding_protection: bool
|
|
187
|
-
disable_renderer_backgrounding: bool
|
|
188
|
-
disable_back_forward_cache: bool
|
|
189
|
-
disable_notifications: bool
|
|
190
|
-
disable_popup_blocking: bool
|
|
191
|
-
disable_prompt_on_repost: bool
|
|
192
|
-
disable_sync: bool
|
|
193
|
-
disable_background_networking: bool
|
|
194
|
-
disable_breakpad: bool
|
|
195
|
-
disable_component_update: bool
|
|
196
|
-
disable_domain_reliability: bool
|
|
197
|
-
disable_new_content_rendering_timeout: bool
|
|
198
|
-
disable_threaded_animation: bool
|
|
199
|
-
disable_threaded_scrolling: bool
|
|
200
|
-
disable_checker_imaging: bool
|
|
201
|
-
disable_image_animation_resync: bool
|
|
202
|
-
disable_partial_raster: bool
|
|
203
|
-
disable_skia_runtime_opts: bool
|
|
204
|
-
disable_dev_shm_usage: bool
|
|
205
|
-
disable_gpu: bool
|
|
206
|
-
aggressive_cache_discard: bool
|
|
207
|
-
allow_running_insecure_content: bool
|
|
208
|
-
no_process_per_site: bool
|
|
209
|
-
enable_precise_memory_info: bool
|
|
210
|
-
use_fake_device_for_media_stream: bool
|
|
211
|
-
use_fake_ui_for_media_stream: bool
|
|
212
|
-
deny_permission_prompts: bool
|
|
213
|
-
disable_external_intent_requests: bool
|
|
214
|
-
noerrdialogs: bool
|
|
215
|
-
enable_automation: bool
|
|
216
|
-
test_type: bool
|
|
217
|
-
remote_debugging_pipe: bool
|
|
218
|
-
silent_debugger_extension_api: bool
|
|
219
|
-
enable_logging_stderr: bool
|
|
220
|
-
password_store_basic: bool
|
|
221
|
-
use_mock_keychain: bool
|
|
222
|
-
enable_crash_reporter_for_testing: bool
|
|
223
|
-
metrics_recording_only: bool
|
|
224
|
-
no_pings: bool
|
|
225
|
-
allow_pre_commit_input: bool
|
|
226
|
-
deterministic_mode: bool
|
|
227
|
-
run_all_compositor_stages_before_draw: bool
|
|
228
|
-
enable_begin_frame_control: bool
|
|
229
|
-
in_process_gpu: bool
|
|
230
|
-
block_new_web_contents: bool
|
|
231
|
-
new_window: bool
|
|
232
|
-
no_service_autorun: bool
|
|
233
|
-
process_per_tab: bool
|
|
234
|
-
single_process: bool
|
|
235
|
-
no_sandbox: bool
|
|
236
|
-
user_agent: Optional[str]
|
|
237
|
-
user_data_dir: Optional[str]
|
|
238
|
-
proxy_server: Optional[str]
|
|
239
|
-
remote_debugging_port: Optional[int]
|
|
240
|
-
remote_debugging_address: Optional[str]
|
|
241
|
-
use_file_for_fake_video_capture: Optional[Union[str, pathlib.Path]]
|
|
242
|
-
autoplay_policy: Optional[AutoplayPolicyType]
|
|
243
|
-
log_level: Optional[LogLevelType]
|
|
244
|
-
use_gl: Optional[UseGLType]
|
|
245
|
-
force_color_profile: Optional[str]
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
class BlinkFlags(TypedDict, total=False):
|
|
249
|
-
"""
|
|
250
|
-
Typed dictionary representing a collection of all flag types for Blink-based browsers.
|
|
251
|
-
|
|
252
|
-
Attributes:
|
|
253
|
-
argument (BlinkArguments): Command-line arguments for the browser.
|
|
254
|
-
experimental_option (BlinkExperimentalOptions): Experimental options for WebDriver.
|
|
255
|
-
attribute (BlinkAttributes): WebDriver attributes.
|
|
256
|
-
blink_feature (BlinkFeatures): Blink-specific feature flags.
|
|
257
|
-
"""
|
|
258
|
-
|
|
259
|
-
argument: BlinkArguments
|
|
260
|
-
experimental_option: BlinkExperimentalOptions
|
|
261
|
-
attribute: BlinkAttributes
|
|
262
|
-
blink_feature: BlinkFeatures
|
|
37
|
+
__all__ = ["BlinkFlagsManager"]
|
|
263
38
|
|
|
264
39
|
|
|
265
40
|
class BlinkFlagsManager(BrowserFlagsManager):
|
|
@@ -269,29 +44,23 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
269
44
|
This class extends `BrowserFlagsManager` to handle Blink-specific features,
|
|
270
45
|
such as `--enable-blink-features` and `--disable-blink-features`, and provides
|
|
271
46
|
a comprehensive set of predefined flags for these browsers.
|
|
272
|
-
|
|
273
|
-
Attributes:
|
|
274
|
-
_browser_exe (Optional[Union[str, pathlib.Path]]): Path to the browser executable.
|
|
275
|
-
_start_page_url (Optional[str]): The URL to open when the browser starts.
|
|
276
|
-
_enable_blink_features (dict[str, str]): Stores enabled Blink feature commands.
|
|
277
|
-
_disable_blink_features (dict[str, str]): Stores disabled Blink feature commands.
|
|
278
47
|
"""
|
|
279
48
|
|
|
280
49
|
def __init__(
|
|
281
50
|
self,
|
|
282
|
-
browser_exe: Optional[
|
|
51
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
283
52
|
start_page_url: Optional[str] = None,
|
|
284
|
-
flags_types: Optional[
|
|
285
|
-
flags_definitions: Optional[
|
|
53
|
+
flags_types: Optional[Dict[str, FlagType]] = None,
|
|
54
|
+
flags_definitions: Optional[Dict[str, FlagDefinition]] = None
|
|
286
55
|
):
|
|
287
56
|
"""
|
|
288
57
|
Initializes the BlinkFlagsManager.
|
|
289
58
|
|
|
290
59
|
Args:
|
|
291
|
-
browser_exe (Optional[
|
|
60
|
+
browser_exe (Optional[PATH_TYPEHINT]): Path to the browser executable file.
|
|
292
61
|
start_page_url (Optional[str]): Initial URL to open on browser startup.
|
|
293
|
-
flags_types (Optional[
|
|
294
|
-
flags_definitions (Optional[
|
|
62
|
+
flags_types (Optional[Dict[str, FlagType]]): Custom flag types to add or override.
|
|
63
|
+
flags_definitions (Optional[Dict[str, FlagDefinition]]): Custom flag definitions to add or override.
|
|
295
64
|
"""
|
|
296
65
|
|
|
297
66
|
blink_flags_types = {
|
|
@@ -301,8 +70,8 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
301
70
|
set_flags_function=self.set_blink_features,
|
|
302
71
|
update_flags_function=self.update_blink_features,
|
|
303
72
|
clear_flags_function=self.clear_blink_features,
|
|
304
|
-
build_options_function=self.
|
|
305
|
-
build_start_args_function=self.
|
|
73
|
+
build_options_function=self._build_options_blink_features,
|
|
74
|
+
build_start_args_function=self._build_start_args_blink_features
|
|
306
75
|
),
|
|
307
76
|
}
|
|
308
77
|
|
|
@@ -929,30 +698,31 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
929
698
|
flags_definitions=blink_flags_definitions
|
|
930
699
|
)
|
|
931
700
|
|
|
932
|
-
self._browser_exe = browser_exe
|
|
701
|
+
self._browser_exe = validate_path(path=browser_exe)
|
|
702
|
+
|
|
933
703
|
self._start_page_url = start_page_url
|
|
934
|
-
self._enable_blink_features:
|
|
935
|
-
self._disable_blink_features:
|
|
704
|
+
self._enable_blink_features: Dict[str, str] = {}
|
|
705
|
+
self._disable_blink_features: Dict[str, str] = {}
|
|
936
706
|
|
|
937
|
-
def
|
|
707
|
+
def _build_start_args_blink_features(self) -> List[str]:
|
|
938
708
|
"""
|
|
939
|
-
Builds a
|
|
709
|
+
Builds a List of Blink feature arguments for browser startup.
|
|
940
710
|
|
|
941
711
|
Returns:
|
|
942
|
-
|
|
712
|
+
List[str]: A List of startup arguments for Blink features.
|
|
943
713
|
"""
|
|
944
714
|
|
|
945
715
|
start_args = []
|
|
946
716
|
|
|
947
717
|
enable_blink_features = dict(
|
|
948
718
|
filter(
|
|
949
|
-
lambda item: self._flags_definitions_by_types["blink_feature"][item[0]]
|
|
719
|
+
lambda item: self._flags_definitions_by_types["blink_feature"][item[0]].mode in ["startup_argument", "both"],
|
|
950
720
|
self._enable_blink_features.items()
|
|
951
721
|
)
|
|
952
722
|
)
|
|
953
723
|
disable_blink_features = dict(
|
|
954
724
|
filter(
|
|
955
|
-
lambda item: self._flags_definitions_by_types["blink_feature"][item[0]]
|
|
725
|
+
lambda item: self._flags_definitions_by_types["blink_feature"][item[0]].mode in ["startup_argument", "both"],
|
|
956
726
|
self._disable_blink_features.items()
|
|
957
727
|
)
|
|
958
728
|
)
|
|
@@ -965,26 +735,26 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
965
735
|
|
|
966
736
|
return start_args
|
|
967
737
|
|
|
968
|
-
def
|
|
738
|
+
def _build_options_blink_features(self, options: BLINK_WEBDRIVER_OPTION_TYPEHINT) -> BLINK_WEBDRIVER_OPTION_TYPEHINT:
|
|
969
739
|
"""
|
|
970
740
|
Adds configured Blink features (`--enable-blink-features` and `--disable-blink-features`) to the WebDriver options.
|
|
971
741
|
|
|
972
742
|
Args:
|
|
973
|
-
options (
|
|
743
|
+
options (blink_webdriver_option_type): The WebDriver options object to modify.
|
|
974
744
|
|
|
975
745
|
Returns:
|
|
976
|
-
|
|
746
|
+
blink_webdriver_option_type: The modified WebDriver options object.
|
|
977
747
|
"""
|
|
978
748
|
|
|
979
749
|
enable_blink_features = dict(
|
|
980
750
|
filter(
|
|
981
|
-
lambda item: self._flags_definitions_by_types["blink_feature"][item[0]]
|
|
751
|
+
lambda item: self._flags_definitions_by_types["blink_feature"][item[0]].mode in ["webdriver_option", "both"],
|
|
982
752
|
self._enable_blink_features.items()
|
|
983
753
|
)
|
|
984
754
|
)
|
|
985
755
|
disable_blink_features = dict(
|
|
986
756
|
filter(
|
|
987
|
-
lambda item: self._flags_definitions_by_types["blink_feature"][item[0]]
|
|
757
|
+
lambda item: self._flags_definitions_by_types["blink_feature"][item[0]].mode in ["webdriver_option", "both"],
|
|
988
758
|
self._disable_blink_features.items()
|
|
989
759
|
)
|
|
990
760
|
)
|
|
@@ -1025,9 +795,9 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
1025
795
|
enable (Optional[bool]): `True` to enable, `False` to disable. If `None`, the feature is removed.
|
|
1026
796
|
"""
|
|
1027
797
|
|
|
1028
|
-
blink_feature_name = blink_feature
|
|
1029
|
-
blink_feature_command = blink_feature
|
|
1030
|
-
adding_validation_function = blink_feature
|
|
798
|
+
blink_feature_name = blink_feature.name
|
|
799
|
+
blink_feature_command = blink_feature.command
|
|
800
|
+
adding_validation_function = blink_feature.adding_validation_function
|
|
1031
801
|
|
|
1032
802
|
self.remove_blink_feature(blink_feature_command)
|
|
1033
803
|
|
|
@@ -1037,127 +807,127 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
1037
807
|
else:
|
|
1038
808
|
self._disable_blink_features[blink_feature_name] = blink_feature_command
|
|
1039
809
|
|
|
1040
|
-
def update_blink_features(self, blink_features:
|
|
810
|
+
def update_blink_features(self, blink_features: BlinkFeatures):
|
|
1041
811
|
"""
|
|
1042
812
|
Updates Blink features from a dictionary without clearing existing ones.
|
|
1043
813
|
|
|
1044
814
|
Args:
|
|
1045
|
-
blink_features (
|
|
815
|
+
blink_features (BlinkFeatures): A dictionary of Blink features to set or update.
|
|
1046
816
|
|
|
1047
817
|
Raises:
|
|
1048
818
|
ValueError: If an unknown Blink feature key is provided.
|
|
1049
819
|
"""
|
|
1050
820
|
|
|
1051
|
-
for key, value in blink_features.items():
|
|
821
|
+
for key, value in blink_features.model_dump(exclude_none=True).items():
|
|
1052
822
|
flag_definition = self._flags_definitions_by_types["blink_feature"].get(key, FlagNotDefined())
|
|
1053
823
|
|
|
1054
824
|
if isinstance(flag_definition, FlagNotDefined):
|
|
1055
|
-
raise
|
|
825
|
+
raise FlagNotDefinedError(flag_name=key, flag_type="blink features")
|
|
1056
826
|
|
|
1057
827
|
self.set_blink_feature(flag_definition, value)
|
|
1058
828
|
|
|
1059
|
-
def set_blink_features(self, blink_features:
|
|
829
|
+
def set_blink_features(self, blink_features: BlinkFeatures):
|
|
1060
830
|
"""
|
|
1061
831
|
Clears existing and sets new Blink features from a dictionary.
|
|
1062
832
|
|
|
1063
833
|
Args:
|
|
1064
|
-
blink_features (
|
|
1065
|
-
|
|
1066
|
-
Raises:
|
|
1067
|
-
ValueError: If an unknown Blink feature key is provided.
|
|
834
|
+
blink_features (BlinkFeatures): A dictionary of Blink features to set.
|
|
1068
835
|
"""
|
|
1069
836
|
|
|
1070
837
|
self.clear_blink_features()
|
|
1071
838
|
self.update_blink_features(blink_features)
|
|
1072
839
|
|
|
1073
|
-
def
|
|
840
|
+
def _build_options_arguments(self, options: BLINK_WEBDRIVER_OPTION_TYPEHINT) -> BLINK_WEBDRIVER_OPTION_TYPEHINT:
|
|
1074
841
|
"""
|
|
1075
|
-
|
|
842
|
+
Adds configured command-line arguments to the WebDriver options.
|
|
1076
843
|
|
|
1077
|
-
|
|
1078
|
-
|
|
844
|
+
Args:
|
|
845
|
+
options (blink_webdriver_option_type): The WebDriver options object.
|
|
1079
846
|
|
|
1080
847
|
Returns:
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
Raises:
|
|
1084
|
-
NotImplementedError: If the method is not implemented in a subclass.
|
|
848
|
+
blink_webdriver_option_type: The modified WebDriver options object.
|
|
1085
849
|
"""
|
|
1086
850
|
|
|
1087
|
-
|
|
851
|
+
return super()._build_options_arguments(options)
|
|
1088
852
|
|
|
1089
|
-
|
|
1090
|
-
def browser_exe(self) -> Optional[Union[str, pathlib.Path]]:
|
|
853
|
+
def _build_options_attributes(self, options: BLINK_WEBDRIVER_OPTION_TYPEHINT) -> BLINK_WEBDRIVER_OPTION_TYPEHINT:
|
|
1091
854
|
"""
|
|
1092
|
-
|
|
855
|
+
Applies configured attributes to the WebDriver options.
|
|
1093
856
|
|
|
1094
|
-
|
|
857
|
+
Args:
|
|
858
|
+
options (blink_webdriver_option_type): The WebDriver options object.
|
|
1095
859
|
|
|
1096
860
|
Returns:
|
|
1097
|
-
|
|
861
|
+
blink_webdriver_option_type: The modified WebDriver options object.
|
|
1098
862
|
"""
|
|
1099
863
|
|
|
1100
|
-
return
|
|
864
|
+
return super()._build_options_attributes(options)
|
|
1101
865
|
|
|
1102
|
-
|
|
1103
|
-
def browser_exe(self, value: Optional[Union[str, pathlib.Path]]):
|
|
866
|
+
def _build_options_experimental_options(self, options: BLINK_WEBDRIVER_OPTION_TYPEHINT) -> BLINK_WEBDRIVER_OPTION_TYPEHINT:
|
|
1104
867
|
"""
|
|
1105
|
-
|
|
868
|
+
Adds experimental options to the WebDriver options.
|
|
1106
869
|
|
|
1107
870
|
Args:
|
|
1108
|
-
|
|
871
|
+
options (blink_webdriver_option_type): The WebDriver options object.
|
|
872
|
+
|
|
873
|
+
Returns:
|
|
874
|
+
blink_webdriver_option_type: The modified WebDriver options object.
|
|
1109
875
|
"""
|
|
1110
876
|
|
|
1111
|
-
|
|
877
|
+
return super()._build_options_experimental_options(options)
|
|
1112
878
|
|
|
1113
|
-
def
|
|
879
|
+
def _build_start_args_arguments(self) -> List[str]:
|
|
1114
880
|
"""
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
Args:
|
|
1118
|
-
options (_blink_webdriver_option_type): The WebDriver options object.
|
|
881
|
+
Builds a List of command-line arguments for browser startup.
|
|
1119
882
|
|
|
1120
883
|
Returns:
|
|
1121
|
-
|
|
884
|
+
List[str]: A List of startup arguments.
|
|
1122
885
|
"""
|
|
1123
886
|
|
|
1124
|
-
return super().
|
|
887
|
+
return super()._build_start_args_arguments()
|
|
1125
888
|
|
|
1126
|
-
def
|
|
889
|
+
def _renew_webdriver_options(self) -> BLINK_WEBDRIVER_OPTION_TYPEHINT:
|
|
1127
890
|
"""
|
|
1128
|
-
|
|
891
|
+
Abstract method to renew WebDriver options. Must be implemented in child classes.
|
|
1129
892
|
|
|
1130
|
-
|
|
1131
|
-
|
|
893
|
+
This method is intended to be overridden in subclasses to provide
|
|
894
|
+
browser-specific WebDriver options instances (e.g., ChromeOptions, EdgeOptions).
|
|
1132
895
|
|
|
1133
896
|
Returns:
|
|
1134
|
-
|
|
897
|
+
blink_webdriver_option_type: A new instance of WebDriver options (e.g., ChromeOptions, EdgeOptions).
|
|
898
|
+
|
|
899
|
+
Raises:
|
|
900
|
+
NotImplementedError: If the method is not implemented in a subclass.
|
|
1135
901
|
"""
|
|
1136
902
|
|
|
1137
|
-
|
|
903
|
+
raise AbstractImplementationError(
|
|
904
|
+
method_name="_renew_webdriver_options",
|
|
905
|
+
class_name=self.__class__.__name__
|
|
906
|
+
)
|
|
1138
907
|
|
|
1139
|
-
|
|
908
|
+
@property
|
|
909
|
+
def browser_exe(self) -> Optional[pathlib.Path]:
|
|
1140
910
|
"""
|
|
1141
|
-
|
|
911
|
+
Returns the browser executable path.
|
|
1142
912
|
|
|
1143
|
-
|
|
1144
|
-
options (_blink_webdriver_option_type): The WebDriver options object.
|
|
913
|
+
This property retrieves the path to the browser executable that will be used to start the browser instance.
|
|
1145
914
|
|
|
1146
915
|
Returns:
|
|
1147
|
-
|
|
916
|
+
Optional[pathlib.Path]: The path to the browser executable.
|
|
1148
917
|
"""
|
|
1149
918
|
|
|
1150
|
-
return
|
|
919
|
+
return self._browser_exe
|
|
1151
920
|
|
|
1152
|
-
|
|
921
|
+
@browser_exe.setter
|
|
922
|
+
def browser_exe(self, value: Optional[PATH_TYPEHINT]):
|
|
1153
923
|
"""
|
|
1154
|
-
|
|
924
|
+
Sets the path to the browser executable.
|
|
1155
925
|
|
|
1156
|
-
|
|
1157
|
-
|
|
926
|
+
Args:
|
|
927
|
+
value (Optional[pathlib.Path]): The new path for the browser executable.
|
|
1158
928
|
"""
|
|
1159
929
|
|
|
1160
|
-
|
|
930
|
+
self._browser_exe = validate_path(path=value)
|
|
1161
931
|
|
|
1162
932
|
def clear_flags(self):
|
|
1163
933
|
"""Clears all configured flags and resets the start page URL."""
|
|
@@ -1166,22 +936,22 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
1166
936
|
self._start_page_url = None
|
|
1167
937
|
|
|
1168
938
|
@property
|
|
1169
|
-
def options(self) ->
|
|
939
|
+
def options(self) -> BLINK_WEBDRIVER_OPTION_TYPEHINT:
|
|
1170
940
|
"""
|
|
1171
941
|
Builds and returns a Blink-specific WebDriver options object.
|
|
1172
942
|
|
|
1173
943
|
Returns:
|
|
1174
|
-
|
|
944
|
+
blink_webdriver_option_type: A configured Blink-based WebDriver options object.
|
|
1175
945
|
"""
|
|
1176
946
|
|
|
1177
947
|
return super().options
|
|
1178
948
|
|
|
1179
|
-
def set_arguments(self, arguments:
|
|
949
|
+
def set_arguments(self, arguments: BlinkArguments):
|
|
1180
950
|
"""
|
|
1181
951
|
Clears existing and sets new command-line arguments from a dictionary.
|
|
1182
952
|
|
|
1183
953
|
Args:
|
|
1184
|
-
arguments (
|
|
954
|
+
arguments (BlinkArguments): A dictionary of arguments to set.
|
|
1185
955
|
|
|
1186
956
|
Raises:
|
|
1187
957
|
ValueError: If an unknown argument key is provided.
|
|
@@ -1189,36 +959,27 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
1189
959
|
|
|
1190
960
|
super().set_arguments(arguments)
|
|
1191
961
|
|
|
1192
|
-
def set_attributes(self, attributes:
|
|
962
|
+
def set_attributes(self, attributes: BlinkAttributes):
|
|
1193
963
|
"""
|
|
1194
964
|
Clears existing and sets new browser attributes from a dictionary.
|
|
1195
965
|
|
|
1196
966
|
Args:
|
|
1197
|
-
attributes (
|
|
1198
|
-
|
|
1199
|
-
Raises:
|
|
1200
|
-
ValueError: If an unknown attribute key is provided.
|
|
967
|
+
attributes (BlinkAttributes): A dictionary of attributes to set.
|
|
1201
968
|
"""
|
|
1202
969
|
|
|
1203
970
|
super().set_attributes(attributes)
|
|
1204
971
|
|
|
1205
|
-
def set_experimental_options(
|
|
1206
|
-
self,
|
|
1207
|
-
experimental_options: Union[BlinkExperimentalOptions, dict[str, Any]]
|
|
1208
|
-
):
|
|
972
|
+
def set_experimental_options(self, experimental_options: BlinkExperimentalOptions):
|
|
1209
973
|
"""
|
|
1210
974
|
Clears existing and sets new experimental options from a dictionary.
|
|
1211
975
|
|
|
1212
976
|
Args:
|
|
1213
|
-
experimental_options (
|
|
1214
|
-
|
|
1215
|
-
Raises:
|
|
1216
|
-
ValueError: If an unknown experimental option key is provided.
|
|
977
|
+
experimental_options (BlinkExperimentalOptions): A dictionary of experimental options to set.
|
|
1217
978
|
"""
|
|
1218
979
|
|
|
1219
980
|
super().set_experimental_options(experimental_options)
|
|
1220
981
|
|
|
1221
|
-
def set_flags(self, flags:
|
|
982
|
+
def set_flags(self, flags: BlinkFlags):
|
|
1222
983
|
"""
|
|
1223
984
|
Clears all existing flags and sets new ones, including Blink features.
|
|
1224
985
|
|
|
@@ -1227,25 +988,25 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
1227
988
|
'attributes', and 'blink_features'.
|
|
1228
989
|
|
|
1229
990
|
Args:
|
|
1230
|
-
flags (
|
|
991
|
+
flags (BlinkFlags): A dictionary where keys are flag types
|
|
1231
992
|
and values are dictionaries of flags to set for that type.
|
|
1232
993
|
"""
|
|
1233
994
|
|
|
1234
995
|
super().set_flags(flags)
|
|
1235
996
|
|
|
1236
997
|
@property
|
|
1237
|
-
def start_args(self) ->
|
|
998
|
+
def start_args(self) -> List[str]:
|
|
1238
999
|
"""
|
|
1239
|
-
Builds and returns a
|
|
1000
|
+
Builds and returns a List of all command-line arguments for browser startup.
|
|
1240
1001
|
|
|
1241
1002
|
Returns:
|
|
1242
|
-
|
|
1003
|
+
List[str]: A List of startup arguments.
|
|
1243
1004
|
"""
|
|
1244
1005
|
|
|
1245
1006
|
args = []
|
|
1246
1007
|
|
|
1247
1008
|
for type_name, type_functions in self._flags_types.items():
|
|
1248
|
-
args += type_functions
|
|
1009
|
+
args += type_functions.build_start_args_function()
|
|
1249
1010
|
|
|
1250
1011
|
return args
|
|
1251
1012
|
|
|
@@ -1291,49 +1052,37 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
1291
1052
|
|
|
1292
1053
|
self._start_page_url = value
|
|
1293
1054
|
|
|
1294
|
-
def update_arguments(self, arguments:
|
|
1055
|
+
def update_arguments(self, arguments: BlinkArguments):
|
|
1295
1056
|
"""
|
|
1296
1057
|
Updates command-line arguments from a dictionary without clearing existing ones.
|
|
1297
1058
|
|
|
1298
1059
|
Args:
|
|
1299
|
-
arguments (
|
|
1300
|
-
|
|
1301
|
-
Raises:
|
|
1302
|
-
ValueError: If an unknown argument key is provided.
|
|
1060
|
+
arguments (BlinkArguments): A dictionary of arguments to set or update.
|
|
1303
1061
|
"""
|
|
1304
1062
|
|
|
1305
1063
|
super().update_arguments(arguments)
|
|
1306
1064
|
|
|
1307
|
-
def update_attributes(self, attributes:
|
|
1065
|
+
def update_attributes(self, attributes: BlinkAttributes):
|
|
1308
1066
|
"""
|
|
1309
1067
|
Updates browser attributes from a dictionary without clearing existing ones.
|
|
1310
1068
|
|
|
1311
1069
|
Args:
|
|
1312
|
-
attributes (
|
|
1313
|
-
|
|
1314
|
-
Raises:
|
|
1315
|
-
ValueError: If an unknown attribute key is provided.
|
|
1070
|
+
attributes (BlinkAttributes): A dictionary of attributes to set or update.
|
|
1316
1071
|
"""
|
|
1317
1072
|
|
|
1318
1073
|
super().update_attributes(attributes)
|
|
1319
1074
|
|
|
1320
|
-
def update_experimental_options(
|
|
1321
|
-
self,
|
|
1322
|
-
experimental_options: Union[BlinkExperimentalOptions, dict[str, Any]]
|
|
1323
|
-
):
|
|
1075
|
+
def update_experimental_options(self, experimental_options: BlinkExperimentalOptions):
|
|
1324
1076
|
"""
|
|
1325
1077
|
Updates experimental options from a dictionary without clearing existing ones.
|
|
1326
1078
|
|
|
1327
1079
|
Args:
|
|
1328
|
-
experimental_options (
|
|
1329
|
-
|
|
1330
|
-
Raises:
|
|
1331
|
-
ValueError: If an unknown experimental option key is provided.
|
|
1080
|
+
experimental_options (BlinkExperimentalOptions): A dictionary of experimental options to set or update.
|
|
1332
1081
|
"""
|
|
1333
1082
|
|
|
1334
1083
|
super().update_experimental_options(experimental_options)
|
|
1335
1084
|
|
|
1336
|
-
def update_flags(self, flags:
|
|
1085
|
+
def update_flags(self, flags: BlinkFlags):
|
|
1337
1086
|
"""
|
|
1338
1087
|
Updates all flags, including Blink features, without clearing existing ones.
|
|
1339
1088
|
|
|
@@ -1342,8 +1091,15 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
1342
1091
|
'attributes', and 'blink_features'.
|
|
1343
1092
|
|
|
1344
1093
|
Args:
|
|
1345
|
-
flags (
|
|
1094
|
+
flags (BlinkFlags): A dictionary where keys are flag types
|
|
1346
1095
|
and values are dictionaries of flags to update for that type.
|
|
1347
1096
|
"""
|
|
1348
1097
|
|
|
1349
1098
|
super().update_flags(flags)
|
|
1099
|
+
|
|
1100
|
+
|
|
1101
|
+
BlinkArguments.model_rebuild()
|
|
1102
|
+
BlinkExperimentalOptions.model_rebuild()
|
|
1103
|
+
BlinkAttributes.model_rebuild()
|
|
1104
|
+
BlinkFeatures.model_rebuild()
|
|
1105
|
+
BlinkFlags.model_rebuild()
|