osn-selenium 0.0.0__py3-none-any.whl → 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- osn_selenium/_functions.py +84 -0
- osn_selenium/_typehints.py +19 -0
- osn_selenium/abstract/executors/cdp/__init__.py +435 -0
- osn_selenium/abstract/executors/cdp/accessibility.py +62 -0
- osn_selenium/abstract/executors/cdp/animation.py +47 -0
- osn_selenium/abstract/executors/cdp/audits.py +39 -0
- osn_selenium/abstract/executors/cdp/autofill.py +34 -0
- osn_selenium/abstract/executors/cdp/background_service.py +22 -0
- osn_selenium/abstract/executors/cdp/bluetooth_emulation.py +95 -0
- osn_selenium/abstract/executors/cdp/browser.py +122 -0
- osn_selenium/abstract/executors/cdp/cache_storage.py +49 -0
- osn_selenium/abstract/executors/cdp/cast.py +31 -0
- osn_selenium/abstract/executors/cdp/console.py +18 -0
- osn_selenium/abstract/executors/cdp/css.py +197 -0
- osn_selenium/abstract/executors/cdp/debugger.py +198 -0
- osn_selenium/abstract/executors/cdp/device_access.py +22 -0
- osn_selenium/abstract/executors/cdp/device_orientation.py +14 -0
- osn_selenium/abstract/executors/cdp/dom.py +305 -0
- osn_selenium/abstract/executors/cdp/dom_debugger.py +57 -0
- osn_selenium/abstract/executors/cdp/dom_snapshot.py +42 -0
- osn_selenium/abstract/executors/cdp/dom_storage.py +31 -0
- osn_selenium/abstract/executors/cdp/emulation.py +259 -0
- osn_selenium/abstract/executors/cdp/event_breakpoints.py +18 -0
- osn_selenium/abstract/executors/cdp/extensions.py +31 -0
- osn_selenium/abstract/executors/cdp/fed_cm.py +35 -0
- osn_selenium/abstract/executors/cdp/fetch.py +76 -0
- osn_selenium/abstract/executors/cdp/file_system.py +11 -0
- osn_selenium/abstract/executors/cdp/headless_experimental.py +30 -0
- osn_selenium/abstract/executors/cdp/heap_profiler.py +73 -0
- osn_selenium/abstract/executors/cdp/indexed_db.py +99 -0
- osn_selenium/abstract/executors/cdp/input.py +158 -0
- osn_selenium/abstract/executors/cdp/inspector.py +14 -0
- osn_selenium/abstract/executors/cdp/io.py +24 -0
- osn_selenium/abstract/executors/cdp/layer_tree.py +61 -0
- osn_selenium/abstract/executors/cdp/log.py +27 -0
- osn_selenium/abstract/executors/cdp/media.py +14 -0
- osn_selenium/abstract/executors/cdp/memory.py +61 -0
- osn_selenium/abstract/executors/cdp/network.py +252 -0
- osn_selenium/abstract/executors/cdp/overlay.py +166 -0
- osn_selenium/abstract/executors/cdp/page.py +347 -0
- osn_selenium/abstract/executors/cdp/performance.py +28 -0
- osn_selenium/abstract/executors/cdp/performance_timeline.py +11 -0
- osn_selenium/abstract/executors/cdp/preload.py +14 -0
- osn_selenium/abstract/executors/cdp/profiler.py +54 -0
- osn_selenium/abstract/executors/cdp/pwa.py +46 -0
- osn_selenium/abstract/executors/cdp/runtime.py +176 -0
- osn_selenium/abstract/executors/cdp/schema.py +11 -0
- osn_selenium/abstract/executors/cdp/security.py +26 -0
- osn_selenium/abstract/executors/cdp/service_worker.py +54 -0
- osn_selenium/abstract/executors/cdp/storage.py +175 -0
- osn_selenium/abstract/executors/cdp/system_info.py +24 -0
- osn_selenium/abstract/executors/cdp/target.py +125 -0
- osn_selenium/abstract/executors/cdp/tethering.py +14 -0
- osn_selenium/abstract/executors/cdp/tracing.py +48 -0
- osn_selenium/abstract/executors/cdp/web_audio.py +19 -0
- osn_selenium/abstract/executors/cdp/web_authn.py +76 -0
- osn_selenium/abstract/executors/javascript.py +203 -0
- osn_selenium/abstract/instances/action_chains/__init__.py +12 -0
- osn_selenium/abstract/instances/action_chains/base.py +25 -0
- osn_selenium/abstract/instances/action_chains/click.py +93 -0
- osn_selenium/abstract/instances/action_chains/drag_and_drop.py +46 -0
- osn_selenium/abstract/instances/action_chains/hm_keyboard.py +44 -0
- osn_selenium/abstract/instances/action_chains/hm_move.py +104 -0
- osn_selenium/abstract/instances/action_chains/hm_scroll.py +75 -0
- osn_selenium/abstract/instances/action_chains/keyboard.py +79 -0
- osn_selenium/abstract/instances/action_chains/move.py +60 -0
- osn_selenium/abstract/instances/action_chains/scroll.py +61 -0
- osn_selenium/abstract/instances/action_chains/utils.py +44 -0
- osn_selenium/abstract/instances/alert.py +67 -0
- osn_selenium/abstract/instances/browser.py +76 -0
- osn_selenium/abstract/instances/browsing_context.py +310 -0
- osn_selenium/abstract/instances/dialog.py +107 -0
- osn_selenium/abstract/instances/fedcm.py +133 -0
- osn_selenium/abstract/instances/mobile.py +79 -0
- osn_selenium/abstract/instances/network.py +100 -0
- osn_selenium/abstract/instances/permissions.py +52 -0
- osn_selenium/abstract/instances/script.py +109 -0
- osn_selenium/abstract/instances/shadow_root.py +81 -0
- osn_selenium/abstract/instances/storage.py +98 -0
- osn_selenium/abstract/instances/switch_to.py +104 -0
- osn_selenium/abstract/instances/web_driver_wait.py +57 -0
- osn_selenium/abstract/instances/web_element.py +395 -0
- osn_selenium/abstract/instances/web_extension.py +70 -0
- osn_selenium/abstract/webdriver/blink/__init__.py +18 -0
- osn_selenium/abstract/webdriver/blink/base.py +80 -0
- osn_selenium/abstract/webdriver/blink/casting.py +82 -0
- osn_selenium/abstract/webdriver/blink/features.py +51 -0
- osn_selenium/abstract/webdriver/blink/lifecycle.py +76 -0
- osn_selenium/abstract/webdriver/blink/logging.py +40 -0
- osn_selenium/abstract/webdriver/blink/network.py +45 -0
- osn_selenium/abstract/webdriver/blink/settings.py +68 -0
- osn_selenium/abstract/webdriver/chrome/__init__.py +18 -0
- osn_selenium/abstract/webdriver/chrome/base.py +36 -0
- osn_selenium/abstract/webdriver/chrome/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/chrome/settings.py +110 -0
- osn_selenium/abstract/webdriver/core/__init__.py +16 -0
- osn_selenium/abstract/webdriver/core/actions.py +58 -0
- osn_selenium/abstract/webdriver/core/auth.py +145 -0
- osn_selenium/abstract/webdriver/core/base.py +298 -0
- osn_selenium/abstract/webdriver/core/capture.py +84 -0
- osn_selenium/abstract/webdriver/core/components.py +82 -0
- osn_selenium/abstract/webdriver/core/devtools.py +69 -0
- osn_selenium/abstract/webdriver/core/element.py +55 -0
- osn_selenium/abstract/webdriver/core/file.py +82 -0
- osn_selenium/abstract/webdriver/core/lifecycle.py +103 -0
- osn_selenium/abstract/webdriver/core/navigation.py +65 -0
- osn_selenium/abstract/webdriver/core/script.py +88 -0
- osn_selenium/abstract/webdriver/core/settings.py +43 -0
- osn_selenium/abstract/webdriver/core/storage.py +81 -0
- osn_selenium/abstract/webdriver/core/timeouts.py +101 -0
- osn_selenium/abstract/webdriver/core/window.py +237 -0
- osn_selenium/abstract/webdriver/edge/__init__.py +18 -0
- osn_selenium/abstract/webdriver/edge/base.py +36 -0
- osn_selenium/abstract/webdriver/edge/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/edge/settings.py +110 -0
- osn_selenium/abstract/webdriver/yandex/__init__.py +18 -0
- osn_selenium/abstract/webdriver/yandex/base.py +18 -0
- osn_selenium/abstract/webdriver/yandex/lifecycle.py +92 -0
- osn_selenium/abstract/webdriver/yandex/settings.py +110 -0
- osn_selenium/base_mixin.py +122 -0
- osn_selenium/browsers_handler/__init__.py +47 -17
- osn_selenium/browsers_handler/_linux.py +226 -0
- osn_selenium/browsers_handler/_windows.py +21 -14
- osn_selenium/browsers_handler/{types.py → models.py} +5 -2
- osn_selenium/dev_tools/_decorators.py +140 -0
- osn_selenium/dev_tools/_exception_helpers.py +116 -0
- osn_selenium/dev_tools/_functions.py +174 -0
- osn_selenium/dev_tools/_system_utils.py +35 -0
- osn_selenium/dev_tools/_typehints.py +32 -0
- osn_selenium/dev_tools/_validators.py +227 -0
- osn_selenium/dev_tools/_wrappers.py +95 -0
- osn_selenium/dev_tools/domains/__init__.py +7 -40
- osn_selenium/dev_tools/domains/abstract.py +98 -254
- osn_selenium/dev_tools/domains/fetch.py +229 -906
- osn_selenium/dev_tools/domains_default/fetch.py +40 -28
- osn_selenium/dev_tools/filters.py +40 -0
- osn_selenium/dev_tools/logger/main.py +226 -0
- osn_selenium/dev_tools/logger/models.py +232 -0
- osn_selenium/dev_tools/logger/target.py +258 -0
- osn_selenium/dev_tools/manager/__init__.py +16 -0
- osn_selenium/dev_tools/manager/base.py +147 -0
- osn_selenium/dev_tools/manager/lifecycle.py +236 -0
- osn_selenium/dev_tools/manager/logging.py +153 -0
- osn_selenium/dev_tools/manager/settings.py +89 -0
- osn_selenium/dev_tools/manager/targets.py +175 -0
- osn_selenium/dev_tools/models.py +49 -0
- osn_selenium/dev_tools/settings.py +135 -0
- osn_selenium/dev_tools/target/__init__.py +16 -0
- osn_selenium/dev_tools/target/base.py +438 -0
- osn_selenium/dev_tools/target/detach.py +54 -0
- osn_selenium/dev_tools/target/discovery.py +112 -0
- osn_selenium/dev_tools/target/events.py +120 -0
- osn_selenium/dev_tools/target/fingerprint.py +126 -0
- osn_selenium/dev_tools/target/lifecycle.py +179 -0
- osn_selenium/dev_tools/target/logging.py +155 -0
- osn_selenium/exceptions/__init__.py +1 -0
- osn_selenium/exceptions/base.py +9 -0
- osn_selenium/exceptions/configuration.py +84 -0
- osn_selenium/exceptions/devtools.py +114 -0
- osn_selenium/exceptions/flags.py +45 -0
- osn_selenium/exceptions/instance.py +92 -0
- osn_selenium/exceptions/javascript.py +31 -0
- osn_selenium/exceptions/logic.py +31 -0
- osn_selenium/exceptions/path.py +77 -0
- osn_selenium/exceptions/platform.py +33 -0
- osn_selenium/exceptions/protocol.py +86 -0
- osn_selenium/exceptions/webdriver.py +44 -0
- osn_selenium/exceptions/window.py +63 -0
- osn_selenium/executors/__init__.py +1 -0
- osn_selenium/executors/sync/__init__.py +1 -0
- osn_selenium/executors/sync/cdp/__init__.py +550 -0
- osn_selenium/executors/sync/cdp/accessibility.py +74 -0
- osn_selenium/executors/sync/cdp/animation.py +50 -0
- osn_selenium/executors/sync/cdp/audits.py +48 -0
- osn_selenium/executors/sync/cdp/autofill.py +39 -0
- osn_selenium/executors/sync/cdp/background_service.py +30 -0
- osn_selenium/executors/sync/cdp/bluetooth_emulation.py +101 -0
- osn_selenium/executors/sync/cdp/browser.py +131 -0
- osn_selenium/executors/sync/cdp/cache_storage.py +66 -0
- osn_selenium/executors/sync/cdp/cast.py +38 -0
- osn_selenium/executors/sync/cdp/console.py +24 -0
- osn_selenium/executors/sync/cdp/css.py +187 -0
- osn_selenium/executors/sync/cdp/debugger.py +206 -0
- osn_selenium/executors/sync/cdp/device_access.py +27 -0
- osn_selenium/executors/sync/cdp/device_orientation.py +24 -0
- osn_selenium/executors/sync/cdp/dom.py +310 -0
- osn_selenium/executors/sync/cdp/dom_debugger.py +56 -0
- osn_selenium/executors/sync/cdp/dom_snapshot.py +58 -0
- osn_selenium/executors/sync/cdp/dom_storage.py +38 -0
- osn_selenium/executors/sync/cdp/emulation.py +270 -0
- osn_selenium/executors/sync/cdp/event_breakpoints.py +27 -0
- osn_selenium/executors/sync/cdp/extensions.py +39 -0
- osn_selenium/executors/sync/cdp/fed_cm.py +45 -0
- osn_selenium/executors/sync/cdp/fetch.py +96 -0
- osn_selenium/executors/sync/cdp/file_system.py +18 -0
- osn_selenium/executors/sync/cdp/headless_experimental.py +44 -0
- osn_selenium/executors/sync/cdp/heap_profiler.py +89 -0
- osn_selenium/executors/sync/cdp/indexed_db.py +142 -0
- osn_selenium/executors/sync/cdp/input.py +233 -0
- osn_selenium/executors/sync/cdp/inspector.py +21 -0
- osn_selenium/executors/sync/cdp/io.py +33 -0
- osn_selenium/executors/sync/cdp/layer_tree.py +71 -0
- osn_selenium/executors/sync/cdp/log.py +35 -0
- osn_selenium/executors/sync/cdp/media.py +21 -0
- osn_selenium/executors/sync/cdp/memory.py +62 -0
- osn_selenium/executors/sync/cdp/network.py +287 -0
- osn_selenium/executors/sync/cdp/overlay.py +174 -0
- osn_selenium/executors/sync/cdp/page.py +365 -0
- osn_selenium/executors/sync/cdp/performance.py +33 -0
- osn_selenium/executors/sync/cdp/performance_timeline.py +26 -0
- osn_selenium/executors/sync/cdp/preload.py +21 -0
- osn_selenium/executors/sync/cdp/profiler.py +58 -0
- osn_selenium/executors/sync/cdp/pwa.py +55 -0
- osn_selenium/executors/sync/cdp/runtime.py +221 -0
- osn_selenium/executors/sync/cdp/schema.py +23 -0
- osn_selenium/executors/sync/cdp/security.py +30 -0
- osn_selenium/executors/sync/cdp/service_worker.py +56 -0
- osn_selenium/executors/sync/cdp/storage.py +151 -0
- osn_selenium/executors/sync/cdp/system_info.py +30 -0
- osn_selenium/executors/sync/cdp/target.py +147 -0
- osn_selenium/executors/sync/cdp/tethering.py +21 -0
- osn_selenium/executors/sync/cdp/tracing.py +62 -0
- osn_selenium/executors/sync/cdp/web_audio.py +24 -0
- osn_selenium/executors/sync/cdp/web_authn.py +82 -0
- osn_selenium/executors/sync/javascript.py +79 -0
- osn_selenium/executors/trio_threads/__init__.py +1 -0
- osn_selenium/executors/trio_threads/cdp/__init__.py +771 -0
- osn_selenium/executors/trio_threads/cdp/accessibility.py +87 -0
- osn_selenium/executors/trio_threads/cdp/animation.py +63 -0
- osn_selenium/executors/trio_threads/cdp/audits.py +57 -0
- osn_selenium/executors/trio_threads/cdp/autofill.py +52 -0
- osn_selenium/executors/trio_threads/cdp/background_service.py +40 -0
- osn_selenium/executors/trio_threads/cdp/bluetooth_emulation.py +111 -0
- osn_selenium/executors/trio_threads/cdp/browser.py +140 -0
- osn_selenium/executors/trio_threads/cdp/cache_storage.py +79 -0
- osn_selenium/executors/trio_threads/cdp/cast.py +47 -0
- osn_selenium/executors/trio_threads/cdp/console.py +33 -0
- osn_selenium/executors/trio_threads/cdp/css.py +196 -0
- osn_selenium/executors/trio_threads/cdp/debugger.py +219 -0
- osn_selenium/executors/trio_threads/cdp/device_access.py +40 -0
- osn_selenium/executors/trio_threads/cdp/device_orientation.py +34 -0
- osn_selenium/executors/trio_threads/cdp/dom.py +319 -0
- osn_selenium/executors/trio_threads/cdp/dom_debugger.py +69 -0
- osn_selenium/executors/trio_threads/cdp/dom_snapshot.py +71 -0
- osn_selenium/executors/trio_threads/cdp/dom_storage.py +51 -0
- osn_selenium/executors/trio_threads/cdp/emulation.py +283 -0
- osn_selenium/executors/trio_threads/cdp/event_breakpoints.py +37 -0
- osn_selenium/executors/trio_threads/cdp/extensions.py +52 -0
- osn_selenium/executors/trio_threads/cdp/fed_cm.py +54 -0
- osn_selenium/executors/trio_threads/cdp/fetch.py +105 -0
- osn_selenium/executors/trio_threads/cdp/file_system.py +31 -0
- osn_selenium/executors/trio_threads/cdp/headless_experimental.py +54 -0
- osn_selenium/executors/trio_threads/cdp/heap_profiler.py +102 -0
- osn_selenium/executors/trio_threads/cdp/indexed_db.py +155 -0
- osn_selenium/executors/trio_threads/cdp/input.py +242 -0
- osn_selenium/executors/trio_threads/cdp/inspector.py +34 -0
- osn_selenium/executors/trio_threads/cdp/io.py +42 -0
- osn_selenium/executors/trio_threads/cdp/layer_tree.py +84 -0
- osn_selenium/executors/trio_threads/cdp/log.py +44 -0
- osn_selenium/executors/trio_threads/cdp/media.py +30 -0
- osn_selenium/executors/trio_threads/cdp/memory.py +71 -0
- osn_selenium/executors/trio_threads/cdp/network.py +296 -0
- osn_selenium/executors/trio_threads/cdp/overlay.py +183 -0
- osn_selenium/executors/trio_threads/cdp/page.py +374 -0
- osn_selenium/executors/trio_threads/cdp/performance.py +46 -0
- osn_selenium/executors/trio_threads/cdp/performance_timeline.py +36 -0
- osn_selenium/executors/trio_threads/cdp/preload.py +30 -0
- osn_selenium/executors/trio_threads/cdp/profiler.py +71 -0
- osn_selenium/executors/trio_threads/cdp/pwa.py +64 -0
- osn_selenium/executors/trio_threads/cdp/runtime.py +230 -0
- osn_selenium/executors/trio_threads/cdp/schema.py +32 -0
- osn_selenium/executors/trio_threads/cdp/security.py +43 -0
- osn_selenium/executors/trio_threads/cdp/service_worker.py +69 -0
- osn_selenium/executors/trio_threads/cdp/storage.py +162 -0
- osn_selenium/executors/trio_threads/cdp/system_info.py +43 -0
- osn_selenium/executors/trio_threads/cdp/target.py +156 -0
- osn_selenium/executors/trio_threads/cdp/tethering.py +34 -0
- osn_selenium/executors/trio_threads/cdp/tracing.py +71 -0
- osn_selenium/executors/trio_threads/cdp/web_audio.py +37 -0
- osn_selenium/executors/trio_threads/cdp/web_authn.py +95 -0
- osn_selenium/executors/trio_threads/javascript.py +90 -0
- osn_selenium/executors/unified/__init__.py +1 -0
- osn_selenium/executors/unified/cdp/__init__.py +1 -0
- osn_selenium/executors/unified/cdp/accessibility.py +81 -0
- osn_selenium/executors/unified/cdp/animation.py +50 -0
- osn_selenium/executors/unified/cdp/audits.py +45 -0
- osn_selenium/executors/unified/cdp/autofill.py +41 -0
- osn_selenium/executors/unified/cdp/background_service.py +24 -0
- osn_selenium/executors/unified/cdp/bluetooth_emulation.py +132 -0
- osn_selenium/executors/unified/cdp/browser.py +143 -0
- osn_selenium/executors/unified/cdp/cache_storage.py +69 -0
- osn_selenium/executors/unified/cdp/cast.py +32 -0
- osn_selenium/executors/unified/cdp/console.py +18 -0
- osn_selenium/executors/unified/cdp/css.py +237 -0
- osn_selenium/executors/unified/cdp/debugger.py +243 -0
- osn_selenium/executors/unified/cdp/device_access.py +21 -0
- osn_selenium/executors/unified/cdp/device_orientation.py +18 -0
- osn_selenium/executors/unified/cdp/dom.py +380 -0
- osn_selenium/executors/unified/cdp/dom_debugger.py +65 -0
- osn_selenium/executors/unified/cdp/dom_snapshot.py +58 -0
- osn_selenium/executors/unified/cdp/dom_storage.py +38 -0
- osn_selenium/executors/unified/cdp/emulation.py +312 -0
- osn_selenium/executors/unified/cdp/event_breakpoints.py +24 -0
- osn_selenium/executors/unified/cdp/extensions.py +45 -0
- osn_selenium/executors/unified/cdp/fed_cm.py +51 -0
- osn_selenium/executors/unified/cdp/fetch.py +111 -0
- osn_selenium/executors/unified/cdp/file_system.py +15 -0
- osn_selenium/executors/unified/cdp/headless_experimental.py +38 -0
- osn_selenium/executors/unified/cdp/heap_profiler.py +101 -0
- osn_selenium/executors/unified/cdp/indexed_db.py +157 -0
- osn_selenium/executors/unified/cdp/input.py +254 -0
- osn_selenium/executors/unified/cdp/inspector.py +15 -0
- osn_selenium/executors/unified/cdp/io.py +29 -0
- osn_selenium/executors/unified/cdp/layer_tree.py +71 -0
- osn_selenium/executors/unified/cdp/log.py +29 -0
- osn_selenium/executors/unified/cdp/media.py +15 -0
- osn_selenium/executors/unified/cdp/memory.py +59 -0
- osn_selenium/executors/unified/cdp/network.py +323 -0
- osn_selenium/executors/unified/cdp/overlay.py +209 -0
- osn_selenium/executors/unified/cdp/page.py +410 -0
- osn_selenium/executors/unified/cdp/performance.py +27 -0
- osn_selenium/executors/unified/cdp/performance_timeline.py +17 -0
- osn_selenium/executors/unified/cdp/preload.py +15 -0
- osn_selenium/executors/unified/cdp/profiler.py +55 -0
- osn_selenium/executors/unified/cdp/pwa.py +55 -0
- osn_selenium/executors/unified/cdp/runtime.py +245 -0
- osn_selenium/executors/unified/cdp/schema.py +17 -0
- osn_selenium/executors/unified/cdp/security.py +27 -0
- osn_selenium/executors/unified/cdp/service_worker.py +62 -0
- osn_selenium/executors/unified/cdp/storage.py +178 -0
- osn_selenium/executors/unified/cdp/system_info.py +24 -0
- osn_selenium/executors/unified/cdp/target.py +165 -0
- osn_selenium/executors/unified/cdp/tethering.py +15 -0
- osn_selenium/executors/unified/cdp/tracing.py +62 -0
- osn_selenium/executors/unified/cdp/web_audio.py +18 -0
- osn_selenium/executors/unified/cdp/web_authn.py +103 -0
- osn_selenium/executors/unified/javascript.py +108 -0
- osn_selenium/flags/__init__.py +1 -0
- osn_selenium/flags/_functions.py +45 -0
- osn_selenium/flags/_typehints.py +34 -0
- osn_selenium/flags/_validators.py +101 -0
- osn_selenium/{webdrivers/BaseDriver/flags.py → flags/base.py} +165 -243
- osn_selenium/{webdrivers/Blink/flags.py → flags/blink.py} +133 -371
- osn_selenium/flags/chrome.py +259 -0
- osn_selenium/flags/edge.py +259 -0
- osn_selenium/flags/models/__init__.py +1 -0
- osn_selenium/flags/models/base.py +130 -0
- osn_selenium/flags/models/blink.py +263 -0
- osn_selenium/{webdrivers/Chrome/flags.py → flags/models/chrome.py} +25 -75
- osn_selenium/{webdrivers/Edge/flags.py → flags/models/edge.py} +25 -75
- osn_selenium/flags/models/values.py +44 -0
- osn_selenium/{webdrivers/Yandex/flags.py → flags/models/yandex.py} +26 -76
- osn_selenium/flags/yandex.py +259 -0
- osn_selenium/instances/__init__.py +1 -0
- osn_selenium/instances/_functions.py +242 -0
- osn_selenium/instances/_typehints.py +148 -0
- osn_selenium/instances/_utils.py +143 -0
- osn_selenium/instances/convert.py +287 -0
- osn_selenium/instances/protocols.py +105 -0
- osn_selenium/instances/sync/__init__.py +1 -0
- osn_selenium/instances/sync/action_chains/__init__.py +26 -0
- osn_selenium/instances/sync/action_chains/base.py +74 -0
- osn_selenium/instances/sync/action_chains/click.py +61 -0
- osn_selenium/instances/sync/action_chains/drag_and_drop.py +45 -0
- osn_selenium/instances/sync/action_chains/hm_keyboard.py +37 -0
- osn_selenium/instances/sync/action_chains/hm_move.py +81 -0
- osn_selenium/instances/sync/action_chains/hm_scroll.py +60 -0
- osn_selenium/instances/sync/action_chains/keyboard.py +55 -0
- osn_selenium/instances/sync/action_chains/move.py +46 -0
- osn_selenium/instances/sync/action_chains/scroll.py +43 -0
- osn_selenium/instances/sync/action_chains/utils.py +30 -0
- osn_selenium/instances/sync/alert.py +69 -0
- osn_selenium/instances/sync/browser.py +72 -0
- osn_selenium/instances/sync/browsing_context.py +193 -0
- osn_selenium/instances/sync/dialog.py +81 -0
- osn_selenium/instances/sync/fedcm.py +92 -0
- osn_selenium/instances/sync/mobile.py +75 -0
- osn_selenium/instances/sync/network.py +90 -0
- osn_selenium/instances/sync/permissions.py +80 -0
- osn_selenium/instances/sync/script.py +77 -0
- osn_selenium/instances/sync/shadow_root.py +91 -0
- osn_selenium/instances/sync/storage.py +91 -0
- osn_selenium/instances/sync/switch_to.py +92 -0
- osn_selenium/instances/sync/web_driver_wait.py +83 -0
- osn_selenium/instances/sync/web_element.py +179 -0
- osn_selenium/instances/sync/web_extension.py +77 -0
- osn_selenium/instances/trio_threads/__init__.py +1 -0
- osn_selenium/instances/trio_threads/action_chains/__init__.py +26 -0
- osn_selenium/instances/trio_threads/action_chains/base.py +88 -0
- osn_selenium/instances/trio_threads/action_chains/click.py +71 -0
- osn_selenium/instances/trio_threads/action_chains/drag_and_drop.py +49 -0
- osn_selenium/instances/trio_threads/action_chains/hm_keyboard.py +41 -0
- osn_selenium/instances/trio_threads/action_chains/hm_move.py +91 -0
- osn_selenium/instances/trio_threads/action_chains/hm_scroll.py +66 -0
- osn_selenium/instances/trio_threads/action_chains/keyboard.py +63 -0
- osn_selenium/instances/trio_threads/action_chains/move.py +52 -0
- osn_selenium/instances/trio_threads/action_chains/scroll.py +49 -0
- osn_selenium/instances/trio_threads/action_chains/utils.py +32 -0
- osn_selenium/instances/trio_threads/alert.py +87 -0
- osn_selenium/instances/trio_threads/browser.py +90 -0
- osn_selenium/instances/trio_threads/browsing_context.py +216 -0
- osn_selenium/instances/trio_threads/dialog.py +99 -0
- osn_selenium/instances/trio_threads/fedcm.py +110 -0
- osn_selenium/instances/trio_threads/mobile.py +93 -0
- osn_selenium/instances/trio_threads/network.py +108 -0
- osn_selenium/instances/trio_threads/permissions.py +102 -0
- osn_selenium/instances/trio_threads/script.py +95 -0
- osn_selenium/instances/trio_threads/shadow_root.py +123 -0
- osn_selenium/instances/trio_threads/storage.py +109 -0
- osn_selenium/instances/trio_threads/switch_to.py +124 -0
- osn_selenium/instances/trio_threads/web_driver_wait.py +101 -0
- osn_selenium/instances/trio_threads/web_element.py +217 -0
- osn_selenium/instances/trio_threads/web_extension.py +99 -0
- osn_selenium/instances/unified/__init__.py +1 -0
- osn_selenium/instances/unified/action_chains/__init__.py +22 -0
- osn_selenium/instances/unified/action_chains/base.py +31 -0
- osn_selenium/instances/unified/action_chains/click.py +27 -0
- osn_selenium/instances/unified/action_chains/drag_and_drop.py +24 -0
- osn_selenium/instances/unified/action_chains/hm_keyboard.py +30 -0
- osn_selenium/instances/unified/action_chains/hm_move.py +66 -0
- osn_selenium/instances/unified/action_chains/hm_scroll.py +79 -0
- osn_selenium/instances/unified/action_chains/keyboard.py +24 -0
- osn_selenium/instances/unified/action_chains/move.py +24 -0
- osn_selenium/instances/unified/action_chains/scroll.py +21 -0
- osn_selenium/instances/unified/action_chains/utils.py +19 -0
- osn_selenium/instances/unified/alert.py +29 -0
- osn_selenium/instances/unified/browser.py +33 -0
- osn_selenium/instances/unified/browsing_context.py +151 -0
- osn_selenium/instances/unified/dialog.py +42 -0
- osn_selenium/instances/unified/fedcm.py +48 -0
- osn_selenium/instances/unified/mobile.py +36 -0
- osn_selenium/instances/unified/network.py +50 -0
- osn_selenium/instances/unified/permissions.py +43 -0
- osn_selenium/instances/unified/script.py +38 -0
- osn_selenium/instances/unified/shadow_root.py +46 -0
- osn_selenium/instances/unified/storage.py +48 -0
- osn_selenium/instances/unified/switch_to.py +49 -0
- osn_selenium/instances/unified/web_driver_wait.py +45 -0
- osn_selenium/instances/unified/web_element.py +145 -0
- osn_selenium/instances/unified/web_extension.py +38 -0
- osn_selenium/javascript/__init__.py +1 -0
- osn_selenium/javascript/_functions.py +63 -0
- osn_selenium/javascript/fingerprint/__init__.py +120 -0
- osn_selenium/javascript/fingerprint/_decorators.py +41 -0
- osn_selenium/javascript/fingerprint/_detect/__init__.py +1 -0
- osn_selenium/javascript/fingerprint/_detect/functions.py +253 -0
- osn_selenium/javascript/fingerprint/_detect/templates.py +128 -0
- osn_selenium/javascript/fingerprint/_functions.py +35 -0
- osn_selenium/javascript/fingerprint/_typehints.py +27 -0
- osn_selenium/javascript/fingerprint/registry/__init__.py +7 -0
- osn_selenium/javascript/fingerprint/registry/_core_functions.py +236 -0
- osn_selenium/javascript/fingerprint/registry/_functions.py +923 -0
- osn_selenium/javascript/fingerprint/registry/_typehints.py +6 -0
- osn_selenium/javascript/fingerprint/registry/_utils.py +6 -0
- osn_selenium/javascript/fingerprint/registry/models.py +41 -0
- osn_selenium/javascript/fingerprint/spoof/__init__.py +1 -0
- osn_selenium/javascript/fingerprint/spoof/_functions.py +172 -0
- osn_selenium/javascript/fingerprint/spoof/_templates.py +134 -0
- osn_selenium/javascript/fingerprint/spoof/_typehints.py +22 -0
- osn_selenium/javascript/fingerprint/spoof/core_rules.py +141 -0
- osn_selenium/javascript/fingerprint/spoof/noise.py +51 -0
- osn_selenium/javascript/fingerprint/spoof/rules.py +313 -0
- osn_selenium/javascript/functions.py +44 -0
- osn_selenium/javascript/models.py +35 -0
- osn_selenium/javascript/scripts/start_fingerprint_detection.js +56 -0
- osn_selenium/models.py +139 -0
- osn_selenium/webdrivers/_args_helpers.py +181 -0
- osn_selenium/webdrivers/_bridges.py +57 -0
- osn_selenium/webdrivers/_decorators.py +83 -0
- osn_selenium/webdrivers/_executable_tables/__init__.py +1 -0
- osn_selenium/webdrivers/_executable_tables/functions.py +113 -0
- osn_selenium/webdrivers/_executable_tables/models.py +19 -0
- osn_selenium/webdrivers/_typehints.py +10 -0
- osn_selenium/webdrivers/protocols.py +50 -0
- osn_selenium/webdrivers/sync/__init__.py +1 -0
- osn_selenium/webdrivers/sync/blink/__init__.py +114 -0
- osn_selenium/webdrivers/sync/blink/base.py +128 -0
- osn_selenium/webdrivers/sync/blink/casting.py +34 -0
- osn_selenium/webdrivers/sync/blink/features.py +28 -0
- osn_selenium/webdrivers/sync/blink/lifecycle.py +66 -0
- osn_selenium/webdrivers/sync/blink/logging.py +25 -0
- osn_selenium/webdrivers/sync/blink/network.py +28 -0
- osn_selenium/webdrivers/sync/blink/settings.py +63 -0
- osn_selenium/webdrivers/sync/chrome/__init__.py +67 -0
- osn_selenium/webdrivers/sync/chrome/base.py +106 -0
- osn_selenium/webdrivers/sync/chrome/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/chrome/settings.py +58 -0
- osn_selenium/webdrivers/sync/core/__init__.py +91 -0
- osn_selenium/webdrivers/sync/core/actions.py +59 -0
- osn_selenium/webdrivers/sync/core/auth.py +77 -0
- osn_selenium/webdrivers/sync/core/base.py +167 -0
- osn_selenium/webdrivers/sync/core/capture.py +37 -0
- osn_selenium/webdrivers/sync/core/comonents.py +57 -0
- osn_selenium/webdrivers/sync/core/devtools.py +47 -0
- osn_selenium/webdrivers/sync/core/element.py +42 -0
- osn_selenium/webdrivers/sync/core/file.py +40 -0
- osn_selenium/webdrivers/sync/core/lifecycle.py +59 -0
- osn_selenium/webdrivers/sync/core/navigation.py +36 -0
- osn_selenium/webdrivers/sync/core/script.py +53 -0
- osn_selenium/webdrivers/sync/core/settings.py +35 -0
- osn_selenium/webdrivers/sync/core/storage.py +48 -0
- osn_selenium/webdrivers/sync/core/timeouts.py +59 -0
- osn_selenium/webdrivers/sync/core/window.py +99 -0
- osn_selenium/webdrivers/sync/edge/__init__.py +67 -0
- osn_selenium/webdrivers/sync/edge/base.py +102 -0
- osn_selenium/webdrivers/sync/edge/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/edge/settings.py +58 -0
- osn_selenium/webdrivers/sync/yandex/__init__.py +67 -0
- osn_selenium/webdrivers/sync/yandex/base.py +99 -0
- osn_selenium/webdrivers/sync/yandex/lifecycle.py +63 -0
- osn_selenium/webdrivers/sync/yandex/settings.py +58 -0
- osn_selenium/webdrivers/trio_threads/__init__.py +1 -0
- osn_selenium/webdrivers/trio_threads/blink/__init__.py +124 -0
- osn_selenium/webdrivers/trio_threads/blink/base.py +133 -0
- osn_selenium/webdrivers/trio_threads/blink/casting.py +35 -0
- osn_selenium/webdrivers/trio_threads/blink/features.py +29 -0
- osn_selenium/webdrivers/trio_threads/blink/lifecycle.py +66 -0
- osn_selenium/webdrivers/trio_threads/blink/logging.py +26 -0
- osn_selenium/webdrivers/trio_threads/blink/network.py +29 -0
- osn_selenium/webdrivers/trio_threads/blink/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/chrome/__init__.py +81 -0
- osn_selenium/webdrivers/trio_threads/chrome/base.py +107 -0
- osn_selenium/webdrivers/trio_threads/chrome/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/chrome/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/core/__init__.py +109 -0
- osn_selenium/webdrivers/trio_threads/core/actions.py +72 -0
- osn_selenium/webdrivers/trio_threads/core/auth.py +88 -0
- osn_selenium/webdrivers/trio_threads/core/base.py +191 -0
- osn_selenium/webdrivers/trio_threads/core/capture.py +38 -0
- osn_selenium/webdrivers/trio_threads/core/comonents.py +92 -0
- osn_selenium/webdrivers/trio_threads/core/devtools.py +53 -0
- osn_selenium/webdrivers/trio_threads/core/element.py +58 -0
- osn_selenium/webdrivers/trio_threads/core/file.py +45 -0
- osn_selenium/webdrivers/trio_threads/core/lifecycle.py +60 -0
- osn_selenium/webdrivers/trio_threads/core/navigation.py +41 -0
- osn_selenium/webdrivers/trio_threads/core/script.py +59 -0
- osn_selenium/webdrivers/trio_threads/core/settings.py +36 -0
- osn_selenium/webdrivers/trio_threads/core/storage.py +54 -0
- osn_selenium/webdrivers/trio_threads/core/timeouts.py +60 -0
- osn_selenium/webdrivers/trio_threads/core/window.py +105 -0
- osn_selenium/webdrivers/trio_threads/edge/__init__.py +81 -0
- osn_selenium/webdrivers/trio_threads/edge/base.py +103 -0
- osn_selenium/webdrivers/trio_threads/edge/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/edge/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/yandex/__init__.py +81 -0
- osn_selenium/webdrivers/trio_threads/yandex/base.py +100 -0
- osn_selenium/webdrivers/trio_threads/yandex/lifecycle.py +63 -0
- osn_selenium/webdrivers/trio_threads/yandex/settings.py +63 -0
- osn_selenium/webdrivers/unified/__init__.py +1 -0
- osn_selenium/webdrivers/unified/blink/__init__.py +1 -0
- osn_selenium/webdrivers/unified/blink/base.py +131 -0
- osn_selenium/webdrivers/unified/blink/casting.py +30 -0
- osn_selenium/webdrivers/unified/blink/features.py +22 -0
- osn_selenium/webdrivers/unified/blink/lifecycle.py +114 -0
- osn_selenium/webdrivers/unified/blink/logging.py +18 -0
- osn_selenium/webdrivers/unified/blink/network.py +22 -0
- osn_selenium/webdrivers/unified/blink/settings.py +86 -0
- osn_selenium/webdrivers/unified/chrome/__init__.py +1 -0
- osn_selenium/webdrivers/unified/chrome/base.py +54 -0
- osn_selenium/webdrivers/unified/chrome/lifecycle.py +88 -0
- osn_selenium/webdrivers/unified/chrome/settings.py +48 -0
- osn_selenium/webdrivers/unified/core/__init__.py +1 -0
- osn_selenium/webdrivers/unified/core/actions.py +43 -0
- osn_selenium/webdrivers/unified/core/auth.py +70 -0
- osn_selenium/webdrivers/unified/core/base.py +132 -0
- osn_selenium/webdrivers/unified/core/capture.py +32 -0
- osn_selenium/webdrivers/unified/core/components.py +32 -0
- osn_selenium/webdrivers/unified/core/devtools.py +35 -0
- osn_selenium/webdrivers/unified/core/element.py +24 -0
- osn_selenium/webdrivers/unified/core/file.py +35 -0
- osn_selenium/webdrivers/unified/core/lifecycle.py +84 -0
- osn_selenium/webdrivers/unified/core/navigation.py +31 -0
- osn_selenium/webdrivers/unified/core/script.py +32 -0
- osn_selenium/webdrivers/unified/core/settings.py +44 -0
- osn_selenium/webdrivers/unified/core/storage.py +37 -0
- osn_selenium/webdrivers/unified/core/timeouts.py +56 -0
- osn_selenium/webdrivers/unified/core/window.py +135 -0
- osn_selenium/webdrivers/unified/edge/__init__.py +1 -0
- osn_selenium/webdrivers/unified/edge/base.py +52 -0
- osn_selenium/webdrivers/unified/edge/lifecycle.py +88 -0
- osn_selenium/webdrivers/unified/edge/settings.py +48 -0
- osn_selenium/webdrivers/unified/yandex/__init__.py +1 -0
- osn_selenium/webdrivers/unified/yandex/base.py +54 -0
- osn_selenium/webdrivers/unified/yandex/lifecycle.py +58 -0
- osn_selenium/webdrivers/unified/yandex/settings.py +48 -0
- osn_selenium-1.0.0.dist-info/METADATA +239 -0
- osn_selenium-1.0.0.dist-info/RECORD +608 -0
- {osn_selenium-0.0.0.dist-info → osn_selenium-1.0.0.dist-info}/WHEEL +1 -1
- osn_selenium/captcha_workers/__init__.py +0 -26
- osn_selenium/dev_tools/_types.py +0 -22
- osn_selenium/dev_tools/errors.py +0 -89
- osn_selenium/dev_tools/logger.py +0 -558
- osn_selenium/dev_tools/manager.py +0 -1551
- osn_selenium/dev_tools/utils.py +0 -509
- osn_selenium/errors.py +0 -16
- osn_selenium/types.py +0 -118
- osn_selenium/webdrivers/BaseDriver/_utils.py +0 -37
- osn_selenium/webdrivers/BaseDriver/protocols.py +0 -2135
- osn_selenium/webdrivers/BaseDriver/trio_wrapper.py +0 -71
- osn_selenium/webdrivers/BaseDriver/webdriver.py +0 -2626
- osn_selenium/webdrivers/Blink/protocols.py +0 -330
- osn_selenium/webdrivers/Blink/webdriver.py +0 -637
- osn_selenium/webdrivers/Chrome/protocols.py +0 -228
- osn_selenium/webdrivers/Chrome/webdriver.py +0 -394
- osn_selenium/webdrivers/Edge/protocols.py +0 -228
- osn_selenium/webdrivers/Edge/webdriver.py +0 -394
- osn_selenium/webdrivers/Yandex/protocols.py +0 -211
- osn_selenium/webdrivers/Yandex/webdriver.py +0 -350
- osn_selenium/webdrivers/_functions.py +0 -504
- osn_selenium/webdrivers/types.py +0 -390
- osn_selenium-0.0.0.dist-info/METADATA +0 -710
- osn_selenium-0.0.0.dist-info/RECORD +0 -57
- /osn_selenium/{webdrivers/BaseDriver → abstract}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Blink → abstract/executors}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Chrome → abstract/instances}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Edge → abstract/webdriver}/__init__.py +0 -0
- /osn_selenium/{webdrivers/Yandex → dev_tools/logger}/__init__.py +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/check_element_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_document_scroll_size.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_css.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_rect_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_random_element_point_in_viewport.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_position.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_rect.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_size.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/open_new_tab.js +0 -0
- /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/stop_window_loading.js +0 -0
- {osn_selenium-0.0.0.dist-info → osn_selenium-1.0.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
from typing import Dict, Optional
|
|
2
|
+
from osn_selenium._typehints import PATH_TYPEHINT
|
|
3
|
+
from selenium.webdriver.chrome.options import Options
|
|
4
|
+
from osn_selenium.flags.blink import BlinkFlagsManager
|
|
5
|
+
from osn_selenium.flags.models.blink import BlinkFeatures
|
|
6
|
+
from osn_selenium.flags.models.base import (
|
|
7
|
+
FlagDefinition,
|
|
8
|
+
FlagType
|
|
9
|
+
)
|
|
10
|
+
from osn_selenium.flags.models.chrome import (
|
|
11
|
+
ChromeArguments,
|
|
12
|
+
ChromeAttributes,
|
|
13
|
+
ChromeExperimentalOptions,
|
|
14
|
+
ChromeFlags
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
__all__ = ["ChromeFlagsManager"]
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class ChromeFlagsManager(BlinkFlagsManager):
|
|
22
|
+
"""
|
|
23
|
+
Manages Chrome Browser-specific options for Selenium WebDriver.
|
|
24
|
+
|
|
25
|
+
This class extends BrowserOptionsManager to provide specific configurations
|
|
26
|
+
for Chrome Browser options, such as experimental options and arguments.
|
|
27
|
+
|
|
28
|
+
Attributes:
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
def __init__(
|
|
32
|
+
self,
|
|
33
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
34
|
+
start_page_url: Optional[str] = None,
|
|
35
|
+
flags_types: Optional[Dict[str, FlagType]] = None,
|
|
36
|
+
flags_definitions: Optional[Dict[str, FlagDefinition]] = None
|
|
37
|
+
):
|
|
38
|
+
"""
|
|
39
|
+
Initializes ChromeOptionsManager.
|
|
40
|
+
|
|
41
|
+
Sets up the Chrome Browser options manager with specific option configurations for
|
|
42
|
+
debugging port, user agent, proxy, and BiDi protocol.
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
yandex_flags_types = {}
|
|
46
|
+
|
|
47
|
+
if flags_types is not None:
|
|
48
|
+
yandex_flags_types.update(flags_types)
|
|
49
|
+
|
|
50
|
+
yandex_flags_definitions = {}
|
|
51
|
+
|
|
52
|
+
if flags_definitions is not None:
|
|
53
|
+
yandex_flags_definitions.update(flags_definitions)
|
|
54
|
+
|
|
55
|
+
super().__init__(
|
|
56
|
+
browser_exe=browser_exe,
|
|
57
|
+
start_page_url=start_page_url,
|
|
58
|
+
flags_types=yandex_flags_types,
|
|
59
|
+
flags_definitions=yandex_flags_definitions,
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
def _build_options_arguments(self, options: Options) -> Options:
|
|
63
|
+
"""
|
|
64
|
+
Adds configured command-line arguments to the WebDriver options.
|
|
65
|
+
|
|
66
|
+
Args:
|
|
67
|
+
options (Options): The WebDriver options object.
|
|
68
|
+
|
|
69
|
+
Returns:
|
|
70
|
+
Options: The modified WebDriver options object.
|
|
71
|
+
"""
|
|
72
|
+
|
|
73
|
+
return super()._build_options_arguments(options)
|
|
74
|
+
|
|
75
|
+
def _build_options_attributes(self, options: Options) -> Options:
|
|
76
|
+
"""
|
|
77
|
+
Applies configured attributes to the WebDriver options.
|
|
78
|
+
|
|
79
|
+
Args:
|
|
80
|
+
options (Options): The WebDriver options object.
|
|
81
|
+
|
|
82
|
+
Returns:
|
|
83
|
+
Options: The modified WebDriver options object.
|
|
84
|
+
"""
|
|
85
|
+
|
|
86
|
+
return super()._build_options_attributes(options)
|
|
87
|
+
|
|
88
|
+
def _build_options_blink_features(self, options: Options) -> Options:
|
|
89
|
+
"""
|
|
90
|
+
Adds configured Chrome features (`--enable-blink-features` and `--disable-blink-features`) to the WebDriver options.
|
|
91
|
+
|
|
92
|
+
Args:
|
|
93
|
+
options (Options): The WebDriver options object to modify.
|
|
94
|
+
|
|
95
|
+
Returns:
|
|
96
|
+
Options: The modified WebDriver options object.
|
|
97
|
+
"""
|
|
98
|
+
|
|
99
|
+
return super()._build_options_blink_features(options)
|
|
100
|
+
|
|
101
|
+
def _build_options_experimental_options(self, options: Options) -> Options:
|
|
102
|
+
"""
|
|
103
|
+
Adds experimental options to the WebDriver options.
|
|
104
|
+
|
|
105
|
+
Args:
|
|
106
|
+
options (Options): The WebDriver options object.
|
|
107
|
+
|
|
108
|
+
Returns:
|
|
109
|
+
Options: The modified WebDriver options object.
|
|
110
|
+
"""
|
|
111
|
+
|
|
112
|
+
return super()._build_options_experimental_options(options)
|
|
113
|
+
|
|
114
|
+
def _renew_webdriver_options(self) -> Options:
|
|
115
|
+
"""
|
|
116
|
+
Creates and returns a new Options object.
|
|
117
|
+
|
|
118
|
+
Returns a fresh instance of `webdriver.ChromeOptions`, as Chrome Browser is based on Chromium,
|
|
119
|
+
allowing for a clean state of browser options to be configured.
|
|
120
|
+
|
|
121
|
+
Returns:
|
|
122
|
+
Options: A new Selenium Chrome Browser options object, based on ChromeOptions.
|
|
123
|
+
"""
|
|
124
|
+
|
|
125
|
+
return Options()
|
|
126
|
+
|
|
127
|
+
def set_arguments(self, arguments: ChromeArguments):
|
|
128
|
+
"""
|
|
129
|
+
Clears existing and sets new command-line arguments from a dictionary.
|
|
130
|
+
|
|
131
|
+
Args:
|
|
132
|
+
arguments (ChromeArguments): A dictionary of arguments to set.
|
|
133
|
+
|
|
134
|
+
Raises:
|
|
135
|
+
ValueError: If an unknown argument key is provided.
|
|
136
|
+
"""
|
|
137
|
+
|
|
138
|
+
super().set_arguments(arguments)
|
|
139
|
+
|
|
140
|
+
def set_attributes(self, attributes: ChromeAttributes):
|
|
141
|
+
"""
|
|
142
|
+
Clears existing and sets new browser attributes from a dictionary.
|
|
143
|
+
|
|
144
|
+
Args:
|
|
145
|
+
attributes (ChromeAttributes): A dictionary of attributes to set.
|
|
146
|
+
|
|
147
|
+
Raises:
|
|
148
|
+
ValueError: If an unknown attribute key is provided.
|
|
149
|
+
"""
|
|
150
|
+
|
|
151
|
+
super().set_attributes(attributes)
|
|
152
|
+
|
|
153
|
+
def set_blink_features(self, blink_features: BlinkFeatures):
|
|
154
|
+
"""
|
|
155
|
+
Clears existing and sets new Chrome features from a dictionary.
|
|
156
|
+
|
|
157
|
+
Args:
|
|
158
|
+
blink_features (BlinkFeatures): A dictionary of Chrome features to set.
|
|
159
|
+
|
|
160
|
+
Raises:
|
|
161
|
+
ValueError: If an unknown Chrome feature key is provided.
|
|
162
|
+
"""
|
|
163
|
+
|
|
164
|
+
super().set_blink_features(blink_features)
|
|
165
|
+
|
|
166
|
+
def set_experimental_options(self, experimental_options: ChromeExperimentalOptions):
|
|
167
|
+
"""
|
|
168
|
+
Clears existing and sets new experimental options from a dictionary.
|
|
169
|
+
|
|
170
|
+
Args:
|
|
171
|
+
experimental_options (ChromeExperimentalOptions): A dictionary of experimental options to set.
|
|
172
|
+
|
|
173
|
+
Raises:
|
|
174
|
+
ValueError: If an unknown experimental option key is provided.
|
|
175
|
+
"""
|
|
176
|
+
|
|
177
|
+
super().set_experimental_options(experimental_options)
|
|
178
|
+
|
|
179
|
+
def set_flags(self, flags: ChromeFlags):
|
|
180
|
+
"""
|
|
181
|
+
Clears all existing flags and sets new ones, including Chrome features.
|
|
182
|
+
|
|
183
|
+
This method delegates to the parent `set_flags` method, allowing it to handle
|
|
184
|
+
all flag types defined in this manager, including 'arguments', 'experimental_options',
|
|
185
|
+
'attributes', and 'blink_features'.
|
|
186
|
+
|
|
187
|
+
Args:
|
|
188
|
+
flags (ChromeFlags): A dictionary where keys are flag types
|
|
189
|
+
and values are dictionaries of flags to set for that type.
|
|
190
|
+
"""
|
|
191
|
+
|
|
192
|
+
super().set_flags(flags)
|
|
193
|
+
|
|
194
|
+
def update_arguments(self, arguments: ChromeArguments):
|
|
195
|
+
"""
|
|
196
|
+
Updates command-line arguments from a dictionary without clearing existing ones.
|
|
197
|
+
|
|
198
|
+
Args:
|
|
199
|
+
arguments (ChromeArguments): A dictionary of arguments to set or update.
|
|
200
|
+
|
|
201
|
+
Raises:
|
|
202
|
+
ValueError: If an unknown argument key is provided.
|
|
203
|
+
"""
|
|
204
|
+
|
|
205
|
+
super().update_arguments(arguments)
|
|
206
|
+
|
|
207
|
+
def update_attributes(self, attributes: ChromeAttributes):
|
|
208
|
+
"""
|
|
209
|
+
Updates browser attributes from a dictionary without clearing existing ones.
|
|
210
|
+
|
|
211
|
+
Args:
|
|
212
|
+
attributes (ChromeAttributes): A dictionary of attributes to set or update.
|
|
213
|
+
|
|
214
|
+
Raises:
|
|
215
|
+
ValueError: If an unknown attribute key is provided.
|
|
216
|
+
"""
|
|
217
|
+
|
|
218
|
+
super().update_attributes(attributes)
|
|
219
|
+
|
|
220
|
+
def update_blink_features(self, blink_features: BlinkFeatures):
|
|
221
|
+
"""
|
|
222
|
+
Updates Chrome features from a dictionary without clearing existing ones.
|
|
223
|
+
|
|
224
|
+
Args:
|
|
225
|
+
blink_features (BlinkFeatures): A dictionary of Chrome features to set or update.
|
|
226
|
+
|
|
227
|
+
Raises:
|
|
228
|
+
ValueError: If an unknown Chrome feature key is provided.
|
|
229
|
+
"""
|
|
230
|
+
|
|
231
|
+
super().update_blink_features(blink_features)
|
|
232
|
+
|
|
233
|
+
def update_experimental_options(self, experimental_options: ChromeExperimentalOptions):
|
|
234
|
+
"""
|
|
235
|
+
Updates experimental options from a dictionary without clearing existing ones.
|
|
236
|
+
|
|
237
|
+
Args:
|
|
238
|
+
experimental_options (ChromeExperimentalOptions): A dictionary of experimental options to set or update.
|
|
239
|
+
|
|
240
|
+
Raises:
|
|
241
|
+
ValueError: If an unknown experimental option key is provided.
|
|
242
|
+
"""
|
|
243
|
+
|
|
244
|
+
super().update_experimental_options(experimental_options)
|
|
245
|
+
|
|
246
|
+
def update_flags(self, flags: ChromeFlags):
|
|
247
|
+
"""
|
|
248
|
+
Updates all flags, including Chrome features, without clearing existing ones.
|
|
249
|
+
|
|
250
|
+
This method delegates to the parent `update_flags` method, allowing it to handle
|
|
251
|
+
all flag types defined in this manager, including 'arguments', 'experimental_options',
|
|
252
|
+
'attributes', and 'blink_features'.
|
|
253
|
+
|
|
254
|
+
Args:
|
|
255
|
+
flags (ChromeFlags): A dictionary where keys are flag types
|
|
256
|
+
and values are dictionaries of flags to update for that type.
|
|
257
|
+
"""
|
|
258
|
+
|
|
259
|
+
super().update_flags(flags)
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
from typing import Dict, Optional
|
|
2
|
+
from osn_selenium._typehints import PATH_TYPEHINT
|
|
3
|
+
from selenium.webdriver.chrome.options import Options
|
|
4
|
+
from osn_selenium.flags.blink import BlinkFlagsManager
|
|
5
|
+
from osn_selenium.flags.models.blink import BlinkFeatures
|
|
6
|
+
from osn_selenium.flags.models.base import (
|
|
7
|
+
FlagDefinition,
|
|
8
|
+
FlagType
|
|
9
|
+
)
|
|
10
|
+
from osn_selenium.flags.models.edge import (
|
|
11
|
+
EdgeArguments,
|
|
12
|
+
EdgeAttributes,
|
|
13
|
+
EdgeExperimentalOptions,
|
|
14
|
+
EdgeFlags
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
__all__ = ["EdgeFlagsManager"]
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class EdgeFlagsManager(BlinkFlagsManager):
|
|
22
|
+
"""
|
|
23
|
+
Manages Edge Browser-specific options for Selenium WebDriver.
|
|
24
|
+
|
|
25
|
+
This class extends BrowserOptionsManager to provide specific configurations
|
|
26
|
+
for Edge Browser options, such as experimental options and arguments.
|
|
27
|
+
|
|
28
|
+
Attributes:
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
def __init__(
|
|
32
|
+
self,
|
|
33
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
34
|
+
start_page_url: Optional[str] = None,
|
|
35
|
+
flags_types: Optional[Dict[str, FlagType]] = None,
|
|
36
|
+
flags_definitions: Optional[Dict[str, FlagDefinition]] = None
|
|
37
|
+
):
|
|
38
|
+
"""
|
|
39
|
+
Initializes EdgeOptionsManager.
|
|
40
|
+
|
|
41
|
+
Sets up the Edge Browser options manager with specific option configurations for
|
|
42
|
+
debugging port, user agent, proxy, and BiDi protocol.
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
yandex_flags_types = {}
|
|
46
|
+
|
|
47
|
+
if flags_types is not None:
|
|
48
|
+
yandex_flags_types.update(flags_types)
|
|
49
|
+
|
|
50
|
+
yandex_flags_definitions = {}
|
|
51
|
+
|
|
52
|
+
if flags_definitions is not None:
|
|
53
|
+
yandex_flags_definitions.update(flags_definitions)
|
|
54
|
+
|
|
55
|
+
super().__init__(
|
|
56
|
+
browser_exe=browser_exe,
|
|
57
|
+
start_page_url=start_page_url,
|
|
58
|
+
flags_types=yandex_flags_types,
|
|
59
|
+
flags_definitions=yandex_flags_definitions,
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
def _build_options_arguments(self, options: Options) -> Options:
|
|
63
|
+
"""
|
|
64
|
+
Adds configured command-line arguments to the WebDriver options.
|
|
65
|
+
|
|
66
|
+
Args:
|
|
67
|
+
options (Options): The WebDriver options object.
|
|
68
|
+
|
|
69
|
+
Returns:
|
|
70
|
+
Options: The modified WebDriver options object.
|
|
71
|
+
"""
|
|
72
|
+
|
|
73
|
+
return super()._build_options_arguments(options)
|
|
74
|
+
|
|
75
|
+
def _build_options_attributes(self, options: Options) -> Options:
|
|
76
|
+
"""
|
|
77
|
+
Applies configured attributes to the WebDriver options.
|
|
78
|
+
|
|
79
|
+
Args:
|
|
80
|
+
options (Options): The WebDriver options object.
|
|
81
|
+
|
|
82
|
+
Returns:
|
|
83
|
+
Options: The modified WebDriver options object.
|
|
84
|
+
"""
|
|
85
|
+
|
|
86
|
+
return super()._build_options_attributes(options)
|
|
87
|
+
|
|
88
|
+
def _build_options_blink_features(self, options: Options) -> Options:
|
|
89
|
+
"""
|
|
90
|
+
Adds configured Edge features (`--enable-blink-features` and `--disable-blink-features`) to the WebDriver options.
|
|
91
|
+
|
|
92
|
+
Args:
|
|
93
|
+
options (Options): The WebDriver options object to modify.
|
|
94
|
+
|
|
95
|
+
Returns:
|
|
96
|
+
Options: The modified WebDriver options object.
|
|
97
|
+
"""
|
|
98
|
+
|
|
99
|
+
return super()._build_options_blink_features(options)
|
|
100
|
+
|
|
101
|
+
def _build_options_experimental_options(self, options: Options) -> Options:
|
|
102
|
+
"""
|
|
103
|
+
Adds experimental options to the WebDriver options.
|
|
104
|
+
|
|
105
|
+
Args:
|
|
106
|
+
options (Options): The WebDriver options object.
|
|
107
|
+
|
|
108
|
+
Returns:
|
|
109
|
+
Options: The modified WebDriver options object.
|
|
110
|
+
"""
|
|
111
|
+
|
|
112
|
+
return super()._build_options_experimental_options(options)
|
|
113
|
+
|
|
114
|
+
def _renew_webdriver_options(self) -> Options:
|
|
115
|
+
"""
|
|
116
|
+
Creates and returns a new Options object.
|
|
117
|
+
|
|
118
|
+
Returns a fresh instance of `webdriver.EdgeOptions`, as Edge Browser is based on Chromium,
|
|
119
|
+
allowing for a clean state of browser options to be configured.
|
|
120
|
+
|
|
121
|
+
Returns:
|
|
122
|
+
Options: A new Selenium Edge Browser options object, based on EdgeOptions.
|
|
123
|
+
"""
|
|
124
|
+
|
|
125
|
+
return Options()
|
|
126
|
+
|
|
127
|
+
def set_arguments(self, arguments: EdgeArguments):
|
|
128
|
+
"""
|
|
129
|
+
Clears existing and sets new command-line arguments from a dictionary.
|
|
130
|
+
|
|
131
|
+
Args:
|
|
132
|
+
arguments (EdgeArguments): A dictionary of arguments to set.
|
|
133
|
+
|
|
134
|
+
Raises:
|
|
135
|
+
ValueError: If an unknown argument key is provided.
|
|
136
|
+
"""
|
|
137
|
+
|
|
138
|
+
super().set_arguments(arguments)
|
|
139
|
+
|
|
140
|
+
def set_attributes(self, attributes: EdgeAttributes):
|
|
141
|
+
"""
|
|
142
|
+
Clears existing and sets new browser attributes from a dictionary.
|
|
143
|
+
|
|
144
|
+
Args:
|
|
145
|
+
attributes (EdgeAttributes): A dictionary of attributes to set.
|
|
146
|
+
|
|
147
|
+
Raises:
|
|
148
|
+
ValueError: If an unknown attribute key is provided.
|
|
149
|
+
"""
|
|
150
|
+
|
|
151
|
+
super().set_attributes(attributes)
|
|
152
|
+
|
|
153
|
+
def set_blink_features(self, blink_features: BlinkFeatures):
|
|
154
|
+
"""
|
|
155
|
+
Clears existing and sets new Edge features from a dictionary.
|
|
156
|
+
|
|
157
|
+
Args:
|
|
158
|
+
blink_features (BlinkFeatures): A dictionary of Edge features to set.
|
|
159
|
+
|
|
160
|
+
Raises:
|
|
161
|
+
ValueError: If an unknown Edge feature key is provided.
|
|
162
|
+
"""
|
|
163
|
+
|
|
164
|
+
super().set_blink_features(blink_features)
|
|
165
|
+
|
|
166
|
+
def set_experimental_options(self, experimental_options: EdgeExperimentalOptions):
|
|
167
|
+
"""
|
|
168
|
+
Clears existing and sets new experimental options from a dictionary.
|
|
169
|
+
|
|
170
|
+
Args:
|
|
171
|
+
experimental_options (EdgeExperimentalOptions): A dictionary of experimental options to set.
|
|
172
|
+
|
|
173
|
+
Raises:
|
|
174
|
+
ValueError: If an unknown experimental option key is provided.
|
|
175
|
+
"""
|
|
176
|
+
|
|
177
|
+
super().set_experimental_options(experimental_options)
|
|
178
|
+
|
|
179
|
+
def set_flags(self, flags: EdgeFlags):
|
|
180
|
+
"""
|
|
181
|
+
Clears all existing flags and sets new ones, including Edge features.
|
|
182
|
+
|
|
183
|
+
This method delegates to the parent `set_flags` method, allowing it to handle
|
|
184
|
+
all flag types defined in this manager, including 'arguments', 'experimental_options',
|
|
185
|
+
'attributes', and 'blink_features'.
|
|
186
|
+
|
|
187
|
+
Args:
|
|
188
|
+
flags (EdgeFlags): A dictionary where keys are flag types
|
|
189
|
+
and values are dictionaries of flags to set for that type.
|
|
190
|
+
"""
|
|
191
|
+
|
|
192
|
+
super().set_flags(flags)
|
|
193
|
+
|
|
194
|
+
def update_arguments(self, arguments: EdgeArguments):
|
|
195
|
+
"""
|
|
196
|
+
Updates command-line arguments from a dictionary without clearing existing ones.
|
|
197
|
+
|
|
198
|
+
Args:
|
|
199
|
+
arguments (EdgeArguments): A dictionary of arguments to set or update.
|
|
200
|
+
|
|
201
|
+
Raises:
|
|
202
|
+
ValueError: If an unknown argument key is provided.
|
|
203
|
+
"""
|
|
204
|
+
|
|
205
|
+
super().update_arguments(arguments)
|
|
206
|
+
|
|
207
|
+
def update_attributes(self, attributes: EdgeAttributes):
|
|
208
|
+
"""
|
|
209
|
+
Updates browser attributes from a dictionary without clearing existing ones.
|
|
210
|
+
|
|
211
|
+
Args:
|
|
212
|
+
attributes (EdgeAttributes): A dictionary of attributes to set or update.
|
|
213
|
+
|
|
214
|
+
Raises:
|
|
215
|
+
ValueError: If an unknown attribute key is provided.
|
|
216
|
+
"""
|
|
217
|
+
|
|
218
|
+
super().update_attributes(attributes)
|
|
219
|
+
|
|
220
|
+
def update_blink_features(self, blink_features: BlinkFeatures):
|
|
221
|
+
"""
|
|
222
|
+
Updates Edge features from a dictionary without clearing existing ones.
|
|
223
|
+
|
|
224
|
+
Args:
|
|
225
|
+
blink_features (BlinkFeatures): A dictionary of Edge features to set or update.
|
|
226
|
+
|
|
227
|
+
Raises:
|
|
228
|
+
ValueError: If an unknown Edge feature key is provided.
|
|
229
|
+
"""
|
|
230
|
+
|
|
231
|
+
super().update_blink_features(blink_features)
|
|
232
|
+
|
|
233
|
+
def update_experimental_options(self, experimental_options: EdgeExperimentalOptions):
|
|
234
|
+
"""
|
|
235
|
+
Updates experimental options from a dictionary without clearing existing ones.
|
|
236
|
+
|
|
237
|
+
Args:
|
|
238
|
+
experimental_options (EdgeExperimentalOptions): A dictionary of experimental options to set or update.
|
|
239
|
+
|
|
240
|
+
Raises:
|
|
241
|
+
ValueError: If an unknown experimental option key is provided.
|
|
242
|
+
"""
|
|
243
|
+
|
|
244
|
+
super().update_experimental_options(experimental_options)
|
|
245
|
+
|
|
246
|
+
def update_flags(self, flags: EdgeFlags):
|
|
247
|
+
"""
|
|
248
|
+
Updates all flags, including Edge features, without clearing existing ones.
|
|
249
|
+
|
|
250
|
+
This method delegates to the parent `update_flags` method, allowing it to handle
|
|
251
|
+
all flag types defined in this manager, including 'arguments', 'experimental_options',
|
|
252
|
+
'attributes', and 'blink_features'.
|
|
253
|
+
|
|
254
|
+
Args:
|
|
255
|
+
flags (EdgeFlags): A dictionary where keys are flag types
|
|
256
|
+
and values are dictionaries of flags to update for that type.
|
|
257
|
+
"""
|
|
258
|
+
|
|
259
|
+
super().update_flags(flags)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
from pydantic import Field
|
|
2
|
+
from osn_selenium.models import (
|
|
3
|
+
DictModel,
|
|
4
|
+
ExtraDictModel
|
|
5
|
+
)
|
|
6
|
+
from typing import (
|
|
7
|
+
Any,
|
|
8
|
+
Callable,
|
|
9
|
+
List,
|
|
10
|
+
Literal,
|
|
11
|
+
Optional
|
|
12
|
+
)
|
|
13
|
+
from osn_selenium.flags._typehints import (
|
|
14
|
+
ANY_WEBDRIVER_OPTION_TYPEHINT
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
__all__ = [
|
|
19
|
+
"BrowserArguments",
|
|
20
|
+
"BrowserAttributes",
|
|
21
|
+
"BrowserExperimentalOptions",
|
|
22
|
+
"BrowserFlags",
|
|
23
|
+
"FlagDefinition",
|
|
24
|
+
"FlagNotDefined",
|
|
25
|
+
"FlagType",
|
|
26
|
+
"FlagTypeNotDefined"
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class FlagTypeNotDefined:
|
|
31
|
+
"""
|
|
32
|
+
Sentinel indicating missing flag type definition.
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
pass
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class FlagDefinition(DictModel):
|
|
39
|
+
"""
|
|
40
|
+
Defines a browser flag with name, command, type, and how it is applied.
|
|
41
|
+
|
|
42
|
+
Attributes:
|
|
43
|
+
name (str): Internal name of the flag.
|
|
44
|
+
command (str): Command-line argument or key.
|
|
45
|
+
type (Literal): Category of the flag (e.g., argument, attribute).
|
|
46
|
+
mode (Literal): How the flag is applied (e.g., startup, webdriver).
|
|
47
|
+
adding_validation_function (Callable): Validator function for the value.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
name: str
|
|
51
|
+
command: str
|
|
52
|
+
type: Literal["argument", "experimental_option", "attribute", "blink_feature"]
|
|
53
|
+
mode: Literal["webdriver_option", "startup_argument", "both"]
|
|
54
|
+
adding_validation_function: Callable[[Any], bool]
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class FlagType(DictModel):
|
|
58
|
+
"""
|
|
59
|
+
Represents callable interfaces for setting and managing browser flags.
|
|
60
|
+
|
|
61
|
+
Attributes:
|
|
62
|
+
set_flag_function (Callable): Function to set a single flag.
|
|
63
|
+
remove_flag_function (Callable): Function to remove a flag.
|
|
64
|
+
set_flags_function (Callable): Function to set multiple flags.
|
|
65
|
+
update_flags_function (Callable): Function to update multiple flags.
|
|
66
|
+
clear_flags_function (Callable): Function to clear all flags.
|
|
67
|
+
build_options_function (Callable): Builds webdriver options.
|
|
68
|
+
build_start_args_function (Callable): Builds command-line arguments.
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
set_flag_function: Callable[[FlagDefinition, Any], None]
|
|
72
|
+
remove_flag_function: Callable[[str], None]
|
|
73
|
+
set_flags_function: Callable[[ExtraDictModel], None]
|
|
74
|
+
update_flags_function: Callable[[ExtraDictModel], None]
|
|
75
|
+
clear_flags_function: Callable[..., None]
|
|
76
|
+
build_options_function: Callable[[ANY_WEBDRIVER_OPTION_TYPEHINT], ANY_WEBDRIVER_OPTION_TYPEHINT]
|
|
77
|
+
build_start_args_function: Callable[..., List[str]]
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class FlagNotDefined:
|
|
81
|
+
"""
|
|
82
|
+
A sentinel class to indicate that a flag definition was not found.
|
|
83
|
+
"""
|
|
84
|
+
|
|
85
|
+
pass
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
class BrowserAttributes(ExtraDictModel):
|
|
89
|
+
"""
|
|
90
|
+
WebDriver attributes for browser.
|
|
91
|
+
|
|
92
|
+
Attributes:
|
|
93
|
+
enable_bidi (Optional[bool]): Enable/disable BiDi protocol.
|
|
94
|
+
"""
|
|
95
|
+
|
|
96
|
+
enable_bidi: Optional[bool] = None
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
class BrowserExperimentalOptions(ExtraDictModel):
|
|
100
|
+
"""
|
|
101
|
+
WebDriver experimental options for browser.
|
|
102
|
+
"""
|
|
103
|
+
|
|
104
|
+
pass
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
class BrowserArguments(ExtraDictModel):
|
|
108
|
+
"""
|
|
109
|
+
WebDriver command-line arguments.
|
|
110
|
+
|
|
111
|
+
Attributes:
|
|
112
|
+
se_downloads_enabled (Optional[bool]): Enable Selenium downloads.
|
|
113
|
+
"""
|
|
114
|
+
|
|
115
|
+
se_downloads_enabled: Optional[bool] = None
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
class BrowserFlags(DictModel):
|
|
119
|
+
"""
|
|
120
|
+
Combined structure of all browser flags.
|
|
121
|
+
|
|
122
|
+
Attributes:
|
|
123
|
+
argument (BrowserArguments): Command-line arguments.
|
|
124
|
+
experimental_option (BrowserExperimentalOptions): Experimental options.
|
|
125
|
+
attribute (BrowserAttributes): WebDriver attributes.
|
|
126
|
+
"""
|
|
127
|
+
|
|
128
|
+
argument: BrowserArguments = Field(default_factory=BrowserArguments)
|
|
129
|
+
experimental_option: BrowserExperimentalOptions = Field(default_factory=BrowserExperimentalOptions)
|
|
130
|
+
attribute: BrowserAttributes = Field(default_factory=BrowserAttributes)
|