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.
Files changed (418) hide show
  1. osn_selenium/_decorators.py +57 -0
  2. osn_selenium/_trio_threads_helpers.py +157 -0
  3. osn_selenium/_typehints.py +1 -1
  4. osn_selenium/abstract/webdriver/blink/base.py +14 -0
  5. osn_selenium/abstract/webdriver/blink/lifecycle.py +8 -8
  6. osn_selenium/abstract/webdriver/core/base.py +0 -14
  7. osn_selenium/abstract/webdriver/core/capture.py +4 -3
  8. osn_selenium/abstract/webdriver/core/lifecycle.py +8 -8
  9. osn_selenium/abstract/webdriver/core/script.py +5 -4
  10. osn_selenium/abstract/webdriver/core/window.py +11 -11
  11. osn_selenium/dev_tools/_decorators.py +1 -42
  12. osn_selenium/dev_tools/_functions.py +2 -4
  13. osn_selenium/dev_tools/domains/__init__.py +1 -1
  14. osn_selenium/dev_tools/domains/fetch.py +5 -7
  15. osn_selenium/dev_tools/domains_default/fetch.py +1 -1
  16. osn_selenium/dev_tools/logger/main.py +9 -9
  17. osn_selenium/dev_tools/logger/target.py +7 -7
  18. osn_selenium/dev_tools/manager/base.py +10 -19
  19. osn_selenium/dev_tools/manager/lifecycle.py +83 -74
  20. osn_selenium/dev_tools/manager/logging.py +1 -1
  21. osn_selenium/dev_tools/manager/targets.py +13 -5
  22. osn_selenium/dev_tools/settings.py +4 -4
  23. osn_selenium/dev_tools/target/base.py +18 -11
  24. osn_selenium/dev_tools/target/discovery.py +1 -1
  25. osn_selenium/dev_tools/target/events.py +2 -2
  26. osn_selenium/dev_tools/target/fingerprint.py +1 -1
  27. osn_selenium/dev_tools/target/lifecycle.py +103 -43
  28. osn_selenium/dev_tools/target/logging.py +1 -1
  29. osn_selenium/exceptions/__init__.py +0 -1
  30. osn_selenium/exceptions/base.py +28 -1
  31. osn_selenium/exceptions/bidi_bridge.py +59 -0
  32. osn_selenium/exceptions/configuration.py +1 -8
  33. osn_selenium/exceptions/dependencies.py +2 -2
  34. osn_selenium/exceptions/devtools.py +9 -39
  35. osn_selenium/exceptions/experimental.py +26 -0
  36. osn_selenium/exceptions/flags.py +0 -2
  37. osn_selenium/exceptions/instance.py +1 -9
  38. osn_selenium/exceptions/javascript.py +0 -2
  39. osn_selenium/exceptions/logic.py +0 -2
  40. osn_selenium/exceptions/path.py +1 -9
  41. osn_selenium/exceptions/platform.py +0 -2
  42. osn_selenium/exceptions/protocol.py +0 -3
  43. osn_selenium/exceptions/webdriver.py +1 -7
  44. osn_selenium/exceptions/window.py +1 -8
  45. osn_selenium/executors/sync/cdp.py +0 -5
  46. osn_selenium/executors/trio_bidi/cdp.py +101 -0
  47. osn_selenium/executors/trio_bidi/javascript.py +101 -0
  48. osn_selenium/executors/trio_threads/cdp.py +0 -5
  49. osn_selenium/flags/base.py +6 -4
  50. osn_selenium/flags/blink.py +2 -2
  51. osn_selenium/flags/chrome.py +6 -6
  52. osn_selenium/flags/edge.py +6 -6
  53. osn_selenium/instances/convert.py +44 -3
  54. osn_selenium/instances/protocols.py +47 -1
  55. osn_selenium/instances/sync/browsing_context.py +2 -2
  56. osn_selenium/instances/sync/script.py +7 -2
  57. osn_selenium/instances/sync/web_element.py +1 -1
  58. osn_selenium/instances/trio_bidi/__init__.py +1 -0
  59. osn_selenium/instances/trio_bidi/shadow_root.py +180 -0
  60. osn_selenium/instances/trio_bidi/switch_to.py +143 -0
  61. osn_selenium/instances/trio_bidi/web_driver_wait.py +124 -0
  62. osn_selenium/instances/trio_bidi/web_element.py +239 -0
  63. osn_selenium/instances/trio_threads/browsing_context.py +2 -2
  64. osn_selenium/instances/trio_threads/fedcm.py +1 -1
  65. osn_selenium/instances/trio_threads/network.py +1 -1
  66. osn_selenium/instances/trio_threads/script.py +7 -2
  67. osn_selenium/instances/trio_threads/web_extension.py +1 -1
  68. osn_selenium/instances/unified/browsing_context.py +2 -2
  69. osn_selenium/instances/unified/script.py +2 -2
  70. osn_selenium/instances/unified/web_element.py +3 -5
  71. osn_selenium/javascript/fingerprint/__init__.py +2 -1
  72. osn_selenium/trio_bidi/__init__.py +1 -0
  73. osn_selenium/trio_bidi/_context_vars.py +12 -0
  74. osn_selenium/trio_bidi/_error_mappings.py +123 -0
  75. osn_selenium/trio_bidi/_error_redirects.py +194 -0
  76. osn_selenium/trio_bidi/_file_functions.py +28 -0
  77. osn_selenium/trio_bidi/_internal_mappings.py +10 -0
  78. osn_selenium/trio_bidi/_models.py +199 -0
  79. osn_selenium/trio_bidi/_typehints.py +20 -0
  80. osn_selenium/trio_bidi/connection_pool.py +587 -0
  81. osn_selenium/trio_bidi/mapping/__init__.py +1 -0
  82. osn_selenium/trio_bidi/mapping/_constants.py +14 -0
  83. osn_selenium/trio_bidi/mapping/_js_snippets.py +285 -0
  84. osn_selenium/trio_bidi/mapping/_utils.py +4 -0
  85. osn_selenium/trio_bidi/mapping/request_functions/__init__.py +87 -0
  86. osn_selenium/trio_bidi/mapping/request_functions/_alert.py +102 -0
  87. osn_selenium/trio_bidi/mapping/request_functions/_args_helpers.py +225 -0
  88. osn_selenium/trio_bidi/mapping/request_functions/_capture.py +71 -0
  89. osn_selenium/trio_bidi/mapping/request_functions/_cdp.py +40 -0
  90. osn_selenium/trio_bidi/mapping/request_functions/_element.py +55 -0
  91. osn_selenium/trio_bidi/mapping/request_functions/_file.py +32 -0
  92. osn_selenium/trio_bidi/mapping/request_functions/_navigation.py +147 -0
  93. osn_selenium/trio_bidi/mapping/request_functions/_script.py +85 -0
  94. osn_selenium/trio_bidi/mapping/request_functions/_shadow_root.py +65 -0
  95. osn_selenium/trio_bidi/mapping/request_functions/_switch_to.py +59 -0
  96. osn_selenium/trio_bidi/mapping/request_functions/_web_element.py +448 -0
  97. osn_selenium/trio_bidi/mapping/request_functions/_window.py +125 -0
  98. osn_selenium/trio_bidi/mapping/response_functions/__init__.py +86 -0
  99. osn_selenium/trio_bidi/mapping/response_functions/_alert.py +81 -0
  100. osn_selenium/trio_bidi/mapping/response_functions/_args_helpers.py +183 -0
  101. osn_selenium/trio_bidi/mapping/response_functions/_args_validators.py +153 -0
  102. osn_selenium/trio_bidi/mapping/response_functions/_capture.py +71 -0
  103. osn_selenium/trio_bidi/mapping/response_functions/_cdp.py +26 -0
  104. osn_selenium/trio_bidi/mapping/response_functions/_element.py +58 -0
  105. osn_selenium/trio_bidi/mapping/response_functions/_file.py +30 -0
  106. osn_selenium/trio_bidi/mapping/response_functions/_navigation.py +120 -0
  107. osn_selenium/trio_bidi/mapping/response_functions/_script.py +57 -0
  108. osn_selenium/trio_bidi/mapping/response_functions/_shadow_root.py +58 -0
  109. osn_selenium/trio_bidi/mapping/response_functions/_switch_to.py +57 -0
  110. osn_selenium/trio_bidi/mapping/response_functions/_web_element.py +368 -0
  111. osn_selenium/trio_bidi/mapping/response_functions/_window.py +119 -0
  112. osn_selenium/trio_bidi/mixin.py +186 -0
  113. osn_selenium/trio_bidi/remote_connection.py +164 -0
  114. osn_selenium/trio_threads_mixin.py +22 -68
  115. osn_selenium/webdrivers/_args_helpers.py +118 -5
  116. osn_selenium/webdrivers/_typehints.py +9 -3
  117. osn_selenium/webdrivers/protocols.py +81 -1
  118. osn_selenium/webdrivers/sync/blink/base.py +10 -0
  119. osn_selenium/webdrivers/sync/blink/lifecycle.py +26 -8
  120. osn_selenium/webdrivers/sync/chrome/lifecycle.py +23 -5
  121. osn_selenium/webdrivers/sync/chrome/settings.py +6 -1
  122. osn_selenium/webdrivers/sync/core/base.py +3 -11
  123. osn_selenium/webdrivers/sync/core/capture.py +3 -2
  124. osn_selenium/webdrivers/sync/core/file.py +3 -2
  125. osn_selenium/webdrivers/sync/core/lifecycle.py +44 -10
  126. osn_selenium/webdrivers/sync/core/script.py +3 -2
  127. osn_selenium/webdrivers/sync/core/window.py +3 -3
  128. osn_selenium/webdrivers/sync/edge/lifecycle.py +23 -5
  129. osn_selenium/webdrivers/sync/edge/settings.py +6 -1
  130. osn_selenium/webdrivers/sync/yandex/lifecycle.py +23 -5
  131. osn_selenium/webdrivers/sync/yandex/settings.py +6 -1
  132. osn_selenium/webdrivers/trio_bidi/__init__.py +1 -0
  133. osn_selenium/webdrivers/trio_bidi/blink/__init__.py +132 -0
  134. osn_selenium/webdrivers/trio_bidi/blink/base.py +167 -0
  135. osn_selenium/webdrivers/trio_bidi/blink/lifecycle.py +89 -0
  136. osn_selenium/webdrivers/trio_bidi/blink/settings.py +63 -0
  137. osn_selenium/webdrivers/trio_bidi/chrome/__init__.py +114 -0
  138. osn_selenium/webdrivers/trio_bidi/chrome/base.py +127 -0
  139. osn_selenium/webdrivers/trio_bidi/chrome/lifecycle.py +85 -0
  140. osn_selenium/webdrivers/trio_bidi/chrome/settings.py +63 -0
  141. osn_selenium/webdrivers/trio_bidi/core/__init__.py +95 -0
  142. osn_selenium/webdrivers/trio_bidi/core/actions.py +70 -0
  143. osn_selenium/webdrivers/trio_bidi/core/base.py +200 -0
  144. osn_selenium/webdrivers/trio_bidi/core/capture.py +39 -0
  145. osn_selenium/webdrivers/trio_bidi/core/devtools.py +49 -0
  146. osn_selenium/webdrivers/trio_bidi/core/element.py +64 -0
  147. osn_selenium/webdrivers/trio_bidi/core/lifecycle.py +135 -0
  148. osn_selenium/webdrivers/trio_bidi/core/navigation.py +37 -0
  149. osn_selenium/webdrivers/trio_bidi/core/script.py +56 -0
  150. osn_selenium/webdrivers/trio_bidi/core/settings.py +36 -0
  151. osn_selenium/webdrivers/trio_bidi/core/window.py +134 -0
  152. osn_selenium/webdrivers/trio_bidi/edge/__init__.py +114 -0
  153. osn_selenium/webdrivers/trio_bidi/edge/base.py +123 -0
  154. osn_selenium/webdrivers/trio_bidi/edge/lifecycle.py +85 -0
  155. osn_selenium/webdrivers/trio_bidi/edge/settings.py +63 -0
  156. osn_selenium/webdrivers/trio_bidi/yandex/__init__.py +114 -0
  157. osn_selenium/webdrivers/trio_bidi/yandex/base.py +120 -0
  158. osn_selenium/webdrivers/trio_bidi/yandex/lifecycle.py +85 -0
  159. osn_selenium/webdrivers/trio_bidi/yandex/settings.py +63 -0
  160. osn_selenium/webdrivers/trio_threads/blink/__init__.py +7 -1
  161. osn_selenium/webdrivers/trio_threads/blink/base.py +14 -0
  162. osn_selenium/webdrivers/trio_threads/blink/lifecycle.py +26 -8
  163. osn_selenium/webdrivers/trio_threads/chrome/lifecycle.py +23 -5
  164. osn_selenium/webdrivers/trio_threads/chrome/settings.py +1 -1
  165. osn_selenium/webdrivers/trio_threads/core/__init__.py +0 -10
  166. osn_selenium/webdrivers/trio_threads/core/actions.py +1 -1
  167. osn_selenium/webdrivers/trio_threads/core/auth.py +1 -1
  168. osn_selenium/webdrivers/trio_threads/core/base.py +4 -16
  169. osn_selenium/webdrivers/trio_threads/core/capture.py +3 -2
  170. osn_selenium/webdrivers/trio_threads/core/file.py +3 -2
  171. osn_selenium/webdrivers/trio_threads/core/lifecycle.py +44 -10
  172. osn_selenium/webdrivers/trio_threads/core/script.py +3 -2
  173. osn_selenium/webdrivers/trio_threads/core/settings.py +1 -1
  174. osn_selenium/webdrivers/trio_threads/core/storage.py +1 -1
  175. osn_selenium/webdrivers/trio_threads/core/timeouts.py +1 -1
  176. osn_selenium/webdrivers/trio_threads/core/window.py +4 -4
  177. osn_selenium/webdrivers/trio_threads/edge/lifecycle.py +23 -5
  178. osn_selenium/webdrivers/trio_threads/edge/settings.py +1 -1
  179. osn_selenium/webdrivers/trio_threads/yandex/lifecycle.py +23 -5
  180. osn_selenium/webdrivers/trio_threads/yandex/settings.py +1 -1
  181. osn_selenium/webdrivers/unified/blink/base.py +5 -1
  182. osn_selenium/webdrivers/unified/blink/lifecycle.py +4 -2
  183. osn_selenium/webdrivers/unified/chrome/base.py +5 -1
  184. osn_selenium/webdrivers/unified/core/auth.py +4 -2
  185. osn_selenium/webdrivers/unified/core/base.py +16 -10
  186. osn_selenium/webdrivers/unified/core/capture.py +3 -2
  187. osn_selenium/webdrivers/unified/core/components.py +12 -7
  188. osn_selenium/webdrivers/unified/core/devtools.py +2 -1
  189. osn_selenium/webdrivers/unified/core/file.py +3 -2
  190. osn_selenium/webdrivers/unified/core/lifecycle.py +5 -3
  191. osn_selenium/webdrivers/unified/core/script.py +5 -3
  192. osn_selenium/webdrivers/unified/core/storage.py +2 -1
  193. osn_selenium/webdrivers/unified/core/window.py +9 -8
  194. osn_selenium/webdrivers/unified/edge/base.py +5 -1
  195. osn_selenium/webdrivers/unified/yandex/base.py +5 -1
  196. {osn_selenium-1.1.0.dist-info → osn_selenium-1.2.0.dist-info}/METADATA +3 -2
  197. osn_selenium-1.2.0.dist-info/RECORD +480 -0
  198. osn_selenium/abstract/executors/cdp/__init__.py +0 -435
  199. osn_selenium/abstract/executors/cdp/accessibility.py +0 -62
  200. osn_selenium/abstract/executors/cdp/animation.py +0 -47
  201. osn_selenium/abstract/executors/cdp/audits.py +0 -39
  202. osn_selenium/abstract/executors/cdp/autofill.py +0 -34
  203. osn_selenium/abstract/executors/cdp/background_service.py +0 -22
  204. osn_selenium/abstract/executors/cdp/bluetooth_emulation.py +0 -95
  205. osn_selenium/abstract/executors/cdp/browser.py +0 -122
  206. osn_selenium/abstract/executors/cdp/cache_storage.py +0 -49
  207. osn_selenium/abstract/executors/cdp/cast.py +0 -31
  208. osn_selenium/abstract/executors/cdp/console.py +0 -18
  209. osn_selenium/abstract/executors/cdp/css.py +0 -197
  210. osn_selenium/abstract/executors/cdp/debugger.py +0 -198
  211. osn_selenium/abstract/executors/cdp/device_access.py +0 -22
  212. osn_selenium/abstract/executors/cdp/device_orientation.py +0 -14
  213. osn_selenium/abstract/executors/cdp/dom.py +0 -305
  214. osn_selenium/abstract/executors/cdp/dom_debugger.py +0 -57
  215. osn_selenium/abstract/executors/cdp/dom_snapshot.py +0 -42
  216. osn_selenium/abstract/executors/cdp/dom_storage.py +0 -31
  217. osn_selenium/abstract/executors/cdp/emulation.py +0 -259
  218. osn_selenium/abstract/executors/cdp/event_breakpoints.py +0 -18
  219. osn_selenium/abstract/executors/cdp/extensions.py +0 -31
  220. osn_selenium/abstract/executors/cdp/fed_cm.py +0 -35
  221. osn_selenium/abstract/executors/cdp/fetch.py +0 -76
  222. osn_selenium/abstract/executors/cdp/file_system.py +0 -11
  223. osn_selenium/abstract/executors/cdp/headless_experimental.py +0 -30
  224. osn_selenium/abstract/executors/cdp/heap_profiler.py +0 -73
  225. osn_selenium/abstract/executors/cdp/indexed_db.py +0 -99
  226. osn_selenium/abstract/executors/cdp/input.py +0 -158
  227. osn_selenium/abstract/executors/cdp/inspector.py +0 -14
  228. osn_selenium/abstract/executors/cdp/io.py +0 -24
  229. osn_selenium/abstract/executors/cdp/layer_tree.py +0 -61
  230. osn_selenium/abstract/executors/cdp/log.py +0 -27
  231. osn_selenium/abstract/executors/cdp/media.py +0 -14
  232. osn_selenium/abstract/executors/cdp/memory.py +0 -61
  233. osn_selenium/abstract/executors/cdp/network.py +0 -252
  234. osn_selenium/abstract/executors/cdp/overlay.py +0 -166
  235. osn_selenium/abstract/executors/cdp/page.py +0 -347
  236. osn_selenium/abstract/executors/cdp/performance.py +0 -28
  237. osn_selenium/abstract/executors/cdp/performance_timeline.py +0 -11
  238. osn_selenium/abstract/executors/cdp/preload.py +0 -14
  239. osn_selenium/abstract/executors/cdp/profiler.py +0 -54
  240. osn_selenium/abstract/executors/cdp/pwa.py +0 -46
  241. osn_selenium/abstract/executors/cdp/runtime.py +0 -176
  242. osn_selenium/abstract/executors/cdp/schema.py +0 -11
  243. osn_selenium/abstract/executors/cdp/security.py +0 -26
  244. osn_selenium/abstract/executors/cdp/service_worker.py +0 -54
  245. osn_selenium/abstract/executors/cdp/storage.py +0 -175
  246. osn_selenium/abstract/executors/cdp/system_info.py +0 -24
  247. osn_selenium/abstract/executors/cdp/target.py +0 -125
  248. osn_selenium/abstract/executors/cdp/tethering.py +0 -14
  249. osn_selenium/abstract/executors/cdp/tracing.py +0 -48
  250. osn_selenium/abstract/executors/cdp/web_audio.py +0 -19
  251. osn_selenium/abstract/executors/cdp/web_authn.py +0 -76
  252. osn_selenium/base_mixin.py +0 -122
  253. osn_selenium/executors/sync/cdp/__init__.py +0 -550
  254. osn_selenium/executors/sync/cdp/accessibility.py +0 -74
  255. osn_selenium/executors/sync/cdp/animation.py +0 -50
  256. osn_selenium/executors/sync/cdp/audits.py +0 -48
  257. osn_selenium/executors/sync/cdp/autofill.py +0 -39
  258. osn_selenium/executors/sync/cdp/background_service.py +0 -30
  259. osn_selenium/executors/sync/cdp/bluetooth_emulation.py +0 -101
  260. osn_selenium/executors/sync/cdp/browser.py +0 -131
  261. osn_selenium/executors/sync/cdp/cache_storage.py +0 -66
  262. osn_selenium/executors/sync/cdp/cast.py +0 -38
  263. osn_selenium/executors/sync/cdp/console.py +0 -24
  264. osn_selenium/executors/sync/cdp/css.py +0 -187
  265. osn_selenium/executors/sync/cdp/debugger.py +0 -206
  266. osn_selenium/executors/sync/cdp/device_access.py +0 -27
  267. osn_selenium/executors/sync/cdp/device_orientation.py +0 -24
  268. osn_selenium/executors/sync/cdp/dom.py +0 -310
  269. osn_selenium/executors/sync/cdp/dom_debugger.py +0 -56
  270. osn_selenium/executors/sync/cdp/dom_snapshot.py +0 -58
  271. osn_selenium/executors/sync/cdp/dom_storage.py +0 -38
  272. osn_selenium/executors/sync/cdp/emulation.py +0 -270
  273. osn_selenium/executors/sync/cdp/event_breakpoints.py +0 -27
  274. osn_selenium/executors/sync/cdp/extensions.py +0 -39
  275. osn_selenium/executors/sync/cdp/fed_cm.py +0 -45
  276. osn_selenium/executors/sync/cdp/fetch.py +0 -96
  277. osn_selenium/executors/sync/cdp/file_system.py +0 -18
  278. osn_selenium/executors/sync/cdp/headless_experimental.py +0 -44
  279. osn_selenium/executors/sync/cdp/heap_profiler.py +0 -89
  280. osn_selenium/executors/sync/cdp/indexed_db.py +0 -142
  281. osn_selenium/executors/sync/cdp/input.py +0 -233
  282. osn_selenium/executors/sync/cdp/inspector.py +0 -21
  283. osn_selenium/executors/sync/cdp/io.py +0 -33
  284. osn_selenium/executors/sync/cdp/layer_tree.py +0 -71
  285. osn_selenium/executors/sync/cdp/log.py +0 -35
  286. osn_selenium/executors/sync/cdp/media.py +0 -21
  287. osn_selenium/executors/sync/cdp/memory.py +0 -62
  288. osn_selenium/executors/sync/cdp/network.py +0 -287
  289. osn_selenium/executors/sync/cdp/overlay.py +0 -174
  290. osn_selenium/executors/sync/cdp/page.py +0 -365
  291. osn_selenium/executors/sync/cdp/performance.py +0 -33
  292. osn_selenium/executors/sync/cdp/performance_timeline.py +0 -26
  293. osn_selenium/executors/sync/cdp/preload.py +0 -21
  294. osn_selenium/executors/sync/cdp/profiler.py +0 -58
  295. osn_selenium/executors/sync/cdp/pwa.py +0 -55
  296. osn_selenium/executors/sync/cdp/runtime.py +0 -221
  297. osn_selenium/executors/sync/cdp/schema.py +0 -23
  298. osn_selenium/executors/sync/cdp/security.py +0 -30
  299. osn_selenium/executors/sync/cdp/service_worker.py +0 -56
  300. osn_selenium/executors/sync/cdp/storage.py +0 -151
  301. osn_selenium/executors/sync/cdp/system_info.py +0 -30
  302. osn_selenium/executors/sync/cdp/target.py +0 -147
  303. osn_selenium/executors/sync/cdp/tethering.py +0 -21
  304. osn_selenium/executors/sync/cdp/tracing.py +0 -62
  305. osn_selenium/executors/sync/cdp/web_audio.py +0 -24
  306. osn_selenium/executors/sync/cdp/web_authn.py +0 -82
  307. osn_selenium/executors/trio_threads/cdp/__init__.py +0 -771
  308. osn_selenium/executors/trio_threads/cdp/accessibility.py +0 -87
  309. osn_selenium/executors/trio_threads/cdp/animation.py +0 -63
  310. osn_selenium/executors/trio_threads/cdp/audits.py +0 -57
  311. osn_selenium/executors/trio_threads/cdp/autofill.py +0 -52
  312. osn_selenium/executors/trio_threads/cdp/background_service.py +0 -40
  313. osn_selenium/executors/trio_threads/cdp/bluetooth_emulation.py +0 -111
  314. osn_selenium/executors/trio_threads/cdp/browser.py +0 -140
  315. osn_selenium/executors/trio_threads/cdp/cache_storage.py +0 -79
  316. osn_selenium/executors/trio_threads/cdp/cast.py +0 -47
  317. osn_selenium/executors/trio_threads/cdp/console.py +0 -33
  318. osn_selenium/executors/trio_threads/cdp/css.py +0 -196
  319. osn_selenium/executors/trio_threads/cdp/debugger.py +0 -219
  320. osn_selenium/executors/trio_threads/cdp/device_access.py +0 -40
  321. osn_selenium/executors/trio_threads/cdp/device_orientation.py +0 -34
  322. osn_selenium/executors/trio_threads/cdp/dom.py +0 -319
  323. osn_selenium/executors/trio_threads/cdp/dom_debugger.py +0 -69
  324. osn_selenium/executors/trio_threads/cdp/dom_snapshot.py +0 -71
  325. osn_selenium/executors/trio_threads/cdp/dom_storage.py +0 -51
  326. osn_selenium/executors/trio_threads/cdp/emulation.py +0 -283
  327. osn_selenium/executors/trio_threads/cdp/event_breakpoints.py +0 -37
  328. osn_selenium/executors/trio_threads/cdp/extensions.py +0 -52
  329. osn_selenium/executors/trio_threads/cdp/fed_cm.py +0 -54
  330. osn_selenium/executors/trio_threads/cdp/fetch.py +0 -105
  331. osn_selenium/executors/trio_threads/cdp/file_system.py +0 -31
  332. osn_selenium/executors/trio_threads/cdp/headless_experimental.py +0 -54
  333. osn_selenium/executors/trio_threads/cdp/heap_profiler.py +0 -102
  334. osn_selenium/executors/trio_threads/cdp/indexed_db.py +0 -155
  335. osn_selenium/executors/trio_threads/cdp/input.py +0 -242
  336. osn_selenium/executors/trio_threads/cdp/inspector.py +0 -34
  337. osn_selenium/executors/trio_threads/cdp/io.py +0 -42
  338. osn_selenium/executors/trio_threads/cdp/layer_tree.py +0 -84
  339. osn_selenium/executors/trio_threads/cdp/log.py +0 -44
  340. osn_selenium/executors/trio_threads/cdp/media.py +0 -30
  341. osn_selenium/executors/trio_threads/cdp/memory.py +0 -71
  342. osn_selenium/executors/trio_threads/cdp/network.py +0 -296
  343. osn_selenium/executors/trio_threads/cdp/overlay.py +0 -183
  344. osn_selenium/executors/trio_threads/cdp/page.py +0 -374
  345. osn_selenium/executors/trio_threads/cdp/performance.py +0 -46
  346. osn_selenium/executors/trio_threads/cdp/performance_timeline.py +0 -36
  347. osn_selenium/executors/trio_threads/cdp/preload.py +0 -30
  348. osn_selenium/executors/trio_threads/cdp/profiler.py +0 -71
  349. osn_selenium/executors/trio_threads/cdp/pwa.py +0 -64
  350. osn_selenium/executors/trio_threads/cdp/runtime.py +0 -230
  351. osn_selenium/executors/trio_threads/cdp/schema.py +0 -32
  352. osn_selenium/executors/trio_threads/cdp/security.py +0 -43
  353. osn_selenium/executors/trio_threads/cdp/service_worker.py +0 -69
  354. osn_selenium/executors/trio_threads/cdp/storage.py +0 -162
  355. osn_selenium/executors/trio_threads/cdp/system_info.py +0 -43
  356. osn_selenium/executors/trio_threads/cdp/target.py +0 -156
  357. osn_selenium/executors/trio_threads/cdp/tethering.py +0 -34
  358. osn_selenium/executors/trio_threads/cdp/tracing.py +0 -71
  359. osn_selenium/executors/trio_threads/cdp/web_audio.py +0 -37
  360. osn_selenium/executors/trio_threads/cdp/web_authn.py +0 -95
  361. osn_selenium/executors/unified/cdp/accessibility.py +0 -81
  362. osn_selenium/executors/unified/cdp/animation.py +0 -50
  363. osn_selenium/executors/unified/cdp/audits.py +0 -45
  364. osn_selenium/executors/unified/cdp/autofill.py +0 -41
  365. osn_selenium/executors/unified/cdp/background_service.py +0 -24
  366. osn_selenium/executors/unified/cdp/bluetooth_emulation.py +0 -132
  367. osn_selenium/executors/unified/cdp/browser.py +0 -143
  368. osn_selenium/executors/unified/cdp/cache_storage.py +0 -69
  369. osn_selenium/executors/unified/cdp/cast.py +0 -32
  370. osn_selenium/executors/unified/cdp/console.py +0 -18
  371. osn_selenium/executors/unified/cdp/css.py +0 -237
  372. osn_selenium/executors/unified/cdp/debugger.py +0 -243
  373. osn_selenium/executors/unified/cdp/device_access.py +0 -21
  374. osn_selenium/executors/unified/cdp/device_orientation.py +0 -18
  375. osn_selenium/executors/unified/cdp/dom.py +0 -380
  376. osn_selenium/executors/unified/cdp/dom_debugger.py +0 -65
  377. osn_selenium/executors/unified/cdp/dom_snapshot.py +0 -58
  378. osn_selenium/executors/unified/cdp/dom_storage.py +0 -38
  379. osn_selenium/executors/unified/cdp/emulation.py +0 -312
  380. osn_selenium/executors/unified/cdp/event_breakpoints.py +0 -24
  381. osn_selenium/executors/unified/cdp/extensions.py +0 -45
  382. osn_selenium/executors/unified/cdp/fed_cm.py +0 -51
  383. osn_selenium/executors/unified/cdp/fetch.py +0 -111
  384. osn_selenium/executors/unified/cdp/file_system.py +0 -15
  385. osn_selenium/executors/unified/cdp/headless_experimental.py +0 -38
  386. osn_selenium/executors/unified/cdp/heap_profiler.py +0 -101
  387. osn_selenium/executors/unified/cdp/indexed_db.py +0 -157
  388. osn_selenium/executors/unified/cdp/input.py +0 -254
  389. osn_selenium/executors/unified/cdp/inspector.py +0 -15
  390. osn_selenium/executors/unified/cdp/io.py +0 -29
  391. osn_selenium/executors/unified/cdp/layer_tree.py +0 -71
  392. osn_selenium/executors/unified/cdp/log.py +0 -29
  393. osn_selenium/executors/unified/cdp/media.py +0 -15
  394. osn_selenium/executors/unified/cdp/memory.py +0 -59
  395. osn_selenium/executors/unified/cdp/network.py +0 -323
  396. osn_selenium/executors/unified/cdp/overlay.py +0 -209
  397. osn_selenium/executors/unified/cdp/page.py +0 -410
  398. osn_selenium/executors/unified/cdp/performance.py +0 -27
  399. osn_selenium/executors/unified/cdp/performance_timeline.py +0 -17
  400. osn_selenium/executors/unified/cdp/preload.py +0 -15
  401. osn_selenium/executors/unified/cdp/profiler.py +0 -55
  402. osn_selenium/executors/unified/cdp/pwa.py +0 -55
  403. osn_selenium/executors/unified/cdp/runtime.py +0 -245
  404. osn_selenium/executors/unified/cdp/schema.py +0 -17
  405. osn_selenium/executors/unified/cdp/security.py +0 -27
  406. osn_selenium/executors/unified/cdp/service_worker.py +0 -62
  407. osn_selenium/executors/unified/cdp/storage.py +0 -178
  408. osn_selenium/executors/unified/cdp/system_info.py +0 -24
  409. osn_selenium/executors/unified/cdp/target.py +0 -165
  410. osn_selenium/executors/unified/cdp/tethering.py +0 -15
  411. osn_selenium/executors/unified/cdp/tracing.py +0 -62
  412. osn_selenium/executors/unified/cdp/web_audio.py +0 -18
  413. osn_selenium/executors/unified/cdp/web_authn.py +0 -103
  414. osn_selenium-1.1.0.dist-info/RECORD +0 -615
  415. /osn_selenium/{dev_tools/_exception_helpers.py → _exception_helpers.py} +0 -0
  416. /osn_selenium/executors/{unified/cdp → trio_bidi}/__init__.py +0 -0
  417. {osn_selenium-1.1.0.dist-info → osn_selenium-1.2.0.dist-info}/WHEEL +0 -0
  418. {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
+ }