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
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
from types import TracebackType
|
|
1
2
|
from osn_selenium.models import WindowRect
|
|
3
|
+
from osn_selenium.flags.models.base import BrowserFlags
|
|
2
4
|
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
3
5
|
from typing import (
|
|
4
6
|
Any,
|
|
5
7
|
Dict,
|
|
6
8
|
Optional,
|
|
9
|
+
Type,
|
|
7
10
|
Union
|
|
8
11
|
)
|
|
9
|
-
from osn_selenium.flags.models.base import BrowserFlags
|
|
10
12
|
from selenium.webdriver.remote.remote_connection import RemoteConnection
|
|
11
13
|
from osn_selenium.webdrivers.unified.core.lifecycle import (
|
|
12
14
|
UnifiedCoreLifecycleMixin
|
|
@@ -27,8 +29,47 @@ class CoreLifecycleMixin(UnifiedCoreLifecycleMixin, TrioThreadMixin, AbstractCor
|
|
|
27
29
|
underlying browser instance, ensuring clean session management.
|
|
28
30
|
"""
|
|
29
31
|
|
|
30
|
-
async def
|
|
31
|
-
|
|
32
|
+
async def start_webdriver(
|
|
33
|
+
self,
|
|
34
|
+
flags: Optional[BrowserFlags] = None,
|
|
35
|
+
window_rect: Optional[WindowRect] = None,
|
|
36
|
+
) -> None:
|
|
37
|
+
await self.sync_to_trio(sync_function=self._start_webdriver_impl)(flags=flags, window_rect=window_rect)
|
|
38
|
+
|
|
39
|
+
async def __aenter__(
|
|
40
|
+
self,
|
|
41
|
+
flags: Optional[BrowserFlags] = None,
|
|
42
|
+
window_rect: Optional[WindowRect] = None,
|
|
43
|
+
) -> None:
|
|
44
|
+
await self.start_webdriver(flags=flags, window_rect=window_rect)
|
|
45
|
+
|
|
46
|
+
async def stop_webdriver(self) -> None:
|
|
47
|
+
await self.sync_to_trio(sync_function=self._stop_webdriver_impl)()
|
|
48
|
+
|
|
49
|
+
async def __aexit__(
|
|
50
|
+
self,
|
|
51
|
+
exc_type: Optional[Type[BaseException]],
|
|
52
|
+
exc_val: Optional[BaseException],
|
|
53
|
+
exc_tb: Optional[TracebackType],
|
|
54
|
+
) -> bool:
|
|
55
|
+
"""
|
|
56
|
+
Asynchronously exits the WebDriver context.
|
|
57
|
+
|
|
58
|
+
Args:
|
|
59
|
+
exc_type (Optional[Type[BaseException]]): The exception type, if any.
|
|
60
|
+
exc_val (Optional[BaseException]): The exception value, if any.
|
|
61
|
+
exc_tb (Optional[TracebackType]): The exception traceback, if any.
|
|
62
|
+
|
|
63
|
+
Returns:
|
|
64
|
+
bool: True if an exception was suppressed, False otherwise.
|
|
65
|
+
"""
|
|
66
|
+
|
|
67
|
+
await self.stop_webdriver()
|
|
68
|
+
|
|
69
|
+
if exc_type is not None and exc_val is not None and exc_tb is not None:
|
|
70
|
+
return True
|
|
71
|
+
|
|
72
|
+
return False
|
|
32
73
|
|
|
33
74
|
async def quit(self) -> None:
|
|
34
75
|
await self.sync_to_trio(sync_function=self._quit_impl)()
|
|
@@ -49,12 +90,5 @@ class CoreLifecycleMixin(UnifiedCoreLifecycleMixin, TrioThreadMixin, AbstractCor
|
|
|
49
90
|
async def start_session(self, capabilities: Dict[str, Any]) -> None:
|
|
50
91
|
await self.sync_to_trio(sync_function=self._start_session_impl)(capabilities=capabilities)
|
|
51
92
|
|
|
52
|
-
async def start_webdriver(
|
|
53
|
-
self,
|
|
54
|
-
flags: Optional[BrowserFlags] = None,
|
|
55
|
-
window_rect: Optional[WindowRect] = None,
|
|
56
|
-
) -> None:
|
|
57
|
-
await self.sync_to_trio(sync_function=self._start_webdriver_impl)(flags=flags, window_rect=window_rect)
|
|
58
|
-
|
|
59
93
|
async def stop_client(self) -> None:
|
|
60
94
|
await self.sync_to_trio(sync_function=self._stop_client_impl)()
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from typing import Any, List, Optional
|
|
2
|
+
from selenium.webdriver.remote.script_key import ScriptKey
|
|
2
3
|
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
3
4
|
from osn_selenium.instances.trio_threads.script import Script
|
|
4
5
|
from osn_selenium.instances.convert import (
|
|
@@ -42,7 +43,7 @@ class CoreScriptMixin(UnifiedCoreScriptMixin, TrioThreadMixin, AbstractCoreScrip
|
|
|
42
43
|
async def get_pinned_scripts(self) -> List[str]:
|
|
43
44
|
return await self.sync_to_trio(sync_function=self._get_pinned_scripts_impl)()
|
|
44
45
|
|
|
45
|
-
async def pin_script(self, script: str, script_key: Optional[Any] = None) ->
|
|
46
|
+
async def pin_script(self, script: str, script_key: Optional[Any] = None) -> ScriptKey:
|
|
46
47
|
return await self.sync_to_trio(sync_function=self._pin_script_impl)(script=script, script_key=script_key)
|
|
47
48
|
|
|
48
49
|
async def script(self) -> Script:
|
|
@@ -55,5 +56,5 @@ class CoreScriptMixin(UnifiedCoreScriptMixin, TrioThreadMixin, AbstractCoreScrip
|
|
|
55
56
|
limiter=self._capacity_limiter,
|
|
56
57
|
)
|
|
57
58
|
|
|
58
|
-
async def unpin(self, script_key:
|
|
59
|
+
async def unpin(self, script_key: ScriptKey) -> None:
|
|
59
60
|
await self.sync_to_trio(sync_function=self._unpin_impl)(script_key=script_key)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from typing import Optional
|
|
2
2
|
from osn_selenium.models import WindowRect
|
|
3
|
-
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
4
3
|
from osn_selenium.flags.models.base import BrowserFlags
|
|
4
|
+
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
5
5
|
from osn_selenium.webdrivers.unified.core.settings import (
|
|
6
6
|
UnifiedCoreSettingsMixin
|
|
7
7
|
)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
2
1
|
from typing import (
|
|
3
2
|
Any,
|
|
4
3
|
Dict,
|
|
5
4
|
List,
|
|
6
5
|
Optional
|
|
7
6
|
)
|
|
7
|
+
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
8
8
|
from osn_selenium.instances.trio_threads.storage import Storage
|
|
9
9
|
from osn_selenium.instances.convert import (
|
|
10
10
|
get_trio_thread_instance_wrapper
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from typing import Optional
|
|
2
|
-
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
3
2
|
from selenium.webdriver.common.timeouts import Timeouts
|
|
3
|
+
from osn_selenium.trio_threads_mixin import TrioThreadMixin
|
|
4
4
|
from osn_selenium.webdrivers.unified.core.timeouts import (
|
|
5
5
|
UnifiedCoreTimeoutsMixin
|
|
6
6
|
)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
from osn_selenium.trio_threads_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
|
|
|
@@ -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
|
)
|
|
@@ -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 Mapping, 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
|
|
@@ -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 Mapping, 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 (
|
|
@@ -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,17 +1,15 @@
|
|
|
1
|
-
from osn_selenium._cdp_import import install_cdp_hook
|
|
2
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
|
|
3
6
|
from typing import (
|
|
4
7
|
Any,
|
|
5
8
|
Dict,
|
|
6
|
-
Mapping,
|
|
9
|
+
Mapping,
|
|
10
|
+
Optional,
|
|
7
11
|
Type
|
|
8
12
|
)
|
|
9
|
-
from osn_selenium.flags.base import BrowserFlagsManager
|
|
10
|
-
from osn_selenium.flags.models.base import BrowserFlags
|
|
11
|
-
from selenium.webdriver.common.bidi.session import Session
|
|
12
|
-
from osn_selenium._typehints import (
|
|
13
|
-
ARCHITECTURES_TYPEHINT, PATH_TYPEHINT
|
|
14
|
-
)
|
|
15
13
|
from selenium.webdriver.remote.errorhandler import ErrorHandler
|
|
16
14
|
from osn_selenium.webdrivers._decorators import requires_driver
|
|
17
15
|
from selenium.webdriver.remote.locator_converter import LocatorConverter
|
|
@@ -19,6 +17,10 @@ from selenium.webdriver.remote.remote_connection import RemoteConnection
|
|
|
19
17
|
from osn_selenium.exceptions.webdriver import (
|
|
20
18
|
WebDriverNotStartedError
|
|
21
19
|
)
|
|
20
|
+
from osn_selenium._typehints import (
|
|
21
|
+
ARCHITECTURES_TYPEHINT,
|
|
22
|
+
PATH_TYPEHINT
|
|
23
|
+
)
|
|
22
24
|
from selenium.webdriver.remote.webdriver import (
|
|
23
25
|
WebDriver as legacyWebDriver
|
|
24
26
|
)
|
|
@@ -53,9 +55,13 @@ class UnifiedCoreBaseMixin:
|
|
|
53
55
|
|
|
54
56
|
if flags is not None:
|
|
55
57
|
self._webdriver_flags_manager.update_flags(flags)
|
|
56
|
-
|
|
58
|
+
|
|
57
59
|
if not getattr(self, "cdp_hook_installed", False):
|
|
58
|
-
install_cdp_hook(
|
|
60
|
+
install_cdp_hook(
|
|
61
|
+
cdp_paths=cdp_versioned_packages_paths,
|
|
62
|
+
ignore_package_missing=ignore_cdp_version_package_missing
|
|
63
|
+
)
|
|
64
|
+
|
|
59
65
|
setattr(self, "cdp_hook_installed", True)
|
|
60
66
|
|
|
61
67
|
@property
|
|
@@ -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
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from contextlib import contextmanager
|
|
2
2
|
from typing import Any, Generator, List
|
|
3
3
|
from osn_selenium.webdrivers._decorators import requires_driver
|
|
4
|
+
from selenium.webdriver.remote.file_detector import FileDetector
|
|
4
5
|
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
5
6
|
|
|
6
7
|
|
|
@@ -23,11 +24,11 @@ class UnifiedCoreFileMixin(UnifiedCoreBaseMixin):
|
|
|
23
24
|
yield file_detector
|
|
24
25
|
|
|
25
26
|
@requires_driver
|
|
26
|
-
def _file_detector_get_impl(self) ->
|
|
27
|
+
def _file_detector_get_impl(self) -> FileDetector:
|
|
27
28
|
return self._driver_impl.file_detector
|
|
28
29
|
|
|
29
30
|
@requires_driver
|
|
30
|
-
def _file_detector_set_impl(self, value:
|
|
31
|
+
def _file_detector_set_impl(self, value: FileDetector) -> None:
|
|
31
32
|
self._driver_impl.file_detector = value
|
|
32
33
|
|
|
33
34
|
@requires_driver
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
from types import TracebackType
|
|
1
2
|
from osn_selenium.models import WindowRect
|
|
3
|
+
from osn_selenium.flags.models.base import BrowserFlags
|
|
2
4
|
from typing import (
|
|
3
5
|
Any,
|
|
4
6
|
Dict,
|
|
5
7
|
Optional,
|
|
8
|
+
Type,
|
|
6
9
|
Union
|
|
7
10
|
)
|
|
8
|
-
from osn_selenium.flags.models.base import BrowserFlags
|
|
9
11
|
from osn_selenium.webdrivers._decorators import requires_driver
|
|
10
12
|
from selenium.webdriver.remote.remote_connection import RemoteConnection
|
|
11
13
|
from osn_selenium.exceptions.logic import (
|
|
@@ -56,7 +58,7 @@ class UnifiedCoreLifecycleMixin(UnifiedCoreSettingsMixin, UnifiedCoreTimeoutsMix
|
|
|
56
58
|
def _quit_impl(self) -> None:
|
|
57
59
|
self._driver_impl.quit()
|
|
58
60
|
|
|
59
|
-
def
|
|
61
|
+
def _stop_webdriver_impl(self) -> None:
|
|
60
62
|
if self._driver_impl is not None:
|
|
61
63
|
self._quit_impl()
|
|
62
64
|
|
|
@@ -68,7 +70,7 @@ class UnifiedCoreLifecycleMixin(UnifiedCoreSettingsMixin, UnifiedCoreTimeoutsMix
|
|
|
68
70
|
flags: Optional[BrowserFlags] = None,
|
|
69
71
|
window_rect: Optional[WindowRect] = None,
|
|
70
72
|
) -> None:
|
|
71
|
-
self.
|
|
73
|
+
self._stop_webdriver_impl()
|
|
72
74
|
self._start_webdriver_impl(flags=flags, window_rect=window_rect)
|
|
73
75
|
|
|
74
76
|
@requires_driver
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
from typing import Any, List, Optional
|
|
2
|
+
from selenium.webdriver.common.bidi.script import Script
|
|
3
|
+
from selenium.webdriver.remote.script_key import ScriptKey
|
|
2
4
|
from osn_selenium.webdrivers._decorators import requires_driver
|
|
3
5
|
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
4
6
|
|
|
@@ -20,13 +22,13 @@ class UnifiedCoreScriptMixin(UnifiedCoreBaseMixin):
|
|
|
20
22
|
return self._driver_impl.get_pinned_scripts()
|
|
21
23
|
|
|
22
24
|
@requires_driver
|
|
23
|
-
def _pin_script_impl(self, script: str, script_key: Optional[Any] = None) ->
|
|
25
|
+
def _pin_script_impl(self, script: str, script_key: Optional[Any] = None) -> ScriptKey:
|
|
24
26
|
return self._driver_impl.pin_script(script=script, script_key=script_key)
|
|
25
27
|
|
|
26
28
|
@requires_driver
|
|
27
|
-
def _script_impl(self) ->
|
|
29
|
+
def _script_impl(self) -> Script:
|
|
28
30
|
return self._driver_impl.script
|
|
29
31
|
|
|
30
32
|
@requires_driver
|
|
31
|
-
def _unpin_impl(self, script_key:
|
|
33
|
+
def _unpin_impl(self, script_key: ScriptKey) -> None:
|
|
32
34
|
self._driver_impl.unpin(script_key=script_key)
|
|
@@ -4,6 +4,7 @@ from typing import (
|
|
|
4
4
|
List,
|
|
5
5
|
Optional
|
|
6
6
|
)
|
|
7
|
+
from selenium.webdriver.common.bidi.storage import Storage
|
|
7
8
|
from osn_selenium.webdrivers._decorators import requires_driver
|
|
8
9
|
from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
|
|
9
10
|
|
|
@@ -33,5 +34,5 @@ class UnifiedCoreStorageMixin(UnifiedCoreBaseMixin):
|
|
|
33
34
|
return self._driver_impl.get_cookies()
|
|
34
35
|
|
|
35
36
|
@requires_driver
|
|
36
|
-
def _storage_impl(self) ->
|
|
37
|
+
def _storage_impl(self) -> Storage:
|
|
37
38
|
return self._driver_impl.storage
|