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