osn-selenium 1.0.0__py3-none-any.whl → 1.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- osn_selenium/_base_models.py +41 -0
- osn_selenium/_cdp_import.py +253 -0
- osn_selenium/_decorators.py +57 -0
- osn_selenium/_trio_threads_helpers.py +157 -0
- osn_selenium/_typehints.py +1 -1
- osn_selenium/abstract/executors/cdp.py +63 -0
- osn_selenium/abstract/webdriver/blink/base.py +14 -0
- osn_selenium/abstract/webdriver/blink/lifecycle.py +8 -8
- osn_selenium/abstract/webdriver/core/base.py +0 -14
- osn_selenium/abstract/webdriver/core/capture.py +4 -3
- osn_selenium/abstract/webdriver/core/lifecycle.py +8 -8
- osn_selenium/abstract/webdriver/core/script.py +5 -4
- osn_selenium/abstract/webdriver/core/window.py +11 -11
- osn_selenium/browsers_handler/models.py +1 -1
- osn_selenium/dev_tools/_decorators.py +19 -51
- osn_selenium/dev_tools/_functions.py +2 -4
- osn_selenium/dev_tools/_typehints.py +5 -2
- osn_selenium/dev_tools/_wrappers.py +0 -3
- osn_selenium/dev_tools/domains/__init__.py +2 -2
- osn_selenium/dev_tools/domains/abstract.py +1 -1
- osn_selenium/dev_tools/domains/fetch.py +6 -8
- osn_selenium/dev_tools/domains_default/fetch.py +2 -2
- osn_selenium/dev_tools/filters.py +1 -1
- osn_selenium/dev_tools/logger/main.py +9 -21
- osn_selenium/dev_tools/logger/models.py +1 -1
- osn_selenium/dev_tools/logger/target.py +49 -29
- osn_selenium/dev_tools/manager/base.py +10 -42
- osn_selenium/dev_tools/manager/lifecycle.py +84 -75
- osn_selenium/dev_tools/manager/logging.py +1 -1
- osn_selenium/dev_tools/manager/targets.py +13 -5
- osn_selenium/dev_tools/models.py +1 -1
- osn_selenium/dev_tools/settings.py +9 -5
- osn_selenium/dev_tools/target/base.py +30 -34
- osn_selenium/dev_tools/target/discovery.py +1 -1
- osn_selenium/dev_tools/target/events.py +2 -2
- osn_selenium/dev_tools/target/fingerprint.py +1 -1
- osn_selenium/dev_tools/target/lifecycle.py +103 -38
- osn_selenium/dev_tools/target/logging.py +11 -3
- osn_selenium/exceptions/__init__.py +0 -1
- osn_selenium/exceptions/base.py +28 -1
- osn_selenium/exceptions/bidi_bridge.py +59 -0
- osn_selenium/exceptions/configuration.py +1 -8
- osn_selenium/exceptions/dependencies.py +60 -0
- osn_selenium/exceptions/devtools.py +9 -39
- osn_selenium/exceptions/experimental.py +26 -0
- osn_selenium/exceptions/flags.py +0 -2
- osn_selenium/exceptions/instance.py +1 -9
- osn_selenium/exceptions/javascript.py +0 -2
- osn_selenium/exceptions/logic.py +0 -2
- osn_selenium/exceptions/path.py +1 -9
- osn_selenium/exceptions/platform.py +0 -2
- osn_selenium/exceptions/protocol.py +0 -3
- osn_selenium/exceptions/webdriver.py +1 -7
- osn_selenium/exceptions/window.py +1 -8
- osn_selenium/executors/sync/cdp.py +95 -0
- osn_selenium/executors/trio_bidi/cdp.py +101 -0
- osn_selenium/executors/trio_bidi/javascript.py +101 -0
- osn_selenium/executors/trio_threads/cdp.py +99 -0
- osn_selenium/executors/trio_threads/javascript.py +1 -1
- osn_selenium/executors/unified/javascript.py +0 -4
- osn_selenium/flags/base.py +7 -13
- osn_selenium/flags/blink.py +2 -8
- osn_selenium/flags/chrome.py +6 -6
- osn_selenium/flags/edge.py +6 -6
- osn_selenium/flags/models/base.py +4 -4
- osn_selenium/flags/models/blink.py +1 -1
- osn_selenium/flags/models/values.py +1 -1
- osn_selenium/instances/convert.py +44 -3
- osn_selenium/instances/protocols.py +47 -1
- osn_selenium/instances/sync/action_chains/__init__.py +6 -0
- osn_selenium/instances/sync/browsing_context.py +2 -2
- osn_selenium/instances/sync/script.py +7 -2
- osn_selenium/instances/sync/shadow_root.py +30 -8
- osn_selenium/instances/sync/web_element.py +1 -1
- osn_selenium/instances/trio_bidi/__init__.py +1 -0
- osn_selenium/instances/trio_bidi/shadow_root.py +180 -0
- osn_selenium/instances/trio_bidi/switch_to.py +143 -0
- osn_selenium/instances/trio_bidi/web_driver_wait.py +124 -0
- osn_selenium/instances/trio_bidi/web_element.py +239 -0
- osn_selenium/instances/trio_threads/action_chains/__init__.py +6 -0
- osn_selenium/instances/trio_threads/action_chains/base.py +1 -1
- osn_selenium/instances/trio_threads/alert.py +1 -1
- osn_selenium/instances/trio_threads/browser.py +1 -1
- osn_selenium/instances/trio_threads/browsing_context.py +3 -3
- osn_selenium/instances/trio_threads/dialog.py +1 -1
- osn_selenium/instances/trio_threads/fedcm.py +1 -1
- osn_selenium/instances/trio_threads/mobile.py +1 -1
- osn_selenium/instances/trio_threads/network.py +1 -1
- osn_selenium/instances/trio_threads/permissions.py +1 -1
- osn_selenium/instances/trio_threads/script.py +8 -3
- osn_selenium/instances/trio_threads/shadow_root.py +46 -15
- osn_selenium/instances/trio_threads/storage.py +1 -1
- osn_selenium/instances/trio_threads/switch_to.py +1 -1
- osn_selenium/instances/trio_threads/web_driver_wait.py +1 -1
- osn_selenium/instances/trio_threads/web_element.py +1 -1
- osn_selenium/instances/trio_threads/web_extension.py +1 -1
- osn_selenium/instances/unified/browsing_context.py +2 -2
- osn_selenium/instances/unified/script.py +2 -2
- osn_selenium/instances/unified/web_element.py +3 -5
- osn_selenium/javascript/fingerprint/__init__.py +3 -2
- osn_selenium/javascript/fingerprint/registry/models.py +1 -1
- osn_selenium/javascript/fingerprint/spoof/core_rules.py +1 -1
- osn_selenium/javascript/fingerprint/spoof/noise.py +1 -1
- osn_selenium/javascript/models.py +1 -1
- osn_selenium/models.py +2 -47
- osn_selenium/trio_bidi/__init__.py +1 -0
- osn_selenium/trio_bidi/_context_vars.py +12 -0
- osn_selenium/trio_bidi/_error_mappings.py +123 -0
- osn_selenium/trio_bidi/_error_redirects.py +194 -0
- osn_selenium/trio_bidi/_file_functions.py +28 -0
- osn_selenium/trio_bidi/_internal_mappings.py +10 -0
- osn_selenium/trio_bidi/_models.py +199 -0
- osn_selenium/trio_bidi/_typehints.py +20 -0
- osn_selenium/trio_bidi/connection_pool.py +587 -0
- osn_selenium/trio_bidi/mapping/__init__.py +1 -0
- osn_selenium/trio_bidi/mapping/_constants.py +14 -0
- osn_selenium/trio_bidi/mapping/_js_snippets.py +285 -0
- osn_selenium/trio_bidi/mapping/_utils.py +4 -0
- osn_selenium/trio_bidi/mapping/request_functions/__init__.py +87 -0
- osn_selenium/trio_bidi/mapping/request_functions/_alert.py +102 -0
- osn_selenium/trio_bidi/mapping/request_functions/_args_helpers.py +225 -0
- osn_selenium/trio_bidi/mapping/request_functions/_capture.py +71 -0
- osn_selenium/trio_bidi/mapping/request_functions/_cdp.py +40 -0
- osn_selenium/trio_bidi/mapping/request_functions/_element.py +55 -0
- osn_selenium/trio_bidi/mapping/request_functions/_file.py +32 -0
- osn_selenium/trio_bidi/mapping/request_functions/_navigation.py +147 -0
- osn_selenium/trio_bidi/mapping/request_functions/_script.py +85 -0
- osn_selenium/trio_bidi/mapping/request_functions/_shadow_root.py +65 -0
- osn_selenium/trio_bidi/mapping/request_functions/_switch_to.py +59 -0
- osn_selenium/trio_bidi/mapping/request_functions/_web_element.py +448 -0
- osn_selenium/trio_bidi/mapping/request_functions/_window.py +125 -0
- osn_selenium/trio_bidi/mapping/response_functions/__init__.py +86 -0
- osn_selenium/trio_bidi/mapping/response_functions/_alert.py +81 -0
- osn_selenium/trio_bidi/mapping/response_functions/_args_helpers.py +183 -0
- osn_selenium/trio_bidi/mapping/response_functions/_args_validators.py +153 -0
- osn_selenium/trio_bidi/mapping/response_functions/_capture.py +71 -0
- osn_selenium/trio_bidi/mapping/response_functions/_cdp.py +26 -0
- osn_selenium/trio_bidi/mapping/response_functions/_element.py +58 -0
- osn_selenium/trio_bidi/mapping/response_functions/_file.py +30 -0
- osn_selenium/trio_bidi/mapping/response_functions/_navigation.py +120 -0
- osn_selenium/trio_bidi/mapping/response_functions/_script.py +57 -0
- osn_selenium/trio_bidi/mapping/response_functions/_shadow_root.py +58 -0
- osn_selenium/trio_bidi/mapping/response_functions/_switch_to.py +57 -0
- osn_selenium/trio_bidi/mapping/response_functions/_web_element.py +368 -0
- osn_selenium/trio_bidi/mapping/response_functions/_window.py +119 -0
- osn_selenium/trio_bidi/mixin.py +186 -0
- osn_selenium/trio_bidi/remote_connection.py +164 -0
- osn_selenium/{base_mixin.py → trio_threads_mixin.py} +31 -40
- osn_selenium/webdrivers/_args_helpers.py +120 -7
- osn_selenium/webdrivers/_bridges.py +2 -2
- osn_selenium/webdrivers/_executable_tables/models.py +1 -1
- osn_selenium/webdrivers/_typehints.py +9 -3
- osn_selenium/webdrivers/protocols.py +81 -1
- osn_selenium/webdrivers/sync/blink/__init__.py +11 -1
- osn_selenium/webdrivers/sync/blink/base.py +23 -1
- osn_selenium/webdrivers/sync/blink/lifecycle.py +26 -8
- osn_selenium/webdrivers/sync/chrome/__init__.py +36 -1
- osn_selenium/webdrivers/sync/chrome/base.py +13 -1
- osn_selenium/webdrivers/sync/chrome/lifecycle.py +23 -5
- osn_selenium/webdrivers/sync/chrome/settings.py +6 -1
- osn_selenium/webdrivers/sync/core/__init__.py +10 -1
- osn_selenium/webdrivers/sync/core/base.py +18 -18
- osn_selenium/webdrivers/sync/core/capture.py +3 -2
- osn_selenium/webdrivers/sync/core/file.py +3 -2
- osn_selenium/webdrivers/sync/core/lifecycle.py +44 -10
- osn_selenium/webdrivers/sync/core/script.py +3 -2
- osn_selenium/webdrivers/sync/core/window.py +3 -3
- osn_selenium/webdrivers/sync/edge/__init__.py +36 -1
- osn_selenium/webdrivers/sync/edge/base.py +13 -1
- osn_selenium/webdrivers/sync/edge/lifecycle.py +23 -5
- osn_selenium/webdrivers/sync/edge/settings.py +6 -1
- osn_selenium/webdrivers/sync/yandex/__init__.py +36 -1
- osn_selenium/webdrivers/sync/yandex/base.py +13 -1
- osn_selenium/webdrivers/sync/yandex/lifecycle.py +23 -5
- osn_selenium/webdrivers/sync/yandex/settings.py +6 -1
- osn_selenium/webdrivers/trio_bidi/__init__.py +1 -0
- osn_selenium/webdrivers/trio_bidi/blink/__init__.py +132 -0
- osn_selenium/webdrivers/trio_bidi/blink/base.py +167 -0
- osn_selenium/webdrivers/trio_bidi/blink/lifecycle.py +89 -0
- osn_selenium/webdrivers/trio_bidi/blink/settings.py +63 -0
- osn_selenium/webdrivers/trio_bidi/chrome/__init__.py +114 -0
- osn_selenium/webdrivers/trio_bidi/chrome/base.py +127 -0
- osn_selenium/webdrivers/trio_bidi/chrome/lifecycle.py +85 -0
- osn_selenium/webdrivers/trio_bidi/chrome/settings.py +63 -0
- osn_selenium/webdrivers/trio_bidi/core/__init__.py +95 -0
- osn_selenium/webdrivers/trio_bidi/core/actions.py +70 -0
- osn_selenium/webdrivers/trio_bidi/core/base.py +200 -0
- osn_selenium/webdrivers/trio_bidi/core/capture.py +39 -0
- osn_selenium/webdrivers/trio_bidi/core/devtools.py +49 -0
- osn_selenium/webdrivers/trio_bidi/core/element.py +64 -0
- osn_selenium/webdrivers/trio_bidi/core/lifecycle.py +135 -0
- osn_selenium/webdrivers/trio_bidi/core/navigation.py +37 -0
- osn_selenium/webdrivers/trio_bidi/core/script.py +56 -0
- osn_selenium/webdrivers/trio_bidi/core/settings.py +36 -0
- osn_selenium/webdrivers/trio_bidi/core/window.py +134 -0
- osn_selenium/webdrivers/trio_bidi/edge/__init__.py +114 -0
- osn_selenium/webdrivers/trio_bidi/edge/base.py +123 -0
- osn_selenium/webdrivers/trio_bidi/edge/lifecycle.py +85 -0
- osn_selenium/webdrivers/trio_bidi/edge/settings.py +63 -0
- osn_selenium/webdrivers/trio_bidi/yandex/__init__.py +114 -0
- osn_selenium/webdrivers/trio_bidi/yandex/base.py +120 -0
- osn_selenium/webdrivers/trio_bidi/yandex/lifecycle.py +85 -0
- osn_selenium/webdrivers/trio_bidi/yandex/settings.py +63 -0
- osn_selenium/webdrivers/trio_threads/blink/__init__.py +18 -2
- osn_selenium/webdrivers/trio_threads/blink/base.py +25 -1
- osn_selenium/webdrivers/trio_threads/blink/casting.py +1 -1
- osn_selenium/webdrivers/trio_threads/blink/features.py +1 -1
- osn_selenium/webdrivers/trio_threads/blink/lifecycle.py +26 -8
- osn_selenium/webdrivers/trio_threads/blink/logging.py +1 -1
- osn_selenium/webdrivers/trio_threads/blink/network.py +1 -1
- osn_selenium/webdrivers/trio_threads/chrome/__init__.py +34 -1
- osn_selenium/webdrivers/trio_threads/chrome/base.py +14 -2
- osn_selenium/webdrivers/trio_threads/chrome/lifecycle.py +23 -5
- osn_selenium/webdrivers/trio_threads/chrome/settings.py +1 -1
- osn_selenium/webdrivers/trio_threads/core/__init__.py +10 -14
- osn_selenium/webdrivers/trio_threads/core/actions.py +1 -1
- osn_selenium/webdrivers/trio_threads/core/auth.py +1 -1
- osn_selenium/webdrivers/trio_threads/core/base.py +18 -22
- osn_selenium/webdrivers/trio_threads/core/capture.py +4 -3
- osn_selenium/webdrivers/trio_threads/core/comonents.py +1 -1
- osn_selenium/webdrivers/trio_threads/core/devtools.py +1 -1
- osn_selenium/webdrivers/trio_threads/core/element.py +1 -1
- osn_selenium/webdrivers/trio_threads/core/file.py +5 -4
- osn_selenium/webdrivers/trio_threads/core/lifecycle.py +45 -11
- osn_selenium/webdrivers/trio_threads/core/navigation.py +1 -1
- osn_selenium/webdrivers/trio_threads/core/script.py +4 -3
- osn_selenium/webdrivers/trio_threads/core/settings.py +1 -1
- osn_selenium/webdrivers/trio_threads/core/storage.py +1 -1
- osn_selenium/webdrivers/trio_threads/core/timeouts.py +1 -1
- osn_selenium/webdrivers/trio_threads/core/window.py +6 -6
- osn_selenium/webdrivers/trio_threads/edge/__init__.py +34 -1
- osn_selenium/webdrivers/trio_threads/edge/base.py +14 -2
- osn_selenium/webdrivers/trio_threads/edge/lifecycle.py +23 -5
- osn_selenium/webdrivers/trio_threads/edge/settings.py +1 -1
- osn_selenium/webdrivers/trio_threads/yandex/__init__.py +34 -1
- osn_selenium/webdrivers/trio_threads/yandex/base.py +14 -2
- osn_selenium/webdrivers/trio_threads/yandex/lifecycle.py +23 -5
- osn_selenium/webdrivers/trio_threads/yandex/settings.py +1 -1
- osn_selenium/webdrivers/unified/blink/base.py +9 -1
- osn_selenium/webdrivers/unified/blink/lifecycle.py +4 -2
- osn_selenium/webdrivers/unified/chrome/base.py +9 -1
- osn_selenium/webdrivers/unified/core/auth.py +4 -2
- osn_selenium/webdrivers/unified/core/base.py +19 -6
- osn_selenium/webdrivers/unified/core/capture.py +3 -2
- osn_selenium/webdrivers/unified/core/components.py +12 -7
- osn_selenium/webdrivers/unified/core/devtools.py +2 -1
- osn_selenium/webdrivers/unified/core/file.py +3 -2
- osn_selenium/webdrivers/unified/core/lifecycle.py +5 -3
- osn_selenium/webdrivers/unified/core/script.py +5 -3
- osn_selenium/webdrivers/unified/core/storage.py +2 -1
- osn_selenium/webdrivers/unified/core/window.py +9 -8
- osn_selenium/webdrivers/unified/edge/base.py +9 -1
- osn_selenium/webdrivers/unified/yandex/base.py +9 -1
- {osn_selenium-1.0.0.dist-info → osn_selenium-1.2.0.dist-info}/METADATA +24 -10
- osn_selenium-1.2.0.dist-info/RECORD +480 -0
- {osn_selenium-1.0.0.dist-info → osn_selenium-1.2.0.dist-info}/WHEEL +1 -1
- osn_selenium/abstract/executors/cdp/__init__.py +0 -435
- osn_selenium/abstract/executors/cdp/accessibility.py +0 -62
- osn_selenium/abstract/executors/cdp/animation.py +0 -47
- osn_selenium/abstract/executors/cdp/audits.py +0 -39
- osn_selenium/abstract/executors/cdp/autofill.py +0 -34
- osn_selenium/abstract/executors/cdp/background_service.py +0 -22
- osn_selenium/abstract/executors/cdp/bluetooth_emulation.py +0 -95
- osn_selenium/abstract/executors/cdp/browser.py +0 -122
- osn_selenium/abstract/executors/cdp/cache_storage.py +0 -49
- osn_selenium/abstract/executors/cdp/cast.py +0 -31
- osn_selenium/abstract/executors/cdp/console.py +0 -18
- osn_selenium/abstract/executors/cdp/css.py +0 -197
- osn_selenium/abstract/executors/cdp/debugger.py +0 -198
- osn_selenium/abstract/executors/cdp/device_access.py +0 -22
- osn_selenium/abstract/executors/cdp/device_orientation.py +0 -14
- osn_selenium/abstract/executors/cdp/dom.py +0 -305
- osn_selenium/abstract/executors/cdp/dom_debugger.py +0 -57
- osn_selenium/abstract/executors/cdp/dom_snapshot.py +0 -42
- osn_selenium/abstract/executors/cdp/dom_storage.py +0 -31
- osn_selenium/abstract/executors/cdp/emulation.py +0 -259
- osn_selenium/abstract/executors/cdp/event_breakpoints.py +0 -18
- osn_selenium/abstract/executors/cdp/extensions.py +0 -31
- osn_selenium/abstract/executors/cdp/fed_cm.py +0 -35
- osn_selenium/abstract/executors/cdp/fetch.py +0 -76
- osn_selenium/abstract/executors/cdp/file_system.py +0 -11
- osn_selenium/abstract/executors/cdp/headless_experimental.py +0 -30
- osn_selenium/abstract/executors/cdp/heap_profiler.py +0 -73
- osn_selenium/abstract/executors/cdp/indexed_db.py +0 -99
- osn_selenium/abstract/executors/cdp/input.py +0 -158
- osn_selenium/abstract/executors/cdp/inspector.py +0 -14
- osn_selenium/abstract/executors/cdp/io.py +0 -24
- osn_selenium/abstract/executors/cdp/layer_tree.py +0 -61
- osn_selenium/abstract/executors/cdp/log.py +0 -27
- osn_selenium/abstract/executors/cdp/media.py +0 -14
- osn_selenium/abstract/executors/cdp/memory.py +0 -61
- osn_selenium/abstract/executors/cdp/network.py +0 -252
- osn_selenium/abstract/executors/cdp/overlay.py +0 -166
- osn_selenium/abstract/executors/cdp/page.py +0 -347
- osn_selenium/abstract/executors/cdp/performance.py +0 -28
- osn_selenium/abstract/executors/cdp/performance_timeline.py +0 -11
- osn_selenium/abstract/executors/cdp/preload.py +0 -14
- osn_selenium/abstract/executors/cdp/profiler.py +0 -54
- osn_selenium/abstract/executors/cdp/pwa.py +0 -46
- osn_selenium/abstract/executors/cdp/runtime.py +0 -176
- osn_selenium/abstract/executors/cdp/schema.py +0 -11
- osn_selenium/abstract/executors/cdp/security.py +0 -26
- osn_selenium/abstract/executors/cdp/service_worker.py +0 -54
- osn_selenium/abstract/executors/cdp/storage.py +0 -175
- osn_selenium/abstract/executors/cdp/system_info.py +0 -24
- osn_selenium/abstract/executors/cdp/target.py +0 -125
- osn_selenium/abstract/executors/cdp/tethering.py +0 -14
- osn_selenium/abstract/executors/cdp/tracing.py +0 -48
- osn_selenium/abstract/executors/cdp/web_audio.py +0 -19
- osn_selenium/abstract/executors/cdp/web_authn.py +0 -76
- osn_selenium/executors/sync/cdp/__init__.py +0 -550
- osn_selenium/executors/sync/cdp/accessibility.py +0 -74
- osn_selenium/executors/sync/cdp/animation.py +0 -50
- osn_selenium/executors/sync/cdp/audits.py +0 -48
- osn_selenium/executors/sync/cdp/autofill.py +0 -39
- osn_selenium/executors/sync/cdp/background_service.py +0 -30
- osn_selenium/executors/sync/cdp/bluetooth_emulation.py +0 -101
- osn_selenium/executors/sync/cdp/browser.py +0 -131
- osn_selenium/executors/sync/cdp/cache_storage.py +0 -66
- osn_selenium/executors/sync/cdp/cast.py +0 -38
- osn_selenium/executors/sync/cdp/console.py +0 -24
- osn_selenium/executors/sync/cdp/css.py +0 -187
- osn_selenium/executors/sync/cdp/debugger.py +0 -206
- osn_selenium/executors/sync/cdp/device_access.py +0 -27
- osn_selenium/executors/sync/cdp/device_orientation.py +0 -24
- osn_selenium/executors/sync/cdp/dom.py +0 -310
- osn_selenium/executors/sync/cdp/dom_debugger.py +0 -56
- osn_selenium/executors/sync/cdp/dom_snapshot.py +0 -58
- osn_selenium/executors/sync/cdp/dom_storage.py +0 -38
- osn_selenium/executors/sync/cdp/emulation.py +0 -270
- osn_selenium/executors/sync/cdp/event_breakpoints.py +0 -27
- osn_selenium/executors/sync/cdp/extensions.py +0 -39
- osn_selenium/executors/sync/cdp/fed_cm.py +0 -45
- osn_selenium/executors/sync/cdp/fetch.py +0 -96
- osn_selenium/executors/sync/cdp/file_system.py +0 -18
- osn_selenium/executors/sync/cdp/headless_experimental.py +0 -44
- osn_selenium/executors/sync/cdp/heap_profiler.py +0 -89
- osn_selenium/executors/sync/cdp/indexed_db.py +0 -142
- osn_selenium/executors/sync/cdp/input.py +0 -233
- osn_selenium/executors/sync/cdp/inspector.py +0 -21
- osn_selenium/executors/sync/cdp/io.py +0 -33
- osn_selenium/executors/sync/cdp/layer_tree.py +0 -71
- osn_selenium/executors/sync/cdp/log.py +0 -35
- osn_selenium/executors/sync/cdp/media.py +0 -21
- osn_selenium/executors/sync/cdp/memory.py +0 -62
- osn_selenium/executors/sync/cdp/network.py +0 -287
- osn_selenium/executors/sync/cdp/overlay.py +0 -174
- osn_selenium/executors/sync/cdp/page.py +0 -365
- osn_selenium/executors/sync/cdp/performance.py +0 -33
- osn_selenium/executors/sync/cdp/performance_timeline.py +0 -26
- osn_selenium/executors/sync/cdp/preload.py +0 -21
- osn_selenium/executors/sync/cdp/profiler.py +0 -58
- osn_selenium/executors/sync/cdp/pwa.py +0 -55
- osn_selenium/executors/sync/cdp/runtime.py +0 -221
- osn_selenium/executors/sync/cdp/schema.py +0 -23
- osn_selenium/executors/sync/cdp/security.py +0 -30
- osn_selenium/executors/sync/cdp/service_worker.py +0 -56
- osn_selenium/executors/sync/cdp/storage.py +0 -151
- osn_selenium/executors/sync/cdp/system_info.py +0 -30
- osn_selenium/executors/sync/cdp/target.py +0 -147
- osn_selenium/executors/sync/cdp/tethering.py +0 -21
- osn_selenium/executors/sync/cdp/tracing.py +0 -62
- osn_selenium/executors/sync/cdp/web_audio.py +0 -24
- osn_selenium/executors/sync/cdp/web_authn.py +0 -82
- osn_selenium/executors/trio_threads/cdp/__init__.py +0 -771
- osn_selenium/executors/trio_threads/cdp/accessibility.py +0 -87
- osn_selenium/executors/trio_threads/cdp/animation.py +0 -63
- osn_selenium/executors/trio_threads/cdp/audits.py +0 -57
- osn_selenium/executors/trio_threads/cdp/autofill.py +0 -52
- osn_selenium/executors/trio_threads/cdp/background_service.py +0 -40
- osn_selenium/executors/trio_threads/cdp/bluetooth_emulation.py +0 -111
- osn_selenium/executors/trio_threads/cdp/browser.py +0 -140
- osn_selenium/executors/trio_threads/cdp/cache_storage.py +0 -79
- osn_selenium/executors/trio_threads/cdp/cast.py +0 -47
- osn_selenium/executors/trio_threads/cdp/console.py +0 -33
- osn_selenium/executors/trio_threads/cdp/css.py +0 -196
- osn_selenium/executors/trio_threads/cdp/debugger.py +0 -219
- osn_selenium/executors/trio_threads/cdp/device_access.py +0 -40
- osn_selenium/executors/trio_threads/cdp/device_orientation.py +0 -34
- osn_selenium/executors/trio_threads/cdp/dom.py +0 -319
- osn_selenium/executors/trio_threads/cdp/dom_debugger.py +0 -69
- osn_selenium/executors/trio_threads/cdp/dom_snapshot.py +0 -71
- osn_selenium/executors/trio_threads/cdp/dom_storage.py +0 -51
- osn_selenium/executors/trio_threads/cdp/emulation.py +0 -283
- osn_selenium/executors/trio_threads/cdp/event_breakpoints.py +0 -37
- osn_selenium/executors/trio_threads/cdp/extensions.py +0 -52
- osn_selenium/executors/trio_threads/cdp/fed_cm.py +0 -54
- osn_selenium/executors/trio_threads/cdp/fetch.py +0 -105
- osn_selenium/executors/trio_threads/cdp/file_system.py +0 -31
- osn_selenium/executors/trio_threads/cdp/headless_experimental.py +0 -54
- osn_selenium/executors/trio_threads/cdp/heap_profiler.py +0 -102
- osn_selenium/executors/trio_threads/cdp/indexed_db.py +0 -155
- osn_selenium/executors/trio_threads/cdp/input.py +0 -242
- osn_selenium/executors/trio_threads/cdp/inspector.py +0 -34
- osn_selenium/executors/trio_threads/cdp/io.py +0 -42
- osn_selenium/executors/trio_threads/cdp/layer_tree.py +0 -84
- osn_selenium/executors/trio_threads/cdp/log.py +0 -44
- osn_selenium/executors/trio_threads/cdp/media.py +0 -30
- osn_selenium/executors/trio_threads/cdp/memory.py +0 -71
- osn_selenium/executors/trio_threads/cdp/network.py +0 -296
- osn_selenium/executors/trio_threads/cdp/overlay.py +0 -183
- osn_selenium/executors/trio_threads/cdp/page.py +0 -374
- osn_selenium/executors/trio_threads/cdp/performance.py +0 -46
- osn_selenium/executors/trio_threads/cdp/performance_timeline.py +0 -36
- osn_selenium/executors/trio_threads/cdp/preload.py +0 -30
- osn_selenium/executors/trio_threads/cdp/profiler.py +0 -71
- osn_selenium/executors/trio_threads/cdp/pwa.py +0 -64
- osn_selenium/executors/trio_threads/cdp/runtime.py +0 -230
- osn_selenium/executors/trio_threads/cdp/schema.py +0 -32
- osn_selenium/executors/trio_threads/cdp/security.py +0 -43
- osn_selenium/executors/trio_threads/cdp/service_worker.py +0 -69
- osn_selenium/executors/trio_threads/cdp/storage.py +0 -162
- osn_selenium/executors/trio_threads/cdp/system_info.py +0 -43
- osn_selenium/executors/trio_threads/cdp/target.py +0 -156
- osn_selenium/executors/trio_threads/cdp/tethering.py +0 -34
- osn_selenium/executors/trio_threads/cdp/tracing.py +0 -71
- osn_selenium/executors/trio_threads/cdp/web_audio.py +0 -37
- osn_selenium/executors/trio_threads/cdp/web_authn.py +0 -95
- osn_selenium/executors/unified/cdp/accessibility.py +0 -81
- osn_selenium/executors/unified/cdp/animation.py +0 -50
- osn_selenium/executors/unified/cdp/audits.py +0 -45
- osn_selenium/executors/unified/cdp/autofill.py +0 -41
- osn_selenium/executors/unified/cdp/background_service.py +0 -24
- osn_selenium/executors/unified/cdp/bluetooth_emulation.py +0 -132
- osn_selenium/executors/unified/cdp/browser.py +0 -143
- osn_selenium/executors/unified/cdp/cache_storage.py +0 -69
- osn_selenium/executors/unified/cdp/cast.py +0 -32
- osn_selenium/executors/unified/cdp/console.py +0 -18
- osn_selenium/executors/unified/cdp/css.py +0 -237
- osn_selenium/executors/unified/cdp/debugger.py +0 -243
- osn_selenium/executors/unified/cdp/device_access.py +0 -21
- osn_selenium/executors/unified/cdp/device_orientation.py +0 -18
- osn_selenium/executors/unified/cdp/dom.py +0 -380
- osn_selenium/executors/unified/cdp/dom_debugger.py +0 -65
- osn_selenium/executors/unified/cdp/dom_snapshot.py +0 -58
- osn_selenium/executors/unified/cdp/dom_storage.py +0 -38
- osn_selenium/executors/unified/cdp/emulation.py +0 -312
- osn_selenium/executors/unified/cdp/event_breakpoints.py +0 -24
- osn_selenium/executors/unified/cdp/extensions.py +0 -45
- osn_selenium/executors/unified/cdp/fed_cm.py +0 -51
- osn_selenium/executors/unified/cdp/fetch.py +0 -111
- osn_selenium/executors/unified/cdp/file_system.py +0 -15
- osn_selenium/executors/unified/cdp/headless_experimental.py +0 -38
- osn_selenium/executors/unified/cdp/heap_profiler.py +0 -101
- osn_selenium/executors/unified/cdp/indexed_db.py +0 -157
- osn_selenium/executors/unified/cdp/input.py +0 -254
- osn_selenium/executors/unified/cdp/inspector.py +0 -15
- osn_selenium/executors/unified/cdp/io.py +0 -29
- osn_selenium/executors/unified/cdp/layer_tree.py +0 -71
- osn_selenium/executors/unified/cdp/log.py +0 -29
- osn_selenium/executors/unified/cdp/media.py +0 -15
- osn_selenium/executors/unified/cdp/memory.py +0 -59
- osn_selenium/executors/unified/cdp/network.py +0 -323
- osn_selenium/executors/unified/cdp/overlay.py +0 -209
- osn_selenium/executors/unified/cdp/page.py +0 -410
- osn_selenium/executors/unified/cdp/performance.py +0 -27
- osn_selenium/executors/unified/cdp/performance_timeline.py +0 -17
- osn_selenium/executors/unified/cdp/preload.py +0 -15
- osn_selenium/executors/unified/cdp/profiler.py +0 -55
- osn_selenium/executors/unified/cdp/pwa.py +0 -55
- osn_selenium/executors/unified/cdp/runtime.py +0 -245
- osn_selenium/executors/unified/cdp/schema.py +0 -17
- osn_selenium/executors/unified/cdp/security.py +0 -27
- osn_selenium/executors/unified/cdp/service_worker.py +0 -62
- osn_selenium/executors/unified/cdp/storage.py +0 -178
- osn_selenium/executors/unified/cdp/system_info.py +0 -24
- osn_selenium/executors/unified/cdp/target.py +0 -165
- osn_selenium/executors/unified/cdp/tethering.py +0 -15
- osn_selenium/executors/unified/cdp/tracing.py +0 -62
- osn_selenium/executors/unified/cdp/web_audio.py +0 -18
- osn_selenium/executors/unified/cdp/web_authn.py +0 -103
- osn_selenium-1.0.0.dist-info/RECORD +0 -608
- /osn_selenium/{dev_tools/_exception_helpers.py → _exception_helpers.py} +0 -0
- /osn_selenium/executors/{unified/cdp → trio_bidi}/__init__.py +0 -0
- {osn_selenium-1.0.0.dist-info → osn_selenium-1.2.0.dist-info}/top_level.txt +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
from osn_selenium.base_mixin import TrioThreadMixin
|
|
2
1
|
from typing import (
|
|
3
2
|
List,
|
|
4
3
|
Literal,
|
|
5
4
|
Optional,
|
|
6
5
|
Union
|
|
7
6
|
)
|
|
7
|
+
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
8
8
|
from osn_selenium.models import (
|
|
9
9
|
Position,
|
|
10
10
|
Rectangle,
|
|
@@ -48,6 +48,9 @@ class CoreWindowMixin(UnifiedCoreWindowMixin, TrioThreadMixin, AbstractCoreWindo
|
|
|
48
48
|
async def fullscreen_window(self) -> None:
|
|
49
49
|
await self.sync_to_trio(sync_function=self._fullscreen_window_impl)()
|
|
50
50
|
|
|
51
|
+
async def get_orientation(self) -> Literal["LANDSCAPE", "PORTRAIT"]:
|
|
52
|
+
return await self.sync_to_trio(sync_function=self._orientation_get_impl)()
|
|
53
|
+
|
|
51
54
|
async def get_window_handle(self, window: Optional[Union[str, int]] = None) -> str:
|
|
52
55
|
return await self.sync_to_trio(sync_function=self._get_window_handle_impl)(window=window)
|
|
53
56
|
|
|
@@ -69,9 +72,6 @@ class CoreWindowMixin(UnifiedCoreWindowMixin, TrioThreadMixin, AbstractCoreWindo
|
|
|
69
72
|
async def minimize_window(self) -> None:
|
|
70
73
|
await self.sync_to_trio(sync_function=self._minimize_window_impl)()
|
|
71
74
|
|
|
72
|
-
async def orientation(self) -> Literal["LANDSCAPE", "PORTRAIT"]:
|
|
73
|
-
return await self.sync_to_trio(sync_function=self._orientation_get_impl)()
|
|
74
|
-
|
|
75
75
|
async def set_orientation(self, value: Literal["LANDSCAPE", "PORTRAIT"]) -> None:
|
|
76
76
|
await self.sync_to_trio(sync_function=self._orientation_set_impl)(value=value)
|
|
77
77
|
|
|
@@ -92,8 +92,8 @@ class CoreWindowMixin(UnifiedCoreWindowMixin, TrioThreadMixin, AbstractCoreWindo
|
|
|
92
92
|
async def set_window_size(self, width: int, height: int, windowHandle: str = "current") -> None:
|
|
93
93
|
await self.sync_to_trio(sync_function=self._set_window_size_impl)(width=width, height=height, windowHandle=windowHandle)
|
|
94
94
|
|
|
95
|
-
|
|
96
|
-
legacy =
|
|
95
|
+
def switch_to(self) -> SwitchTo:
|
|
96
|
+
legacy = self._switch_to_impl()
|
|
97
97
|
return get_trio_thread_instance_wrapper(
|
|
98
98
|
wrapper_class=SwitchTo,
|
|
99
99
|
legacy_object=legacy,
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import trio
|
|
2
|
-
from typing import Optional, Type
|
|
3
2
|
from osn_selenium.models import WindowRect
|
|
3
|
+
from typing import (
|
|
4
|
+
Mapping,
|
|
5
|
+
Optional,
|
|
6
|
+
Type
|
|
7
|
+
)
|
|
4
8
|
from osn_selenium._typehints import PATH_TYPEHINT
|
|
5
9
|
from osn_selenium.flags.edge import EdgeFlagsManager
|
|
6
10
|
from osn_selenium.flags.models.edge import EdgeFlags
|
|
@@ -46,7 +50,32 @@ class EdgeWebDriver(
|
|
|
46
50
|
window_rect: Optional[WindowRect] = None,
|
|
47
51
|
devtools_settings: Optional[DevToolsSettings] = None,
|
|
48
52
|
capacity_limiter: Optional[trio.CapacityLimiter] = None,
|
|
53
|
+
cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
|
|
54
|
+
ignore_cdp_version_package_missing: bool = True,
|
|
49
55
|
):
|
|
56
|
+
"""
|
|
57
|
+
Initializes the Trio-based Edge WebDriver with specified configuration.
|
|
58
|
+
|
|
59
|
+
Args:
|
|
60
|
+
webdriver_path (str): Path to the EdgeDriver executable.
|
|
61
|
+
flags_manager_type (Type[EdgeFlagsManager]): The class type used for managing Edge flags.
|
|
62
|
+
Defaults to EdgeFlagsManager.
|
|
63
|
+
use_browser_exe (bool): Whether to use a specific browser executable path or auto-detect.
|
|
64
|
+
Defaults to True.
|
|
65
|
+
browser_name_in_system (str): The name of the browser in the system registry or path.
|
|
66
|
+
Defaults to "Microsoft Edge".
|
|
67
|
+
browser_exe (Optional[PATH_TYPEHINT]): Explicit path to the Edge browser executable.
|
|
68
|
+
flags (Optional[EdgeFlags]): Initial set of flags.
|
|
69
|
+
start_page_url (str): The initial URL. Defaults to "about:blank".
|
|
70
|
+
implicitly_wait (int): Default implicit wait time.
|
|
71
|
+
page_load_timeout (int): Default page load timeout.
|
|
72
|
+
script_timeout (int): Default script timeout.
|
|
73
|
+
window_rect (Optional[WindowRect]): Initial window dimensions.
|
|
74
|
+
capacity_limiter (Optional[trio.CapacityLimiter]): Trio capacity limiter.
|
|
75
|
+
cdp_versioned_packages_paths (Optional[Mapping[int, PATH_TYPEHINT]]): Custom local paths for specific CDP versions packages.
|
|
76
|
+
ignore_cdp_version_package_missing (bool): Whether to ignore missing CDP package errors.
|
|
77
|
+
"""
|
|
78
|
+
|
|
50
79
|
BlinkWebDriver.__init__(
|
|
51
80
|
self,
|
|
52
81
|
browser_exe=browser_exe,
|
|
@@ -61,6 +90,8 @@ class EdgeWebDriver(
|
|
|
61
90
|
window_rect=window_rect,
|
|
62
91
|
devtools_settings=devtools_settings,
|
|
63
92
|
capacity_limiter=capacity_limiter,
|
|
93
|
+
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
94
|
+
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
64
95
|
)
|
|
65
96
|
|
|
66
97
|
EdgeBaseMixin.__init__(
|
|
@@ -78,4 +109,6 @@ class EdgeWebDriver(
|
|
|
78
109
|
script_timeout=script_timeout,
|
|
79
110
|
window_rect=window_rect,
|
|
80
111
|
capacity_limiter=capacity_limiter,
|
|
112
|
+
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
113
|
+
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
81
114
|
)
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import trio
|
|
2
|
-
from typing import Optional, Type
|
|
3
2
|
from osn_selenium.models import WindowRect
|
|
3
|
+
from typing import (
|
|
4
|
+
Mapping,
|
|
5
|
+
Optional,
|
|
6
|
+
Type
|
|
7
|
+
)
|
|
4
8
|
from selenium.webdriver import Edge as legacyEdge
|
|
5
9
|
from osn_selenium.flags.edge import EdgeFlagsManager
|
|
6
10
|
from osn_selenium.flags.models.edge import EdgeFlags
|
|
@@ -42,9 +46,11 @@ class EdgeBaseMixin(UnifiedEdgeBaseMixin, BlinkBaseMixin, AbstractEdgeBaseMixin)
|
|
|
42
46
|
script_timeout: int = 5,
|
|
43
47
|
window_rect: Optional[WindowRect] = None,
|
|
44
48
|
capacity_limiter: Optional[trio.CapacityLimiter] = None,
|
|
49
|
+
cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
|
|
50
|
+
ignore_cdp_version_package_missing: bool = True,
|
|
45
51
|
):
|
|
46
52
|
"""
|
|
47
|
-
Initializes the Trio-based Edge WebDriver mixin.
|
|
53
|
+
Initializes the Trio-based Edge WebDriver mixin with specified configuration.
|
|
48
54
|
|
|
49
55
|
Args:
|
|
50
56
|
webdriver_path (str): Path to the EdgeDriver executable.
|
|
@@ -63,6 +69,8 @@ class EdgeBaseMixin(UnifiedEdgeBaseMixin, BlinkBaseMixin, AbstractEdgeBaseMixin)
|
|
|
63
69
|
script_timeout (int): Default script timeout.
|
|
64
70
|
window_rect (Optional[WindowRect]): Initial window dimensions.
|
|
65
71
|
capacity_limiter (Optional[trio.CapacityLimiter]): Trio capacity limiter.
|
|
72
|
+
cdp_versioned_packages_paths (Optional[Mapping[int, PATH_TYPEHINT]]): Custom local paths for specific CDP versions packages.
|
|
73
|
+
ignore_cdp_version_package_missing (bool): Whether to ignore missing CDP package errors.
|
|
66
74
|
"""
|
|
67
75
|
|
|
68
76
|
BlinkBaseMixin.__init__(
|
|
@@ -80,6 +88,8 @@ class EdgeBaseMixin(UnifiedEdgeBaseMixin, BlinkBaseMixin, AbstractEdgeBaseMixin)
|
|
|
80
88
|
script_timeout=script_timeout,
|
|
81
89
|
window_rect=window_rect,
|
|
82
90
|
capacity_limiter=capacity_limiter,
|
|
91
|
+
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
92
|
+
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
83
93
|
)
|
|
84
94
|
|
|
85
95
|
UnifiedEdgeBaseMixin.__init__(
|
|
@@ -96,6 +106,8 @@ class EdgeBaseMixin(UnifiedEdgeBaseMixin, BlinkBaseMixin, AbstractEdgeBaseMixin)
|
|
|
96
106
|
page_load_timeout=page_load_timeout,
|
|
97
107
|
script_timeout=script_timeout,
|
|
98
108
|
window_rect=window_rect,
|
|
109
|
+
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
110
|
+
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
99
111
|
)
|
|
100
112
|
|
|
101
113
|
@property
|
|
@@ -2,7 +2,7 @@ from typing import Optional
|
|
|
2
2
|
from osn_selenium.models import WindowRect
|
|
3
3
|
from osn_selenium._typehints import PATH_TYPEHINT
|
|
4
4
|
from osn_selenium.flags.models.edge import EdgeFlags
|
|
5
|
-
from osn_selenium.webdrivers.trio_threads.blink import BlinkLifecycleMixin
|
|
5
|
+
from osn_selenium.webdrivers.trio_threads.blink.lifecycle import BlinkLifecycleMixin
|
|
6
6
|
from osn_selenium.webdrivers.unified.edge.lifecycle import (
|
|
7
7
|
UnifiedEdgeLifecycleMixin
|
|
8
8
|
)
|
|
@@ -26,7 +26,7 @@ class EdgeLifecycleMixin(
|
|
|
26
26
|
underlying browser instance, ensuring clean session management.
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
|
-
async def
|
|
29
|
+
async def start_webdriver(
|
|
30
30
|
self,
|
|
31
31
|
flags: Optional[EdgeFlags] = None,
|
|
32
32
|
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
@@ -35,7 +35,7 @@ class EdgeLifecycleMixin(
|
|
|
35
35
|
start_page_url: Optional[str] = None,
|
|
36
36
|
window_rect: Optional[WindowRect] = None,
|
|
37
37
|
) -> None:
|
|
38
|
-
await self.sync_to_trio(sync_function=self.
|
|
38
|
+
await self.sync_to_trio(sync_function=self._start_webdriver_impl)(
|
|
39
39
|
flags=flags,
|
|
40
40
|
browser_exe=browser_exe,
|
|
41
41
|
browser_name_in_system=browser_name_in_system,
|
|
@@ -44,7 +44,7 @@ class EdgeLifecycleMixin(
|
|
|
44
44
|
window_rect=window_rect,
|
|
45
45
|
)
|
|
46
46
|
|
|
47
|
-
async def
|
|
47
|
+
async def __aenter__(
|
|
48
48
|
self,
|
|
49
49
|
flags: Optional[EdgeFlags] = None,
|
|
50
50
|
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
@@ -53,7 +53,25 @@ class EdgeLifecycleMixin(
|
|
|
53
53
|
start_page_url: Optional[str] = None,
|
|
54
54
|
window_rect: Optional[WindowRect] = None,
|
|
55
55
|
) -> None:
|
|
56
|
-
await self.
|
|
56
|
+
await self.start_webdriver(
|
|
57
|
+
flags=flags,
|
|
58
|
+
browser_exe=browser_exe,
|
|
59
|
+
browser_name_in_system=browser_name_in_system,
|
|
60
|
+
use_browser_exe=use_browser_exe,
|
|
61
|
+
start_page_url=start_page_url,
|
|
62
|
+
window_rect=window_rect,
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
async def restart_webdriver(
|
|
66
|
+
self,
|
|
67
|
+
flags: Optional[EdgeFlags] = None,
|
|
68
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
69
|
+
browser_name_in_system: Optional[str] = None,
|
|
70
|
+
use_browser_exe: Optional[bool] = None,
|
|
71
|
+
start_page_url: Optional[str] = None,
|
|
72
|
+
window_rect: Optional[WindowRect] = None,
|
|
73
|
+
) -> None:
|
|
74
|
+
await self.sync_to_trio(sync_function=self._restart_webdriver_impl)(
|
|
57
75
|
flags=flags,
|
|
58
76
|
browser_exe=browser_exe,
|
|
59
77
|
browser_name_in_system=browser_name_in_system,
|
|
@@ -2,7 +2,7 @@ from typing import Optional
|
|
|
2
2
|
from osn_selenium.models import WindowRect
|
|
3
3
|
from osn_selenium._typehints import PATH_TYPEHINT
|
|
4
4
|
from osn_selenium.flags.models.edge import EdgeFlags
|
|
5
|
-
from osn_selenium.webdrivers.trio_threads.blink import BlinkSettingsMixin
|
|
5
|
+
from osn_selenium.webdrivers.trio_threads.blink.settings import BlinkSettingsMixin
|
|
6
6
|
from osn_selenium.webdrivers.unified.edge.settings import (
|
|
7
7
|
UnifiedEdgeSettingsMixin
|
|
8
8
|
)
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import trio
|
|
2
|
-
from typing import Optional, Type
|
|
3
2
|
from osn_selenium.models import WindowRect
|
|
3
|
+
from typing import (
|
|
4
|
+
Mapping,
|
|
5
|
+
Optional,
|
|
6
|
+
Type
|
|
7
|
+
)
|
|
4
8
|
from osn_selenium._typehints import PATH_TYPEHINT
|
|
5
9
|
from osn_selenium.flags.models.yandex import YandexFlags
|
|
6
10
|
from osn_selenium.flags.yandex import YandexFlagsManager
|
|
@@ -46,7 +50,32 @@ class YandexWebDriver(
|
|
|
46
50
|
window_rect: Optional[WindowRect] = None,
|
|
47
51
|
devtools_settings: Optional[DevToolsSettings] = None,
|
|
48
52
|
capacity_limiter: Optional[trio.CapacityLimiter] = None,
|
|
53
|
+
cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
|
|
54
|
+
ignore_cdp_version_package_missing: bool = True,
|
|
49
55
|
):
|
|
56
|
+
"""
|
|
57
|
+
Initializes the Trio-based Yandex WebDriver with specified configuration.
|
|
58
|
+
|
|
59
|
+
Args:
|
|
60
|
+
webdriver_path (str): Path to the YandexDriver executable.
|
|
61
|
+
flags_manager_type (Type[YandexFlagsManager]): The class type used for managing Yandex flags.
|
|
62
|
+
Defaults to YandexFlagsManager.
|
|
63
|
+
use_browser_exe (bool): Whether to use a specific browser executable path or auto-detect.
|
|
64
|
+
Defaults to True.
|
|
65
|
+
browser_name_in_system (str): The name of the browser in the system registry or path.
|
|
66
|
+
Defaults to "Yandex".
|
|
67
|
+
browser_exe (Optional[PATH_TYPEHINT]): Explicit path to the Yandex browser executable.
|
|
68
|
+
flags (Optional[YandexFlags]): Initial set of flags.
|
|
69
|
+
start_page_url (str): The initial URL. Defaults to "about:blank".
|
|
70
|
+
implicitly_wait (int): Default implicit wait time.
|
|
71
|
+
page_load_timeout (int): Default page load timeout.
|
|
72
|
+
script_timeout (int): Default script timeout.
|
|
73
|
+
window_rect (Optional[WindowRect]): Initial window dimensions.
|
|
74
|
+
capacity_limiter (Optional[trio.CapacityLimiter]): Trio capacity limiter.
|
|
75
|
+
cdp_versioned_packages_paths (Optional[Mapping[int, PATH_TYPEHINT]]): Custom local paths for specific CDP versions packages.
|
|
76
|
+
ignore_cdp_version_package_missing (bool): Whether to ignore missing CDP package errors.
|
|
77
|
+
"""
|
|
78
|
+
|
|
50
79
|
ChromeWebDriver.__init__(
|
|
51
80
|
self,
|
|
52
81
|
browser_exe=browser_exe,
|
|
@@ -61,6 +90,8 @@ class YandexWebDriver(
|
|
|
61
90
|
window_rect=window_rect,
|
|
62
91
|
devtools_settings=devtools_settings,
|
|
63
92
|
capacity_limiter=capacity_limiter,
|
|
93
|
+
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
94
|
+
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
64
95
|
)
|
|
65
96
|
|
|
66
97
|
YandexBaseMixin.__init__(
|
|
@@ -78,4 +109,6 @@ class YandexWebDriver(
|
|
|
78
109
|
script_timeout=script_timeout,
|
|
79
110
|
window_rect=window_rect,
|
|
80
111
|
capacity_limiter=capacity_limiter,
|
|
112
|
+
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
113
|
+
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
81
114
|
)
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import trio
|
|
2
|
-
from typing import Optional, Type
|
|
3
2
|
from osn_selenium.models import WindowRect
|
|
3
|
+
from typing import (
|
|
4
|
+
Mapping,
|
|
5
|
+
Optional,
|
|
6
|
+
Type
|
|
7
|
+
)
|
|
4
8
|
from osn_selenium.flags.models.yandex import YandexFlags
|
|
5
9
|
from osn_selenium.flags.yandex import YandexFlagsManager
|
|
6
10
|
from osn_selenium.webdrivers.trio_threads.chrome.base import ChromeBaseMixin
|
|
@@ -43,9 +47,11 @@ class YandexBaseMixin(UnifiedYandexBaseMixin, ChromeBaseMixin, AbstractYandexBas
|
|
|
43
47
|
script_timeout: int = 5,
|
|
44
48
|
window_rect: Optional[WindowRect] = None,
|
|
45
49
|
capacity_limiter: Optional[trio.CapacityLimiter] = None,
|
|
50
|
+
cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
|
|
51
|
+
ignore_cdp_version_package_missing: bool = True,
|
|
46
52
|
):
|
|
47
53
|
"""
|
|
48
|
-
Initializes the Trio-based Yandex WebDriver mixin.
|
|
54
|
+
Initializes the Trio-based Yandex WebDriver mixin with specified configuration.
|
|
49
55
|
|
|
50
56
|
Args:
|
|
51
57
|
webdriver_path (str): Path to the YandexDriver executable.
|
|
@@ -64,6 +70,8 @@ class YandexBaseMixin(UnifiedYandexBaseMixin, ChromeBaseMixin, AbstractYandexBas
|
|
|
64
70
|
script_timeout (int): Default script timeout.
|
|
65
71
|
window_rect (Optional[WindowRect]): Initial window dimensions.
|
|
66
72
|
capacity_limiter (Optional[trio.CapacityLimiter]): Trio capacity limiter.
|
|
73
|
+
cdp_versioned_packages_paths (Optional[Mapping[int, PATH_TYPEHINT]]): Custom local paths for specific CDP versions packages.
|
|
74
|
+
ignore_cdp_version_package_missing (bool): Whether to ignore missing CDP package errors.
|
|
67
75
|
"""
|
|
68
76
|
|
|
69
77
|
ChromeBaseMixin.__init__(
|
|
@@ -81,6 +89,8 @@ class YandexBaseMixin(UnifiedYandexBaseMixin, ChromeBaseMixin, AbstractYandexBas
|
|
|
81
89
|
script_timeout=script_timeout,
|
|
82
90
|
window_rect=window_rect,
|
|
83
91
|
capacity_limiter=capacity_limiter,
|
|
92
|
+
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
93
|
+
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
84
94
|
)
|
|
85
95
|
|
|
86
96
|
UnifiedYandexBaseMixin.__init__(
|
|
@@ -97,4 +107,6 @@ class YandexBaseMixin(UnifiedYandexBaseMixin, ChromeBaseMixin, AbstractYandexBas
|
|
|
97
107
|
page_load_timeout=page_load_timeout,
|
|
98
108
|
script_timeout=script_timeout,
|
|
99
109
|
window_rect=window_rect,
|
|
110
|
+
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
111
|
+
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
100
112
|
)
|
|
@@ -2,7 +2,7 @@ from typing import Optional
|
|
|
2
2
|
from osn_selenium.models import WindowRect
|
|
3
3
|
from osn_selenium._typehints import PATH_TYPEHINT
|
|
4
4
|
from osn_selenium.flags.models.yandex import YandexFlags
|
|
5
|
-
from osn_selenium.webdrivers.trio_threads.chrome import ChromeLifecycleMixin
|
|
5
|
+
from osn_selenium.webdrivers.trio_threads.chrome.lifecycle import ChromeLifecycleMixin
|
|
6
6
|
from osn_selenium.webdrivers.unified.yandex.lifecycle import (
|
|
7
7
|
UnifiedYandexLifecycleMixin
|
|
8
8
|
)
|
|
@@ -26,7 +26,7 @@ class YandexLifecycleMixin(
|
|
|
26
26
|
underlying browser instance, ensuring clean session management.
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
|
-
async def
|
|
29
|
+
async def start_webdriver(
|
|
30
30
|
self,
|
|
31
31
|
flags: Optional[YandexFlags] = None,
|
|
32
32
|
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
@@ -35,7 +35,7 @@ class YandexLifecycleMixin(
|
|
|
35
35
|
start_page_url: Optional[str] = None,
|
|
36
36
|
window_rect: Optional[WindowRect] = None,
|
|
37
37
|
) -> None:
|
|
38
|
-
await self.sync_to_trio(sync_function=self.
|
|
38
|
+
await self.sync_to_trio(sync_function=self._start_webdriver_impl)(
|
|
39
39
|
flags=flags,
|
|
40
40
|
browser_exe=browser_exe,
|
|
41
41
|
browser_name_in_system=browser_name_in_system,
|
|
@@ -44,7 +44,7 @@ class YandexLifecycleMixin(
|
|
|
44
44
|
window_rect=window_rect,
|
|
45
45
|
)
|
|
46
46
|
|
|
47
|
-
async def
|
|
47
|
+
async def __aenter__(
|
|
48
48
|
self,
|
|
49
49
|
flags: Optional[YandexFlags] = None,
|
|
50
50
|
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
@@ -53,7 +53,25 @@ class YandexLifecycleMixin(
|
|
|
53
53
|
start_page_url: Optional[str] = None,
|
|
54
54
|
window_rect: Optional[WindowRect] = None,
|
|
55
55
|
) -> None:
|
|
56
|
-
await self.
|
|
56
|
+
await self.start_webdriver(
|
|
57
|
+
flags=flags,
|
|
58
|
+
browser_exe=browser_exe,
|
|
59
|
+
browser_name_in_system=browser_name_in_system,
|
|
60
|
+
use_browser_exe=use_browser_exe,
|
|
61
|
+
start_page_url=start_page_url,
|
|
62
|
+
window_rect=window_rect,
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
async def restart_webdriver(
|
|
66
|
+
self,
|
|
67
|
+
flags: Optional[YandexFlags] = None,
|
|
68
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
69
|
+
browser_name_in_system: Optional[str] = None,
|
|
70
|
+
use_browser_exe: Optional[bool] = None,
|
|
71
|
+
start_page_url: Optional[str] = None,
|
|
72
|
+
window_rect: Optional[WindowRect] = None,
|
|
73
|
+
) -> None:
|
|
74
|
+
await self.sync_to_trio(sync_function=self._restart_webdriver_impl)(
|
|
57
75
|
flags=flags,
|
|
58
76
|
browser_exe=browser_exe,
|
|
59
77
|
browser_name_in_system=browser_name_in_system,
|
|
@@ -2,7 +2,7 @@ from typing import Optional
|
|
|
2
2
|
from osn_selenium.models import WindowRect
|
|
3
3
|
from osn_selenium._typehints import PATH_TYPEHINT
|
|
4
4
|
from osn_selenium.flags.models.yandex import YandexFlags
|
|
5
|
-
from osn_selenium.webdrivers.trio_threads.chrome import ChromeSettingsMixin
|
|
5
|
+
from osn_selenium.webdrivers.trio_threads.chrome.settings import ChromeSettingsMixin
|
|
6
6
|
from osn_selenium.webdrivers.unified.yandex.settings import (
|
|
7
7
|
UnifiedYandexSettingsMixin
|
|
8
8
|
)
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import pathlib
|
|
2
|
-
from typing import Optional, Type
|
|
3
2
|
from osn_selenium.models import WindowRect
|
|
3
|
+
from typing import (
|
|
4
|
+
Mapping,
|
|
5
|
+
Optional,
|
|
6
|
+
Type
|
|
7
|
+
)
|
|
4
8
|
from osn_selenium.flags.blink import BlinkFlagsManager
|
|
5
9
|
from osn_selenium.flags.models.values import ArgumentValue
|
|
6
10
|
from osn_selenium.browsers_handler import get_path_to_browser
|
|
@@ -44,6 +48,8 @@ class UnifiedBlinkBaseMixin(UnifiedCoreBaseMixin):
|
|
|
44
48
|
page_load_timeout: int = 5,
|
|
45
49
|
script_timeout: int = 5,
|
|
46
50
|
window_rect: Optional[WindowRect] = None,
|
|
51
|
+
cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
|
|
52
|
+
ignore_cdp_version_package_missing: bool = True,
|
|
47
53
|
):
|
|
48
54
|
UnifiedCoreBaseMixin.__init__(
|
|
49
55
|
self,
|
|
@@ -55,6 +61,8 @@ class UnifiedBlinkBaseMixin(UnifiedCoreBaseMixin):
|
|
|
55
61
|
page_load_timeout=page_load_timeout,
|
|
56
62
|
script_timeout=script_timeout,
|
|
57
63
|
window_rect=window_rect,
|
|
64
|
+
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
65
|
+
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
58
66
|
)
|
|
59
67
|
|
|
60
68
|
if browser_exe is not None:
|
|
@@ -73,7 +73,7 @@ class UnifiedBlinkLifecycleMixin(UnifiedBlinkSettingsMixin, UnifiedCoreLifecycle
|
|
|
73
73
|
self._create_driver_impl()
|
|
74
74
|
self._is_active = True
|
|
75
75
|
|
|
76
|
-
def
|
|
76
|
+
def _stop_webdriver_impl(self) -> None:
|
|
77
77
|
if self._browser_exe_impl is not None:
|
|
78
78
|
debugging_port = self._debugging_port_impl
|
|
79
79
|
pids_with_ports = get_localhost_pids_with_ports()
|
|
@@ -83,8 +83,10 @@ class UnifiedBlinkLifecycleMixin(UnifiedBlinkSettingsMixin, UnifiedCoreLifecycle
|
|
|
83
83
|
kill_process_by_pid(pid=pid, force=True)
|
|
84
84
|
|
|
85
85
|
is_active = self._check_browser_exe_active_impl()
|
|
86
|
+
|
|
86
87
|
while is_active:
|
|
87
88
|
is_active = self._check_browser_exe_active_impl()
|
|
89
|
+
|
|
88
90
|
if is_active:
|
|
89
91
|
time.sleep(0.05)
|
|
90
92
|
|
|
@@ -103,7 +105,7 @@ class UnifiedBlinkLifecycleMixin(UnifiedBlinkSettingsMixin, UnifiedCoreLifecycle
|
|
|
103
105
|
start_page_url: Optional[str] = None,
|
|
104
106
|
window_rect: Optional[WindowRect] = None,
|
|
105
107
|
) -> None:
|
|
106
|
-
self.
|
|
108
|
+
self._stop_webdriver_impl()
|
|
107
109
|
self._start_webdriver_impl(
|
|
108
110
|
flags=flags,
|
|
109
111
|
browser_exe=browser_exe,
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
from typing import Optional, Type
|
|
2
1
|
from osn_selenium.models import WindowRect
|
|
2
|
+
from typing import (
|
|
3
|
+
Mapping,
|
|
4
|
+
Optional,
|
|
5
|
+
Type
|
|
6
|
+
)
|
|
3
7
|
from osn_selenium.flags.chrome import ChromeFlagsManager
|
|
4
8
|
from osn_selenium.flags.models.chrome import ChromeFlags
|
|
5
9
|
from selenium.webdriver import (
|
|
@@ -32,6 +36,8 @@ class UnifiedChromeBaseMixin(UnifiedBlinkBaseMixin):
|
|
|
32
36
|
page_load_timeout: int = 5,
|
|
33
37
|
script_timeout: int = 5,
|
|
34
38
|
window_rect: Optional[WindowRect] = None,
|
|
39
|
+
cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
|
|
40
|
+
ignore_cdp_version_package_missing: bool = True,
|
|
35
41
|
):
|
|
36
42
|
UnifiedBlinkBaseMixin.__init__(
|
|
37
43
|
self,
|
|
@@ -47,6 +53,8 @@ class UnifiedChromeBaseMixin(UnifiedBlinkBaseMixin):
|
|
|
47
53
|
page_load_timeout=page_load_timeout,
|
|
48
54
|
script_timeout=script_timeout,
|
|
49
55
|
window_rect=window_rect,
|
|
56
|
+
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
57
|
+
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
50
58
|
)
|
|
51
59
|
|
|
52
60
|
@property
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
from selenium.webdriver.remote.fedcm import FedCM
|
|
1
2
|
from typing import (
|
|
2
3
|
Any,
|
|
3
4
|
List,
|
|
4
5
|
Optional,
|
|
5
6
|
Union
|
|
6
7
|
)
|
|
8
|
+
from selenium.webdriver.common.fedcm.dialog import Dialog
|
|
7
9
|
from osn_selenium.webdrivers._decorators import requires_driver
|
|
8
10
|
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
9
11
|
from selenium.webdriver.common.virtual_authenticator import (
|
|
@@ -30,7 +32,7 @@ class UnifiedCoreAuthMixin(UnifiedCoreBaseMixin):
|
|
|
30
32
|
timeout: int = 5,
|
|
31
33
|
poll_frequency: float = 0.5,
|
|
32
34
|
ignored_exceptions: Any = None,
|
|
33
|
-
) ->
|
|
35
|
+
) -> Dialog:
|
|
34
36
|
return self._driver_impl.fedcm_dialog(
|
|
35
37
|
timeout=timeout,
|
|
36
38
|
poll_frequency=poll_frequency,
|
|
@@ -38,7 +40,7 @@ class UnifiedCoreAuthMixin(UnifiedCoreBaseMixin):
|
|
|
38
40
|
)
|
|
39
41
|
|
|
40
42
|
@requires_driver
|
|
41
|
-
def _fedcm_impl(self) ->
|
|
43
|
+
def _fedcm_impl(self) -> FedCM:
|
|
42
44
|
return self._driver_impl.fedcm
|
|
43
45
|
|
|
44
46
|
@requires_driver
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
from osn_selenium.models import WindowRect
|
|
2
|
+
from osn_selenium._cdp_import import install_cdp_hook
|
|
3
|
+
from osn_selenium.flags.base import BrowserFlagsManager
|
|
4
|
+
from osn_selenium.flags.models.base import BrowserFlags
|
|
5
|
+
from selenium.webdriver.common.bidi.session import Session
|
|
2
6
|
from typing import (
|
|
3
7
|
Any,
|
|
4
8
|
Dict,
|
|
9
|
+
Mapping,
|
|
5
10
|
Optional,
|
|
6
11
|
Type
|
|
7
12
|
)
|
|
8
|
-
from osn_selenium.flags.base import BrowserFlagsManager
|
|
9
|
-
from osn_selenium.flags.models.base import BrowserFlags
|
|
10
|
-
from selenium.webdriver.common.bidi.session import Session
|
|
11
|
-
from osn_selenium._typehints import (
|
|
12
|
-
ARCHITECTURES_TYPEHINT
|
|
13
|
-
)
|
|
14
13
|
from selenium.webdriver.remote.errorhandler import ErrorHandler
|
|
15
14
|
from osn_selenium.webdrivers._decorators import requires_driver
|
|
16
15
|
from selenium.webdriver.remote.locator_converter import LocatorConverter
|
|
@@ -18,6 +17,10 @@ from selenium.webdriver.remote.remote_connection import RemoteConnection
|
|
|
18
17
|
from osn_selenium.exceptions.webdriver import (
|
|
19
18
|
WebDriverNotStartedError
|
|
20
19
|
)
|
|
20
|
+
from osn_selenium._typehints import (
|
|
21
|
+
ARCHITECTURES_TYPEHINT,
|
|
22
|
+
PATH_TYPEHINT
|
|
23
|
+
)
|
|
21
24
|
from selenium.webdriver.remote.webdriver import (
|
|
22
25
|
WebDriver as legacyWebDriver
|
|
23
26
|
)
|
|
@@ -37,6 +40,8 @@ class UnifiedCoreBaseMixin:
|
|
|
37
40
|
page_load_timeout: int = 5,
|
|
38
41
|
script_timeout: int = 5,
|
|
39
42
|
window_rect: Optional[WindowRect] = None,
|
|
43
|
+
cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
|
|
44
|
+
ignore_cdp_version_package_missing: bool = True,
|
|
40
45
|
) -> None:
|
|
41
46
|
self._window_rect = window_rect
|
|
42
47
|
self._webdriver_path = webdriver_path
|
|
@@ -50,6 +55,14 @@ class UnifiedCoreBaseMixin:
|
|
|
50
55
|
|
|
51
56
|
if flags is not None:
|
|
52
57
|
self._webdriver_flags_manager.update_flags(flags)
|
|
58
|
+
|
|
59
|
+
if not getattr(self, "cdp_hook_installed", False):
|
|
60
|
+
install_cdp_hook(
|
|
61
|
+
cdp_paths=cdp_versioned_packages_paths,
|
|
62
|
+
ignore_package_missing=ignore_cdp_version_package_missing
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
setattr(self, "cdp_hook_installed", True)
|
|
53
66
|
|
|
54
67
|
@property
|
|
55
68
|
def _architecture_impl(self) -> ARCHITECTURES_TYPEHINT:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
from typing import
|
|
1
|
+
from typing import Optional
|
|
2
2
|
from osn_selenium.webdrivers._decorators import requires_driver
|
|
3
|
+
from selenium.webdriver.common.print_page_options import PrintOptions
|
|
3
4
|
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
4
5
|
|
|
5
6
|
|
|
@@ -24,7 +25,7 @@ class UnifiedCoreCaptureMixin(UnifiedCoreBaseMixin):
|
|
|
24
25
|
return self._driver_impl.page_source
|
|
25
26
|
|
|
26
27
|
@requires_driver
|
|
27
|
-
def _print_page_impl(self, print_options: Optional[
|
|
28
|
+
def _print_page_impl(self, print_options: Optional[PrintOptions] = None) -> str:
|
|
28
29
|
return self._driver_impl.print_page(print_options=print_options)
|
|
29
30
|
|
|
30
31
|
@requires_driver
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
from
|
|
1
|
+
from selenium.webdriver.remote.mobile import Mobile
|
|
2
|
+
from selenium.webdriver.common.fedcm.dialog import Dialog
|
|
3
|
+
from selenium.webdriver.common.bidi.browser import Browser
|
|
2
4
|
from osn_selenium.webdrivers._decorators import requires_driver
|
|
5
|
+
from selenium.webdriver.common.bidi.permissions import Permissions
|
|
6
|
+
from selenium.webdriver.common.bidi.webextension import WebExtension
|
|
3
7
|
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
8
|
+
from selenium.webdriver.common.bidi.browsing_context import BrowsingContext
|
|
4
9
|
|
|
5
10
|
|
|
6
11
|
__all__ = ["UnifiedCoreComponentsMixin"]
|
|
@@ -8,25 +13,25 @@ __all__ = ["UnifiedCoreComponentsMixin"]
|
|
|
8
13
|
|
|
9
14
|
class UnifiedCoreComponentsMixin(UnifiedCoreBaseMixin):
|
|
10
15
|
@requires_driver
|
|
11
|
-
def _browser_impl(self) ->
|
|
16
|
+
def _browser_impl(self) -> Browser:
|
|
12
17
|
return self._driver_impl.browser
|
|
13
18
|
|
|
14
19
|
@requires_driver
|
|
15
|
-
def _browsing_context_impl(self) ->
|
|
20
|
+
def _browsing_context_impl(self) -> BrowsingContext:
|
|
16
21
|
return self._driver_impl.browsing_context
|
|
17
22
|
|
|
18
23
|
@requires_driver
|
|
19
|
-
def _dialog_impl(self) ->
|
|
24
|
+
def _dialog_impl(self) -> Dialog:
|
|
20
25
|
return self._driver_impl.dialog
|
|
21
26
|
|
|
22
27
|
@requires_driver
|
|
23
|
-
def _mobile_impl(self) ->
|
|
28
|
+
def _mobile_impl(self) -> Mobile:
|
|
24
29
|
return self._driver_impl.mobile
|
|
25
30
|
|
|
26
31
|
@requires_driver
|
|
27
|
-
def _permissions_impl(self) ->
|
|
32
|
+
def _permissions_impl(self) -> Permissions:
|
|
28
33
|
return self._driver_impl.permissions
|
|
29
34
|
|
|
30
35
|
@requires_driver
|
|
31
|
-
def _webextension_impl(self) ->
|
|
36
|
+
def _webextension_impl(self) -> WebExtension:
|
|
32
37
|
return self._driver_impl.webextension
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from contextlib import asynccontextmanager
|
|
2
|
+
from selenium.webdriver.common.bidi.network import Network
|
|
2
3
|
from typing import (
|
|
3
4
|
Any,
|
|
4
5
|
AsyncGenerator,
|
|
@@ -27,7 +28,7 @@ class UnifiedCoreDevToolsMixin(UnifiedCoreBaseMixin):
|
|
|
27
28
|
return self._driver_impl.execute_cdp_cmd(cmd=cmd, cmd_args=build_cdp_kwargs(**cmd_args))
|
|
28
29
|
|
|
29
30
|
@requires_driver
|
|
30
|
-
def _network_impl(self) ->
|
|
31
|
+
def _network_impl(self) -> Network:
|
|
31
32
|
return self._driver_impl.network
|
|
32
33
|
|
|
33
34
|
@requires_driver
|