osn-selenium 1.1.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/_decorators.py +57 -0
- osn_selenium/_trio_threads_helpers.py +157 -0
- osn_selenium/_typehints.py +1 -1
- 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/dev_tools/_decorators.py +1 -42
- osn_selenium/dev_tools/_functions.py +2 -4
- osn_selenium/dev_tools/domains/__init__.py +1 -1
- osn_selenium/dev_tools/domains/fetch.py +5 -7
- osn_selenium/dev_tools/domains_default/fetch.py +1 -1
- osn_selenium/dev_tools/logger/main.py +9 -9
- osn_selenium/dev_tools/logger/target.py +7 -7
- osn_selenium/dev_tools/manager/base.py +10 -19
- osn_selenium/dev_tools/manager/lifecycle.py +83 -74
- osn_selenium/dev_tools/manager/logging.py +1 -1
- osn_selenium/dev_tools/manager/targets.py +13 -5
- osn_selenium/dev_tools/settings.py +4 -4
- osn_selenium/dev_tools/target/base.py +18 -11
- 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 -43
- osn_selenium/dev_tools/target/logging.py +1 -1
- 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 +2 -2
- 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 +0 -5
- 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 +0 -5
- osn_selenium/flags/base.py +6 -4
- osn_selenium/flags/blink.py +2 -2
- osn_selenium/flags/chrome.py +6 -6
- osn_selenium/flags/edge.py +6 -6
- osn_selenium/instances/convert.py +44 -3
- osn_selenium/instances/protocols.py +47 -1
- osn_selenium/instances/sync/browsing_context.py +2 -2
- osn_selenium/instances/sync/script.py +7 -2
- 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/browsing_context.py +2 -2
- osn_selenium/instances/trio_threads/fedcm.py +1 -1
- osn_selenium/instances/trio_threads/network.py +1 -1
- osn_selenium/instances/trio_threads/script.py +7 -2
- 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 +2 -1
- 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/trio_threads_mixin.py +22 -68
- osn_selenium/webdrivers/_args_helpers.py +118 -5
- osn_selenium/webdrivers/_typehints.py +9 -3
- osn_selenium/webdrivers/protocols.py +81 -1
- osn_selenium/webdrivers/sync/blink/base.py +10 -0
- osn_selenium/webdrivers/sync/blink/lifecycle.py +26 -8
- osn_selenium/webdrivers/sync/chrome/lifecycle.py +23 -5
- osn_selenium/webdrivers/sync/chrome/settings.py +6 -1
- osn_selenium/webdrivers/sync/core/base.py +3 -11
- 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/lifecycle.py +23 -5
- osn_selenium/webdrivers/sync/edge/settings.py +6 -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 +7 -1
- osn_selenium/webdrivers/trio_threads/blink/base.py +14 -0
- osn_selenium/webdrivers/trio_threads/blink/lifecycle.py +26 -8
- 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 +0 -10
- 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 +4 -16
- osn_selenium/webdrivers/trio_threads/core/capture.py +3 -2
- osn_selenium/webdrivers/trio_threads/core/file.py +3 -2
- osn_selenium/webdrivers/trio_threads/core/lifecycle.py +44 -10
- osn_selenium/webdrivers/trio_threads/core/script.py +3 -2
- 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 +4 -4
- 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/lifecycle.py +23 -5
- osn_selenium/webdrivers/trio_threads/yandex/settings.py +1 -1
- osn_selenium/webdrivers/unified/blink/base.py +5 -1
- osn_selenium/webdrivers/unified/blink/lifecycle.py +4 -2
- osn_selenium/webdrivers/unified/chrome/base.py +5 -1
- osn_selenium/webdrivers/unified/core/auth.py +4 -2
- osn_selenium/webdrivers/unified/core/base.py +16 -10
- 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 +5 -1
- osn_selenium/webdrivers/unified/yandex/base.py +5 -1
- {osn_selenium-1.1.0.dist-info → osn_selenium-1.2.0.dist-info}/METADATA +3 -2
- osn_selenium-1.2.0.dist-info/RECORD +480 -0
- 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/base_mixin.py +0 -122
- 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.1.0.dist-info/RECORD +0 -615
- /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.1.0.dist-info → osn_selenium-1.2.0.dist-info}/WHEEL +0 -0
- {osn_selenium-1.1.0.dist-info → osn_selenium-1.2.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import math
|
|
2
|
+
import trio
|
|
3
|
+
from osn_selenium.models import WindowRect
|
|
4
|
+
from osn_selenium.flags.models.yandex import YandexFlags
|
|
5
|
+
from osn_selenium.flags.yandex import YandexFlagsManager
|
|
6
|
+
from typing import (
|
|
7
|
+
Mapping,
|
|
8
|
+
Optional,
|
|
9
|
+
Type,
|
|
10
|
+
Union
|
|
11
|
+
)
|
|
12
|
+
from osn_selenium.webdrivers.trio_bidi.chrome.base import ChromeBaseMixin
|
|
13
|
+
from osn_selenium._typehints import (
|
|
14
|
+
ARCHITECTURES_TYPEHINT,
|
|
15
|
+
PATH_TYPEHINT
|
|
16
|
+
)
|
|
17
|
+
from osn_selenium.webdrivers.unified.yandex.base import (
|
|
18
|
+
UnifiedYandexBaseMixin
|
|
19
|
+
)
|
|
20
|
+
from osn_selenium.abstract.webdriver.yandex.base import (
|
|
21
|
+
AbstractYandexBaseMixin
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
__all__ = ["YandexBaseMixin"]
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class YandexBaseMixin(UnifiedYandexBaseMixin, ChromeBaseMixin, AbstractYandexBaseMixin):
|
|
29
|
+
"""
|
|
30
|
+
Base mixin for Yandex WebDrivers handling core initialization and state management.
|
|
31
|
+
|
|
32
|
+
This class serves as the foundation for browser-specific implementations, managing
|
|
33
|
+
the WebDriver executable path, configuration flags, timeouts, and the active
|
|
34
|
+
driver instance.
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
def __init__(
|
|
38
|
+
self,
|
|
39
|
+
webdriver_path: str,
|
|
40
|
+
architecture: ARCHITECTURES_TYPEHINT,
|
|
41
|
+
flags_manager_type: Type[YandexFlagsManager] = YandexFlagsManager,
|
|
42
|
+
use_browser_exe: bool = True,
|
|
43
|
+
browser_name_in_system: str = "Yandex",
|
|
44
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
45
|
+
flags: Optional[YandexFlags] = None,
|
|
46
|
+
start_page_url: str = "about:blank",
|
|
47
|
+
implicitly_wait: int = 5,
|
|
48
|
+
page_load_timeout: int = 5,
|
|
49
|
+
script_timeout: int = 5,
|
|
50
|
+
window_rect: Optional[WindowRect] = None,
|
|
51
|
+
capacity_limiter: Optional[trio.CapacityLimiter] = None,
|
|
52
|
+
cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
|
|
53
|
+
ignore_cdp_version_package_missing: bool = True,
|
|
54
|
+
trio_token: Optional[trio.lowlevel.TrioToken] = None,
|
|
55
|
+
bidi_buffer_size: Union[int, float] = math.inf,
|
|
56
|
+
):
|
|
57
|
+
"""
|
|
58
|
+
Initializes the Trio-based Yandex WebDriver mixin with specified configuration.
|
|
59
|
+
|
|
60
|
+
Args:
|
|
61
|
+
webdriver_path (str): Path to the YandexDriver executable.
|
|
62
|
+
architecture (ARCHITECTURE_TYPEHINT): System architecture.
|
|
63
|
+
flags_manager_type (Type[YandexFlagsManager]): The class type used for managing Yandex flags.
|
|
64
|
+
Defaults to YandexFlagsManager.
|
|
65
|
+
use_browser_exe (bool): Whether to use a specific browser executable path or auto-detect.
|
|
66
|
+
Defaults to True.
|
|
67
|
+
browser_name_in_system (str): The name of the browser in the system registry or path.
|
|
68
|
+
Defaults to "Yandex".
|
|
69
|
+
browser_exe (Optional[PATH_TYPEHINT]): Explicit path to the Yandex browser executable.
|
|
70
|
+
flags (Optional[YandexFlags]): Initial set of flags.
|
|
71
|
+
start_page_url (str): The initial URL. Defaults to "about:blank".
|
|
72
|
+
implicitly_wait (int): Default implicit wait time.
|
|
73
|
+
page_load_timeout (int): Default page load timeout.
|
|
74
|
+
script_timeout (int): Default script timeout.
|
|
75
|
+
window_rect (Optional[WindowRect]): Initial window dimensions.
|
|
76
|
+
capacity_limiter (Optional[trio.CapacityLimiter]): Trio capacity limiter.
|
|
77
|
+
cdp_versioned_packages_paths (Optional[Mapping[int, PATH_TYPEHINT]]): Custom local paths for specific CDP versions packages.
|
|
78
|
+
ignore_cdp_version_package_missing (bool): Whether to ignore missing CDP package errors.
|
|
79
|
+
trio_token (Optional[trio.lowlevel.TrioToken]): The Trio token for the current event loop.
|
|
80
|
+
bidi_buffer_size (Union[int, float]): Buffer size for the BiDi task channel.
|
|
81
|
+
"""
|
|
82
|
+
|
|
83
|
+
ChromeBaseMixin.__init__(
|
|
84
|
+
self,
|
|
85
|
+
browser_exe=browser_exe,
|
|
86
|
+
browser_name_in_system=browser_name_in_system,
|
|
87
|
+
use_browser_exe=use_browser_exe,
|
|
88
|
+
webdriver_path=webdriver_path,
|
|
89
|
+
architecture=architecture,
|
|
90
|
+
flags_manager_type=flags_manager_type,
|
|
91
|
+
flags=flags,
|
|
92
|
+
start_page_url=start_page_url,
|
|
93
|
+
implicitly_wait=implicitly_wait,
|
|
94
|
+
page_load_timeout=page_load_timeout,
|
|
95
|
+
script_timeout=script_timeout,
|
|
96
|
+
window_rect=window_rect,
|
|
97
|
+
capacity_limiter=capacity_limiter,
|
|
98
|
+
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
99
|
+
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
100
|
+
trio_token=trio_token,
|
|
101
|
+
bidi_buffer_size=bidi_buffer_size,
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
UnifiedYandexBaseMixin.__init__(
|
|
105
|
+
self,
|
|
106
|
+
webdriver_path=webdriver_path,
|
|
107
|
+
architecture=architecture,
|
|
108
|
+
flags_manager_type=flags_manager_type,
|
|
109
|
+
use_browser_exe=use_browser_exe,
|
|
110
|
+
browser_name_in_system=browser_name_in_system,
|
|
111
|
+
browser_exe=browser_exe,
|
|
112
|
+
flags=flags,
|
|
113
|
+
start_page_url=start_page_url,
|
|
114
|
+
implicitly_wait=implicitly_wait,
|
|
115
|
+
page_load_timeout=page_load_timeout,
|
|
116
|
+
script_timeout=script_timeout,
|
|
117
|
+
window_rect=window_rect,
|
|
118
|
+
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
119
|
+
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
120
|
+
)
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from osn_selenium.models import WindowRect
|
|
3
|
+
from osn_selenium._typehints import PATH_TYPEHINT
|
|
4
|
+
from osn_selenium.flags.models.yandex import YandexFlags
|
|
5
|
+
from osn_selenium.webdrivers.trio_bidi.chrome.lifecycle import ChromeLifecycleMixin
|
|
6
|
+
from osn_selenium.webdrivers.unified.yandex.lifecycle import (
|
|
7
|
+
UnifiedYandexLifecycleMixin
|
|
8
|
+
)
|
|
9
|
+
from osn_selenium.abstract.webdriver.yandex.lifecycle import (
|
|
10
|
+
AbstractYandexLifecycleMixin
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
__all__ = ["YandexLifecycleMixin"]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class YandexLifecycleMixin(
|
|
18
|
+
UnifiedYandexLifecycleMixin,
|
|
19
|
+
ChromeLifecycleMixin,
|
|
20
|
+
AbstractYandexLifecycleMixin
|
|
21
|
+
):
|
|
22
|
+
"""
|
|
23
|
+
Mixin for managing the lifecycle of the Yandex WebDriver.
|
|
24
|
+
|
|
25
|
+
Handles the creation, startup, shutdown, and restarting processes of the
|
|
26
|
+
underlying browser instance, ensuring clean session management.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
async def start_webdriver(
|
|
30
|
+
self,
|
|
31
|
+
flags: Optional[YandexFlags] = None,
|
|
32
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
33
|
+
browser_name_in_system: Optional[str] = None,
|
|
34
|
+
use_browser_exe: Optional[bool] = None,
|
|
35
|
+
start_page_url: Optional[str] = None,
|
|
36
|
+
window_rect: Optional[WindowRect] = None,
|
|
37
|
+
) -> None:
|
|
38
|
+
await self.sync_to_trio(sync_function=self._start_webdriver_impl)(
|
|
39
|
+
flags=flags,
|
|
40
|
+
browser_exe=browser_exe,
|
|
41
|
+
browser_name_in_system=browser_name_in_system,
|
|
42
|
+
use_browser_exe=use_browser_exe,
|
|
43
|
+
start_page_url=start_page_url,
|
|
44
|
+
window_rect=window_rect,
|
|
45
|
+
)
|
|
46
|
+
await self._start_bidi_bridge()
|
|
47
|
+
|
|
48
|
+
async def __aenter__(
|
|
49
|
+
self,
|
|
50
|
+
flags: Optional[YandexFlags] = None,
|
|
51
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
52
|
+
browser_name_in_system: Optional[str] = None,
|
|
53
|
+
use_browser_exe: Optional[bool] = None,
|
|
54
|
+
start_page_url: Optional[str] = None,
|
|
55
|
+
window_rect: Optional[WindowRect] = None,
|
|
56
|
+
) -> None:
|
|
57
|
+
await self.start_webdriver(
|
|
58
|
+
flags=flags,
|
|
59
|
+
browser_exe=browser_exe,
|
|
60
|
+
browser_name_in_system=browser_name_in_system,
|
|
61
|
+
use_browser_exe=use_browser_exe,
|
|
62
|
+
start_page_url=start_page_url,
|
|
63
|
+
window_rect=window_rect,
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
async def restart_webdriver(
|
|
67
|
+
self,
|
|
68
|
+
flags: Optional[YandexFlags] = None,
|
|
69
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
70
|
+
browser_name_in_system: Optional[str] = None,
|
|
71
|
+
use_browser_exe: Optional[bool] = None,
|
|
72
|
+
start_page_url: Optional[str] = None,
|
|
73
|
+
window_rect: Optional[WindowRect] = None,
|
|
74
|
+
) -> None:
|
|
75
|
+
await self.sync_to_trio(sync_function=self._restart_webdriver_impl)(
|
|
76
|
+
flags=flags,
|
|
77
|
+
browser_exe=browser_exe,
|
|
78
|
+
browser_name_in_system=browser_name_in_system,
|
|
79
|
+
use_browser_exe=use_browser_exe,
|
|
80
|
+
start_page_url=start_page_url,
|
|
81
|
+
window_rect=window_rect,
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
await self._stop_bidi_bridge()
|
|
85
|
+
await self._start_bidi_bridge()
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
from osn_selenium.models import WindowRect
|
|
3
|
+
from osn_selenium._typehints import PATH_TYPEHINT
|
|
4
|
+
from osn_selenium.flags.models.yandex import YandexFlags
|
|
5
|
+
from osn_selenium.webdrivers.trio_bidi.chrome.settings import ChromeSettingsMixin
|
|
6
|
+
from osn_selenium.webdrivers.unified.yandex.settings import (
|
|
7
|
+
UnifiedYandexSettingsMixin
|
|
8
|
+
)
|
|
9
|
+
from osn_selenium.abstract.webdriver.yandex.settings import (
|
|
10
|
+
AbstractYandexSettingsMixin
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
__all__ = ["YandexSettingsMixin"]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class YandexSettingsMixin(
|
|
18
|
+
UnifiedYandexSettingsMixin,
|
|
19
|
+
ChromeSettingsMixin,
|
|
20
|
+
AbstractYandexSettingsMixin
|
|
21
|
+
):
|
|
22
|
+
"""
|
|
23
|
+
Mixin for configuring and updating settings of the Yandex WebDriver.
|
|
24
|
+
|
|
25
|
+
Provides methods to modify browser flags, window rectangles, and other
|
|
26
|
+
configuration parameters either before startup or during a reset.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
async def reset_settings(
|
|
30
|
+
self,
|
|
31
|
+
flags: Optional[YandexFlags] = None,
|
|
32
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
33
|
+
browser_name_in_system: Optional[str] = None,
|
|
34
|
+
use_browser_exe: Optional[bool] = None,
|
|
35
|
+
start_page_url: str = "",
|
|
36
|
+
window_rect: Optional[WindowRect] = None,
|
|
37
|
+
) -> None:
|
|
38
|
+
await self.sync_to_trio(sync_function=self._reset_settings_impl)(
|
|
39
|
+
flags=flags,
|
|
40
|
+
browser_exe=browser_exe,
|
|
41
|
+
browser_name_in_system=browser_name_in_system,
|
|
42
|
+
use_browser_exe=use_browser_exe,
|
|
43
|
+
start_page_url=start_page_url,
|
|
44
|
+
window_rect=window_rect,
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
async def update_settings(
|
|
48
|
+
self,
|
|
49
|
+
flags: Optional[YandexFlags] = None,
|
|
50
|
+
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
51
|
+
browser_name_in_system: Optional[str] = None,
|
|
52
|
+
use_browser_exe: Optional[bool] = None,
|
|
53
|
+
start_page_url: Optional[str] = None,
|
|
54
|
+
window_rect: Optional[WindowRect] = None,
|
|
55
|
+
) -> None:
|
|
56
|
+
await self.sync_to_trio(sync_function=self._update_settings_impl)(
|
|
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
|
+
)
|
|
@@ -6,6 +6,7 @@ from typing import (
|
|
|
6
6
|
Type
|
|
7
7
|
)
|
|
8
8
|
from osn_selenium._typehints import PATH_TYPEHINT
|
|
9
|
+
from osn_selenium.dev_tools.manager import DevTools
|
|
9
10
|
from osn_selenium.flags.blink import BlinkFlagsManager
|
|
10
11
|
from osn_selenium.flags.models.blink import BlinkFlags
|
|
11
12
|
from osn_selenium.dev_tools.settings import DevToolsSettings
|
|
@@ -108,7 +109,6 @@ class BlinkWebDriver(
|
|
|
108
109
|
page_load_timeout=page_load_timeout,
|
|
109
110
|
script_timeout=script_timeout,
|
|
110
111
|
window_rect=window_rect,
|
|
111
|
-
devtools_settings=devtools_settings,
|
|
112
112
|
capacity_limiter=capacity_limiter,
|
|
113
113
|
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
114
114
|
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
@@ -132,3 +132,9 @@ class BlinkWebDriver(
|
|
|
132
132
|
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
133
133
|
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
134
134
|
)
|
|
135
|
+
|
|
136
|
+
self._devtools = DevTools(parent_webdriver=self, devtools_settings=devtools_settings)
|
|
137
|
+
|
|
138
|
+
@property
|
|
139
|
+
def devtools(self) -> DevTools:
|
|
140
|
+
return self._devtools
|
|
@@ -8,7 +8,11 @@ from typing import (
|
|
|
8
8
|
)
|
|
9
9
|
from osn_selenium.flags.blink import BlinkFlagsManager
|
|
10
10
|
from osn_selenium.flags.models.blink import BlinkFlags
|
|
11
|
+
from osn_selenium.executors.trio_threads.cdp import CDPExecutor
|
|
11
12
|
from osn_selenium.webdrivers.trio_threads.core.base import CoreBaseMixin
|
|
13
|
+
from osn_selenium.webdrivers._bridges import (
|
|
14
|
+
get_cdp_executor_bridge
|
|
15
|
+
)
|
|
12
16
|
from osn_selenium._typehints import (
|
|
13
17
|
ARCHITECTURES_TYPEHINT,
|
|
14
18
|
PATH_TYPEHINT
|
|
@@ -122,11 +126,21 @@ class BlinkBaseMixin(UnifiedBlinkBaseMixin, CoreBaseMixin, AbstractBlinkBaseMixi
|
|
|
122
126
|
script_timeout=script_timeout,
|
|
123
127
|
window_rect=window_rect,
|
|
124
128
|
)
|
|
129
|
+
|
|
130
|
+
self._cdp_executor = CDPExecutor(
|
|
131
|
+
execute_function=get_cdp_executor_bridge(self),
|
|
132
|
+
lock=self._lock,
|
|
133
|
+
limiter=self._capacity_limiter,
|
|
134
|
+
)
|
|
125
135
|
|
|
126
136
|
@property
|
|
127
137
|
def browser_exe(self) -> Optional[pathlib.Path]:
|
|
128
138
|
return self._browser_exe_impl
|
|
129
139
|
|
|
140
|
+
@property
|
|
141
|
+
def cdp(self) -> CDPExecutor:
|
|
142
|
+
return self._cdp_executor
|
|
143
|
+
|
|
130
144
|
@property
|
|
131
145
|
def debugging_ip(self) -> Optional[str]:
|
|
132
146
|
return self._debugging_ip_impl
|
|
@@ -26,10 +26,7 @@ class BlinkLifecycleMixin(
|
|
|
26
26
|
underlying browser instance, ensuring clean session management.
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
|
-
async def
|
|
30
|
-
await self.sync_to_trio(sync_function=self._close_webdriver_impl)()
|
|
31
|
-
|
|
32
|
-
async def restart_webdriver(
|
|
29
|
+
async def start_webdriver(
|
|
33
30
|
self,
|
|
34
31
|
flags: Optional[BlinkFlags] = None,
|
|
35
32
|
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
@@ -38,16 +35,16 @@ class BlinkLifecycleMixin(
|
|
|
38
35
|
start_page_url: Optional[str] = None,
|
|
39
36
|
window_rect: Optional[WindowRect] = None,
|
|
40
37
|
) -> None:
|
|
41
|
-
await self.sync_to_trio(sync_function=self.
|
|
38
|
+
await self.sync_to_trio(sync_function=self._start_webdriver_impl)(
|
|
42
39
|
flags=flags,
|
|
43
40
|
browser_exe=browser_exe,
|
|
44
41
|
browser_name_in_system=browser_name_in_system,
|
|
45
42
|
use_browser_exe=use_browser_exe,
|
|
46
43
|
start_page_url=start_page_url,
|
|
47
|
-
window_rect=window_rect
|
|
44
|
+
window_rect=window_rect,
|
|
48
45
|
)
|
|
49
46
|
|
|
50
|
-
async def
|
|
47
|
+
async def __aenter__(
|
|
51
48
|
self,
|
|
52
49
|
flags: Optional[BlinkFlags] = None,
|
|
53
50
|
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
@@ -56,7 +53,7 @@ class BlinkLifecycleMixin(
|
|
|
56
53
|
start_page_url: Optional[str] = None,
|
|
57
54
|
window_rect: Optional[WindowRect] = None,
|
|
58
55
|
) -> None:
|
|
59
|
-
await self.
|
|
56
|
+
await self.start_webdriver(
|
|
60
57
|
flags=flags,
|
|
61
58
|
browser_exe=browser_exe,
|
|
62
59
|
browser_name_in_system=browser_name_in_system,
|
|
@@ -64,3 +61,24 @@ class BlinkLifecycleMixin(
|
|
|
64
61
|
start_page_url=start_page_url,
|
|
65
62
|
window_rect=window_rect,
|
|
66
63
|
)
|
|
64
|
+
|
|
65
|
+
async def restart_webdriver(
|
|
66
|
+
self,
|
|
67
|
+
flags: Optional[BlinkFlags] = 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)(
|
|
75
|
+
flags=flags,
|
|
76
|
+
browser_exe=browser_exe,
|
|
77
|
+
browser_name_in_system=browser_name_in_system,
|
|
78
|
+
use_browser_exe=use_browser_exe,
|
|
79
|
+
start_page_url=start_page_url,
|
|
80
|
+
window_rect=window_rect
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
async def stop_webdriver(self) -> None:
|
|
84
|
+
await self.sync_to_trio(sync_function=self._stop_webdriver_impl)()
|
|
@@ -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.chrome import ChromeFlags
|
|
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.chrome.lifecycle import (
|
|
7
7
|
UnifiedChromeLifecycleMixin
|
|
8
8
|
)
|
|
@@ -26,7 +26,7 @@ class ChromeLifecycleMixin(
|
|
|
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[ChromeFlags] = None,
|
|
32
32
|
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
@@ -35,7 +35,7 @@ class ChromeLifecycleMixin(
|
|
|
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 ChromeLifecycleMixin(
|
|
|
44
44
|
window_rect=window_rect,
|
|
45
45
|
)
|
|
46
46
|
|
|
47
|
-
async def
|
|
47
|
+
async def __aenter__(
|
|
48
48
|
self,
|
|
49
49
|
flags: Optional[ChromeFlags] = None,
|
|
50
50
|
browser_exe: Optional[PATH_TYPEHINT] = None,
|
|
@@ -53,7 +53,25 @@ class ChromeLifecycleMixin(
|
|
|
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[ChromeFlags] = 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.chrome import ChromeFlags
|
|
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.chrome.settings import (
|
|
7
7
|
UnifiedChromeSettingsMixin
|
|
8
8
|
)
|
|
@@ -6,10 +6,8 @@ from typing import (
|
|
|
6
6
|
Type
|
|
7
7
|
)
|
|
8
8
|
from osn_selenium._typehints import PATH_TYPEHINT
|
|
9
|
-
from osn_selenium.dev_tools.manager import DevTools
|
|
10
9
|
from osn_selenium.flags.base import BrowserFlagsManager
|
|
11
10
|
from osn_selenium.flags.models.base import BrowserFlags
|
|
12
|
-
from osn_selenium.dev_tools.settings import DevToolsSettings
|
|
13
11
|
from osn_selenium.webdrivers.trio_threads.core.auth import CoreAuthMixin
|
|
14
12
|
from osn_selenium.webdrivers.trio_threads.core.base import CoreBaseMixin
|
|
15
13
|
from osn_selenium.webdrivers.trio_threads.core.file import CoreFileMixin
|
|
@@ -67,7 +65,6 @@ class CoreWebDriver(
|
|
|
67
65
|
page_load_timeout: int = 5,
|
|
68
66
|
script_timeout: int = 5,
|
|
69
67
|
window_rect: Optional[WindowRect] = None,
|
|
70
|
-
devtools_settings: Optional[DevToolsSettings] = None,
|
|
71
68
|
capacity_limiter: Optional[trio.CapacityLimiter] = None,
|
|
72
69
|
cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
|
|
73
70
|
ignore_cdp_version_package_missing: bool = True,
|
|
@@ -89,7 +86,6 @@ class CoreWebDriver(
|
|
|
89
86
|
asynchronous script to finish execution. Defaults to 5.
|
|
90
87
|
window_rect (Optional[WindowRect]): The initial size and position of the
|
|
91
88
|
browser window. Defaults to None.
|
|
92
|
-
devtools_settings (Optional[DevToolsSettings]): Configuration for Chrome DevTools Protocol.
|
|
93
89
|
capacity_limiter (Optional[trio.CapacityLimiter]): A Trio capacity limiter used to
|
|
94
90
|
throttle concurrent thread-based operations. Defaults to None.
|
|
95
91
|
"""
|
|
@@ -107,9 +103,3 @@ class CoreWebDriver(
|
|
|
107
103
|
cdp_versioned_packages_paths=cdp_versioned_packages_paths,
|
|
108
104
|
ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
|
|
109
105
|
)
|
|
110
|
-
|
|
111
|
-
self._devtools = DevTools(parent_webdriver=self, devtools_settings=devtools_settings)
|
|
112
|
-
|
|
113
|
-
@property
|
|
114
|
-
def devtools(self) -> DevTools:
|
|
115
|
-
return self._devtools
|
|
@@ -3,8 +3,8 @@ from typing import (
|
|
|
3
3
|
List,
|
|
4
4
|
Optional
|
|
5
5
|
)
|
|
6
|
-
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
7
6
|
from osn_selenium._typehints import DEVICES_TYPEHINT
|
|
7
|
+
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
8
8
|
from osn_selenium.webdrivers._bridges import (
|
|
9
9
|
get_js_executor_bridge
|
|
10
10
|
)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
2
1
|
from typing import (
|
|
3
2
|
Any,
|
|
4
3
|
List,
|
|
5
4
|
Optional,
|
|
6
5
|
Union
|
|
7
6
|
)
|
|
7
|
+
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
8
8
|
from osn_selenium.instances.trio_threads.fedcm import FedCM
|
|
9
9
|
from osn_selenium.instances.trio_threads.dialog import Dialog
|
|
10
10
|
from osn_selenium.webdrivers.unified.core.auth import UnifiedCoreAuthMixin
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import trio
|
|
2
2
|
from osn_selenium.models import WindowRect
|
|
3
|
-
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
4
3
|
from osn_selenium.flags.base import BrowserFlagsManager
|
|
5
4
|
from osn_selenium.flags.models.base import BrowserFlags
|
|
6
5
|
from selenium.webdriver.common.bidi.session import Session
|
|
6
|
+
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
7
7
|
from typing import (
|
|
8
8
|
Any,
|
|
9
9
|
Dict,
|
|
@@ -12,10 +12,12 @@ from typing import (
|
|
|
12
12
|
Type
|
|
13
13
|
)
|
|
14
14
|
from selenium.webdriver.remote.errorhandler import ErrorHandler
|
|
15
|
-
from osn_selenium.executors.trio_threads.cdp import CDPExecutor
|
|
16
15
|
from osn_selenium.executors.trio_threads.javascript import JSExecutor
|
|
17
16
|
from selenium.webdriver.remote.locator_converter import LocatorConverter
|
|
18
17
|
from selenium.webdriver.remote.remote_connection import RemoteConnection
|
|
18
|
+
from osn_selenium.webdrivers._bridges import (
|
|
19
|
+
get_js_executor_bridge
|
|
20
|
+
)
|
|
19
21
|
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
20
22
|
from osn_selenium._typehints import (
|
|
21
23
|
ARCHITECTURES_TYPEHINT,
|
|
@@ -27,10 +29,6 @@ from osn_selenium.abstract.webdriver.core.base import (
|
|
|
27
29
|
from selenium.webdriver.remote.webdriver import (
|
|
28
30
|
WebDriver as legacyWebDriver
|
|
29
31
|
)
|
|
30
|
-
from osn_selenium.webdrivers._bridges import (
|
|
31
|
-
get_cdp_executor_bridge,
|
|
32
|
-
get_js_executor_bridge
|
|
33
|
-
)
|
|
34
32
|
|
|
35
33
|
|
|
36
34
|
__all__ = ["CoreBaseMixin"]
|
|
@@ -104,12 +102,6 @@ class CoreBaseMixin(UnifiedCoreBaseMixin, TrioThreadMixin, AbstractCoreBaseMixin
|
|
|
104
102
|
else trio.CapacityLimiter(100),
|
|
105
103
|
)
|
|
106
104
|
|
|
107
|
-
self._cdp_executor = CDPExecutor(
|
|
108
|
-
execute_function=get_cdp_executor_bridge(self),
|
|
109
|
-
lock=self._lock,
|
|
110
|
-
limiter=self._capacity_limiter,
|
|
111
|
-
)
|
|
112
|
-
|
|
113
105
|
self._js_executor = JSExecutor(
|
|
114
106
|
execute_function=get_js_executor_bridge(self),
|
|
115
107
|
lock=self._lock,
|
|
@@ -132,10 +124,6 @@ class CoreBaseMixin(UnifiedCoreBaseMixin, TrioThreadMixin, AbstractCoreBaseMixin
|
|
|
132
124
|
def caps(self, value: Dict[str, Any]) -> None:
|
|
133
125
|
self._caps_set_impl(value=value)
|
|
134
126
|
|
|
135
|
-
@property
|
|
136
|
-
def cdp(self) -> CDPExecutor:
|
|
137
|
-
return self._cdp_executor
|
|
138
|
-
|
|
139
127
|
@property
|
|
140
128
|
def command_executor(self) -> RemoteConnection:
|
|
141
129
|
return self._command_executor_get_impl()
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
from typing import
|
|
1
|
+
from typing import Optional
|
|
2
2
|
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
3
|
+
from selenium.webdriver.common.print_page_options import PrintOptions
|
|
3
4
|
from osn_selenium.webdrivers.unified.core.capture import (
|
|
4
5
|
UnifiedCoreCaptureMixin
|
|
5
6
|
)
|
|
@@ -31,7 +32,7 @@ class CoreCaptureMixin(UnifiedCoreCaptureMixin, TrioThreadMixin, AbstractCoreCap
|
|
|
31
32
|
async def page_source(self) -> str:
|
|
32
33
|
return await self.sync_to_trio(sync_function=self._page_source_impl)()
|
|
33
34
|
|
|
34
|
-
async def print_page(self, print_options: Optional[
|
|
35
|
+
async def print_page(self, print_options: Optional[PrintOptions] = None) -> str:
|
|
35
36
|
return await self.sync_to_trio(sync_function=self._print_page_impl)(print_options=print_options)
|
|
36
37
|
|
|
37
38
|
async def save_screenshot(self, filename: str) -> bool:
|
|
@@ -5,6 +5,7 @@ from typing import (
|
|
|
5
5
|
List
|
|
6
6
|
)
|
|
7
7
|
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
8
|
+
from selenium.webdriver.remote.file_detector import FileDetector
|
|
8
9
|
from osn_selenium.webdrivers.unified.core.file import UnifiedCoreFileMixin
|
|
9
10
|
from osn_selenium.abstract.webdriver.core.file import (
|
|
10
11
|
AbstractCoreFileMixin
|
|
@@ -29,11 +30,11 @@ class CoreFileMixin(UnifiedCoreFileMixin, TrioThreadMixin, AbstractCoreFileMixin
|
|
|
29
30
|
await self.sync_to_trio(sync_function=self._download_file_impl)(file_name=file_name, target_directory=target_directory)
|
|
30
31
|
|
|
31
32
|
@property
|
|
32
|
-
async def file_detector(self) ->
|
|
33
|
+
async def file_detector(self) -> FileDetector:
|
|
33
34
|
return await self.sync_to_trio(sync_function=self._file_detector_get_impl)()
|
|
34
35
|
|
|
35
36
|
@file_detector.setter
|
|
36
|
-
async def file_detector(self, value:
|
|
37
|
+
async def file_detector(self, value: FileDetector) -> None:
|
|
37
38
|
await self.sync_to_trio(sync_function=self._file_detector_set_impl)(value=value)
|
|
38
39
|
|
|
39
40
|
@asynccontextmanager
|