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