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,71 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
from selenium.webdriver.remote.command import Command
|
|
3
|
+
from osn_selenium.trio_bidi.mapping._js_snippets import CAPTURE
|
|
4
|
+
from osn_selenium.trio_bidi._typehints import (
|
|
5
|
+
MAP_REQUEST_FUNCTION_TYPEHINT,
|
|
6
|
+
REQUEST_PARAMS_TYPEHINT
|
|
7
|
+
)
|
|
8
|
+
from osn_selenium.trio_bidi.mapping.request_functions._args_helpers import (
|
|
9
|
+
build_script_evaluate_request
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
__all__ = ["MAPPED_REQUEST_CAPTURE_COMMANDS"]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _map_screenshot_request(params: REQUEST_PARAMS_TYPEHINT, context_id: str) -> Dict[str, Any]:
|
|
17
|
+
"""
|
|
18
|
+
Maps the screenshot command to BiDi 'captureScreenshot'.
|
|
19
|
+
|
|
20
|
+
Args:
|
|
21
|
+
params (REQUEST_PARAMS_TYPEHINT): Request parameters.
|
|
22
|
+
context_id (str): The browsing context ID.
|
|
23
|
+
|
|
24
|
+
Returns:
|
|
25
|
+
Dict[str, Any]: The BiDi request.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
return {
|
|
29
|
+
"method": "browsingContext.captureScreenshot",
|
|
30
|
+
"params": {"context": context_id}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def _map_print_page_request(params: REQUEST_PARAMS_TYPEHINT, context_id: str) -> Dict[str, Any]:
|
|
35
|
+
"""
|
|
36
|
+
Maps the print command to BiDi 'browsingContext.print'.
|
|
37
|
+
|
|
38
|
+
Args:
|
|
39
|
+
params (REQUEST_PARAMS_TYPEHINT): Print parameters.
|
|
40
|
+
context_id (str): The browsing context ID.
|
|
41
|
+
|
|
42
|
+
Returns:
|
|
43
|
+
Dict[str, Any]: The BiDi request.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
return {
|
|
47
|
+
"method": "browsingContext.print",
|
|
48
|
+
"params": {"context": context_id, **params}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def _map_get_page_source_request(params: REQUEST_PARAMS_TYPEHINT, context_id: str) -> Dict[str, Any]:
|
|
53
|
+
"""
|
|
54
|
+
Maps the get page source command to a JS evaluation.
|
|
55
|
+
|
|
56
|
+
Args:
|
|
57
|
+
params (REQUEST_PARAMS_TYPEHINT): Request parameters.
|
|
58
|
+
context_id (str): The browsing context ID.
|
|
59
|
+
|
|
60
|
+
Returns:
|
|
61
|
+
Dict[str, Any]: The BiDi request.
|
|
62
|
+
"""
|
|
63
|
+
|
|
64
|
+
return build_script_evaluate_request(context_id=context_id, expression=CAPTURE.GET_PAGE_SOURCE)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
MAPPED_REQUEST_CAPTURE_COMMANDS: Dict[str, MAP_REQUEST_FUNCTION_TYPEHINT] = {
|
|
68
|
+
Command.SCREENSHOT: _map_screenshot_request,
|
|
69
|
+
Command.GET_PAGE_SOURCE: _map_get_page_source_request,
|
|
70
|
+
Command.PRINT_PAGE: _map_print_page_request,
|
|
71
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
from osn_selenium.trio_bidi._typehints import (
|
|
3
|
+
CURRENT_BROWSING_CONTEXT_TYPEHINT,
|
|
4
|
+
MAP_REQUEST_FUNCTION_TYPEHINT,
|
|
5
|
+
REQUEST_PARAMS_TYPEHINT
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
__all__ = ["MAPPED_REQUEST_CDP_COMMANDS"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def _execute_cdp_command(
|
|
13
|
+
params: REQUEST_PARAMS_TYPEHINT,
|
|
14
|
+
context_id: CURRENT_BROWSING_CONTEXT_TYPEHINT,
|
|
15
|
+
) -> Dict[str, Any]:
|
|
16
|
+
"""
|
|
17
|
+
Maps a generic CDP send command to the BiDi Chrome-specific protocol.
|
|
18
|
+
|
|
19
|
+
Args:
|
|
20
|
+
params (Optional[Dict[str, Any]]): Parameters containing 'cmd' and 'params'.
|
|
21
|
+
context_id (Optional[str]): The target browsing context ID.
|
|
22
|
+
|
|
23
|
+
Returns:
|
|
24
|
+
Dict[str, Any]: The mapped BiDi request.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
cdp_method = params.get("cmd", "")
|
|
28
|
+
cdp_params = params.get("params", {})
|
|
29
|
+
|
|
30
|
+
return {
|
|
31
|
+
"method": "goog:cdp.sendCommand",
|
|
32
|
+
"params": {
|
|
33
|
+
"method": cdp_method,
|
|
34
|
+
"params": cdp_params,
|
|
35
|
+
"browsingContext": context_id,
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
MAPPED_REQUEST_CDP_COMMANDS: Dict[str, MAP_REQUEST_FUNCTION_TYPEHINT] = {"executeCdpCommand": _execute_cdp_command}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
from selenium.webdriver.remote.command import Command
|
|
3
|
+
from osn_selenium.trio_bidi.mapping.request_functions._args_helpers import (
|
|
4
|
+
build_locate_nodes_request
|
|
5
|
+
)
|
|
6
|
+
from osn_selenium.trio_bidi._typehints import (
|
|
7
|
+
CURRENT_BROWSING_CONTEXT_TYPEHINT,
|
|
8
|
+
MAP_REQUEST_FUNCTION_TYPEHINT,
|
|
9
|
+
REQUEST_PARAMS_TYPEHINT
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
__all__ = ["MAPPED_REQUEST_ELEMENT_COMMANDS"]
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def _map_find_elements_request(
|
|
17
|
+
params: REQUEST_PARAMS_TYPEHINT,
|
|
18
|
+
context_id: CURRENT_BROWSING_CONTEXT_TYPEHINT
|
|
19
|
+
) -> Dict[str, Any]:
|
|
20
|
+
"""
|
|
21
|
+
Maps the 'find elements' command to BiDi 'locateNodes'.
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
params (REQUEST_PARAMS_TYPEHINT): Strategy and value.
|
|
25
|
+
context_id (CURRENT_BROWSING_CONTEXT_TYPEHINT): The browsing context ID.
|
|
26
|
+
|
|
27
|
+
Returns:
|
|
28
|
+
Dict[str, Any]: The BiDi request.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
return build_locate_nodes_request(context_id=context_id, params=params)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def _map_find_element_request(
|
|
35
|
+
params: REQUEST_PARAMS_TYPEHINT,
|
|
36
|
+
context_id: CURRENT_BROWSING_CONTEXT_TYPEHINT
|
|
37
|
+
) -> Dict[str, Any]:
|
|
38
|
+
"""
|
|
39
|
+
Maps the 'find element' command to BiDi 'locateNodes' with max count of 1.
|
|
40
|
+
|
|
41
|
+
Args:
|
|
42
|
+
params (REQUEST_PARAMS_TYPEHINT): Strategy and value.
|
|
43
|
+
context_id (CURRENT_BROWSING_CONTEXT_TYPEHINT): The browsing context ID.
|
|
44
|
+
|
|
45
|
+
Returns:
|
|
46
|
+
Dict[str, Any]: The BiDi request.
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
return build_locate_nodes_request(context_id=context_id, params=params, max_nodes=1)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
MAPPED_REQUEST_ELEMENT_COMMANDS: Dict[str, MAP_REQUEST_FUNCTION_TYPEHINT] = {
|
|
53
|
+
Command.FIND_ELEMENT: _map_find_element_request,
|
|
54
|
+
Command.FIND_ELEMENTS: _map_find_elements_request
|
|
55
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
from selenium.webdriver.remote.command import Command
|
|
3
|
+
from osn_selenium.trio_bidi._internal_mappings import UPLOAD_INTERNAL_FILE
|
|
4
|
+
from osn_selenium.trio_bidi._typehints import (
|
|
5
|
+
CURRENT_BROWSING_CONTEXT_TYPEHINT,
|
|
6
|
+
MAP_REQUEST_FUNCTION_TYPEHINT,
|
|
7
|
+
REQUEST_PARAMS_TYPEHINT
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
__all__ = ["MAPPED_REQUEST_FILE_COMMANDS"]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def _map_upload_file_request(
|
|
15
|
+
params: REQUEST_PARAMS_TYPEHINT,
|
|
16
|
+
context_id: CURRENT_BROWSING_CONTEXT_TYPEHINT
|
|
17
|
+
) -> Dict[str, Any]:
|
|
18
|
+
"""
|
|
19
|
+
Maps the file upload command to an internal bridge command.
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
params (REQUEST_PARAMS_TYPEHINT): Request parameters.
|
|
23
|
+
context_id (CURRENT_BROWSING_CONTEXT_TYPEHINT): The browsing context ID.
|
|
24
|
+
|
|
25
|
+
Returns:
|
|
26
|
+
Dict[str, Any]: The internal BiDi request.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
return {"method": UPLOAD_INTERNAL_FILE, "params": {}}
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
MAPPED_REQUEST_FILE_COMMANDS: Dict[str, MAP_REQUEST_FUNCTION_TYPEHINT] = {Command.UPLOAD_FILE: _map_upload_file_request}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
from selenium.webdriver.remote.command import Command
|
|
3
|
+
from osn_selenium.trio_bidi.mapping._js_snippets import NAVIGATION
|
|
4
|
+
from osn_selenium.trio_bidi.mapping.request_functions._args_helpers import (
|
|
5
|
+
build_script_evaluate_request
|
|
6
|
+
)
|
|
7
|
+
from osn_selenium.trio_bidi._typehints import (
|
|
8
|
+
CURRENT_BROWSING_CONTEXT_TYPEHINT,
|
|
9
|
+
MAP_REQUEST_FUNCTION_TYPEHINT,
|
|
10
|
+
REQUEST_PARAMS_TYPEHINT
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
__all__ = ["MAPPED_REQUEST_NAVIGATION_COMMANDS"]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def _map_refresh_request(
|
|
18
|
+
params: REQUEST_PARAMS_TYPEHINT,
|
|
19
|
+
context_id: CURRENT_BROWSING_CONTEXT_TYPEHINT
|
|
20
|
+
) -> Dict[str, Any]:
|
|
21
|
+
"""
|
|
22
|
+
Maps the refresh command to BiDi 'browsingContext.reload'.
|
|
23
|
+
|
|
24
|
+
Args:
|
|
25
|
+
params (REQUEST_PARAMS_TYPEHINT): Request parameters.
|
|
26
|
+
context_id (CURRENT_BROWSING_CONTEXT_TYPEHINT): The browsing context ID.
|
|
27
|
+
|
|
28
|
+
Returns:
|
|
29
|
+
Dict[str, Any]: The BiDi request.
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
return {
|
|
33
|
+
"method": "browsingContext.reload",
|
|
34
|
+
"params": {"context": context_id, "ignoreCache": True, "wait": "interactive"}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def _map_get_title_request(
|
|
39
|
+
params: REQUEST_PARAMS_TYPEHINT,
|
|
40
|
+
context_id: CURRENT_BROWSING_CONTEXT_TYPEHINT
|
|
41
|
+
) -> Dict[str, Any]:
|
|
42
|
+
"""
|
|
43
|
+
Maps the get title command to a JS evaluation.
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
params (REQUEST_PARAMS_TYPEHINT): Request parameters.
|
|
47
|
+
context_id (CURRENT_BROWSING_CONTEXT_TYPEHINT): The browsing context ID.
|
|
48
|
+
|
|
49
|
+
Returns:
|
|
50
|
+
Dict[str, Any]: The BiDi request.
|
|
51
|
+
"""
|
|
52
|
+
|
|
53
|
+
return build_script_evaluate_request(context_id=context_id, expression=NAVIGATION.GET_TITLE)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def _map_get_request(
|
|
57
|
+
params: REQUEST_PARAMS_TYPEHINT,
|
|
58
|
+
context_id: CURRENT_BROWSING_CONTEXT_TYPEHINT
|
|
59
|
+
) -> Dict[str, Any]:
|
|
60
|
+
"""
|
|
61
|
+
Maps the navigate command to BiDi 'browsingContext.navigate'.
|
|
62
|
+
|
|
63
|
+
Args:
|
|
64
|
+
params (REQUEST_PARAMS_TYPEHINT): Parameters containing 'url'.
|
|
65
|
+
context_id (CURRENT_BROWSING_CONTEXT_TYPEHINT): The browsing context ID.
|
|
66
|
+
|
|
67
|
+
Returns:
|
|
68
|
+
Dict[str, Any]: The BiDi request.
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
return {
|
|
72
|
+
"method": "browsingContext.navigate",
|
|
73
|
+
"params": {"context": context_id, "url": params["url"], "wait": "interactive"}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def _map_get_current_url_request(
|
|
78
|
+
params: REQUEST_PARAMS_TYPEHINT,
|
|
79
|
+
context_id: CURRENT_BROWSING_CONTEXT_TYPEHINT
|
|
80
|
+
) -> Dict[str, Any]:
|
|
81
|
+
"""
|
|
82
|
+
Maps the get current URL command to BiDi 'browsingContext.getTree'.
|
|
83
|
+
|
|
84
|
+
Args:
|
|
85
|
+
params (REQUEST_PARAMS_TYPEHINT): Request parameters.
|
|
86
|
+
context_id (CURRENT_BROWSING_CONTEXT_TYPEHINT): The browsing context ID.
|
|
87
|
+
|
|
88
|
+
Returns:
|
|
89
|
+
Dict[str, Any]: The BiDi request.
|
|
90
|
+
"""
|
|
91
|
+
|
|
92
|
+
return {
|
|
93
|
+
"method": "browsingContext.getTree",
|
|
94
|
+
"params": {"root": context_id, "maxDepth": 0}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def _map_forward_request(
|
|
99
|
+
params: REQUEST_PARAMS_TYPEHINT,
|
|
100
|
+
context_id: CURRENT_BROWSING_CONTEXT_TYPEHINT
|
|
101
|
+
) -> Dict[str, Any]:
|
|
102
|
+
"""
|
|
103
|
+
Maps the forward history command to BiDi history traversal.
|
|
104
|
+
|
|
105
|
+
Args:
|
|
106
|
+
params (REQUEST_PARAMS_TYPEHINT): Request parameters.
|
|
107
|
+
context_id (CURRENT_BROWSING_CONTEXT_TYPEHINT): The browsing context ID.
|
|
108
|
+
|
|
109
|
+
Returns:
|
|
110
|
+
Dict[str, Any]: The BiDi request.
|
|
111
|
+
"""
|
|
112
|
+
|
|
113
|
+
return {
|
|
114
|
+
"method": "browsingContext.traverseHistory",
|
|
115
|
+
"params": {"context": context_id, "delta": 1}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def _map_back_request(
|
|
120
|
+
params: REQUEST_PARAMS_TYPEHINT,
|
|
121
|
+
context_id: CURRENT_BROWSING_CONTEXT_TYPEHINT
|
|
122
|
+
) -> Dict[str, Any]:
|
|
123
|
+
"""
|
|
124
|
+
Maps the back history command to BiDi history traversal.
|
|
125
|
+
|
|
126
|
+
Args:
|
|
127
|
+
params (REQUEST_PARAMS_TYPEHINT): Request parameters.
|
|
128
|
+
context_id (CURRENT_BROWSING_CONTEXT_TYPEHINT): The browsing context ID.
|
|
129
|
+
|
|
130
|
+
Returns:
|
|
131
|
+
Dict[str, Any]: The BiDi request.
|
|
132
|
+
"""
|
|
133
|
+
|
|
134
|
+
return {
|
|
135
|
+
"method": "browsingContext.traverseHistory",
|
|
136
|
+
"params": {"context": context_id, "delta": -1}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
MAPPED_REQUEST_NAVIGATION_COMMANDS: Dict[str, MAP_REQUEST_FUNCTION_TYPEHINT] = {
|
|
141
|
+
Command.GET: _map_get_request,
|
|
142
|
+
Command.GET_CURRENT_URL: _map_get_current_url_request,
|
|
143
|
+
Command.REFRESH: _map_refresh_request,
|
|
144
|
+
Command.GO_BACK: _map_back_request,
|
|
145
|
+
Command.GO_FORWARD: _map_forward_request,
|
|
146
|
+
Command.GET_TITLE: _map_get_title_request,
|
|
147
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
from selenium.webdriver.remote.command import Command
|
|
3
|
+
from osn_selenium.trio_bidi.mapping.request_functions._args_helpers import (
|
|
4
|
+
build_script_call_request,
|
|
5
|
+
convert_w3c_to_bidi_js
|
|
6
|
+
)
|
|
7
|
+
from osn_selenium.trio_bidi._typehints import (
|
|
8
|
+
CURRENT_BROWSING_CONTEXT_TYPEHINT,
|
|
9
|
+
MAP_REQUEST_FUNCTION_TYPEHINT,
|
|
10
|
+
REQUEST_PARAMS_TYPEHINT
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
__all__ = ["MAPPED_REQUEST_SCRIPT_COMMANDS"]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def _map_w3c_execute_script_request(
|
|
18
|
+
params: REQUEST_PARAMS_TYPEHINT,
|
|
19
|
+
context_id: CURRENT_BROWSING_CONTEXT_TYPEHINT
|
|
20
|
+
) -> Dict[str, Any]:
|
|
21
|
+
"""
|
|
22
|
+
Maps synchronous script execution to BiDi 'script.callFunction'.
|
|
23
|
+
|
|
24
|
+
Args:
|
|
25
|
+
params (REQUEST_PARAMS_TYPEHINT): Script and arguments.
|
|
26
|
+
context_id (CURRENT_BROWSING_CONTEXT_TYPEHINT): The browsing context ID.
|
|
27
|
+
|
|
28
|
+
Returns:
|
|
29
|
+
Dict[str, Any]: The BiDi request.
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
script = params.get("script", "")
|
|
33
|
+
args = params.get("args", [])
|
|
34
|
+
bidi_args = [convert_w3c_to_bidi_js(w3c_value=arg) for arg in args]
|
|
35
|
+
|
|
36
|
+
return build_script_call_request(
|
|
37
|
+
context_id=context_id,
|
|
38
|
+
function=f"function() {{ {script} }}",
|
|
39
|
+
args=bidi_args,
|
|
40
|
+
ownership="none",
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def _map_w3c_execute_script_async_request(
|
|
45
|
+
params: REQUEST_PARAMS_TYPEHINT,
|
|
46
|
+
context_id: CURRENT_BROWSING_CONTEXT_TYPEHINT
|
|
47
|
+
) -> Dict[str, Any]:
|
|
48
|
+
"""
|
|
49
|
+
Maps asynchronous script execution to a Promise-based BiDi 'script.callFunction'.
|
|
50
|
+
|
|
51
|
+
Args:
|
|
52
|
+
params (REQUEST_PARAMS_TYPEHINT): Script and arguments.
|
|
53
|
+
context_id (CURRENT_BROWSING_CONTEXT_TYPEHINT): The browsing context ID.
|
|
54
|
+
|
|
55
|
+
Returns:
|
|
56
|
+
Dict[str, Any]: The BiDi request.
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
script = params.get("script", "")
|
|
60
|
+
args = params.get("args", [])
|
|
61
|
+
bidi_args = [convert_w3c_to_bidi_js(w3c_value=arg) for arg in args]
|
|
62
|
+
|
|
63
|
+
wrapper_script = f"""
|
|
64
|
+
function() {{
|
|
65
|
+
return new Promise((resolve) => {{
|
|
66
|
+
const args = Array.from(arguments);
|
|
67
|
+
const callback = (result) => resolve(result);
|
|
68
|
+
args.push(callback);
|
|
69
|
+
(function() {{ {script} }}).apply(null, args);
|
|
70
|
+
}});
|
|
71
|
+
}}
|
|
72
|
+
"""
|
|
73
|
+
|
|
74
|
+
return build_script_call_request(
|
|
75
|
+
context_id=context_id,
|
|
76
|
+
function=wrapper_script,
|
|
77
|
+
args=bidi_args,
|
|
78
|
+
ownership="none",
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
MAPPED_REQUEST_SCRIPT_COMMANDS: Dict[str, MAP_REQUEST_FUNCTION_TYPEHINT] = {
|
|
83
|
+
Command.W3C_EXECUTE_SCRIPT: _map_w3c_execute_script_request,
|
|
84
|
+
Command.W3C_EXECUTE_SCRIPT_ASYNC: _map_w3c_execute_script_async_request,
|
|
85
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
from selenium.webdriver.remote.command import Command
|
|
3
|
+
from osn_selenium.trio_bidi.mapping.request_functions._args_helpers import (
|
|
4
|
+
build_locate_nodes_request,
|
|
5
|
+
get_shadow_root_argument
|
|
6
|
+
)
|
|
7
|
+
from osn_selenium.trio_bidi._typehints import (
|
|
8
|
+
CURRENT_BROWSING_CONTEXT_TYPEHINT,
|
|
9
|
+
MAP_REQUEST_FUNCTION_TYPEHINT,
|
|
10
|
+
REQUEST_PARAMS_TYPEHINT
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
__all__ = ["MAPPED_REQUEST_SHADOW_ROOT_COMMANDS"]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def _map_find_elements_from_shadow_root_request(
|
|
18
|
+
params: REQUEST_PARAMS_TYPEHINT,
|
|
19
|
+
context_id: CURRENT_BROWSING_CONTEXT_TYPEHINT
|
|
20
|
+
) -> Dict[str, Any]:
|
|
21
|
+
"""
|
|
22
|
+
Maps the find elements from shadow root command to BiDi 'locateNodes'.
|
|
23
|
+
|
|
24
|
+
Args:
|
|
25
|
+
params (REQUEST_PARAMS_TYPEHINT): Strategy, value and shadow ID.
|
|
26
|
+
context_id (CURRENT_BROWSING_CONTEXT_TYPEHINT): The browsing context ID.
|
|
27
|
+
|
|
28
|
+
Returns:
|
|
29
|
+
Dict[str, Any]: The BiDi request.
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
return build_locate_nodes_request(
|
|
33
|
+
context_id=context_id,
|
|
34
|
+
params=params,
|
|
35
|
+
start_nodes=[get_shadow_root_argument(params=params)],
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def _map_find_element_from_shadow_root_request(
|
|
40
|
+
params: REQUEST_PARAMS_TYPEHINT,
|
|
41
|
+
context_id: CURRENT_BROWSING_CONTEXT_TYPEHINT
|
|
42
|
+
) -> Dict[str, Any]:
|
|
43
|
+
"""
|
|
44
|
+
Maps the find element from shadow root command to BiDi 'locateNodes' (max 1).
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
params (REQUEST_PARAMS_TYPEHINT): Strategy, value and shadow ID.
|
|
48
|
+
context_id (CURRENT_BROWSING_CONTEXT_TYPEHINT): The browsing context ID.
|
|
49
|
+
|
|
50
|
+
Returns:
|
|
51
|
+
Dict[str, Any]: The BiDi request.
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
return build_locate_nodes_request(
|
|
55
|
+
context_id=context_id,
|
|
56
|
+
params=params,
|
|
57
|
+
max_nodes=1,
|
|
58
|
+
start_nodes=[get_shadow_root_argument(params=params)],
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
MAPPED_REQUEST_SHADOW_ROOT_COMMANDS: Dict[str, MAP_REQUEST_FUNCTION_TYPEHINT] = {
|
|
63
|
+
Command.FIND_ELEMENT_FROM_SHADOW_ROOT: _map_find_element_from_shadow_root_request,
|
|
64
|
+
Command.FIND_ELEMENTS_FROM_SHADOW_ROOT: _map_find_elements_from_shadow_root_request,
|
|
65
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
from typing import Any, Dict
|
|
2
|
+
from selenium.webdriver.remote.command import Command
|
|
3
|
+
from osn_selenium.trio_bidi._typehints import (
|
|
4
|
+
CURRENT_BROWSING_CONTEXT_TYPEHINT,
|
|
5
|
+
MAP_REQUEST_FUNCTION_TYPEHINT,
|
|
6
|
+
REQUEST_PARAMS_TYPEHINT
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
__all__ = ["MAPPED_REQUEST_SWITCH_TO_COMMANDS"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def _map_switch_to_window_request(
|
|
14
|
+
params: REQUEST_PARAMS_TYPEHINT,
|
|
15
|
+
context_id: CURRENT_BROWSING_CONTEXT_TYPEHINT
|
|
16
|
+
) -> Dict[str, Any]:
|
|
17
|
+
"""
|
|
18
|
+
Maps switch to window command to BiDi 'browsingContext.getTree'.
|
|
19
|
+
|
|
20
|
+
Args:
|
|
21
|
+
params (REQUEST_PARAMS_TYPEHINT): Parameters containing 'handle'.
|
|
22
|
+
context_id (CURRENT_BROWSING_CONTEXT_TYPEHINT): The current browsing context ID.
|
|
23
|
+
|
|
24
|
+
Returns:
|
|
25
|
+
Dict[str, Any]: The BiDi request.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
target_handle = params.get("handle")
|
|
29
|
+
|
|
30
|
+
return {
|
|
31
|
+
"method": "browsingContext.getTree",
|
|
32
|
+
"params": {"root": target_handle, "maxDepth": 0}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def _map_new_window_request(
|
|
37
|
+
params: REQUEST_PARAMS_TYPEHINT,
|
|
38
|
+
context_id: CURRENT_BROWSING_CONTEXT_TYPEHINT
|
|
39
|
+
) -> Dict[str, Any]:
|
|
40
|
+
"""
|
|
41
|
+
Maps new window command to BiDi 'browsingContext.create'.
|
|
42
|
+
|
|
43
|
+
Args:
|
|
44
|
+
params (REQUEST_PARAMS_TYPEHINT): Request parameters.
|
|
45
|
+
context_id (CURRENT_BROWSING_CONTEXT_TYPEHINT): The browsing context ID.
|
|
46
|
+
|
|
47
|
+
Returns:
|
|
48
|
+
Dict[str, Any]: The BiDi request.
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
return {"method": "browsingContext.create", "params": {"type": "tab"}}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
MAPPED_REQUEST_SWITCH_TO_COMMANDS: Dict[str, MAP_REQUEST_FUNCTION_TYPEHINT] = {
|
|
55
|
+
Command.SWITCH_TO_WINDOW: _map_switch_to_window_request,
|
|
56
|
+
Command.NEW_WINDOW: _map_new_window_request,
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
# TODO create mappings for Command.SWITCH_TO_FRAME, Command.SWITCH_TO_PARENT_FRAME and Command.W3C_GET_ACTIVE_ELEMENT
|