osn-selenium 0.0.0__py3-none-any.whl → 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- osn_selenium/_functions.py +84 -0
- osn_selenium/_typehints.py +19 -0
- osn_selenium/abstract/executors/cdp/__init__.py +435 -0
- osn_selenium/abstract/executors/cdp/accessibility.py +62 -0
- osn_selenium/abstract/executors/cdp/animation.py +47 -0
- osn_selenium/abstract/executors/cdp/audits.py +39 -0
- osn_selenium/abstract/executors/cdp/autofill.py +34 -0
- osn_selenium/abstract/executors/cdp/background_service.py +22 -0
- osn_selenium/abstract/executors/cdp/bluetooth_emulation.py +95 -0
- osn_selenium/abstract/executors/cdp/browser.py +122 -0
- osn_selenium/abstract/executors/cdp/cache_storage.py +49 -0
- osn_selenium/abstract/executors/cdp/cast.py +31 -0
- osn_selenium/abstract/executors/cdp/console.py +18 -0
- osn_selenium/abstract/executors/cdp/css.py +197 -0
- osn_selenium/abstract/executors/cdp/debugger.py +198 -0
- osn_selenium/abstract/executors/cdp/device_access.py +22 -0
- osn_selenium/abstract/executors/cdp/device_orientation.py +14 -0
- osn_selenium/abstract/executors/cdp/dom.py +305 -0
- osn_selenium/abstract/executors/cdp/dom_debugger.py +57 -0
- osn_selenium/abstract/executors/cdp/dom_snapshot.py +42 -0
- osn_selenium/abstract/executors/cdp/dom_storage.py +31 -0
- osn_selenium/abstract/executors/cdp/emulation.py +259 -0
- osn_selenium/abstract/executors/cdp/event_breakpoints.py +18 -0
- osn_selenium/abstract/executors/cdp/extensions.py +31 -0
- osn_selenium/abstract/executors/cdp/fed_cm.py +35 -0
- osn_selenium/abstract/executors/cdp/fetch.py +76 -0
- osn_selenium/abstract/executors/cdp/file_system.py +11 -0
- osn_selenium/abstract/executors/cdp/headless_experimental.py +30 -0
- osn_selenium/abstract/executors/cdp/heap_profiler.py +73 -0
- osn_selenium/abstract/executors/cdp/indexed_db.py +99 -0
- osn_selenium/abstract/executors/cdp/input.py +158 -0
- osn_selenium/abstract/executors/cdp/inspector.py +14 -0
- osn_selenium/abstract/executors/cdp/io.py +24 -0
- osn_selenium/abstract/executors/cdp/layer_tree.py +61 -0
- osn_selenium/abstract/executors/cdp/log.py +27 -0
- osn_selenium/abstract/executors/cdp/media.py +14 -0
- osn_selenium/abstract/executors/cdp/memory.py +61 -0
- osn_selenium/abstract/executors/cdp/network.py +252 -0
- osn_selenium/abstract/executors/cdp/overlay.py +166 -0
- osn_selenium/abstract/executors/cdp/page.py +347 -0
- osn_selenium/abstract/executors/cdp/performance.py +28 -0
- osn_selenium/abstract/executors/cdp/performance_timeline.py +11 -0
- osn_selenium/abstract/executors/cdp/preload.py +14 -0
- osn_selenium/abstract/executors/cdp/profiler.py +54 -0
- osn_selenium/abstract/executors/cdp/pwa.py +46 -0
- osn_selenium/abstract/executors/cdp/runtime.py +176 -0
- osn_selenium/abstract/executors/cdp/schema.py +11 -0
- osn_selenium/abstract/executors/cdp/security.py +26 -0
- osn_selenium/abstract/executors/cdp/service_worker.py +54 -0
- osn_selenium/abstract/executors/cdp/storage.py +175 -0
- osn_selenium/abstract/executors/cdp/system_info.py +24 -0
- osn_selenium/abstract/executors/cdp/target.py +125 -0
- osn_selenium/abstract/executors/cdp/tethering.py +14 -0
- osn_selenium/abstract/executors/cdp/tracing.py +48 -0
- osn_selenium/abstract/executors/cdp/web_audio.py +19 -0
- osn_selenium/abstract/executors/cdp/web_authn.py +76 -0
- osn_selenium/abstract/executors/javascript.py +203 -0
- osn_selenium/abstract/instances/action_chains/__init__.py +12 -0
- osn_selenium/abstract/instances/action_chains/base.py +25 -0
- osn_selenium/abstract/instances/action_chains/click.py +93 -0
- osn_selenium/abstract/instances/action_chains/drag_and_drop.py +46 -0
- osn_selenium/abstract/instances/action_chains/hm_keyboard.py +44 -0
- osn_selenium/abstract/instances/action_chains/hm_move.py +104 -0
- osn_selenium/abstract/instances/action_chains/hm_scroll.py +75 -0
- osn_selenium/abstract/instances/action_chains/keyboard.py +79 -0
- osn_selenium/abstract/instances/action_chains/move.py +60 -0
- osn_selenium/abstract/instances/action_chains/scroll.py +61 -0
- osn_selenium/abstract/instances/action_chains/utils.py +44 -0
- osn_selenium/abstract/instances/alert.py +67 -0
- osn_selenium/abstract/instances/browser.py +76 -0
- osn_selenium/abstract/instances/browsing_context.py +310 -0
- osn_selenium/abstract/instances/dialog.py +107 -0
- osn_selenium/abstract/instances/fedcm.py +133 -0
- osn_selenium/abstract/instances/mobile.py +79 -0
- osn_selenium/abstract/instances/network.py +100 -0
- osn_selenium/abstract/instances/permissions.py +52 -0
- osn_selenium/abstract/instances/script.py +109 -0
- osn_selenium/abstract/instances/shadow_root.py +81 -0
- osn_selenium/abstract/instances/storage.py +98 -0
- osn_selenium/abstract/instances/switch_to.py +104 -0
- osn_selenium/abstract/instances/web_driver_wait.py +57 -0
- osn_selenium/abstract/instances/web_element.py +395 -0
- osn_selenium/abstract/instances/web_extension.py +70 -0
- osn_selenium/abstract/webdriver/blink/__init__.py +18 -0
- osn_selenium/abstract/webdriver/blink/base.py +80 -0
- osn_selenium/abstract/webdriver/blink/casting.py +82 -0
- osn_selenium/abstract/webdriver/blink/features.py +51 -0
- osn_selenium/abstract/webdriver/blink/lifecycle.py +76 -0
- osn_selenium/abstract/webdriver/blink/logging.py +40 -0
- osn_selenium/abstract/webdriver/blink/network.py +45 -0
- osn_selenium/abstract/webdriver/blink/settings.py +68 -0
- osn_selenium/abstract/webdriver/chrome/__init__.py +18 -0
- osn_selenium/abstract/webdriver/chrome/base.py +36 -0
- osn_selenium/abstract/webdriver/chrome/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/chrome/settings.py +110 -0
- osn_selenium/abstract/webdriver/core/__init__.py +16 -0
- osn_selenium/abstract/webdriver/core/actions.py +58 -0
- osn_selenium/abstract/webdriver/core/auth.py +145 -0
- osn_selenium/abstract/webdriver/core/base.py +298 -0
- osn_selenium/abstract/webdriver/core/capture.py +84 -0
- osn_selenium/abstract/webdriver/core/components.py +82 -0
- osn_selenium/abstract/webdriver/core/devtools.py +69 -0
- osn_selenium/abstract/webdriver/core/element.py +55 -0
- osn_selenium/abstract/webdriver/core/file.py +82 -0
- osn_selenium/abstract/webdriver/core/lifecycle.py +103 -0
- osn_selenium/abstract/webdriver/core/navigation.py +65 -0
- osn_selenium/abstract/webdriver/core/script.py +88 -0
- osn_selenium/abstract/webdriver/core/settings.py +43 -0
- osn_selenium/abstract/webdriver/core/storage.py +81 -0
- osn_selenium/abstract/webdriver/core/timeouts.py +101 -0
- osn_selenium/abstract/webdriver/core/window.py +237 -0
- osn_selenium/abstract/webdriver/edge/__init__.py +18 -0
- osn_selenium/abstract/webdriver/edge/base.py +36 -0
- osn_selenium/abstract/webdriver/edge/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/edge/settings.py +110 -0
- osn_selenium/abstract/webdriver/yandex/__init__.py +18 -0
- osn_selenium/abstract/webdriver/yandex/base.py +18 -0
- osn_selenium/abstract/webdriver/yandex/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/yandex/settings.py +110 -0
- osn_selenium/base_mixin.py +122 -0
- osn_selenium/browsers_handler/__init__.py +47 -17
- osn_selenium/browsers_handler/_linux.py +226 -0
- osn_selenium/browsers_handler/_windows.py +21 -14
- osn_selenium/browsers_handler/{types.py → models.py} +5 -2
- osn_selenium/dev_tools/_decorators.py +140 -0
- osn_selenium/dev_tools/_exception_helpers.py +116 -0
- osn_selenium/dev_tools/_functions.py +174 -0
- osn_selenium/dev_tools/_system_utils.py +35 -0
- osn_selenium/dev_tools/_typehints.py +32 -0
- osn_selenium/dev_tools/_validators.py +227 -0
- osn_selenium/dev_tools/_wrappers.py +95 -0
- osn_selenium/dev_tools/domains/__init__.py +7 -40
- osn_selenium/dev_tools/domains/abstract.py +98 -254
- osn_selenium/dev_tools/domains/fetch.py +229 -906
- osn_selenium/dev_tools/domains_default/fetch.py +40 -28
- osn_selenium/dev_tools/filters.py +40 -0
- osn_selenium/dev_tools/logger/main.py +226 -0
- osn_selenium/dev_tools/logger/models.py +232 -0
- osn_selenium/dev_tools/logger/target.py +258 -0
- osn_selenium/dev_tools/manager/__init__.py +16 -0
- osn_selenium/dev_tools/manager/base.py +147 -0
- osn_selenium/dev_tools/manager/lifecycle.py +236 -0
- osn_selenium/dev_tools/manager/logging.py +153 -0
- osn_selenium/dev_tools/manager/settings.py +89 -0
- osn_selenium/dev_tools/manager/targets.py +175 -0
- osn_selenium/dev_tools/models.py +49 -0
- osn_selenium/dev_tools/settings.py +135 -0
- osn_selenium/dev_tools/target/__init__.py +16 -0
- osn_selenium/dev_tools/target/base.py +438 -0
- osn_selenium/dev_tools/target/detach.py +54 -0
- osn_selenium/dev_tools/target/discovery.py +112 -0
- osn_selenium/dev_tools/target/events.py +120 -0
- osn_selenium/dev_tools/target/fingerprint.py +126 -0
- osn_selenium/dev_tools/target/lifecycle.py +179 -0
- osn_selenium/dev_tools/target/logging.py +155 -0
- osn_selenium/exceptions/__init__.py +1 -0
- osn_selenium/exceptions/base.py +9 -0
- osn_selenium/exceptions/configuration.py +84 -0
- osn_selenium/exceptions/devtools.py +114 -0
- osn_selenium/exceptions/flags.py +45 -0
- osn_selenium/exceptions/instance.py +92 -0
- osn_selenium/exceptions/javascript.py +31 -0
- osn_selenium/exceptions/logic.py +31 -0
- osn_selenium/exceptions/path.py +77 -0
- osn_selenium/exceptions/platform.py +33 -0
- osn_selenium/exceptions/protocol.py +86 -0
- osn_selenium/exceptions/webdriver.py +44 -0
- osn_selenium/exceptions/window.py +63 -0
- osn_selenium/executors/__init__.py +1 -0
- osn_selenium/executors/sync/__init__.py +1 -0
- osn_selenium/executors/sync/cdp/__init__.py +550 -0
- osn_selenium/executors/sync/cdp/accessibility.py +74 -0
- osn_selenium/executors/sync/cdp/animation.py +50 -0
- osn_selenium/executors/sync/cdp/audits.py +48 -0
- osn_selenium/executors/sync/cdp/autofill.py +39 -0
- osn_selenium/executors/sync/cdp/background_service.py +30 -0
- osn_selenium/executors/sync/cdp/bluetooth_emulation.py +101 -0
- osn_selenium/executors/sync/cdp/browser.py +131 -0
- osn_selenium/executors/sync/cdp/cache_storage.py +66 -0
- osn_selenium/executors/sync/cdp/cast.py +38 -0
- osn_selenium/executors/sync/cdp/console.py +24 -0
- osn_selenium/executors/sync/cdp/css.py +187 -0
- osn_selenium/executors/sync/cdp/debugger.py +206 -0
- osn_selenium/executors/sync/cdp/device_access.py +27 -0
- osn_selenium/executors/sync/cdp/device_orientation.py +24 -0
- osn_selenium/executors/sync/cdp/dom.py +310 -0
- osn_selenium/executors/sync/cdp/dom_debugger.py +56 -0
- osn_selenium/executors/sync/cdp/dom_snapshot.py +58 -0
- osn_selenium/executors/sync/cdp/dom_storage.py +38 -0
- osn_selenium/executors/sync/cdp/emulation.py +270 -0
- osn_selenium/executors/sync/cdp/event_breakpoints.py +27 -0
- osn_selenium/executors/sync/cdp/extensions.py +39 -0
- osn_selenium/executors/sync/cdp/fed_cm.py +45 -0
- osn_selenium/executors/sync/cdp/fetch.py +96 -0
- osn_selenium/executors/sync/cdp/file_system.py +18 -0
- osn_selenium/executors/sync/cdp/headless_experimental.py +44 -0
- osn_selenium/executors/sync/cdp/heap_profiler.py +89 -0
- osn_selenium/executors/sync/cdp/indexed_db.py +142 -0
- osn_selenium/executors/sync/cdp/input.py +233 -0
- osn_selenium/executors/sync/cdp/inspector.py +21 -0
- osn_selenium/executors/sync/cdp/io.py +33 -0
- osn_selenium/executors/sync/cdp/layer_tree.py +71 -0
- osn_selenium/executors/sync/cdp/log.py +35 -0
- osn_selenium/executors/sync/cdp/media.py +21 -0
- osn_selenium/executors/sync/cdp/memory.py +62 -0
- osn_selenium/executors/sync/cdp/network.py +287 -0
- osn_selenium/executors/sync/cdp/overlay.py +174 -0
- osn_selenium/executors/sync/cdp/page.py +365 -0
- osn_selenium/executors/sync/cdp/performance.py +33 -0
- osn_selenium/executors/sync/cdp/performance_timeline.py +26 -0
- osn_selenium/executors/sync/cdp/preload.py +21 -0
- osn_selenium/executors/sync/cdp/profiler.py +58 -0
- osn_selenium/executors/sync/cdp/pwa.py +55 -0
- osn_selenium/executors/sync/cdp/runtime.py +221 -0
- osn_selenium/executors/sync/cdp/schema.py +23 -0
- osn_selenium/executors/sync/cdp/security.py +30 -0
- osn_selenium/executors/sync/cdp/service_worker.py +56 -0
- osn_selenium/executors/sync/cdp/storage.py +151 -0
- osn_selenium/executors/sync/cdp/system_info.py +30 -0
- osn_selenium/executors/sync/cdp/target.py +147 -0
- osn_selenium/executors/sync/cdp/tethering.py +21 -0
- osn_selenium/executors/sync/cdp/tracing.py +62 -0
- osn_selenium/executors/sync/cdp/web_audio.py +24 -0
- osn_selenium/executors/sync/cdp/web_authn.py +82 -0
- osn_selenium/executors/sync/javascript.py +79 -0
- osn_selenium/executors/trio_threads/__init__.py +1 -0
- osn_selenium/executors/trio_threads/cdp/__init__.py +771 -0
- osn_selenium/executors/trio_threads/cdp/accessibility.py +87 -0
- osn_selenium/executors/trio_threads/cdp/animation.py +63 -0
- osn_selenium/executors/trio_threads/cdp/audits.py +57 -0
- osn_selenium/executors/trio_threads/cdp/autofill.py +52 -0
- osn_selenium/executors/trio_threads/cdp/background_service.py +40 -0
- osn_selenium/executors/trio_threads/cdp/bluetooth_emulation.py +111 -0
- osn_selenium/executors/trio_threads/cdp/browser.py +140 -0
- osn_selenium/executors/trio_threads/cdp/cache_storage.py +79 -0
- osn_selenium/executors/trio_threads/cdp/cast.py +47 -0
- osn_selenium/executors/trio_threads/cdp/console.py +33 -0
- osn_selenium/executors/trio_threads/cdp/css.py +196 -0
- osn_selenium/executors/trio_threads/cdp/debugger.py +219 -0
- osn_selenium/executors/trio_threads/cdp/device_access.py +40 -0
- osn_selenium/executors/trio_threads/cdp/device_orientation.py +34 -0
- osn_selenium/executors/trio_threads/cdp/dom.py +319 -0
- osn_selenium/executors/trio_threads/cdp/dom_debugger.py +69 -0
- osn_selenium/executors/trio_threads/cdp/dom_snapshot.py +71 -0
- osn_selenium/executors/trio_threads/cdp/dom_storage.py +51 -0
- osn_selenium/executors/trio_threads/cdp/emulation.py +283 -0
- osn_selenium/executors/trio_threads/cdp/event_breakpoints.py +37 -0
- osn_selenium/executors/trio_threads/cdp/extensions.py +52 -0
- osn_selenium/executors/trio_threads/cdp/fed_cm.py +54 -0
- osn_selenium/executors/trio_threads/cdp/fetch.py +105 -0
- osn_selenium/executors/trio_threads/cdp/file_system.py +31 -0
- osn_selenium/executors/trio_threads/cdp/headless_experimental.py +54 -0
- osn_selenium/executors/trio_threads/cdp/heap_profiler.py +102 -0
- osn_selenium/executors/trio_threads/cdp/indexed_db.py +155 -0
- osn_selenium/executors/trio_threads/cdp/input.py +242 -0
- osn_selenium/executors/trio_threads/cdp/inspector.py +34 -0
- osn_selenium/executors/trio_threads/cdp/io.py +42 -0
- osn_selenium/executors/trio_threads/cdp/layer_tree.py +84 -0
- osn_selenium/executors/trio_threads/cdp/log.py +44 -0
- osn_selenium/executors/trio_threads/cdp/media.py +30 -0
- osn_selenium/executors/trio_threads/cdp/memory.py +71 -0
- osn_selenium/executors/trio_threads/cdp/network.py +296 -0
- osn_selenium/executors/trio_threads/cdp/overlay.py +183 -0
- osn_selenium/executors/trio_threads/cdp/page.py +374 -0
- osn_selenium/executors/trio_threads/cdp/performance.py +46 -0
- osn_selenium/executors/trio_threads/cdp/performance_timeline.py +36 -0
- osn_selenium/executors/trio_threads/cdp/preload.py +30 -0
- osn_selenium/executors/trio_threads/cdp/profiler.py +71 -0
- osn_selenium/executors/trio_threads/cdp/pwa.py +64 -0
- osn_selenium/executors/trio_threads/cdp/runtime.py +230 -0
- osn_selenium/executors/trio_threads/cdp/schema.py +32 -0
- osn_selenium/executors/trio_threads/cdp/security.py +43 -0
- osn_selenium/executors/trio_threads/cdp/service_worker.py +69 -0
- osn_selenium/executors/trio_threads/cdp/storage.py +162 -0
- osn_selenium/executors/trio_threads/cdp/system_info.py +43 -0
- osn_selenium/executors/trio_threads/cdp/target.py +156 -0
- osn_selenium/executors/trio_threads/cdp/tethering.py +34 -0
- osn_selenium/executors/trio_threads/cdp/tracing.py +71 -0
- osn_selenium/executors/trio_threads/cdp/web_audio.py +37 -0
- osn_selenium/executors/trio_threads/cdp/web_authn.py +95 -0
- osn_selenium/executors/trio_threads/javascript.py +90 -0
- osn_selenium/executors/unified/__init__.py +1 -0
- osn_selenium/executors/unified/cdp/__init__.py +1 -0
- osn_selenium/executors/unified/cdp/accessibility.py +81 -0
- osn_selenium/executors/unified/cdp/animation.py +50 -0
- osn_selenium/executors/unified/cdp/audits.py +45 -0
- osn_selenium/executors/unified/cdp/autofill.py +41 -0
- osn_selenium/executors/unified/cdp/background_service.py +24 -0
- osn_selenium/executors/unified/cdp/bluetooth_emulation.py +132 -0
- osn_selenium/executors/unified/cdp/browser.py +143 -0
- osn_selenium/executors/unified/cdp/cache_storage.py +69 -0
- osn_selenium/executors/unified/cdp/cast.py +32 -0
- osn_selenium/executors/unified/cdp/console.py +18 -0
- osn_selenium/executors/unified/cdp/css.py +237 -0
- osn_selenium/executors/unified/cdp/debugger.py +243 -0
- osn_selenium/executors/unified/cdp/device_access.py +21 -0
- osn_selenium/executors/unified/cdp/device_orientation.py +18 -0
- osn_selenium/executors/unified/cdp/dom.py +380 -0
- osn_selenium/executors/unified/cdp/dom_debugger.py +65 -0
- osn_selenium/executors/unified/cdp/dom_snapshot.py +58 -0
- osn_selenium/executors/unified/cdp/dom_storage.py +38 -0
- osn_selenium/executors/unified/cdp/emulation.py +312 -0
- osn_selenium/executors/unified/cdp/event_breakpoints.py +24 -0
- osn_selenium/executors/unified/cdp/extensions.py +45 -0
- osn_selenium/executors/unified/cdp/fed_cm.py +51 -0
- osn_selenium/executors/unified/cdp/fetch.py +111 -0
- osn_selenium/executors/unified/cdp/file_system.py +15 -0
- osn_selenium/executors/unified/cdp/headless_experimental.py +38 -0
- osn_selenium/executors/unified/cdp/heap_profiler.py +101 -0
- osn_selenium/executors/unified/cdp/indexed_db.py +157 -0
- osn_selenium/executors/unified/cdp/input.py +254 -0
- osn_selenium/executors/unified/cdp/inspector.py +15 -0
- osn_selenium/executors/unified/cdp/io.py +29 -0
- osn_selenium/executors/unified/cdp/layer_tree.py +71 -0
- osn_selenium/executors/unified/cdp/log.py +29 -0
- osn_selenium/executors/unified/cdp/media.py +15 -0
- osn_selenium/executors/unified/cdp/memory.py +59 -0
- osn_selenium/executors/unified/cdp/network.py +323 -0
- osn_selenium/executors/unified/cdp/overlay.py +209 -0
- osn_selenium/executors/unified/cdp/page.py +410 -0
- osn_selenium/executors/unified/cdp/performance.py +27 -0
- osn_selenium/executors/unified/cdp/performance_timeline.py +17 -0
- osn_selenium/executors/unified/cdp/preload.py +15 -0
- osn_selenium/executors/unified/cdp/profiler.py +55 -0
- osn_selenium/executors/unified/cdp/pwa.py +55 -0
- osn_selenium/executors/unified/cdp/runtime.py +245 -0
- osn_selenium/executors/unified/cdp/schema.py +17 -0
- osn_selenium/executors/unified/cdp/security.py +27 -0
- osn_selenium/executors/unified/cdp/service_worker.py +62 -0
- osn_selenium/executors/unified/cdp/storage.py +178 -0
- osn_selenium/executors/unified/cdp/system_info.py +24 -0
- osn_selenium/executors/unified/cdp/target.py +165 -0
- osn_selenium/executors/unified/cdp/tethering.py +15 -0
- osn_selenium/executors/unified/cdp/tracing.py +62 -0
- osn_selenium/executors/unified/cdp/web_audio.py +18 -0
- osn_selenium/executors/unified/cdp/web_authn.py +103 -0
- osn_selenium/executors/unified/javascript.py +108 -0
- osn_selenium/flags/__init__.py +1 -0
- osn_selenium/flags/_functions.py +45 -0
- osn_selenium/flags/_typehints.py +34 -0
- osn_selenium/flags/_validators.py +101 -0
- osn_selenium/{webdrivers/BaseDriver/flags.py → flags/base.py} +165 -243
- osn_selenium/{webdrivers/Blink/flags.py → flags/blink.py} +133 -371
- osn_selenium/flags/chrome.py +259 -0
- osn_selenium/flags/edge.py +259 -0
- osn_selenium/flags/models/__init__.py +1 -0
- osn_selenium/flags/models/base.py +130 -0
- osn_selenium/flags/models/blink.py +263 -0
- osn_selenium/{webdrivers/Chrome/flags.py → flags/models/chrome.py} +25 -75
- osn_selenium/{webdrivers/Edge/flags.py → flags/models/edge.py} +25 -75
- osn_selenium/flags/models/values.py +44 -0
- osn_selenium/{webdrivers/Yandex/flags.py → flags/models/yandex.py} +26 -76
- osn_selenium/flags/yandex.py +259 -0
- osn_selenium/instances/__init__.py +1 -0
- osn_selenium/instances/_functions.py +242 -0
- osn_selenium/instances/_typehints.py +148 -0
- osn_selenium/instances/_utils.py +143 -0
- osn_selenium/instances/convert.py +287 -0
- osn_selenium/instances/protocols.py +105 -0
- osn_selenium/instances/sync/__init__.py +1 -0
- osn_selenium/instances/sync/action_chains/__init__.py +26 -0
- osn_selenium/instances/sync/action_chains/base.py +74 -0
- osn_selenium/instances/sync/action_chains/click.py +61 -0
- osn_selenium/instances/sync/action_chains/drag_and_drop.py +45 -0
- osn_selenium/instances/sync/action_chains/hm_keyboard.py +37 -0
- osn_selenium/instances/sync/action_chains/hm_move.py +81 -0
- osn_selenium/instances/sync/action_chains/hm_scroll.py +60 -0
- osn_selenium/instances/sync/action_chains/keyboard.py +55 -0
- osn_selenium/instances/sync/action_chains/move.py +46 -0
- osn_selenium/instances/sync/action_chains/scroll.py +43 -0
- osn_selenium/instances/sync/action_chains/utils.py +30 -0
- osn_selenium/instances/sync/alert.py +69 -0
- osn_selenium/instances/sync/browser.py +72 -0
- osn_selenium/instances/sync/browsing_context.py +193 -0
- osn_selenium/instances/sync/dialog.py +81 -0
- osn_selenium/instances/sync/fedcm.py +92 -0
- osn_selenium/instances/sync/mobile.py +75 -0
- osn_selenium/instances/sync/network.py +90 -0
- osn_selenium/instances/sync/permissions.py +80 -0
- osn_selenium/instances/sync/script.py +77 -0
- osn_selenium/instances/sync/shadow_root.py +91 -0
- osn_selenium/instances/sync/storage.py +91 -0
- osn_selenium/instances/sync/switch_to.py +92 -0
- osn_selenium/instances/sync/web_driver_wait.py +83 -0
- osn_selenium/instances/sync/web_element.py +179 -0
- osn_selenium/instances/sync/web_extension.py +77 -0
- osn_selenium/instances/trio_threads/__init__.py +1 -0
- osn_selenium/instances/trio_threads/action_chains/__init__.py +26 -0
- osn_selenium/instances/trio_threads/action_chains/base.py +88 -0
- osn_selenium/instances/trio_threads/action_chains/click.py +71 -0
- osn_selenium/instances/trio_threads/action_chains/drag_and_drop.py +49 -0
- osn_selenium/instances/trio_threads/action_chains/hm_keyboard.py +41 -0
- osn_selenium/instances/trio_threads/action_chains/hm_move.py +91 -0
- osn_selenium/instances/trio_threads/action_chains/hm_scroll.py +66 -0
- osn_selenium/instances/trio_threads/action_chains/keyboard.py +63 -0
- osn_selenium/instances/trio_threads/action_chains/move.py +52 -0
- osn_selenium/instances/trio_threads/action_chains/scroll.py +49 -0
- osn_selenium/instances/trio_threads/action_chains/utils.py +32 -0
- osn_selenium/instances/trio_threads/alert.py +87 -0
- osn_selenium/instances/trio_threads/browser.py +90 -0
- osn_selenium/instances/trio_threads/browsing_context.py +216 -0
- osn_selenium/instances/trio_threads/dialog.py +99 -0
- osn_selenium/instances/trio_threads/fedcm.py +110 -0
- osn_selenium/instances/trio_threads/mobile.py +93 -0
- osn_selenium/instances/trio_threads/network.py +108 -0
- osn_selenium/instances/trio_threads/permissions.py +102 -0
- osn_selenium/instances/trio_threads/script.py +95 -0
- osn_selenium/instances/trio_threads/shadow_root.py +123 -0
- osn_selenium/instances/trio_threads/storage.py +109 -0
- osn_selenium/instances/trio_threads/switch_to.py +124 -0
- osn_selenium/instances/trio_threads/web_driver_wait.py +101 -0
- osn_selenium/instances/trio_threads/web_element.py +217 -0
- osn_selenium/instances/trio_threads/web_extension.py +99 -0
- osn_selenium/instances/unified/__init__.py +1 -0
- osn_selenium/instances/unified/action_chains/__init__.py +22 -0
- osn_selenium/instances/unified/action_chains/base.py +31 -0
- osn_selenium/instances/unified/action_chains/click.py +27 -0
- osn_selenium/instances/unified/action_chains/drag_and_drop.py +24 -0
- osn_selenium/instances/unified/action_chains/hm_keyboard.py +30 -0
- osn_selenium/instances/unified/action_chains/hm_move.py +66 -0
- osn_selenium/instances/unified/action_chains/hm_scroll.py +79 -0
- osn_selenium/instances/unified/action_chains/keyboard.py +24 -0
- osn_selenium/instances/unified/action_chains/move.py +24 -0
- osn_selenium/instances/unified/action_chains/scroll.py +21 -0
- osn_selenium/instances/unified/action_chains/utils.py +19 -0
- osn_selenium/instances/unified/alert.py +29 -0
- osn_selenium/instances/unified/browser.py +33 -0
- osn_selenium/instances/unified/browsing_context.py +151 -0
- osn_selenium/instances/unified/dialog.py +42 -0
- osn_selenium/instances/unified/fedcm.py +48 -0
- osn_selenium/instances/unified/mobile.py +36 -0
- osn_selenium/instances/unified/network.py +50 -0
- osn_selenium/instances/unified/permissions.py +43 -0
- osn_selenium/instances/unified/script.py +38 -0
- osn_selenium/instances/unified/shadow_root.py +46 -0
- osn_selenium/instances/unified/storage.py +48 -0
- osn_selenium/instances/unified/switch_to.py +49 -0
- osn_selenium/instances/unified/web_driver_wait.py +45 -0
- osn_selenium/instances/unified/web_element.py +145 -0
- osn_selenium/instances/unified/web_extension.py +38 -0
- osn_selenium/javascript/__init__.py +1 -0
- osn_selenium/javascript/_functions.py +63 -0
- osn_selenium/javascript/fingerprint/__init__.py +120 -0
- osn_selenium/javascript/fingerprint/_decorators.py +41 -0
- osn_selenium/javascript/fingerprint/_detect/__init__.py +1 -0
- osn_selenium/javascript/fingerprint/_detect/functions.py +253 -0
- osn_selenium/javascript/fingerprint/_detect/templates.py +128 -0
- osn_selenium/javascript/fingerprint/_functions.py +35 -0
- osn_selenium/javascript/fingerprint/_typehints.py +27 -0
- osn_selenium/javascript/fingerprint/registry/__init__.py +7 -0
- osn_selenium/javascript/fingerprint/registry/_core_functions.py +236 -0
- osn_selenium/javascript/fingerprint/registry/_functions.py +923 -0
- osn_selenium/javascript/fingerprint/registry/_typehints.py +6 -0
- osn_selenium/javascript/fingerprint/registry/_utils.py +6 -0
- osn_selenium/javascript/fingerprint/registry/models.py +41 -0
- osn_selenium/javascript/fingerprint/spoof/__init__.py +1 -0
- osn_selenium/javascript/fingerprint/spoof/_functions.py +172 -0
- osn_selenium/javascript/fingerprint/spoof/_templates.py +134 -0
- osn_selenium/javascript/fingerprint/spoof/_typehints.py +22 -0
- osn_selenium/javascript/fingerprint/spoof/core_rules.py +141 -0
- osn_selenium/javascript/fingerprint/spoof/noise.py +51 -0
- osn_selenium/javascript/fingerprint/spoof/rules.py +313 -0
- osn_selenium/javascript/functions.py +44 -0
- osn_selenium/javascript/models.py +35 -0
- osn_selenium/javascript/scripts/start_fingerprint_detection.js +56 -0
- osn_selenium/models.py +139 -0
- osn_selenium/webdrivers/_args_helpers.py +181 -0
- osn_selenium/webdrivers/_bridges.py +57 -0
- osn_selenium/webdrivers/_decorators.py +83 -0
- osn_selenium/webdrivers/_executable_tables/__init__.py +1 -0
- osn_selenium/webdrivers/_executable_tables/functions.py +113 -0
- osn_selenium/webdrivers/_executable_tables/models.py +19 -0
- osn_selenium/webdrivers/_typehints.py +10 -0
- osn_selenium/webdrivers/protocols.py +50 -0
- osn_selenium/webdrivers/sync/__init__.py +1 -0
- osn_selenium/webdrivers/sync/blink/__init__.py +114 -0
- osn_selenium/webdrivers/sync/blink/base.py +128 -0
- osn_selenium/webdrivers/sync/blink/casting.py +34 -0
- osn_selenium/webdrivers/sync/blink/features.py +28 -0
- osn_selenium/webdrivers/sync/blink/lifecycle.py +66 -0
- osn_selenium/webdrivers/sync/blink/logging.py +25 -0
- osn_selenium/webdrivers/sync/blink/network.py +28 -0
- osn_selenium/webdrivers/sync/blink/settings.py +63 -0
- osn_selenium/webdrivers/sync/chrome/__init__.py +67 -0
- osn_selenium/webdrivers/sync/chrome/base.py +106 -0
- osn_selenium/webdrivers/sync/chrome/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/chrome/settings.py +58 -0
- osn_selenium/webdrivers/sync/core/__init__.py +91 -0
- osn_selenium/webdrivers/sync/core/actions.py +59 -0
- osn_selenium/webdrivers/sync/core/auth.py +77 -0
- osn_selenium/webdrivers/sync/core/base.py +167 -0
- osn_selenium/webdrivers/sync/core/capture.py +37 -0
- osn_selenium/webdrivers/sync/core/comonents.py +57 -0
- osn_selenium/webdrivers/sync/core/devtools.py +47 -0
- osn_selenium/webdrivers/sync/core/element.py +42 -0
- osn_selenium/webdrivers/sync/core/file.py +40 -0
- osn_selenium/webdrivers/sync/core/lifecycle.py +59 -0
- osn_selenium/webdrivers/sync/core/navigation.py +36 -0
- osn_selenium/webdrivers/sync/core/script.py +53 -0
- osn_selenium/webdrivers/sync/core/settings.py +35 -0
- osn_selenium/webdrivers/sync/core/storage.py +48 -0
- osn_selenium/webdrivers/sync/core/timeouts.py +59 -0
- osn_selenium/webdrivers/sync/core/window.py +99 -0
- osn_selenium/webdrivers/sync/edge/__init__.py +67 -0
- osn_selenium/webdrivers/sync/edge/base.py +102 -0
- osn_selenium/webdrivers/sync/edge/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/edge/settings.py +58 -0
- osn_selenium/webdrivers/sync/yandex/__init__.py +67 -0
- osn_selenium/webdrivers/sync/yandex/base.py +99 -0
- osn_selenium/webdrivers/sync/yandex/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/yandex/settings.py +58 -0
- osn_selenium/webdrivers/trio_threads/__init__.py +1 -0
- osn_selenium/webdrivers/trio_threads/blink/__init__.py +124 -0
- osn_selenium/webdrivers/trio_threads/blink/base.py +133 -0
- osn_selenium/webdrivers/trio_threads/blink/casting.py +35 -0
- osn_selenium/webdrivers/trio_threads/blink/features.py +29 -0
- osn_selenium/webdrivers/trio_threads/blink/lifecycle.py +66 -0
- osn_selenium/webdrivers/trio_threads/blink/logging.py +26 -0
- osn_selenium/webdrivers/trio_threads/blink/network.py +29 -0
- osn_selenium/webdrivers/trio_threads/blink/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/chrome/__init__.py +81 -0
- osn_selenium/webdrivers/trio_threads/chrome/base.py +107 -0
- osn_selenium/webdrivers/trio_threads/chrome/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/chrome/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/core/__init__.py +109 -0
- osn_selenium/webdrivers/trio_threads/core/actions.py +72 -0
- osn_selenium/webdrivers/trio_threads/core/auth.py +88 -0
- osn_selenium/webdrivers/trio_threads/core/base.py +191 -0
- osn_selenium/webdrivers/trio_threads/core/capture.py +38 -0
- osn_selenium/webdrivers/trio_threads/core/comonents.py +92 -0
- osn_selenium/webdrivers/trio_threads/core/devtools.py +53 -0
- osn_selenium/webdrivers/trio_threads/core/element.py +58 -0
- osn_selenium/webdrivers/trio_threads/core/file.py +45 -0
- osn_selenium/webdrivers/trio_threads/core/lifecycle.py +60 -0
- osn_selenium/webdrivers/trio_threads/core/navigation.py +41 -0
- osn_selenium/webdrivers/trio_threads/core/script.py +59 -0
- osn_selenium/webdrivers/trio_threads/core/settings.py +36 -0
- osn_selenium/webdrivers/trio_threads/core/storage.py +54 -0
- osn_selenium/webdrivers/trio_threads/core/timeouts.py +60 -0
- osn_selenium/webdrivers/trio_threads/core/window.py +105 -0
- osn_selenium/webdrivers/trio_threads/edge/__init__.py +81 -0
- osn_selenium/webdrivers/trio_threads/edge/base.py +103 -0
- osn_selenium/webdrivers/trio_threads/edge/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/edge/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/yandex/__init__.py +81 -0
- osn_selenium/webdrivers/trio_threads/yandex/base.py +100 -0
- osn_selenium/webdrivers/trio_threads/yandex/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/yandex/settings.py +63 -0
- osn_selenium/webdrivers/unified/__init__.py +1 -0
- osn_selenium/webdrivers/unified/blink/__init__.py +1 -0
- osn_selenium/webdrivers/unified/blink/base.py +131 -0
- osn_selenium/webdrivers/unified/blink/casting.py +30 -0
- osn_selenium/webdrivers/unified/blink/features.py +22 -0
- osn_selenium/webdrivers/unified/blink/lifecycle.py +114 -0
- osn_selenium/webdrivers/unified/blink/logging.py +18 -0
- osn_selenium/webdrivers/unified/blink/network.py +22 -0
- osn_selenium/webdrivers/unified/blink/settings.py +86 -0
- osn_selenium/webdrivers/unified/chrome/__init__.py +1 -0
- osn_selenium/webdrivers/unified/chrome/base.py +54 -0
- osn_selenium/webdrivers/unified/chrome/lifecycle.py +88 -0
- osn_selenium/webdrivers/unified/chrome/settings.py +48 -0
- osn_selenium/webdrivers/unified/core/__init__.py +1 -0
- osn_selenium/webdrivers/unified/core/actions.py +43 -0
- osn_selenium/webdrivers/unified/core/auth.py +70 -0
- osn_selenium/webdrivers/unified/core/base.py +132 -0
- osn_selenium/webdrivers/unified/core/capture.py +32 -0
- osn_selenium/webdrivers/unified/core/components.py +32 -0
- osn_selenium/webdrivers/unified/core/devtools.py +35 -0
- osn_selenium/webdrivers/unified/core/element.py +24 -0
- osn_selenium/webdrivers/unified/core/file.py +35 -0
- osn_selenium/webdrivers/unified/core/lifecycle.py +84 -0
- osn_selenium/webdrivers/unified/core/navigation.py +31 -0
- osn_selenium/webdrivers/unified/core/script.py +32 -0
- osn_selenium/webdrivers/unified/core/settings.py +44 -0
- osn_selenium/webdrivers/unified/core/storage.py +37 -0
- osn_selenium/webdrivers/unified/core/timeouts.py +56 -0
- osn_selenium/webdrivers/unified/core/window.py +135 -0
- osn_selenium/webdrivers/unified/edge/__init__.py +1 -0
- osn_selenium/webdrivers/unified/edge/base.py +52 -0
- osn_selenium/webdrivers/unified/edge/lifecycle.py +88 -0
- osn_selenium/webdrivers/unified/edge/settings.py +48 -0
- osn_selenium/webdrivers/unified/yandex/__init__.py +1 -0
- osn_selenium/webdrivers/unified/yandex/base.py +54 -0
- osn_selenium/webdrivers/unified/yandex/lifecycle.py +58 -0
- osn_selenium/webdrivers/unified/yandex/settings.py +48 -0
- osn_selenium-1.0.0.dist-info/METADATA +239 -0
- osn_selenium-1.0.0.dist-info/RECORD +608 -0
- {osn_selenium-0.0.0.dist-info → osn_selenium-1.0.0.dist-info}/WHEEL +1 -1
- osn_selenium/captcha_workers/__init__.py +0 -26
- osn_selenium/dev_tools/_types.py +0 -22
- osn_selenium/dev_tools/errors.py +0 -89
- osn_selenium/dev_tools/logger.py +0 -558
- osn_selenium/dev_tools/manager.py +0 -1551
- osn_selenium/dev_tools/utils.py +0 -509
- osn_selenium/errors.py +0 -16
- osn_selenium/types.py +0 -118
- osn_selenium/webdrivers/BaseDriver/_utils.py +0 -37
- osn_selenium/webdrivers/BaseDriver/protocols.py +0 -2135
- osn_selenium/webdrivers/BaseDriver/trio_wrapper.py +0 -71
- osn_selenium/webdrivers/BaseDriver/webdriver.py +0 -2626
- osn_selenium/webdrivers/Blink/protocols.py +0 -330
- osn_selenium/webdrivers/Blink/webdriver.py +0 -637
- osn_selenium/webdrivers/Chrome/protocols.py +0 -228
- osn_selenium/webdrivers/Chrome/webdriver.py +0 -394
- osn_selenium/webdrivers/Edge/protocols.py +0 -228
- osn_selenium/webdrivers/Edge/webdriver.py +0 -394
- osn_selenium/webdrivers/Yandex/protocols.py +0 -211
- osn_selenium/webdrivers/Yandex/webdriver.py +0 -350
- osn_selenium/webdrivers/_functions.py +0 -504
- osn_selenium/webdrivers/types.py +0 -390
- osn_selenium-0.0.0.dist-info/METADATA +0 -710
- osn_selenium-0.0.0.dist-info/RECORD +0 -57
- /osn_selenium/{webdrivers/BaseDriver → abstract}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Blink → abstract/executors}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Chrome → abstract/instances}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Edge → abstract/webdriver}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Yandex → dev_tools/logger}/__init__.py +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/check_element_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_document_scroll_size.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_css.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_rect_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_random_element_point_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_position.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_rect.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_size.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/open_new_tab.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/stop_window_loading.js +0 -0
- {osn_selenium-0.0.0.dist-info → osn_selenium-1.0.0.dist-info}/top_level.txt +0 -0
|
@@ -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):
|
|
@@ -271,27 +46,27 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
271
46
|
a comprehensive set of predefined flags for these browsers.
|
|
272
47
|
|
|
273
48
|
Attributes:
|
|
274
|
-
_browser_exe (Optional[
|
|
49
|
+
_browser_exe (Optional[PATH_TYPEHINT]): Path to the browser executable.
|
|
275
50
|
_start_page_url (Optional[str]): The URL to open when the browser starts.
|
|
276
|
-
_enable_blink_features (
|
|
277
|
-
_disable_blink_features (
|
|
51
|
+
_enable_blink_features (Dict[str, str]): Stores enabled Blink feature commands.
|
|
52
|
+
_disable_blink_features (Dict[str, str]): Stores disabled Blink feature commands.
|
|
278
53
|
"""
|
|
279
54
|
|
|
280
55
|
def __init__(
|
|
281
56
|
self,
|
|
282
|
-
browser_exe: Optional[
|
|
57
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
283
58
|
start_page_url: Optional[str] = None,
|
|
284
|
-
flags_types: Optional[
|
|
285
|
-
flags_definitions: Optional[
|
|
59
|
+
flags_types: Optional[Dict[str, FlagType]] = None,
|
|
60
|
+
flags_definitions: Optional[Dict[str, FlagDefinition]] = None
|
|
286
61
|
):
|
|
287
62
|
"""
|
|
288
63
|
Initializes the BlinkFlagsManager.
|
|
289
64
|
|
|
290
65
|
Args:
|
|
291
|
-
browser_exe (Optional[
|
|
66
|
+
browser_exe (Optional[PATH_TYPEHINT]): Path to the browser executable file.
|
|
292
67
|
start_page_url (Optional[str]): Initial URL to open on browser startup.
|
|
293
|
-
flags_types (Optional[
|
|
294
|
-
flags_definitions (Optional[
|
|
68
|
+
flags_types (Optional[Dict[str, FlagType]]): Custom flag types to add or override.
|
|
69
|
+
flags_definitions (Optional[Dict[str, FlagDefinition]]): Custom flag definitions to add or override.
|
|
295
70
|
"""
|
|
296
71
|
|
|
297
72
|
blink_flags_types = {
|
|
@@ -301,8 +76,8 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
301
76
|
set_flags_function=self.set_blink_features,
|
|
302
77
|
update_flags_function=self.update_blink_features,
|
|
303
78
|
clear_flags_function=self.clear_blink_features,
|
|
304
|
-
build_options_function=self.
|
|
305
|
-
build_start_args_function=self.
|
|
79
|
+
build_options_function=self._build_options_blink_features,
|
|
80
|
+
build_start_args_function=self._build_start_args_blink_features
|
|
306
81
|
),
|
|
307
82
|
}
|
|
308
83
|
|
|
@@ -929,30 +704,31 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
929
704
|
flags_definitions=blink_flags_definitions
|
|
930
705
|
)
|
|
931
706
|
|
|
932
|
-
self._browser_exe = browser_exe
|
|
707
|
+
self._browser_exe = validate_path(path=browser_exe)
|
|
708
|
+
|
|
933
709
|
self._start_page_url = start_page_url
|
|
934
|
-
self._enable_blink_features:
|
|
935
|
-
self._disable_blink_features:
|
|
710
|
+
self._enable_blink_features: Dict[str, str] = {}
|
|
711
|
+
self._disable_blink_features: Dict[str, str] = {}
|
|
936
712
|
|
|
937
|
-
def
|
|
713
|
+
def _build_start_args_blink_features(self) -> List[str]:
|
|
938
714
|
"""
|
|
939
|
-
Builds a
|
|
715
|
+
Builds a List of Blink feature arguments for browser startup.
|
|
940
716
|
|
|
941
717
|
Returns:
|
|
942
|
-
|
|
718
|
+
List[str]: A List of startup arguments for Blink features.
|
|
943
719
|
"""
|
|
944
720
|
|
|
945
721
|
start_args = []
|
|
946
722
|
|
|
947
723
|
enable_blink_features = dict(
|
|
948
724
|
filter(
|
|
949
|
-
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"],
|
|
950
726
|
self._enable_blink_features.items()
|
|
951
727
|
)
|
|
952
728
|
)
|
|
953
729
|
disable_blink_features = dict(
|
|
954
730
|
filter(
|
|
955
|
-
lambda item: self._flags_definitions_by_types["blink_feature"][item[0]]
|
|
731
|
+
lambda item: self._flags_definitions_by_types["blink_feature"][item[0]].mode in ["startup_argument", "both"],
|
|
956
732
|
self._disable_blink_features.items()
|
|
957
733
|
)
|
|
958
734
|
)
|
|
@@ -965,26 +741,26 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
965
741
|
|
|
966
742
|
return start_args
|
|
967
743
|
|
|
968
|
-
def
|
|
744
|
+
def _build_options_blink_features(self, options: BLINK_WEBDRIVER_OPTION_TYPEHINT) -> BLINK_WEBDRIVER_OPTION_TYPEHINT:
|
|
969
745
|
"""
|
|
970
746
|
Adds configured Blink features (`--enable-blink-features` and `--disable-blink-features`) to the WebDriver options.
|
|
971
747
|
|
|
972
748
|
Args:
|
|
973
|
-
options (
|
|
749
|
+
options (blink_webdriver_option_type): The WebDriver options object to modify.
|
|
974
750
|
|
|
975
751
|
Returns:
|
|
976
|
-
|
|
752
|
+
blink_webdriver_option_type: The modified WebDriver options object.
|
|
977
753
|
"""
|
|
978
754
|
|
|
979
755
|
enable_blink_features = dict(
|
|
980
756
|
filter(
|
|
981
|
-
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"],
|
|
982
758
|
self._enable_blink_features.items()
|
|
983
759
|
)
|
|
984
760
|
)
|
|
985
761
|
disable_blink_features = dict(
|
|
986
762
|
filter(
|
|
987
|
-
lambda item: self._flags_definitions_by_types["blink_feature"][item[0]]
|
|
763
|
+
lambda item: self._flags_definitions_by_types["blink_feature"][item[0]].mode in ["webdriver_option", "both"],
|
|
988
764
|
self._disable_blink_features.items()
|
|
989
765
|
)
|
|
990
766
|
)
|
|
@@ -1025,9 +801,9 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
1025
801
|
enable (Optional[bool]): `True` to enable, `False` to disable. If `None`, the feature is removed.
|
|
1026
802
|
"""
|
|
1027
803
|
|
|
1028
|
-
blink_feature_name = blink_feature
|
|
1029
|
-
blink_feature_command = blink_feature
|
|
1030
|
-
adding_validation_function = blink_feature
|
|
804
|
+
blink_feature_name = blink_feature.name
|
|
805
|
+
blink_feature_command = blink_feature.command
|
|
806
|
+
adding_validation_function = blink_feature.adding_validation_function
|
|
1031
807
|
|
|
1032
808
|
self.remove_blink_feature(blink_feature_command)
|
|
1033
809
|
|
|
@@ -1037,127 +813,127 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
1037
813
|
else:
|
|
1038
814
|
self._disable_blink_features[blink_feature_name] = blink_feature_command
|
|
1039
815
|
|
|
1040
|
-
def update_blink_features(self, blink_features:
|
|
816
|
+
def update_blink_features(self, blink_features: BlinkFeatures):
|
|
1041
817
|
"""
|
|
1042
818
|
Updates Blink features from a dictionary without clearing existing ones.
|
|
1043
819
|
|
|
1044
820
|
Args:
|
|
1045
|
-
blink_features (
|
|
821
|
+
blink_features (BlinkFeatures): A dictionary of Blink features to set or update.
|
|
1046
822
|
|
|
1047
823
|
Raises:
|
|
1048
824
|
ValueError: If an unknown Blink feature key is provided.
|
|
1049
825
|
"""
|
|
1050
826
|
|
|
1051
|
-
for key, value in blink_features.items():
|
|
827
|
+
for key, value in blink_features.model_dump(exclude_none=True).items():
|
|
1052
828
|
flag_definition = self._flags_definitions_by_types["blink_feature"].get(key, FlagNotDefined())
|
|
1053
829
|
|
|
1054
830
|
if isinstance(flag_definition, FlagNotDefined):
|
|
1055
|
-
raise
|
|
831
|
+
raise FlagNotDefinedError(flag_name=key, flag_type="blink features")
|
|
1056
832
|
|
|
1057
833
|
self.set_blink_feature(flag_definition, value)
|
|
1058
834
|
|
|
1059
|
-
def set_blink_features(self, blink_features:
|
|
835
|
+
def set_blink_features(self, blink_features: BlinkFeatures):
|
|
1060
836
|
"""
|
|
1061
837
|
Clears existing and sets new Blink features from a dictionary.
|
|
1062
838
|
|
|
1063
839
|
Args:
|
|
1064
|
-
blink_features (
|
|
1065
|
-
|
|
1066
|
-
Raises:
|
|
1067
|
-
ValueError: If an unknown Blink feature key is provided.
|
|
840
|
+
blink_features (BlinkFeatures): A dictionary of Blink features to set.
|
|
1068
841
|
"""
|
|
1069
842
|
|
|
1070
843
|
self.clear_blink_features()
|
|
1071
844
|
self.update_blink_features(blink_features)
|
|
1072
845
|
|
|
1073
|
-
def
|
|
846
|
+
def _build_options_arguments(self, options: BLINK_WEBDRIVER_OPTION_TYPEHINT) -> BLINK_WEBDRIVER_OPTION_TYPEHINT:
|
|
1074
847
|
"""
|
|
1075
|
-
|
|
848
|
+
Adds configured command-line arguments to the WebDriver options.
|
|
1076
849
|
|
|
1077
|
-
|
|
1078
|
-
|
|
850
|
+
Args:
|
|
851
|
+
options (blink_webdriver_option_type): The WebDriver options object.
|
|
1079
852
|
|
|
1080
853
|
Returns:
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
Raises:
|
|
1084
|
-
NotImplementedError: If the method is not implemented in a subclass.
|
|
854
|
+
blink_webdriver_option_type: The modified WebDriver options object.
|
|
1085
855
|
"""
|
|
1086
856
|
|
|
1087
|
-
|
|
857
|
+
return super()._build_options_arguments(options)
|
|
1088
858
|
|
|
1089
|
-
|
|
1090
|
-
def browser_exe(self) -> Optional[Union[str, pathlib.Path]]:
|
|
859
|
+
def _build_options_attributes(self, options: BLINK_WEBDRIVER_OPTION_TYPEHINT) -> BLINK_WEBDRIVER_OPTION_TYPEHINT:
|
|
1091
860
|
"""
|
|
1092
|
-
|
|
861
|
+
Applies configured attributes to the WebDriver options.
|
|
1093
862
|
|
|
1094
|
-
|
|
863
|
+
Args:
|
|
864
|
+
options (blink_webdriver_option_type): The WebDriver options object.
|
|
1095
865
|
|
|
1096
866
|
Returns:
|
|
1097
|
-
|
|
867
|
+
blink_webdriver_option_type: The modified WebDriver options object.
|
|
1098
868
|
"""
|
|
1099
869
|
|
|
1100
|
-
return
|
|
870
|
+
return super()._build_options_attributes(options)
|
|
1101
871
|
|
|
1102
|
-
|
|
1103
|
-
def browser_exe(self, value: Optional[Union[str, pathlib.Path]]):
|
|
872
|
+
def _build_options_experimental_options(self, options: BLINK_WEBDRIVER_OPTION_TYPEHINT) -> BLINK_WEBDRIVER_OPTION_TYPEHINT:
|
|
1104
873
|
"""
|
|
1105
|
-
|
|
874
|
+
Adds experimental options to the WebDriver options.
|
|
1106
875
|
|
|
1107
876
|
Args:
|
|
1108
|
-
|
|
877
|
+
options (blink_webdriver_option_type): The WebDriver options object.
|
|
878
|
+
|
|
879
|
+
Returns:
|
|
880
|
+
blink_webdriver_option_type: The modified WebDriver options object.
|
|
1109
881
|
"""
|
|
1110
882
|
|
|
1111
|
-
|
|
883
|
+
return super()._build_options_experimental_options(options)
|
|
1112
884
|
|
|
1113
|
-
def
|
|
885
|
+
def _build_start_args_arguments(self) -> List[str]:
|
|
1114
886
|
"""
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
Args:
|
|
1118
|
-
options (_blink_webdriver_option_type): The WebDriver options object.
|
|
887
|
+
Builds a List of command-line arguments for browser startup.
|
|
1119
888
|
|
|
1120
889
|
Returns:
|
|
1121
|
-
|
|
890
|
+
List[str]: A List of startup arguments.
|
|
1122
891
|
"""
|
|
1123
892
|
|
|
1124
|
-
return super().
|
|
893
|
+
return super()._build_start_args_arguments()
|
|
1125
894
|
|
|
1126
|
-
def
|
|
895
|
+
def _renew_webdriver_options(self) -> BLINK_WEBDRIVER_OPTION_TYPEHINT:
|
|
1127
896
|
"""
|
|
1128
|
-
|
|
897
|
+
Abstract method to renew WebDriver options. Must be implemented in child classes.
|
|
1129
898
|
|
|
1130
|
-
|
|
1131
|
-
|
|
899
|
+
This method is intended to be overridden in subclasses to provide
|
|
900
|
+
browser-specific WebDriver options instances (e.g., ChromeOptions, EdgeOptions).
|
|
1132
901
|
|
|
1133
902
|
Returns:
|
|
1134
|
-
|
|
903
|
+
blink_webdriver_option_type: A new instance of WebDriver options (e.g., ChromeOptions, EdgeOptions).
|
|
904
|
+
|
|
905
|
+
Raises:
|
|
906
|
+
NotImplementedError: If the method is not implemented in a subclass.
|
|
1135
907
|
"""
|
|
1136
908
|
|
|
1137
|
-
|
|
909
|
+
raise AbstractImplementationError(
|
|
910
|
+
method_name="_renew_webdriver_options",
|
|
911
|
+
class_name=self.__class__.__name__
|
|
912
|
+
)
|
|
1138
913
|
|
|
1139
|
-
|
|
914
|
+
@property
|
|
915
|
+
def browser_exe(self) -> Optional[pathlib.Path]:
|
|
1140
916
|
"""
|
|
1141
|
-
|
|
917
|
+
Returns the browser executable path.
|
|
1142
918
|
|
|
1143
|
-
|
|
1144
|
-
options (_blink_webdriver_option_type): The WebDriver options object.
|
|
919
|
+
This property retrieves the path to the browser executable that will be used to start the browser instance.
|
|
1145
920
|
|
|
1146
921
|
Returns:
|
|
1147
|
-
|
|
922
|
+
Optional[pathlib.Path]: The path to the browser executable.
|
|
1148
923
|
"""
|
|
1149
924
|
|
|
1150
|
-
return
|
|
925
|
+
return self._browser_exe
|
|
1151
926
|
|
|
1152
|
-
|
|
927
|
+
@browser_exe.setter
|
|
928
|
+
def browser_exe(self, value: Optional[PATH_TYPEHINT]):
|
|
1153
929
|
"""
|
|
1154
|
-
|
|
930
|
+
Sets the path to the browser executable.
|
|
1155
931
|
|
|
1156
|
-
|
|
1157
|
-
|
|
932
|
+
Args:
|
|
933
|
+
value (Optional[pathlib.Path]): The new path for the browser executable.
|
|
1158
934
|
"""
|
|
1159
935
|
|
|
1160
|
-
|
|
936
|
+
self._browser_exe = validate_path(path=value)
|
|
1161
937
|
|
|
1162
938
|
def clear_flags(self):
|
|
1163
939
|
"""Clears all configured flags and resets the start page URL."""
|
|
@@ -1166,22 +942,22 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
1166
942
|
self._start_page_url = None
|
|
1167
943
|
|
|
1168
944
|
@property
|
|
1169
|
-
def options(self) ->
|
|
945
|
+
def options(self) -> BLINK_WEBDRIVER_OPTION_TYPEHINT:
|
|
1170
946
|
"""
|
|
1171
947
|
Builds and returns a Blink-specific WebDriver options object.
|
|
1172
948
|
|
|
1173
949
|
Returns:
|
|
1174
|
-
|
|
950
|
+
blink_webdriver_option_type: A configured Blink-based WebDriver options object.
|
|
1175
951
|
"""
|
|
1176
952
|
|
|
1177
953
|
return super().options
|
|
1178
954
|
|
|
1179
|
-
def set_arguments(self, arguments:
|
|
955
|
+
def set_arguments(self, arguments: BlinkArguments):
|
|
1180
956
|
"""
|
|
1181
957
|
Clears existing and sets new command-line arguments from a dictionary.
|
|
1182
958
|
|
|
1183
959
|
Args:
|
|
1184
|
-
arguments (
|
|
960
|
+
arguments (BlinkArguments): A dictionary of arguments to set.
|
|
1185
961
|
|
|
1186
962
|
Raises:
|
|
1187
963
|
ValueError: If an unknown argument key is provided.
|
|
@@ -1189,36 +965,27 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
1189
965
|
|
|
1190
966
|
super().set_arguments(arguments)
|
|
1191
967
|
|
|
1192
|
-
def set_attributes(self, attributes:
|
|
968
|
+
def set_attributes(self, attributes: BlinkAttributes):
|
|
1193
969
|
"""
|
|
1194
970
|
Clears existing and sets new browser attributes from a dictionary.
|
|
1195
971
|
|
|
1196
972
|
Args:
|
|
1197
|
-
attributes (
|
|
1198
|
-
|
|
1199
|
-
Raises:
|
|
1200
|
-
ValueError: If an unknown attribute key is provided.
|
|
973
|
+
attributes (BlinkAttributes): A dictionary of attributes to set.
|
|
1201
974
|
"""
|
|
1202
975
|
|
|
1203
976
|
super().set_attributes(attributes)
|
|
1204
977
|
|
|
1205
|
-
def set_experimental_options(
|
|
1206
|
-
self,
|
|
1207
|
-
experimental_options: Union[BlinkExperimentalOptions, dict[str, Any]]
|
|
1208
|
-
):
|
|
978
|
+
def set_experimental_options(self, experimental_options: BlinkExperimentalOptions):
|
|
1209
979
|
"""
|
|
1210
980
|
Clears existing and sets new experimental options from a dictionary.
|
|
1211
981
|
|
|
1212
982
|
Args:
|
|
1213
|
-
experimental_options (
|
|
1214
|
-
|
|
1215
|
-
Raises:
|
|
1216
|
-
ValueError: If an unknown experimental option key is provided.
|
|
983
|
+
experimental_options (BlinkExperimentalOptions): A dictionary of experimental options to set.
|
|
1217
984
|
"""
|
|
1218
985
|
|
|
1219
986
|
super().set_experimental_options(experimental_options)
|
|
1220
987
|
|
|
1221
|
-
def set_flags(self, flags:
|
|
988
|
+
def set_flags(self, flags: BlinkFlags):
|
|
1222
989
|
"""
|
|
1223
990
|
Clears all existing flags and sets new ones, including Blink features.
|
|
1224
991
|
|
|
@@ -1227,25 +994,25 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
1227
994
|
'attributes', and 'blink_features'.
|
|
1228
995
|
|
|
1229
996
|
Args:
|
|
1230
|
-
flags (
|
|
997
|
+
flags (BlinkFlags): A dictionary where keys are flag types
|
|
1231
998
|
and values are dictionaries of flags to set for that type.
|
|
1232
999
|
"""
|
|
1233
1000
|
|
|
1234
1001
|
super().set_flags(flags)
|
|
1235
1002
|
|
|
1236
1003
|
@property
|
|
1237
|
-
def start_args(self) ->
|
|
1004
|
+
def start_args(self) -> List[str]:
|
|
1238
1005
|
"""
|
|
1239
|
-
Builds and returns a
|
|
1006
|
+
Builds and returns a List of all command-line arguments for browser startup.
|
|
1240
1007
|
|
|
1241
1008
|
Returns:
|
|
1242
|
-
|
|
1009
|
+
List[str]: A List of startup arguments.
|
|
1243
1010
|
"""
|
|
1244
1011
|
|
|
1245
1012
|
args = []
|
|
1246
1013
|
|
|
1247
1014
|
for type_name, type_functions in self._flags_types.items():
|
|
1248
|
-
args += type_functions
|
|
1015
|
+
args += type_functions.build_start_args_function()
|
|
1249
1016
|
|
|
1250
1017
|
return args
|
|
1251
1018
|
|
|
@@ -1291,49 +1058,37 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
1291
1058
|
|
|
1292
1059
|
self._start_page_url = value
|
|
1293
1060
|
|
|
1294
|
-
def update_arguments(self, arguments:
|
|
1061
|
+
def update_arguments(self, arguments: BlinkArguments):
|
|
1295
1062
|
"""
|
|
1296
1063
|
Updates command-line arguments from a dictionary without clearing existing ones.
|
|
1297
1064
|
|
|
1298
1065
|
Args:
|
|
1299
|
-
arguments (
|
|
1300
|
-
|
|
1301
|
-
Raises:
|
|
1302
|
-
ValueError: If an unknown argument key is provided.
|
|
1066
|
+
arguments (BlinkArguments): A dictionary of arguments to set or update.
|
|
1303
1067
|
"""
|
|
1304
1068
|
|
|
1305
1069
|
super().update_arguments(arguments)
|
|
1306
1070
|
|
|
1307
|
-
def update_attributes(self, attributes:
|
|
1071
|
+
def update_attributes(self, attributes: BlinkAttributes):
|
|
1308
1072
|
"""
|
|
1309
1073
|
Updates browser attributes from a dictionary without clearing existing ones.
|
|
1310
1074
|
|
|
1311
1075
|
Args:
|
|
1312
|
-
attributes (
|
|
1313
|
-
|
|
1314
|
-
Raises:
|
|
1315
|
-
ValueError: If an unknown attribute key is provided.
|
|
1076
|
+
attributes (BlinkAttributes): A dictionary of attributes to set or update.
|
|
1316
1077
|
"""
|
|
1317
1078
|
|
|
1318
1079
|
super().update_attributes(attributes)
|
|
1319
1080
|
|
|
1320
|
-
def update_experimental_options(
|
|
1321
|
-
self,
|
|
1322
|
-
experimental_options: Union[BlinkExperimentalOptions, dict[str, Any]]
|
|
1323
|
-
):
|
|
1081
|
+
def update_experimental_options(self, experimental_options: BlinkExperimentalOptions):
|
|
1324
1082
|
"""
|
|
1325
1083
|
Updates experimental options from a dictionary without clearing existing ones.
|
|
1326
1084
|
|
|
1327
1085
|
Args:
|
|
1328
|
-
experimental_options (
|
|
1329
|
-
|
|
1330
|
-
Raises:
|
|
1331
|
-
ValueError: If an unknown experimental option key is provided.
|
|
1086
|
+
experimental_options (BlinkExperimentalOptions): A dictionary of experimental options to set or update.
|
|
1332
1087
|
"""
|
|
1333
1088
|
|
|
1334
1089
|
super().update_experimental_options(experimental_options)
|
|
1335
1090
|
|
|
1336
|
-
def update_flags(self, flags:
|
|
1091
|
+
def update_flags(self, flags: BlinkFlags):
|
|
1337
1092
|
"""
|
|
1338
1093
|
Updates all flags, including Blink features, without clearing existing ones.
|
|
1339
1094
|
|
|
@@ -1342,8 +1097,15 @@ class BlinkFlagsManager(BrowserFlagsManager):
|
|
|
1342
1097
|
'attributes', and 'blink_features'.
|
|
1343
1098
|
|
|
1344
1099
|
Args:
|
|
1345
|
-
flags (
|
|
1100
|
+
flags (BlinkFlags): A dictionary where keys are flag types
|
|
1346
1101
|
and values are dictionaries of flags to update for that type.
|
|
1347
1102
|
"""
|
|
1348
1103
|
|
|
1349
1104
|
super().update_flags(flags)
|
|
1105
|
+
|
|
1106
|
+
|
|
1107
|
+
BlinkArguments.model_rebuild()
|
|
1108
|
+
BlinkExperimentalOptions.model_rebuild()
|
|
1109
|
+
BlinkAttributes.model_rebuild()
|
|
1110
|
+
BlinkFeatures.model_rebuild()
|
|
1111
|
+
BlinkFlags.model_rebuild()
|