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
|
+
from typing import Any, Dict
|
|
2
|
+
from selenium.webdriver.remote.command import Command
|
|
3
|
+
from osn_selenium.trio_bidi._typehints import (
|
|
4
|
+
MAP_RESPONSE_FUNCTION_TYPEHINT,
|
|
5
|
+
REQUEST_PARAMS_TYPEHINT
|
|
6
|
+
)
|
|
7
|
+
from osn_selenium.trio_bidi.mapping.response_functions._args_validators import (
|
|
8
|
+
validate_javascript_error
|
|
9
|
+
)
|
|
10
|
+
from osn_selenium.trio_bidi.mapping.response_functions._args_helpers import (
|
|
11
|
+
map_js_primitive_response,
|
|
12
|
+
map_void_response
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
__all__ = ["MAPPED_RESPONSE_NAVIGATION_COMMANDS"]
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def _map_refresh_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
20
|
+
"""
|
|
21
|
+
Maps BiDi reload result to W3C void response.
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
bidi_result (Dict[str, Any]): BiDi response.
|
|
25
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
26
|
+
|
|
27
|
+
Returns:
|
|
28
|
+
Dict[str, Any]: W3C void response.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
return map_void_response(bidi_result=bidi_result, request_params=request_params)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def _map_get_title_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
35
|
+
"""
|
|
36
|
+
Maps BiDi title script result to W3C title response.
|
|
37
|
+
|
|
38
|
+
Args:
|
|
39
|
+
bidi_result (Dict[str, Any]): BiDi response with title value.
|
|
40
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
41
|
+
|
|
42
|
+
Returns:
|
|
43
|
+
Dict[str, Any]: W3C response with title string.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
javascript_error_validation = validate_javascript_error(bidi_result=bidi_result, request_params=request_params)
|
|
47
|
+
if javascript_error_validation is not None:
|
|
48
|
+
return javascript_error_validation
|
|
49
|
+
|
|
50
|
+
return map_js_primitive_response(bidi_result=bidi_result, request_params=request_params)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def _map_get_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
54
|
+
"""
|
|
55
|
+
Maps BiDi navigate result to W3C void response.
|
|
56
|
+
|
|
57
|
+
Args:
|
|
58
|
+
bidi_result (Dict[str, Any]): BiDi response.
|
|
59
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
60
|
+
|
|
61
|
+
Returns:
|
|
62
|
+
Dict[str, Any]: W3C void response.
|
|
63
|
+
"""
|
|
64
|
+
|
|
65
|
+
return map_void_response(bidi_result=bidi_result, request_params=request_params)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def _map_get_current_url_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
69
|
+
"""
|
|
70
|
+
Maps BiDi getTree result to W3C current URL response.
|
|
71
|
+
|
|
72
|
+
Args:
|
|
73
|
+
bidi_result (Dict[str, Any]): BiDi response containing browsing context info.
|
|
74
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
75
|
+
|
|
76
|
+
Returns:
|
|
77
|
+
Dict[str, Any]: W3C response with the current URL string.
|
|
78
|
+
"""
|
|
79
|
+
|
|
80
|
+
return {"value": bidi_result["contexts"][0]["url"]}
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def _map_forward_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
84
|
+
"""
|
|
85
|
+
Maps BiDi history traverse result to W3C void response.
|
|
86
|
+
|
|
87
|
+
Args:
|
|
88
|
+
bidi_result (Dict[str, Any]): BiDi response.
|
|
89
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
90
|
+
|
|
91
|
+
Returns:
|
|
92
|
+
Dict[str, Any]: W3C void response.
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
return map_void_response(bidi_result=bidi_result, request_params=request_params)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def _map_back_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
99
|
+
"""
|
|
100
|
+
Maps BiDi history traverse result to W3C void response.
|
|
101
|
+
|
|
102
|
+
Args:
|
|
103
|
+
bidi_result (Dict[str, Any]): BiDi response.
|
|
104
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
105
|
+
|
|
106
|
+
Returns:
|
|
107
|
+
Dict[str, Any]: W3C void response.
|
|
108
|
+
"""
|
|
109
|
+
|
|
110
|
+
return map_void_response(bidi_result=bidi_result, request_params=request_params)
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
MAPPED_RESPONSE_NAVIGATION_COMMANDS: Dict[str, MAP_RESPONSE_FUNCTION_TYPEHINT] = {
|
|
114
|
+
Command.GET: _map_get_response,
|
|
115
|
+
Command.GET_CURRENT_URL: _map_get_current_url_response,
|
|
116
|
+
Command.REFRESH: _map_refresh_response,
|
|
117
|
+
Command.GO_BACK: _map_back_response,
|
|
118
|
+
Command.GO_FORWARD: _map_forward_response,
|
|
119
|
+
Command.GET_TITLE: _map_get_title_response,
|
|
120
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
from selenium.webdriver.remote.command import Command
|
|
3
|
+
from osn_selenium.trio_bidi.mapping.response_functions._args_helpers import map_js_response
|
|
4
|
+
from osn_selenium.trio_bidi._typehints import (
|
|
5
|
+
MAP_RESPONSE_FUNCTION_TYPEHINT,
|
|
6
|
+
REQUEST_PARAMS_TYPEHINT
|
|
7
|
+
)
|
|
8
|
+
from osn_selenium.trio_bidi.mapping.response_functions._args_validators import (
|
|
9
|
+
validate_javascript_error
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
__all__ = ["MAPPED_RESPONSE_SCRIPT_COMMANDS"]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _map_w3c_execute_script_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
17
|
+
"""
|
|
18
|
+
Maps BiDi callFunction result back to W3C script execution result.
|
|
19
|
+
|
|
20
|
+
Args:
|
|
21
|
+
bidi_result (Dict[str, Any]): BiDi response containing 'result'.
|
|
22
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
23
|
+
|
|
24
|
+
Returns:
|
|
25
|
+
Dict[str, Any]: W3C response with the converted Python value.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
javascript_error_validation = validate_javascript_error(bidi_result=bidi_result, request_params=request_params)
|
|
29
|
+
if javascript_error_validation is not None:
|
|
30
|
+
return javascript_error_validation
|
|
31
|
+
|
|
32
|
+
return map_js_response(bidi_result=bidi_result, request_params=request_params)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def _map_w3c_execute_script_async_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
36
|
+
"""
|
|
37
|
+
Maps BiDi async callFunction result back to W3C async script execution result.
|
|
38
|
+
|
|
39
|
+
Args:
|
|
40
|
+
bidi_result (Dict[str, Any]): BiDi response containing 'result'.
|
|
41
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
42
|
+
|
|
43
|
+
Returns:
|
|
44
|
+
Dict[str, Any]: W3C response with the converted Python value.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
javascript_error_validation = validate_javascript_error(bidi_result=bidi_result, request_params=request_params)
|
|
48
|
+
if javascript_error_validation is not None:
|
|
49
|
+
return javascript_error_validation
|
|
50
|
+
|
|
51
|
+
return map_js_response(bidi_result=bidi_result, request_params=request_params)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
MAPPED_RESPONSE_SCRIPT_COMMANDS: Dict[str, MAP_RESPONSE_FUNCTION_TYPEHINT] = {
|
|
55
|
+
Command.W3C_EXECUTE_SCRIPT: _map_w3c_execute_script_response,
|
|
56
|
+
Command.W3C_EXECUTE_SCRIPT_ASYNC: _map_w3c_execute_script_async_response,
|
|
57
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
from selenium.webdriver.remote.command import Command
|
|
3
|
+
from osn_selenium.trio_bidi.mapping.response_functions._args_helpers import build_w3c_element
|
|
4
|
+
from osn_selenium.trio_bidi._typehints import (
|
|
5
|
+
MAP_RESPONSE_FUNCTION_TYPEHINT,
|
|
6
|
+
REQUEST_PARAMS_TYPEHINT
|
|
7
|
+
)
|
|
8
|
+
from osn_selenium.trio_bidi.mapping.response_functions._args_validators import (
|
|
9
|
+
validate_no_such_element
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
__all__ = ["MAPPED_RESPONSE_SHADOW_ROOT_COMMANDS"]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _map_find_elements_from_shadow_root_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
17
|
+
"""
|
|
18
|
+
Maps BiDi nodes found in shadow root to W3C list of element references.
|
|
19
|
+
|
|
20
|
+
Args:
|
|
21
|
+
bidi_result (Dict[str, Any]): BiDi result containing 'nodes'.
|
|
22
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
23
|
+
|
|
24
|
+
Returns:
|
|
25
|
+
Dict[str, Any]: W3C response with a list of element dicts.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
nodes = bidi_result.get("nodes", [])
|
|
29
|
+
value = [build_w3c_element(node["sharedId"]) for node in nodes]
|
|
30
|
+
|
|
31
|
+
return {"value": value}
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def _map_find_element_from_shadow_root_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
35
|
+
"""
|
|
36
|
+
Maps first BiDi node found in shadow root to W3C element reference.
|
|
37
|
+
|
|
38
|
+
Args:
|
|
39
|
+
bidi_result (Dict[str, Any]): BiDi result containing 'nodes'.
|
|
40
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
41
|
+
|
|
42
|
+
Returns:
|
|
43
|
+
Dict[str, Any]: W3C response with an element dict or error.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
nodes = bidi_result.get("nodes", [])
|
|
47
|
+
|
|
48
|
+
no_such_element_validation = validate_no_such_element(nodes=nodes, request_params=request_params)
|
|
49
|
+
if no_such_element_validation is not None:
|
|
50
|
+
return no_such_element_validation
|
|
51
|
+
|
|
52
|
+
return {"value": build_w3c_element(nodes[0]["sharedId"])}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
MAPPED_RESPONSE_SHADOW_ROOT_COMMANDS: Dict[str, MAP_RESPONSE_FUNCTION_TYPEHINT] = {
|
|
56
|
+
Command.FIND_ELEMENT_FROM_SHADOW_ROOT: _map_find_element_from_shadow_root_response,
|
|
57
|
+
Command.FIND_ELEMENTS_FROM_SHADOW_ROOT: _map_find_elements_from_shadow_root_response,
|
|
58
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
from selenium.webdriver.remote.command import Command
|
|
3
|
+
from osn_selenium.trio_bidi._typehints import (
|
|
4
|
+
MAP_RESPONSE_FUNCTION_TYPEHINT,
|
|
5
|
+
REQUEST_PARAMS_TYPEHINT
|
|
6
|
+
)
|
|
7
|
+
from osn_selenium.trio_bidi.mapping.response_functions._args_helpers import (
|
|
8
|
+
inject_osn_switch_context_to_response,
|
|
9
|
+
map_void_response
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
__all__ = ["MAPPED_RESPONSE_SWITCH_TO_COMMANDS"]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _map_switch_to_window_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
17
|
+
"""
|
|
18
|
+
Maps window switching result, injecting the new context ID into response.
|
|
19
|
+
|
|
20
|
+
Args:
|
|
21
|
+
bidi_result (Dict[str, Any]): BiDi context tree info.
|
|
22
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
23
|
+
|
|
24
|
+
Returns:
|
|
25
|
+
Dict[str, Any]: W3C response with context switch metadata.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
return inject_osn_switch_context_to_response(
|
|
29
|
+
response=map_void_response(bidi_result=bidi_result, request_params=request_params),
|
|
30
|
+
context_id=bidi_result["contexts"][0]["context"]
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def _map_new_window_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
35
|
+
"""
|
|
36
|
+
Maps window creation result, providing the new handle and injecting context switch.
|
|
37
|
+
|
|
38
|
+
Args:
|
|
39
|
+
bidi_result (Dict[str, Any]): BiDi creation result.
|
|
40
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
41
|
+
|
|
42
|
+
Returns:
|
|
43
|
+
Dict[str, Any]: W3C response with the handle and context switch metadata.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
return inject_osn_switch_context_to_response(
|
|
47
|
+
response={"value": {"handle": bidi_result["context"], "type": "tab"}},
|
|
48
|
+
context_id=bidi_result["context"]
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
MAPPED_RESPONSE_SWITCH_TO_COMMANDS: Dict[str, MAP_RESPONSE_FUNCTION_TYPEHINT] = {
|
|
53
|
+
Command.SWITCH_TO_WINDOW: _map_switch_to_window_response,
|
|
54
|
+
Command.NEW_WINDOW: _map_new_window_response,
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
# TODO create mappings for Command.SWITCH_TO_FRAME, Command.SWITCH_TO_PARENT_FRAME and Command.W3C_GET_ACTIVE_ELEMENT
|
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
from selenium.webdriver.remote.command import Command
|
|
3
|
+
from osn_selenium.trio_bidi._typehints import (
|
|
4
|
+
MAP_RESPONSE_FUNCTION_TYPEHINT,
|
|
5
|
+
REQUEST_PARAMS_TYPEHINT
|
|
6
|
+
)
|
|
7
|
+
from osn_selenium.trio_bidi.mapping.response_functions._args_validators import (
|
|
8
|
+
validate_element_exceptions,
|
|
9
|
+
validate_no_such_element
|
|
10
|
+
)
|
|
11
|
+
from osn_selenium.trio_bidi.mapping.response_functions._args_helpers import (
|
|
12
|
+
build_w3c_element,
|
|
13
|
+
build_w3c_shadow_root,
|
|
14
|
+
map_js_primitive_response,
|
|
15
|
+
map_js_response,
|
|
16
|
+
map_void_response
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
__all__ = ["MAPPED_RESPONSE_WEB_ELEMENT_COMMANDS"]
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _map_send_keys_to_element_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
24
|
+
"""
|
|
25
|
+
Maps keyboard input result to W3C void response.
|
|
26
|
+
|
|
27
|
+
Args:
|
|
28
|
+
bidi_result (Dict[str, Any]): BiDi response.
|
|
29
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
30
|
+
|
|
31
|
+
Returns:
|
|
32
|
+
Dict[str, Any]: W3C void response.
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
element_exceptions_validation = validate_element_exceptions(bidi_result=bidi_result, request_params=request_params)
|
|
36
|
+
if element_exceptions_validation is not None:
|
|
37
|
+
return element_exceptions_validation
|
|
38
|
+
|
|
39
|
+
return map_void_response(bidi_result=bidi_result, request_params=request_params)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def _map_is_element_selected_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
43
|
+
"""
|
|
44
|
+
Maps element selection check result.
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
bidi_result (Dict[str, Any]): BiDi script result.
|
|
48
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
49
|
+
|
|
50
|
+
Returns:
|
|
51
|
+
Dict[str, Any]: W3C boolean response.
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
element_exceptions_validation = validate_element_exceptions(bidi_result=bidi_result, request_params=request_params)
|
|
55
|
+
if element_exceptions_validation is not None:
|
|
56
|
+
return element_exceptions_validation
|
|
57
|
+
|
|
58
|
+
return map_js_primitive_response(bidi_result=bidi_result, request_params=request_params)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def _map_is_element_enabled_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
62
|
+
"""
|
|
63
|
+
Maps element enablement check result.
|
|
64
|
+
|
|
65
|
+
Args:
|
|
66
|
+
bidi_result (Dict[str, Any]): BiDi script result.
|
|
67
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
68
|
+
|
|
69
|
+
Returns:
|
|
70
|
+
Dict[str, Any]: W3C boolean response.
|
|
71
|
+
"""
|
|
72
|
+
|
|
73
|
+
element_exceptions_validation = validate_element_exceptions(bidi_result=bidi_result, request_params=request_params)
|
|
74
|
+
if element_exceptions_validation is not None:
|
|
75
|
+
return element_exceptions_validation
|
|
76
|
+
|
|
77
|
+
return map_js_primitive_response(bidi_result=bidi_result, request_params=request_params)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def _map_get_shadow_root_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
81
|
+
"""
|
|
82
|
+
Maps BiDi shadow root node result to W3C shadow root reference.
|
|
83
|
+
|
|
84
|
+
Args:
|
|
85
|
+
bidi_result (Dict[str, Any]): BiDi script result containing node.
|
|
86
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
87
|
+
|
|
88
|
+
Returns:
|
|
89
|
+
Dict[str, Any]: W3C shadow root dictionary.
|
|
90
|
+
"""
|
|
91
|
+
|
|
92
|
+
element_exceptions_validation = validate_element_exceptions(bidi_result=bidi_result, request_params=request_params)
|
|
93
|
+
if element_exceptions_validation is not None:
|
|
94
|
+
return element_exceptions_validation
|
|
95
|
+
|
|
96
|
+
remote_value = bidi_result.get("result", {})
|
|
97
|
+
shared_id = remote_value.get("sharedId")
|
|
98
|
+
|
|
99
|
+
return {"value": build_w3c_shadow_root(shared_id)}
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def _map_get_element_text_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
103
|
+
"""
|
|
104
|
+
Maps element text script result to W3C format.
|
|
105
|
+
|
|
106
|
+
Args:
|
|
107
|
+
bidi_result (Dict[str, Any]): BiDi script result.
|
|
108
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
109
|
+
|
|
110
|
+
Returns:
|
|
111
|
+
Dict[str, Any]: W3C string response.
|
|
112
|
+
"""
|
|
113
|
+
|
|
114
|
+
element_exceptions_validation = validate_element_exceptions(bidi_result=bidi_result, request_params=request_params)
|
|
115
|
+
if element_exceptions_validation is not None:
|
|
116
|
+
return element_exceptions_validation
|
|
117
|
+
|
|
118
|
+
return map_js_primitive_response(bidi_result=bidi_result, request_params=request_params)
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def _map_get_element_tag_name_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
122
|
+
"""
|
|
123
|
+
Maps element tag name script result to W3C format.
|
|
124
|
+
|
|
125
|
+
Args:
|
|
126
|
+
bidi_result (Dict[str, Any]): BiDi script result.
|
|
127
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
128
|
+
|
|
129
|
+
Returns:
|
|
130
|
+
Dict[str, Any]: W3C string response.
|
|
131
|
+
"""
|
|
132
|
+
|
|
133
|
+
element_exceptions_validation = validate_element_exceptions(bidi_result=bidi_result, request_params=request_params)
|
|
134
|
+
if element_exceptions_validation is not None:
|
|
135
|
+
return element_exceptions_validation
|
|
136
|
+
|
|
137
|
+
return map_js_primitive_response(bidi_result=bidi_result, request_params=request_params)
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
def _map_get_element_rect_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
141
|
+
"""
|
|
142
|
+
Maps element bounding rect script result to W3C rect format.
|
|
143
|
+
|
|
144
|
+
Args:
|
|
145
|
+
bidi_result (Dict[str, Any]): BiDi script result containing rect object.
|
|
146
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
147
|
+
|
|
148
|
+
Returns:
|
|
149
|
+
Dict[str, Any]: W3C response with x, y, width, height.
|
|
150
|
+
"""
|
|
151
|
+
|
|
152
|
+
element_exceptions_validation = validate_element_exceptions(bidi_result=bidi_result, request_params=request_params)
|
|
153
|
+
if element_exceptions_validation is not None:
|
|
154
|
+
return element_exceptions_validation
|
|
155
|
+
|
|
156
|
+
return map_js_response(bidi_result=bidi_result, request_params=request_params)
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
def _map_get_element_property_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
160
|
+
"""
|
|
161
|
+
Maps element property script result to W3C format.
|
|
162
|
+
|
|
163
|
+
Args:
|
|
164
|
+
bidi_result (Dict[str, Any]): BiDi script result.
|
|
165
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
166
|
+
|
|
167
|
+
Returns:
|
|
168
|
+
Dict[str, Any]: W3C response with property value.
|
|
169
|
+
"""
|
|
170
|
+
|
|
171
|
+
element_exceptions_validation = validate_element_exceptions(bidi_result=bidi_result, request_params=request_params)
|
|
172
|
+
if element_exceptions_validation is not None:
|
|
173
|
+
return element_exceptions_validation
|
|
174
|
+
|
|
175
|
+
return map_js_primitive_response(bidi_result=bidi_result, request_params=request_params)
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
def _map_get_element_css_value_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
179
|
+
"""
|
|
180
|
+
Maps computed CSS value script result to W3C format.
|
|
181
|
+
|
|
182
|
+
Args:
|
|
183
|
+
bidi_result (Dict[str, Any]): BiDi script result.
|
|
184
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
185
|
+
|
|
186
|
+
Returns:
|
|
187
|
+
Dict[str, Any]: W3C string response.
|
|
188
|
+
"""
|
|
189
|
+
|
|
190
|
+
element_exceptions_validation = validate_element_exceptions(bidi_result=bidi_result, request_params=request_params)
|
|
191
|
+
if element_exceptions_validation is not None:
|
|
192
|
+
return element_exceptions_validation
|
|
193
|
+
|
|
194
|
+
return map_js_primitive_response(bidi_result=bidi_result, request_params=request_params)
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
def _map_get_element_attribute_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
198
|
+
"""
|
|
199
|
+
Maps element attribute script result to W3C format.
|
|
200
|
+
|
|
201
|
+
Args:
|
|
202
|
+
bidi_result (Dict[str, Any]): BiDi script result.
|
|
203
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
204
|
+
|
|
205
|
+
Returns:
|
|
206
|
+
Dict[str, Any]: W3C string response.
|
|
207
|
+
"""
|
|
208
|
+
|
|
209
|
+
element_exceptions_validation = validate_element_exceptions(bidi_result=bidi_result, request_params=request_params)
|
|
210
|
+
if element_exceptions_validation is not None:
|
|
211
|
+
return element_exceptions_validation
|
|
212
|
+
|
|
213
|
+
return map_js_primitive_response(bidi_result=bidi_result, request_params=request_params)
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
def _map_get_element_aria_role_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
217
|
+
"""
|
|
218
|
+
Maps element ARIA role script result to W3C format.
|
|
219
|
+
|
|
220
|
+
Args:
|
|
221
|
+
bidi_result (Dict[str, Any]): BiDi script result.
|
|
222
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
223
|
+
|
|
224
|
+
Returns:
|
|
225
|
+
Dict[str, Any]: W3C string response.
|
|
226
|
+
"""
|
|
227
|
+
|
|
228
|
+
element_exceptions_validation = validate_element_exceptions(bidi_result=bidi_result, request_params=request_params)
|
|
229
|
+
if element_exceptions_validation is not None:
|
|
230
|
+
return element_exceptions_validation
|
|
231
|
+
|
|
232
|
+
return map_js_primitive_response(bidi_result=bidi_result, request_params=request_params)
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
def _map_get_element_aria_label_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
236
|
+
"""
|
|
237
|
+
Maps element ARIA label script result to W3C format.
|
|
238
|
+
|
|
239
|
+
Args:
|
|
240
|
+
bidi_result (Dict[str, Any]): BiDi script result.
|
|
241
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
242
|
+
|
|
243
|
+
Returns:
|
|
244
|
+
Dict[str, Any]: W3C string response.
|
|
245
|
+
"""
|
|
246
|
+
|
|
247
|
+
element_exceptions_validation = validate_element_exceptions(bidi_result=bidi_result, request_params=request_params)
|
|
248
|
+
if element_exceptions_validation is not None:
|
|
249
|
+
return element_exceptions_validation
|
|
250
|
+
|
|
251
|
+
return map_js_primitive_response(bidi_result=bidi_result, request_params=request_params)
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
def _map_find_child_elements_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
255
|
+
"""
|
|
256
|
+
Maps BiDi nodes found as children to W3C list of element references.
|
|
257
|
+
|
|
258
|
+
Args:
|
|
259
|
+
bidi_result (Dict[str, Any]): BiDi result containing 'nodes'.
|
|
260
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
261
|
+
|
|
262
|
+
Returns:
|
|
263
|
+
Dict[str, Any]: W3C response with a list of element dicts.
|
|
264
|
+
"""
|
|
265
|
+
|
|
266
|
+
element_exceptions_validation = validate_element_exceptions(bidi_result=bidi_result, request_params=request_params)
|
|
267
|
+
if element_exceptions_validation is not None:
|
|
268
|
+
return element_exceptions_validation
|
|
269
|
+
|
|
270
|
+
nodes = bidi_result.get("nodes", [])
|
|
271
|
+
value = [build_w3c_element(node["sharedId"]) for node in nodes]
|
|
272
|
+
|
|
273
|
+
return {"value": value}
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
def _map_find_child_element_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
277
|
+
"""
|
|
278
|
+
Maps first BiDi node found as child to W3C element reference, validating existence.
|
|
279
|
+
|
|
280
|
+
Args:
|
|
281
|
+
bidi_result (Dict[str, Any]): BiDi result containing 'nodes'.
|
|
282
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
283
|
+
|
|
284
|
+
Returns:
|
|
285
|
+
Dict[str, Any]: W3C response with an element dict or error.
|
|
286
|
+
"""
|
|
287
|
+
|
|
288
|
+
nodes = bidi_result.get("nodes", [])
|
|
289
|
+
|
|
290
|
+
no_such_element_validation = validate_no_such_element(nodes=nodes, request_params=request_params)
|
|
291
|
+
if no_such_element_validation is not None:
|
|
292
|
+
return no_such_element_validation
|
|
293
|
+
|
|
294
|
+
return {"value": build_w3c_element(nodes[0]["sharedId"])}
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
def _map_element_screenshot_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
298
|
+
"""
|
|
299
|
+
Extracts base64 element screenshot data from BiDi result.
|
|
300
|
+
|
|
301
|
+
Args:
|
|
302
|
+
bidi_result (Dict[str, Any]): BiDi response containing 'data'.
|
|
303
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
304
|
+
|
|
305
|
+
Returns:
|
|
306
|
+
Dict[str, Any]: W3C response with base64 data.
|
|
307
|
+
"""
|
|
308
|
+
|
|
309
|
+
return {"value": bidi_result.get("data")}
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
def _map_click_element_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
313
|
+
"""
|
|
314
|
+
Maps element click script result to W3C void response.
|
|
315
|
+
|
|
316
|
+
Args:
|
|
317
|
+
bidi_result (Dict[str, Any]): BiDi response.
|
|
318
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
319
|
+
|
|
320
|
+
Returns:
|
|
321
|
+
Dict[str, Any]: W3C void response.
|
|
322
|
+
"""
|
|
323
|
+
|
|
324
|
+
element_exceptions_validation = validate_element_exceptions(bidi_result=bidi_result, request_params=request_params)
|
|
325
|
+
if element_exceptions_validation is not None:
|
|
326
|
+
return element_exceptions_validation
|
|
327
|
+
|
|
328
|
+
return map_void_response(bidi_result=bidi_result, request_params=request_params)
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
def _map_clear_element_response(bidi_result: Dict[str, Any], request_params: REQUEST_PARAMS_TYPEHINT) -> Dict[str, Any]:
|
|
332
|
+
"""
|
|
333
|
+
Maps element clear script result to W3C void response.
|
|
334
|
+
|
|
335
|
+
Args:
|
|
336
|
+
bidi_result (Dict[str, Any]): BiDi response.
|
|
337
|
+
request_params (REQUEST_PARAMS_TYPEHINT): Original request parameters.
|
|
338
|
+
|
|
339
|
+
Returns:
|
|
340
|
+
Dict[str, Any]: W3C void response.
|
|
341
|
+
"""
|
|
342
|
+
|
|
343
|
+
element_exceptions_validation = validate_element_exceptions(bidi_result=bidi_result, request_params=request_params)
|
|
344
|
+
if element_exceptions_validation is not None:
|
|
345
|
+
return element_exceptions_validation
|
|
346
|
+
|
|
347
|
+
return map_void_response(bidi_result=bidi_result, request_params=request_params)
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
MAPPED_RESPONSE_WEB_ELEMENT_COMMANDS: Dict[str, MAP_RESPONSE_FUNCTION_TYPEHINT] = {
|
|
351
|
+
Command.GET_ELEMENT_TAG_NAME: _map_get_element_tag_name_response,
|
|
352
|
+
Command.GET_ELEMENT_TEXT: _map_get_element_text_response,
|
|
353
|
+
Command.CLICK_ELEMENT: _map_click_element_response,
|
|
354
|
+
Command.CLEAR_ELEMENT: _map_clear_element_response,
|
|
355
|
+
Command.GET_ELEMENT_PROPERTY: _map_get_element_property_response,
|
|
356
|
+
Command.GET_ELEMENT_ATTRIBUTE: _map_get_element_attribute_response,
|
|
357
|
+
Command.IS_ELEMENT_SELECTED: _map_is_element_selected_response,
|
|
358
|
+
Command.IS_ELEMENT_ENABLED: _map_is_element_enabled_response,
|
|
359
|
+
Command.SEND_KEYS_TO_ELEMENT: _map_send_keys_to_element_response,
|
|
360
|
+
Command.GET_SHADOW_ROOT: _map_get_shadow_root_response,
|
|
361
|
+
Command.GET_ELEMENT_RECT: _map_get_element_rect_response,
|
|
362
|
+
Command.GET_ELEMENT_VALUE_OF_CSS_PROPERTY: _map_get_element_css_value_response,
|
|
363
|
+
Command.GET_ELEMENT_ARIA_ROLE: _map_get_element_aria_role_response,
|
|
364
|
+
Command.GET_ELEMENT_ARIA_LABEL: _map_get_element_aria_label_response,
|
|
365
|
+
Command.ELEMENT_SCREENSHOT: _map_element_screenshot_response,
|
|
366
|
+
Command.FIND_CHILD_ELEMENT: _map_find_child_element_response,
|
|
367
|
+
Command.FIND_CHILD_ELEMENTS: _map_find_child_elements_response,
|
|
368
|
+
}
|