osn-selenium 0.0.0__py3-none-any.whl → 1.1.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 (635) hide show
  1. osn_selenium/_base_models.py +41 -0
  2. osn_selenium/_cdp_import.py +253 -0
  3. osn_selenium/_functions.py +84 -0
  4. osn_selenium/_typehints.py +19 -0
  5. osn_selenium/abstract/executors/cdp/__init__.py +435 -0
  6. osn_selenium/abstract/executors/cdp/accessibility.py +62 -0
  7. osn_selenium/abstract/executors/cdp/animation.py +47 -0
  8. osn_selenium/abstract/executors/cdp/audits.py +39 -0
  9. osn_selenium/abstract/executors/cdp/autofill.py +34 -0
  10. osn_selenium/abstract/executors/cdp/background_service.py +22 -0
  11. osn_selenium/abstract/executors/cdp/bluetooth_emulation.py +95 -0
  12. osn_selenium/abstract/executors/cdp/browser.py +122 -0
  13. osn_selenium/abstract/executors/cdp/cache_storage.py +49 -0
  14. osn_selenium/abstract/executors/cdp/cast.py +31 -0
  15. osn_selenium/abstract/executors/cdp/console.py +18 -0
  16. osn_selenium/abstract/executors/cdp/css.py +197 -0
  17. osn_selenium/abstract/executors/cdp/debugger.py +198 -0
  18. osn_selenium/abstract/executors/cdp/device_access.py +22 -0
  19. osn_selenium/abstract/executors/cdp/device_orientation.py +14 -0
  20. osn_selenium/abstract/executors/cdp/dom.py +305 -0
  21. osn_selenium/abstract/executors/cdp/dom_debugger.py +57 -0
  22. osn_selenium/abstract/executors/cdp/dom_snapshot.py +42 -0
  23. osn_selenium/abstract/executors/cdp/dom_storage.py +31 -0
  24. osn_selenium/abstract/executors/cdp/emulation.py +259 -0
  25. osn_selenium/abstract/executors/cdp/event_breakpoints.py +18 -0
  26. osn_selenium/abstract/executors/cdp/extensions.py +31 -0
  27. osn_selenium/abstract/executors/cdp/fed_cm.py +35 -0
  28. osn_selenium/abstract/executors/cdp/fetch.py +76 -0
  29. osn_selenium/abstract/executors/cdp/file_system.py +11 -0
  30. osn_selenium/abstract/executors/cdp/headless_experimental.py +30 -0
  31. osn_selenium/abstract/executors/cdp/heap_profiler.py +73 -0
  32. osn_selenium/abstract/executors/cdp/indexed_db.py +99 -0
  33. osn_selenium/abstract/executors/cdp/input.py +158 -0
  34. osn_selenium/abstract/executors/cdp/inspector.py +14 -0
  35. osn_selenium/abstract/executors/cdp/io.py +24 -0
  36. osn_selenium/abstract/executors/cdp/layer_tree.py +61 -0
  37. osn_selenium/abstract/executors/cdp/log.py +27 -0
  38. osn_selenium/abstract/executors/cdp/media.py +14 -0
  39. osn_selenium/abstract/executors/cdp/memory.py +61 -0
  40. osn_selenium/abstract/executors/cdp/network.py +252 -0
  41. osn_selenium/abstract/executors/cdp/overlay.py +166 -0
  42. osn_selenium/abstract/executors/cdp/page.py +347 -0
  43. osn_selenium/abstract/executors/cdp/performance.py +28 -0
  44. osn_selenium/abstract/executors/cdp/performance_timeline.py +11 -0
  45. osn_selenium/abstract/executors/cdp/preload.py +14 -0
  46. osn_selenium/abstract/executors/cdp/profiler.py +54 -0
  47. osn_selenium/abstract/executors/cdp/pwa.py +46 -0
  48. osn_selenium/abstract/executors/cdp/runtime.py +176 -0
  49. osn_selenium/abstract/executors/cdp/schema.py +11 -0
  50. osn_selenium/abstract/executors/cdp/security.py +26 -0
  51. osn_selenium/abstract/executors/cdp/service_worker.py +54 -0
  52. osn_selenium/abstract/executors/cdp/storage.py +175 -0
  53. osn_selenium/abstract/executors/cdp/system_info.py +24 -0
  54. osn_selenium/abstract/executors/cdp/target.py +125 -0
  55. osn_selenium/abstract/executors/cdp/tethering.py +14 -0
  56. osn_selenium/abstract/executors/cdp/tracing.py +48 -0
  57. osn_selenium/abstract/executors/cdp/web_audio.py +19 -0
  58. osn_selenium/abstract/executors/cdp/web_authn.py +76 -0
  59. osn_selenium/abstract/executors/cdp.py +63 -0
  60. osn_selenium/abstract/executors/javascript.py +203 -0
  61. osn_selenium/abstract/instances/action_chains/__init__.py +12 -0
  62. osn_selenium/abstract/instances/action_chains/base.py +25 -0
  63. osn_selenium/abstract/instances/action_chains/click.py +93 -0
  64. osn_selenium/abstract/instances/action_chains/drag_and_drop.py +46 -0
  65. osn_selenium/abstract/instances/action_chains/hm_keyboard.py +44 -0
  66. osn_selenium/abstract/instances/action_chains/hm_move.py +104 -0
  67. osn_selenium/abstract/instances/action_chains/hm_scroll.py +75 -0
  68. osn_selenium/abstract/instances/action_chains/keyboard.py +79 -0
  69. osn_selenium/abstract/instances/action_chains/move.py +60 -0
  70. osn_selenium/abstract/instances/action_chains/scroll.py +61 -0
  71. osn_selenium/abstract/instances/action_chains/utils.py +44 -0
  72. osn_selenium/abstract/instances/alert.py +67 -0
  73. osn_selenium/abstract/instances/browser.py +76 -0
  74. osn_selenium/abstract/instances/browsing_context.py +310 -0
  75. osn_selenium/abstract/instances/dialog.py +107 -0
  76. osn_selenium/abstract/instances/fedcm.py +133 -0
  77. osn_selenium/abstract/instances/mobile.py +79 -0
  78. osn_selenium/abstract/instances/network.py +100 -0
  79. osn_selenium/abstract/instances/permissions.py +52 -0
  80. osn_selenium/abstract/instances/script.py +109 -0
  81. osn_selenium/abstract/instances/shadow_root.py +81 -0
  82. osn_selenium/abstract/instances/storage.py +98 -0
  83. osn_selenium/abstract/instances/switch_to.py +104 -0
  84. osn_selenium/abstract/instances/web_driver_wait.py +57 -0
  85. osn_selenium/abstract/instances/web_element.py +395 -0
  86. osn_selenium/abstract/instances/web_extension.py +70 -0
  87. osn_selenium/abstract/webdriver/blink/__init__.py +18 -0
  88. osn_selenium/abstract/webdriver/blink/base.py +80 -0
  89. osn_selenium/abstract/webdriver/blink/casting.py +82 -0
  90. osn_selenium/abstract/webdriver/blink/features.py +51 -0
  91. osn_selenium/abstract/webdriver/blink/lifecycle.py +76 -0
  92. osn_selenium/abstract/webdriver/blink/logging.py +40 -0
  93. osn_selenium/abstract/webdriver/blink/network.py +45 -0
  94. osn_selenium/abstract/webdriver/blink/settings.py +68 -0
  95. osn_selenium/abstract/webdriver/chrome/__init__.py +18 -0
  96. osn_selenium/abstract/webdriver/chrome/base.py +36 -0
  97. osn_selenium/abstract/webdriver/chrome/lifecycle.py +92 -0
  98. osn_selenium/abstract/webdriver/chrome/settings.py +110 -0
  99. osn_selenium/abstract/webdriver/core/__init__.py +16 -0
  100. osn_selenium/abstract/webdriver/core/actions.py +58 -0
  101. osn_selenium/abstract/webdriver/core/auth.py +145 -0
  102. osn_selenium/abstract/webdriver/core/base.py +298 -0
  103. osn_selenium/abstract/webdriver/core/capture.py +84 -0
  104. osn_selenium/abstract/webdriver/core/components.py +82 -0
  105. osn_selenium/abstract/webdriver/core/devtools.py +69 -0
  106. osn_selenium/abstract/webdriver/core/element.py +55 -0
  107. osn_selenium/abstract/webdriver/core/file.py +82 -0
  108. osn_selenium/abstract/webdriver/core/lifecycle.py +103 -0
  109. osn_selenium/abstract/webdriver/core/navigation.py +65 -0
  110. osn_selenium/abstract/webdriver/core/script.py +88 -0
  111. osn_selenium/abstract/webdriver/core/settings.py +43 -0
  112. osn_selenium/abstract/webdriver/core/storage.py +81 -0
  113. osn_selenium/abstract/webdriver/core/timeouts.py +101 -0
  114. osn_selenium/abstract/webdriver/core/window.py +237 -0
  115. osn_selenium/abstract/webdriver/edge/__init__.py +18 -0
  116. osn_selenium/abstract/webdriver/edge/base.py +36 -0
  117. osn_selenium/abstract/webdriver/edge/lifecycle.py +92 -0
  118. osn_selenium/abstract/webdriver/edge/settings.py +110 -0
  119. osn_selenium/abstract/webdriver/yandex/__init__.py +18 -0
  120. osn_selenium/abstract/webdriver/yandex/base.py +18 -0
  121. osn_selenium/abstract/webdriver/yandex/lifecycle.py +92 -0
  122. osn_selenium/abstract/webdriver/yandex/settings.py +110 -0
  123. osn_selenium/base_mixin.py +122 -0
  124. osn_selenium/browsers_handler/__init__.py +47 -17
  125. osn_selenium/browsers_handler/_linux.py +226 -0
  126. osn_selenium/browsers_handler/_windows.py +21 -14
  127. osn_selenium/browsers_handler/{types.py → models.py} +5 -2
  128. osn_selenium/dev_tools/_decorators.py +149 -0
  129. osn_selenium/dev_tools/_exception_helpers.py +116 -0
  130. osn_selenium/dev_tools/_functions.py +174 -0
  131. osn_selenium/dev_tools/_system_utils.py +35 -0
  132. osn_selenium/dev_tools/_typehints.py +35 -0
  133. osn_selenium/dev_tools/_validators.py +227 -0
  134. osn_selenium/dev_tools/_wrappers.py +92 -0
  135. osn_selenium/dev_tools/domains/__init__.py +7 -40
  136. osn_selenium/dev_tools/domains/abstract.py +98 -254
  137. osn_selenium/dev_tools/domains/fetch.py +229 -906
  138. osn_selenium/dev_tools/domains_default/fetch.py +40 -28
  139. osn_selenium/dev_tools/filters.py +40 -0
  140. osn_selenium/dev_tools/logger/main.py +214 -0
  141. osn_selenium/dev_tools/logger/models.py +232 -0
  142. osn_selenium/dev_tools/logger/target.py +278 -0
  143. osn_selenium/dev_tools/manager/__init__.py +16 -0
  144. osn_selenium/dev_tools/manager/base.py +124 -0
  145. osn_selenium/dev_tools/manager/lifecycle.py +236 -0
  146. osn_selenium/dev_tools/manager/logging.py +153 -0
  147. osn_selenium/dev_tools/manager/settings.py +89 -0
  148. osn_selenium/dev_tools/manager/targets.py +175 -0
  149. osn_selenium/dev_tools/models.py +49 -0
  150. osn_selenium/dev_tools/settings.py +139 -0
  151. osn_selenium/dev_tools/target/__init__.py +16 -0
  152. osn_selenium/dev_tools/target/base.py +427 -0
  153. osn_selenium/dev_tools/target/detach.py +54 -0
  154. osn_selenium/dev_tools/target/discovery.py +112 -0
  155. osn_selenium/dev_tools/target/events.py +120 -0
  156. osn_selenium/dev_tools/target/fingerprint.py +126 -0
  157. osn_selenium/dev_tools/target/lifecycle.py +184 -0
  158. osn_selenium/dev_tools/target/logging.py +163 -0
  159. osn_selenium/exceptions/__init__.py +1 -0
  160. osn_selenium/exceptions/base.py +9 -0
  161. osn_selenium/exceptions/configuration.py +84 -0
  162. osn_selenium/exceptions/dependencies.py +60 -0
  163. osn_selenium/exceptions/devtools.py +114 -0
  164. osn_selenium/exceptions/flags.py +45 -0
  165. osn_selenium/exceptions/instance.py +92 -0
  166. osn_selenium/exceptions/javascript.py +31 -0
  167. osn_selenium/exceptions/logic.py +31 -0
  168. osn_selenium/exceptions/path.py +77 -0
  169. osn_selenium/exceptions/platform.py +33 -0
  170. osn_selenium/exceptions/protocol.py +86 -0
  171. osn_selenium/exceptions/webdriver.py +44 -0
  172. osn_selenium/exceptions/window.py +63 -0
  173. osn_selenium/executors/__init__.py +1 -0
  174. osn_selenium/executors/sync/__init__.py +1 -0
  175. osn_selenium/executors/sync/cdp/__init__.py +550 -0
  176. osn_selenium/executors/sync/cdp/accessibility.py +74 -0
  177. osn_selenium/executors/sync/cdp/animation.py +50 -0
  178. osn_selenium/executors/sync/cdp/audits.py +48 -0
  179. osn_selenium/executors/sync/cdp/autofill.py +39 -0
  180. osn_selenium/executors/sync/cdp/background_service.py +30 -0
  181. osn_selenium/executors/sync/cdp/bluetooth_emulation.py +101 -0
  182. osn_selenium/executors/sync/cdp/browser.py +131 -0
  183. osn_selenium/executors/sync/cdp/cache_storage.py +66 -0
  184. osn_selenium/executors/sync/cdp/cast.py +38 -0
  185. osn_selenium/executors/sync/cdp/console.py +24 -0
  186. osn_selenium/executors/sync/cdp/css.py +187 -0
  187. osn_selenium/executors/sync/cdp/debugger.py +206 -0
  188. osn_selenium/executors/sync/cdp/device_access.py +27 -0
  189. osn_selenium/executors/sync/cdp/device_orientation.py +24 -0
  190. osn_selenium/executors/sync/cdp/dom.py +310 -0
  191. osn_selenium/executors/sync/cdp/dom_debugger.py +56 -0
  192. osn_selenium/executors/sync/cdp/dom_snapshot.py +58 -0
  193. osn_selenium/executors/sync/cdp/dom_storage.py +38 -0
  194. osn_selenium/executors/sync/cdp/emulation.py +270 -0
  195. osn_selenium/executors/sync/cdp/event_breakpoints.py +27 -0
  196. osn_selenium/executors/sync/cdp/extensions.py +39 -0
  197. osn_selenium/executors/sync/cdp/fed_cm.py +45 -0
  198. osn_selenium/executors/sync/cdp/fetch.py +96 -0
  199. osn_selenium/executors/sync/cdp/file_system.py +18 -0
  200. osn_selenium/executors/sync/cdp/headless_experimental.py +44 -0
  201. osn_selenium/executors/sync/cdp/heap_profiler.py +89 -0
  202. osn_selenium/executors/sync/cdp/indexed_db.py +142 -0
  203. osn_selenium/executors/sync/cdp/input.py +233 -0
  204. osn_selenium/executors/sync/cdp/inspector.py +21 -0
  205. osn_selenium/executors/sync/cdp/io.py +33 -0
  206. osn_selenium/executors/sync/cdp/layer_tree.py +71 -0
  207. osn_selenium/executors/sync/cdp/log.py +35 -0
  208. osn_selenium/executors/sync/cdp/media.py +21 -0
  209. osn_selenium/executors/sync/cdp/memory.py +62 -0
  210. osn_selenium/executors/sync/cdp/network.py +287 -0
  211. osn_selenium/executors/sync/cdp/overlay.py +174 -0
  212. osn_selenium/executors/sync/cdp/page.py +365 -0
  213. osn_selenium/executors/sync/cdp/performance.py +33 -0
  214. osn_selenium/executors/sync/cdp/performance_timeline.py +26 -0
  215. osn_selenium/executors/sync/cdp/preload.py +21 -0
  216. osn_selenium/executors/sync/cdp/profiler.py +58 -0
  217. osn_selenium/executors/sync/cdp/pwa.py +55 -0
  218. osn_selenium/executors/sync/cdp/runtime.py +221 -0
  219. osn_selenium/executors/sync/cdp/schema.py +23 -0
  220. osn_selenium/executors/sync/cdp/security.py +30 -0
  221. osn_selenium/executors/sync/cdp/service_worker.py +56 -0
  222. osn_selenium/executors/sync/cdp/storage.py +151 -0
  223. osn_selenium/executors/sync/cdp/system_info.py +30 -0
  224. osn_selenium/executors/sync/cdp/target.py +147 -0
  225. osn_selenium/executors/sync/cdp/tethering.py +21 -0
  226. osn_selenium/executors/sync/cdp/tracing.py +62 -0
  227. osn_selenium/executors/sync/cdp/web_audio.py +24 -0
  228. osn_selenium/executors/sync/cdp/web_authn.py +82 -0
  229. osn_selenium/executors/sync/cdp.py +100 -0
  230. osn_selenium/executors/sync/javascript.py +79 -0
  231. osn_selenium/executors/trio_threads/__init__.py +1 -0
  232. osn_selenium/executors/trio_threads/cdp/__init__.py +771 -0
  233. osn_selenium/executors/trio_threads/cdp/accessibility.py +87 -0
  234. osn_selenium/executors/trio_threads/cdp/animation.py +63 -0
  235. osn_selenium/executors/trio_threads/cdp/audits.py +57 -0
  236. osn_selenium/executors/trio_threads/cdp/autofill.py +52 -0
  237. osn_selenium/executors/trio_threads/cdp/background_service.py +40 -0
  238. osn_selenium/executors/trio_threads/cdp/bluetooth_emulation.py +111 -0
  239. osn_selenium/executors/trio_threads/cdp/browser.py +140 -0
  240. osn_selenium/executors/trio_threads/cdp/cache_storage.py +79 -0
  241. osn_selenium/executors/trio_threads/cdp/cast.py +47 -0
  242. osn_selenium/executors/trio_threads/cdp/console.py +33 -0
  243. osn_selenium/executors/trio_threads/cdp/css.py +196 -0
  244. osn_selenium/executors/trio_threads/cdp/debugger.py +219 -0
  245. osn_selenium/executors/trio_threads/cdp/device_access.py +40 -0
  246. osn_selenium/executors/trio_threads/cdp/device_orientation.py +34 -0
  247. osn_selenium/executors/trio_threads/cdp/dom.py +319 -0
  248. osn_selenium/executors/trio_threads/cdp/dom_debugger.py +69 -0
  249. osn_selenium/executors/trio_threads/cdp/dom_snapshot.py +71 -0
  250. osn_selenium/executors/trio_threads/cdp/dom_storage.py +51 -0
  251. osn_selenium/executors/trio_threads/cdp/emulation.py +283 -0
  252. osn_selenium/executors/trio_threads/cdp/event_breakpoints.py +37 -0
  253. osn_selenium/executors/trio_threads/cdp/extensions.py +52 -0
  254. osn_selenium/executors/trio_threads/cdp/fed_cm.py +54 -0
  255. osn_selenium/executors/trio_threads/cdp/fetch.py +105 -0
  256. osn_selenium/executors/trio_threads/cdp/file_system.py +31 -0
  257. osn_selenium/executors/trio_threads/cdp/headless_experimental.py +54 -0
  258. osn_selenium/executors/trio_threads/cdp/heap_profiler.py +102 -0
  259. osn_selenium/executors/trio_threads/cdp/indexed_db.py +155 -0
  260. osn_selenium/executors/trio_threads/cdp/input.py +242 -0
  261. osn_selenium/executors/trio_threads/cdp/inspector.py +34 -0
  262. osn_selenium/executors/trio_threads/cdp/io.py +42 -0
  263. osn_selenium/executors/trio_threads/cdp/layer_tree.py +84 -0
  264. osn_selenium/executors/trio_threads/cdp/log.py +44 -0
  265. osn_selenium/executors/trio_threads/cdp/media.py +30 -0
  266. osn_selenium/executors/trio_threads/cdp/memory.py +71 -0
  267. osn_selenium/executors/trio_threads/cdp/network.py +296 -0
  268. osn_selenium/executors/trio_threads/cdp/overlay.py +183 -0
  269. osn_selenium/executors/trio_threads/cdp/page.py +374 -0
  270. osn_selenium/executors/trio_threads/cdp/performance.py +46 -0
  271. osn_selenium/executors/trio_threads/cdp/performance_timeline.py +36 -0
  272. osn_selenium/executors/trio_threads/cdp/preload.py +30 -0
  273. osn_selenium/executors/trio_threads/cdp/profiler.py +71 -0
  274. osn_selenium/executors/trio_threads/cdp/pwa.py +64 -0
  275. osn_selenium/executors/trio_threads/cdp/runtime.py +230 -0
  276. osn_selenium/executors/trio_threads/cdp/schema.py +32 -0
  277. osn_selenium/executors/trio_threads/cdp/security.py +43 -0
  278. osn_selenium/executors/trio_threads/cdp/service_worker.py +69 -0
  279. osn_selenium/executors/trio_threads/cdp/storage.py +162 -0
  280. osn_selenium/executors/trio_threads/cdp/system_info.py +43 -0
  281. osn_selenium/executors/trio_threads/cdp/target.py +156 -0
  282. osn_selenium/executors/trio_threads/cdp/tethering.py +34 -0
  283. osn_selenium/executors/trio_threads/cdp/tracing.py +71 -0
  284. osn_selenium/executors/trio_threads/cdp/web_audio.py +37 -0
  285. osn_selenium/executors/trio_threads/cdp/web_authn.py +95 -0
  286. osn_selenium/executors/trio_threads/cdp.py +104 -0
  287. osn_selenium/executors/trio_threads/javascript.py +90 -0
  288. osn_selenium/executors/unified/__init__.py +1 -0
  289. osn_selenium/executors/unified/cdp/__init__.py +1 -0
  290. osn_selenium/executors/unified/cdp/accessibility.py +81 -0
  291. osn_selenium/executors/unified/cdp/animation.py +50 -0
  292. osn_selenium/executors/unified/cdp/audits.py +45 -0
  293. osn_selenium/executors/unified/cdp/autofill.py +41 -0
  294. osn_selenium/executors/unified/cdp/background_service.py +24 -0
  295. osn_selenium/executors/unified/cdp/bluetooth_emulation.py +132 -0
  296. osn_selenium/executors/unified/cdp/browser.py +143 -0
  297. osn_selenium/executors/unified/cdp/cache_storage.py +69 -0
  298. osn_selenium/executors/unified/cdp/cast.py +32 -0
  299. osn_selenium/executors/unified/cdp/console.py +18 -0
  300. osn_selenium/executors/unified/cdp/css.py +237 -0
  301. osn_selenium/executors/unified/cdp/debugger.py +243 -0
  302. osn_selenium/executors/unified/cdp/device_access.py +21 -0
  303. osn_selenium/executors/unified/cdp/device_orientation.py +18 -0
  304. osn_selenium/executors/unified/cdp/dom.py +380 -0
  305. osn_selenium/executors/unified/cdp/dom_debugger.py +65 -0
  306. osn_selenium/executors/unified/cdp/dom_snapshot.py +58 -0
  307. osn_selenium/executors/unified/cdp/dom_storage.py +38 -0
  308. osn_selenium/executors/unified/cdp/emulation.py +312 -0
  309. osn_selenium/executors/unified/cdp/event_breakpoints.py +24 -0
  310. osn_selenium/executors/unified/cdp/extensions.py +45 -0
  311. osn_selenium/executors/unified/cdp/fed_cm.py +51 -0
  312. osn_selenium/executors/unified/cdp/fetch.py +111 -0
  313. osn_selenium/executors/unified/cdp/file_system.py +15 -0
  314. osn_selenium/executors/unified/cdp/headless_experimental.py +38 -0
  315. osn_selenium/executors/unified/cdp/heap_profiler.py +101 -0
  316. osn_selenium/executors/unified/cdp/indexed_db.py +157 -0
  317. osn_selenium/executors/unified/cdp/input.py +254 -0
  318. osn_selenium/executors/unified/cdp/inspector.py +15 -0
  319. osn_selenium/executors/unified/cdp/io.py +29 -0
  320. osn_selenium/executors/unified/cdp/layer_tree.py +71 -0
  321. osn_selenium/executors/unified/cdp/log.py +29 -0
  322. osn_selenium/executors/unified/cdp/media.py +15 -0
  323. osn_selenium/executors/unified/cdp/memory.py +59 -0
  324. osn_selenium/executors/unified/cdp/network.py +323 -0
  325. osn_selenium/executors/unified/cdp/overlay.py +209 -0
  326. osn_selenium/executors/unified/cdp/page.py +410 -0
  327. osn_selenium/executors/unified/cdp/performance.py +27 -0
  328. osn_selenium/executors/unified/cdp/performance_timeline.py +17 -0
  329. osn_selenium/executors/unified/cdp/preload.py +15 -0
  330. osn_selenium/executors/unified/cdp/profiler.py +55 -0
  331. osn_selenium/executors/unified/cdp/pwa.py +55 -0
  332. osn_selenium/executors/unified/cdp/runtime.py +245 -0
  333. osn_selenium/executors/unified/cdp/schema.py +17 -0
  334. osn_selenium/executors/unified/cdp/security.py +27 -0
  335. osn_selenium/executors/unified/cdp/service_worker.py +62 -0
  336. osn_selenium/executors/unified/cdp/storage.py +178 -0
  337. osn_selenium/executors/unified/cdp/system_info.py +24 -0
  338. osn_selenium/executors/unified/cdp/target.py +165 -0
  339. osn_selenium/executors/unified/cdp/tethering.py +15 -0
  340. osn_selenium/executors/unified/cdp/tracing.py +62 -0
  341. osn_selenium/executors/unified/cdp/web_audio.py +18 -0
  342. osn_selenium/executors/unified/cdp/web_authn.py +103 -0
  343. osn_selenium/executors/unified/javascript.py +104 -0
  344. osn_selenium/flags/__init__.py +1 -0
  345. osn_selenium/flags/_functions.py +45 -0
  346. osn_selenium/flags/_typehints.py +34 -0
  347. osn_selenium/flags/_validators.py +101 -0
  348. osn_selenium/{webdrivers/BaseDriver/flags.py → flags/base.py} +159 -245
  349. osn_selenium/{webdrivers/Blink/flags.py → flags/blink.py} +130 -374
  350. osn_selenium/flags/chrome.py +259 -0
  351. osn_selenium/flags/edge.py +259 -0
  352. osn_selenium/flags/models/__init__.py +1 -0
  353. osn_selenium/flags/models/base.py +130 -0
  354. osn_selenium/flags/models/blink.py +263 -0
  355. osn_selenium/{webdrivers/Chrome/flags.py → flags/models/chrome.py} +25 -75
  356. osn_selenium/{webdrivers/Edge/flags.py → flags/models/edge.py} +25 -75
  357. osn_selenium/flags/models/values.py +44 -0
  358. osn_selenium/{webdrivers/Yandex/flags.py → flags/models/yandex.py} +26 -76
  359. osn_selenium/flags/yandex.py +259 -0
  360. osn_selenium/instances/__init__.py +1 -0
  361. osn_selenium/instances/_functions.py +242 -0
  362. osn_selenium/instances/_typehints.py +148 -0
  363. osn_selenium/instances/_utils.py +143 -0
  364. osn_selenium/instances/convert.py +287 -0
  365. osn_selenium/instances/protocols.py +105 -0
  366. osn_selenium/instances/sync/__init__.py +1 -0
  367. osn_selenium/instances/sync/action_chains/__init__.py +32 -0
  368. osn_selenium/instances/sync/action_chains/base.py +74 -0
  369. osn_selenium/instances/sync/action_chains/click.py +61 -0
  370. osn_selenium/instances/sync/action_chains/drag_and_drop.py +45 -0
  371. osn_selenium/instances/sync/action_chains/hm_keyboard.py +37 -0
  372. osn_selenium/instances/sync/action_chains/hm_move.py +81 -0
  373. osn_selenium/instances/sync/action_chains/hm_scroll.py +60 -0
  374. osn_selenium/instances/sync/action_chains/keyboard.py +55 -0
  375. osn_selenium/instances/sync/action_chains/move.py +46 -0
  376. osn_selenium/instances/sync/action_chains/scroll.py +43 -0
  377. osn_selenium/instances/sync/action_chains/utils.py +30 -0
  378. osn_selenium/instances/sync/alert.py +69 -0
  379. osn_selenium/instances/sync/browser.py +72 -0
  380. osn_selenium/instances/sync/browsing_context.py +193 -0
  381. osn_selenium/instances/sync/dialog.py +81 -0
  382. osn_selenium/instances/sync/fedcm.py +92 -0
  383. osn_selenium/instances/sync/mobile.py +75 -0
  384. osn_selenium/instances/sync/network.py +90 -0
  385. osn_selenium/instances/sync/permissions.py +80 -0
  386. osn_selenium/instances/sync/script.py +77 -0
  387. osn_selenium/instances/sync/shadow_root.py +113 -0
  388. osn_selenium/instances/sync/storage.py +91 -0
  389. osn_selenium/instances/sync/switch_to.py +92 -0
  390. osn_selenium/instances/sync/web_driver_wait.py +83 -0
  391. osn_selenium/instances/sync/web_element.py +179 -0
  392. osn_selenium/instances/sync/web_extension.py +77 -0
  393. osn_selenium/instances/trio_threads/__init__.py +1 -0
  394. osn_selenium/instances/trio_threads/action_chains/__init__.py +32 -0
  395. osn_selenium/instances/trio_threads/action_chains/base.py +88 -0
  396. osn_selenium/instances/trio_threads/action_chains/click.py +71 -0
  397. osn_selenium/instances/trio_threads/action_chains/drag_and_drop.py +49 -0
  398. osn_selenium/instances/trio_threads/action_chains/hm_keyboard.py +41 -0
  399. osn_selenium/instances/trio_threads/action_chains/hm_move.py +91 -0
  400. osn_selenium/instances/trio_threads/action_chains/hm_scroll.py +66 -0
  401. osn_selenium/instances/trio_threads/action_chains/keyboard.py +63 -0
  402. osn_selenium/instances/trio_threads/action_chains/move.py +52 -0
  403. osn_selenium/instances/trio_threads/action_chains/scroll.py +49 -0
  404. osn_selenium/instances/trio_threads/action_chains/utils.py +32 -0
  405. osn_selenium/instances/trio_threads/alert.py +87 -0
  406. osn_selenium/instances/trio_threads/browser.py +90 -0
  407. osn_selenium/instances/trio_threads/browsing_context.py +216 -0
  408. osn_selenium/instances/trio_threads/dialog.py +99 -0
  409. osn_selenium/instances/trio_threads/fedcm.py +110 -0
  410. osn_selenium/instances/trio_threads/mobile.py +93 -0
  411. osn_selenium/instances/trio_threads/network.py +108 -0
  412. osn_selenium/instances/trio_threads/permissions.py +102 -0
  413. osn_selenium/instances/trio_threads/script.py +95 -0
  414. osn_selenium/instances/trio_threads/shadow_root.py +154 -0
  415. osn_selenium/instances/trio_threads/storage.py +109 -0
  416. osn_selenium/instances/trio_threads/switch_to.py +124 -0
  417. osn_selenium/instances/trio_threads/web_driver_wait.py +101 -0
  418. osn_selenium/instances/trio_threads/web_element.py +217 -0
  419. osn_selenium/instances/trio_threads/web_extension.py +99 -0
  420. osn_selenium/instances/unified/__init__.py +1 -0
  421. osn_selenium/instances/unified/action_chains/__init__.py +22 -0
  422. osn_selenium/instances/unified/action_chains/base.py +31 -0
  423. osn_selenium/instances/unified/action_chains/click.py +27 -0
  424. osn_selenium/instances/unified/action_chains/drag_and_drop.py +24 -0
  425. osn_selenium/instances/unified/action_chains/hm_keyboard.py +30 -0
  426. osn_selenium/instances/unified/action_chains/hm_move.py +66 -0
  427. osn_selenium/instances/unified/action_chains/hm_scroll.py +79 -0
  428. osn_selenium/instances/unified/action_chains/keyboard.py +24 -0
  429. osn_selenium/instances/unified/action_chains/move.py +24 -0
  430. osn_selenium/instances/unified/action_chains/scroll.py +21 -0
  431. osn_selenium/instances/unified/action_chains/utils.py +19 -0
  432. osn_selenium/instances/unified/alert.py +29 -0
  433. osn_selenium/instances/unified/browser.py +33 -0
  434. osn_selenium/instances/unified/browsing_context.py +151 -0
  435. osn_selenium/instances/unified/dialog.py +42 -0
  436. osn_selenium/instances/unified/fedcm.py +48 -0
  437. osn_selenium/instances/unified/mobile.py +36 -0
  438. osn_selenium/instances/unified/network.py +50 -0
  439. osn_selenium/instances/unified/permissions.py +43 -0
  440. osn_selenium/instances/unified/script.py +38 -0
  441. osn_selenium/instances/unified/shadow_root.py +46 -0
  442. osn_selenium/instances/unified/storage.py +48 -0
  443. osn_selenium/instances/unified/switch_to.py +49 -0
  444. osn_selenium/instances/unified/web_driver_wait.py +45 -0
  445. osn_selenium/instances/unified/web_element.py +145 -0
  446. osn_selenium/instances/unified/web_extension.py +38 -0
  447. osn_selenium/javascript/__init__.py +1 -0
  448. osn_selenium/javascript/_functions.py +63 -0
  449. osn_selenium/javascript/fingerprint/__init__.py +120 -0
  450. osn_selenium/javascript/fingerprint/_decorators.py +41 -0
  451. osn_selenium/javascript/fingerprint/_detect/__init__.py +1 -0
  452. osn_selenium/javascript/fingerprint/_detect/functions.py +253 -0
  453. osn_selenium/javascript/fingerprint/_detect/templates.py +128 -0
  454. osn_selenium/javascript/fingerprint/_functions.py +35 -0
  455. osn_selenium/javascript/fingerprint/_typehints.py +27 -0
  456. osn_selenium/javascript/fingerprint/registry/__init__.py +7 -0
  457. osn_selenium/javascript/fingerprint/registry/_core_functions.py +236 -0
  458. osn_selenium/javascript/fingerprint/registry/_functions.py +923 -0
  459. osn_selenium/javascript/fingerprint/registry/_typehints.py +6 -0
  460. osn_selenium/javascript/fingerprint/registry/_utils.py +6 -0
  461. osn_selenium/javascript/fingerprint/registry/models.py +41 -0
  462. osn_selenium/javascript/fingerprint/spoof/__init__.py +1 -0
  463. osn_selenium/javascript/fingerprint/spoof/_functions.py +172 -0
  464. osn_selenium/javascript/fingerprint/spoof/_templates.py +134 -0
  465. osn_selenium/javascript/fingerprint/spoof/_typehints.py +22 -0
  466. osn_selenium/javascript/fingerprint/spoof/core_rules.py +141 -0
  467. osn_selenium/javascript/fingerprint/spoof/noise.py +51 -0
  468. osn_selenium/javascript/fingerprint/spoof/rules.py +313 -0
  469. osn_selenium/javascript/functions.py +44 -0
  470. osn_selenium/javascript/models.py +35 -0
  471. osn_selenium/javascript/scripts/start_fingerprint_detection.js +56 -0
  472. osn_selenium/models.py +94 -0
  473. osn_selenium/trio_threads_mixin.py +159 -0
  474. osn_selenium/webdrivers/_args_helpers.py +181 -0
  475. osn_selenium/webdrivers/_bridges.py +57 -0
  476. osn_selenium/webdrivers/_decorators.py +83 -0
  477. osn_selenium/webdrivers/_executable_tables/__init__.py +1 -0
  478. osn_selenium/webdrivers/_executable_tables/functions.py +113 -0
  479. osn_selenium/webdrivers/_executable_tables/models.py +19 -0
  480. osn_selenium/webdrivers/_typehints.py +10 -0
  481. osn_selenium/webdrivers/protocols.py +50 -0
  482. osn_selenium/webdrivers/sync/__init__.py +1 -0
  483. osn_selenium/webdrivers/sync/blink/__init__.py +124 -0
  484. osn_selenium/webdrivers/sync/blink/base.py +140 -0
  485. osn_selenium/webdrivers/sync/blink/casting.py +34 -0
  486. osn_selenium/webdrivers/sync/blink/features.py +28 -0
  487. osn_selenium/webdrivers/sync/blink/lifecycle.py +66 -0
  488. osn_selenium/webdrivers/sync/blink/logging.py +25 -0
  489. osn_selenium/webdrivers/sync/blink/network.py +28 -0
  490. osn_selenium/webdrivers/sync/blink/settings.py +63 -0
  491. osn_selenium/webdrivers/sync/chrome/__init__.py +102 -0
  492. osn_selenium/webdrivers/sync/chrome/base.py +118 -0
  493. osn_selenium/webdrivers/sync/chrome/lifecycle.py +63 -0
  494. osn_selenium/webdrivers/sync/chrome/settings.py +58 -0
  495. osn_selenium/webdrivers/sync/core/__init__.py +100 -0
  496. osn_selenium/webdrivers/sync/core/actions.py +59 -0
  497. osn_selenium/webdrivers/sync/core/auth.py +77 -0
  498. osn_selenium/webdrivers/sync/core/base.py +175 -0
  499. osn_selenium/webdrivers/sync/core/capture.py +37 -0
  500. osn_selenium/webdrivers/sync/core/comonents.py +57 -0
  501. osn_selenium/webdrivers/sync/core/devtools.py +47 -0
  502. osn_selenium/webdrivers/sync/core/element.py +42 -0
  503. osn_selenium/webdrivers/sync/core/file.py +40 -0
  504. osn_selenium/webdrivers/sync/core/lifecycle.py +59 -0
  505. osn_selenium/webdrivers/sync/core/navigation.py +36 -0
  506. osn_selenium/webdrivers/sync/core/script.py +53 -0
  507. osn_selenium/webdrivers/sync/core/settings.py +35 -0
  508. osn_selenium/webdrivers/sync/core/storage.py +48 -0
  509. osn_selenium/webdrivers/sync/core/timeouts.py +59 -0
  510. osn_selenium/webdrivers/sync/core/window.py +99 -0
  511. osn_selenium/webdrivers/sync/edge/__init__.py +102 -0
  512. osn_selenium/webdrivers/sync/edge/base.py +114 -0
  513. osn_selenium/webdrivers/sync/edge/lifecycle.py +63 -0
  514. osn_selenium/webdrivers/sync/edge/settings.py +58 -0
  515. osn_selenium/webdrivers/sync/yandex/__init__.py +102 -0
  516. osn_selenium/webdrivers/sync/yandex/base.py +111 -0
  517. osn_selenium/webdrivers/sync/yandex/lifecycle.py +63 -0
  518. osn_selenium/webdrivers/sync/yandex/settings.py +58 -0
  519. osn_selenium/webdrivers/trio_threads/__init__.py +1 -0
  520. osn_selenium/webdrivers/trio_threads/blink/__init__.py +134 -0
  521. osn_selenium/webdrivers/trio_threads/blink/base.py +143 -0
  522. osn_selenium/webdrivers/trio_threads/blink/casting.py +35 -0
  523. osn_selenium/webdrivers/trio_threads/blink/features.py +29 -0
  524. osn_selenium/webdrivers/trio_threads/blink/lifecycle.py +66 -0
  525. osn_selenium/webdrivers/trio_threads/blink/logging.py +26 -0
  526. osn_selenium/webdrivers/trio_threads/blink/network.py +29 -0
  527. osn_selenium/webdrivers/trio_threads/blink/settings.py +63 -0
  528. osn_selenium/webdrivers/trio_threads/chrome/__init__.py +114 -0
  529. osn_selenium/webdrivers/trio_threads/chrome/base.py +119 -0
  530. osn_selenium/webdrivers/trio_threads/chrome/lifecycle.py +63 -0
  531. osn_selenium/webdrivers/trio_threads/chrome/settings.py +63 -0
  532. osn_selenium/webdrivers/trio_threads/core/__init__.py +115 -0
  533. osn_selenium/webdrivers/trio_threads/core/actions.py +72 -0
  534. osn_selenium/webdrivers/trio_threads/core/auth.py +88 -0
  535. osn_selenium/webdrivers/trio_threads/core/base.py +199 -0
  536. osn_selenium/webdrivers/trio_threads/core/capture.py +38 -0
  537. osn_selenium/webdrivers/trio_threads/core/comonents.py +92 -0
  538. osn_selenium/webdrivers/trio_threads/core/devtools.py +53 -0
  539. osn_selenium/webdrivers/trio_threads/core/element.py +58 -0
  540. osn_selenium/webdrivers/trio_threads/core/file.py +45 -0
  541. osn_selenium/webdrivers/trio_threads/core/lifecycle.py +60 -0
  542. osn_selenium/webdrivers/trio_threads/core/navigation.py +41 -0
  543. osn_selenium/webdrivers/trio_threads/core/script.py +59 -0
  544. osn_selenium/webdrivers/trio_threads/core/settings.py +36 -0
  545. osn_selenium/webdrivers/trio_threads/core/storage.py +54 -0
  546. osn_selenium/webdrivers/trio_threads/core/timeouts.py +60 -0
  547. osn_selenium/webdrivers/trio_threads/core/window.py +105 -0
  548. osn_selenium/webdrivers/trio_threads/edge/__init__.py +114 -0
  549. osn_selenium/webdrivers/trio_threads/edge/base.py +115 -0
  550. osn_selenium/webdrivers/trio_threads/edge/lifecycle.py +63 -0
  551. osn_selenium/webdrivers/trio_threads/edge/settings.py +63 -0
  552. osn_selenium/webdrivers/trio_threads/yandex/__init__.py +114 -0
  553. osn_selenium/webdrivers/trio_threads/yandex/base.py +112 -0
  554. osn_selenium/webdrivers/trio_threads/yandex/lifecycle.py +63 -0
  555. osn_selenium/webdrivers/trio_threads/yandex/settings.py +63 -0
  556. osn_selenium/webdrivers/unified/__init__.py +1 -0
  557. osn_selenium/webdrivers/unified/blink/__init__.py +1 -0
  558. osn_selenium/webdrivers/unified/blink/base.py +135 -0
  559. osn_selenium/webdrivers/unified/blink/casting.py +30 -0
  560. osn_selenium/webdrivers/unified/blink/features.py +22 -0
  561. osn_selenium/webdrivers/unified/blink/lifecycle.py +114 -0
  562. osn_selenium/webdrivers/unified/blink/logging.py +18 -0
  563. osn_selenium/webdrivers/unified/blink/network.py +22 -0
  564. osn_selenium/webdrivers/unified/blink/settings.py +86 -0
  565. osn_selenium/webdrivers/unified/chrome/__init__.py +1 -0
  566. osn_selenium/webdrivers/unified/chrome/base.py +58 -0
  567. osn_selenium/webdrivers/unified/chrome/lifecycle.py +88 -0
  568. osn_selenium/webdrivers/unified/chrome/settings.py +48 -0
  569. osn_selenium/webdrivers/unified/core/__init__.py +1 -0
  570. osn_selenium/webdrivers/unified/core/actions.py +43 -0
  571. osn_selenium/webdrivers/unified/core/auth.py +70 -0
  572. osn_selenium/webdrivers/unified/core/base.py +139 -0
  573. osn_selenium/webdrivers/unified/core/capture.py +32 -0
  574. osn_selenium/webdrivers/unified/core/components.py +32 -0
  575. osn_selenium/webdrivers/unified/core/devtools.py +35 -0
  576. osn_selenium/webdrivers/unified/core/element.py +24 -0
  577. osn_selenium/webdrivers/unified/core/file.py +35 -0
  578. osn_selenium/webdrivers/unified/core/lifecycle.py +84 -0
  579. osn_selenium/webdrivers/unified/core/navigation.py +31 -0
  580. osn_selenium/webdrivers/unified/core/script.py +32 -0
  581. osn_selenium/webdrivers/unified/core/settings.py +44 -0
  582. osn_selenium/webdrivers/unified/core/storage.py +37 -0
  583. osn_selenium/webdrivers/unified/core/timeouts.py +56 -0
  584. osn_selenium/webdrivers/unified/core/window.py +135 -0
  585. osn_selenium/webdrivers/unified/edge/__init__.py +1 -0
  586. osn_selenium/webdrivers/unified/edge/base.py +56 -0
  587. osn_selenium/webdrivers/unified/edge/lifecycle.py +88 -0
  588. osn_selenium/webdrivers/unified/edge/settings.py +48 -0
  589. osn_selenium/webdrivers/unified/yandex/__init__.py +1 -0
  590. osn_selenium/webdrivers/unified/yandex/base.py +58 -0
  591. osn_selenium/webdrivers/unified/yandex/lifecycle.py +58 -0
  592. osn_selenium/webdrivers/unified/yandex/settings.py +48 -0
  593. osn_selenium-1.1.0.dist-info/METADATA +252 -0
  594. osn_selenium-1.1.0.dist-info/RECORD +615 -0
  595. {osn_selenium-0.0.0.dist-info → osn_selenium-1.1.0.dist-info}/WHEEL +1 -1
  596. osn_selenium/captcha_workers/__init__.py +0 -26
  597. osn_selenium/dev_tools/_types.py +0 -22
  598. osn_selenium/dev_tools/errors.py +0 -89
  599. osn_selenium/dev_tools/logger.py +0 -558
  600. osn_selenium/dev_tools/manager.py +0 -1551
  601. osn_selenium/dev_tools/utils.py +0 -509
  602. osn_selenium/errors.py +0 -16
  603. osn_selenium/types.py +0 -118
  604. osn_selenium/webdrivers/BaseDriver/_utils.py +0 -37
  605. osn_selenium/webdrivers/BaseDriver/protocols.py +0 -2135
  606. osn_selenium/webdrivers/BaseDriver/trio_wrapper.py +0 -71
  607. osn_selenium/webdrivers/BaseDriver/webdriver.py +0 -2626
  608. osn_selenium/webdrivers/Blink/protocols.py +0 -330
  609. osn_selenium/webdrivers/Blink/webdriver.py +0 -637
  610. osn_selenium/webdrivers/Chrome/protocols.py +0 -228
  611. osn_selenium/webdrivers/Chrome/webdriver.py +0 -394
  612. osn_selenium/webdrivers/Edge/protocols.py +0 -228
  613. osn_selenium/webdrivers/Edge/webdriver.py +0 -394
  614. osn_selenium/webdrivers/Yandex/protocols.py +0 -211
  615. osn_selenium/webdrivers/Yandex/webdriver.py +0 -350
  616. osn_selenium/webdrivers/_functions.py +0 -504
  617. osn_selenium/webdrivers/types.py +0 -390
  618. osn_selenium-0.0.0.dist-info/METADATA +0 -710
  619. osn_selenium-0.0.0.dist-info/RECORD +0 -57
  620. /osn_selenium/{webdrivers/BaseDriver → abstract}/__init__.py +0 -0
  621. /osn_selenium/{webdrivers/Blink → abstract/executors}/__init__.py +0 -0
  622. /osn_selenium/{webdrivers/Chrome → abstract/instances}/__init__.py +0 -0
  623. /osn_selenium/{webdrivers/Edge → abstract/webdriver}/__init__.py +0 -0
  624. /osn_selenium/{webdrivers/Yandex → dev_tools/logger}/__init__.py +0 -0
  625. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/check_element_in_viewport.js +0 -0
  626. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_document_scroll_size.js +0 -0
  627. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_css.js +0 -0
  628. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_rect_in_viewport.js +0 -0
  629. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_random_element_point_in_viewport.js +0 -0
  630. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_position.js +0 -0
  631. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_rect.js +0 -0
  632. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_size.js +0 -0
  633. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/open_new_tab.js +0 -0
  634. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/stop_window_loading.js +0 -0
  635. {osn_selenium-0.0.0.dist-info → osn_selenium-1.1.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,193 @@
1
+ from osn_selenium.instances.convert import get_legacy_instance
2
+ from osn_selenium.exceptions.instance import (
3
+ CannotConvertTypeError
4
+ )
5
+ from osn_selenium.instances._typehints import (
6
+ BROWSING_CONTEXT_TYPEHINT
7
+ )
8
+ from typing import (
9
+ Any,
10
+ Callable,
11
+ Dict,
12
+ List,
13
+ Optional,
14
+ Self,
15
+ Union
16
+ )
17
+ from osn_selenium.instances.unified.browsing_context import (
18
+ UnifiedBrowsingContext
19
+ )
20
+ from osn_selenium.abstract.instances.browsing_context import (
21
+ AbstractBrowsingContext
22
+ )
23
+ from selenium.webdriver.common.bidi.browsing_context import (
24
+ BrowsingContext as legacyBrowsingContext,
25
+ BrowsingContextInfo
26
+ )
27
+
28
+
29
+ __all__ = ["BrowsingContext"]
30
+
31
+
32
+ class BrowsingContext(UnifiedBrowsingContext, AbstractBrowsingContext):
33
+ """
34
+ Wrapper for the legacy Selenium BiDi BrowsingContext instance.
35
+
36
+ Controls browser tabs and windows (contexts), allowing navigation,
37
+ reloading, closing, screenshotting, and DOM tree inspection.
38
+ """
39
+
40
+ def __init__(self, selenium_browsing_context: legacyBrowsingContext) -> None:
41
+ """
42
+ Initializes the BrowsingContext wrapper.
43
+
44
+ Args:
45
+ selenium_browsing_context (legacyBrowsingContext): The legacy Selenium instance to wrap.
46
+ """
47
+
48
+ UnifiedBrowsingContext.__init__(self, selenium_browsing_context=selenium_browsing_context)
49
+
50
+ def activate(self, context: str) -> Any:
51
+ return self._activate_impl(context=context)
52
+
53
+ def add_event_handler(
54
+ self,
55
+ event: str,
56
+ callback: Callable,
57
+ contexts: Optional[List[str]] = None,
58
+ ) -> int:
59
+ return self._add_event_handler_impl(event=event, callback=callback, contexts=contexts)
60
+
61
+ def capture_screenshot(
62
+ self,
63
+ context: str,
64
+ origin: str = "viewport",
65
+ format: Optional[Dict] = None,
66
+ clip: Optional[Dict] = None,
67
+ ) -> str:
68
+ return self._capture_screenshot_impl(context=context, origin=origin, format=format, clip=clip)
69
+
70
+ def clear_event_handlers(self) -> None:
71
+ self._clear_event_handlers_impl()
72
+
73
+ def close(self, context: str, prompt_unload: bool = False) -> None:
74
+ self._close_impl(context=context, prompt_unload=prompt_unload)
75
+
76
+ def create(
77
+ self,
78
+ type: str,
79
+ reference_context: Optional[str] = None,
80
+ background: bool = False,
81
+ user_context: Optional[str] = None,
82
+ ) -> str:
83
+ return self._create_impl(
84
+ type=type,
85
+ reference_context=reference_context,
86
+ background=background,
87
+ user_context=user_context
88
+ )
89
+
90
+ @classmethod
91
+ def from_legacy(cls, legacy_object: BROWSING_CONTEXT_TYPEHINT) -> Self:
92
+ """
93
+ Creates an instance from a legacy Selenium BrowsingContext object.
94
+
95
+ This factory method is used to wrap an existing Selenium BrowsingContext
96
+ instance into the new interface.
97
+
98
+ Args:
99
+ legacy_object (BROWSING_CONTEXT_TYPEHINT): The legacy Selenium BrowsingContext instance or its wrapper.
100
+
101
+ Returns:
102
+ Self: A new instance of a class implementing BrowsingContext.
103
+ """
104
+
105
+ legacy_browsing_context_obj = get_legacy_instance(instance=legacy_object)
106
+ if not isinstance(legacy_browsing_context_obj, legacyBrowsingContext):
107
+ raise CannotConvertTypeError(from_=legacyBrowsingContext, to_=legacy_object)
108
+
109
+ return cls(selenium_browsing_context=legacy_browsing_context_obj)
110
+
111
+ def get_tree(self, max_depth: Optional[int] = None, root: Optional[str] = None) -> List[BrowsingContextInfo]:
112
+ return self._get_tree_impl(max_depth=max_depth, root=root)
113
+
114
+ def handle_user_prompt(
115
+ self,
116
+ context: str,
117
+ accept: Optional[bool] = None,
118
+ user_text: Optional[str] = None,
119
+ ) -> None:
120
+ self._handle_user_prompt_impl(context=context, accept=accept, user_text=user_text)
121
+
122
+ @property
123
+ def legacy(self) -> legacyBrowsingContext:
124
+ return self._legacy_impl
125
+
126
+ def locate_nodes(
127
+ self,
128
+ context: str,
129
+ locator: Dict,
130
+ max_node_count: Optional[int] = None,
131
+ serialization_options: Optional[Dict] = None,
132
+ start_nodes: Optional[List[Dict]] = None,
133
+ ) -> List[Dict]:
134
+ return self._locate_nodes_impl(
135
+ context=context,
136
+ locator=locator,
137
+ max_node_count=max_node_count,
138
+ serialization_options=serialization_options,
139
+ start_nodes=start_nodes
140
+ )
141
+
142
+ def navigate(self, context: str, url: str, wait: Optional[str] = None) -> Dict:
143
+ return self._navigate_impl(context=context, url=url, wait=wait)
144
+
145
+ def print(
146
+ self,
147
+ context: str,
148
+ background: bool = False,
149
+ margin: Optional[Dict] = None,
150
+ orientation: str = "portrait",
151
+ page: Optional[Dict] = None,
152
+ page_ranges: Optional[List[Union[int, str]]] = None,
153
+ scale: float = 1.0,
154
+ shrink_to_fit: bool = True,
155
+ ) -> str:
156
+ return self._print_impl(
157
+ context=context,
158
+ background=background,
159
+ margin=margin,
160
+ orientation=orientation,
161
+ page=page,
162
+ page_ranges=page_ranges,
163
+ scale=scale,
164
+ shrink_to_fit=shrink_to_fit
165
+ )
166
+
167
+ def reload(
168
+ self,
169
+ context: str,
170
+ ignore_cache: Optional[bool] = None,
171
+ wait: Optional[str] = None,
172
+ ) -> Dict:
173
+ return self._reload_impl(context=context, ignore_cache=ignore_cache, wait=wait)
174
+
175
+ def remove_event_handler(self, event: str, callback_id: int) -> None:
176
+ self._remove_event_handler_impl(event=event, callback_id=callback_id)
177
+
178
+ def set_viewport(
179
+ self,
180
+ context: Optional[str] = None,
181
+ viewport: Optional[Dict] = None,
182
+ device_pixel_ratio: Optional[float] = None,
183
+ user_contexts: Optional[List[str]] = None,
184
+ ) -> None:
185
+ self._set_viewport_impl(
186
+ context=context,
187
+ viewport=viewport,
188
+ device_pixel_ratio=device_pixel_ratio,
189
+ user_contexts=user_contexts
190
+ )
191
+
192
+ def traverse_history(self, context: str, delta: int) -> Dict:
193
+ return self._traverse_history_impl(context=context, delta=delta)
@@ -0,0 +1,81 @@
1
+ from typing import List, Optional, Self
2
+ from selenium.webdriver.common.fedcm.account import Account
3
+ from osn_selenium.instances._typehints import DIALOG_TYPEHINT
4
+ from osn_selenium.instances.convert import get_legacy_instance
5
+ from osn_selenium.instances.unified.dialog import UnifiedDialog
6
+ from osn_selenium.abstract.instances.dialog import AbstractDialog
7
+ from osn_selenium.exceptions.instance import (
8
+ CannotConvertTypeError
9
+ )
10
+ from selenium.webdriver.common.fedcm.dialog import (
11
+ Dialog as legacyDialog
12
+ )
13
+
14
+
15
+ __all__ = ["Dialog"]
16
+
17
+
18
+ class Dialog(UnifiedDialog, AbstractDialog):
19
+ """
20
+ Wrapper for the legacy Selenium FedCM Dialog instance (Synchronous).
21
+
22
+ Handles Federated Credential Management dialogs, including account selection
23
+ and dismissal.
24
+ """
25
+
26
+ def __init__(self, selenium_dialog: legacyDialog) -> None:
27
+ """
28
+ Initializes the Dialog wrapper.
29
+
30
+ Args:
31
+ selenium_dialog (legacyDialog): The legacy Selenium Dialog instance to wrap.
32
+ """
33
+
34
+ UnifiedDialog.__init__(self, selenium_dialog=selenium_dialog)
35
+
36
+ def accept(self) -> None:
37
+ self._accept_impl()
38
+
39
+ def dismiss(self) -> None:
40
+ self._dismiss_impl()
41
+
42
+ @classmethod
43
+ def from_legacy(cls, legacy_object: DIALOG_TYPEHINT) -> Self:
44
+ """
45
+ Creates an instance from a legacy Selenium Dialog object.
46
+
47
+ This factory method is used to wrap an existing Selenium Dialog
48
+ instance into the new interface.
49
+
50
+ Args:
51
+ selenium_dialog (DIALOG_TYPEHINT): The legacy Selenium Dialog instance or its wrapper.
52
+
53
+ Returns:
54
+ Self: A new instance of a class implementing Dialog.
55
+ """
56
+
57
+ legacy_dialog_obj = get_legacy_instance(instance=legacy_object)
58
+
59
+ if not isinstance(legacy_dialog_obj, legacyDialog):
60
+ raise CannotConvertTypeError(from_=legacyDialog, to_=legacy_object)
61
+
62
+ return cls(selenium_dialog=legacy_dialog_obj)
63
+
64
+ def get_accounts(self) -> List[Account]:
65
+ return self._get_accounts_impl()
66
+
67
+ @property
68
+ def legacy(self) -> legacyDialog:
69
+ return self._legacy_impl
70
+
71
+ def select_account(self, index: int) -> None:
72
+ self._select_account_impl(index=index)
73
+
74
+ def subtitle(self) -> Optional[str]:
75
+ return self._subtitle_impl()
76
+
77
+ def title(self) -> str:
78
+ return self._title_impl()
79
+
80
+ def type(self) -> Optional[str]:
81
+ return self._type_impl()
@@ -0,0 +1,92 @@
1
+ from typing import (
2
+ Dict,
3
+ List,
4
+ Optional,
5
+ Self
6
+ )
7
+ from osn_selenium.instances._typehints import FEDCM_TYPEHINT
8
+ from osn_selenium.instances.unified.fedcm import UnifiedFedCM
9
+ from osn_selenium.instances.convert import get_legacy_instance
10
+ from osn_selenium.abstract.instances.fedcm import AbstractFedCM
11
+ from selenium.webdriver.remote.fedcm import FedCM as legacyFedCM
12
+ from osn_selenium.exceptions.instance import (
13
+ CannotConvertTypeError
14
+ )
15
+
16
+
17
+ __all__ = ["FedCM"]
18
+
19
+
20
+ class FedCM(UnifiedFedCM, AbstractFedCM):
21
+ """
22
+ Wrapper for the legacy Selenium FedCM instance.
23
+
24
+ Provides an interface for controlling the Federated Credential Management API,
25
+ including dialog delays and cooldown resets.
26
+ """
27
+
28
+ def __init__(self, selenium_fedcm: legacyFedCM) -> None:
29
+ """
30
+ Initializes the FedCM wrapper.
31
+
32
+ Args:
33
+ selenium_fedcm (legacyFedCM): The legacy Selenium FedCM instance to wrap.
34
+ """
35
+
36
+ UnifiedFedCM.__init__(self, selenium_fedcm=selenium_fedcm)
37
+
38
+ def accept(self) -> None:
39
+ self._accept_impl()
40
+
41
+ def account_list(self) -> List[Dict]:
42
+ return self._account_list_impl()
43
+
44
+ def dialog_type(self) -> str:
45
+ return self._dialog_type_impl()
46
+
47
+ def disable_delay(self) -> None:
48
+ self._disable_delay_impl()
49
+
50
+ def dismiss(self) -> None:
51
+ self._dismiss_impl()
52
+
53
+ def enable_delay(self) -> None:
54
+ self._enable_delay_impl()
55
+
56
+ @classmethod
57
+ def from_legacy(cls, legacy_object: FEDCM_TYPEHINT) -> Self:
58
+ """
59
+ Creates an instance from a legacy Selenium FedCM object.
60
+
61
+ This factory method is used to wrap an existing Selenium FedCM
62
+ instance into the new interface.
63
+
64
+ Args:
65
+ legacy_object (FEDCM_TYPEHINT): The legacy Selenium FedCM instance or its wrapper.
66
+
67
+ Returns:
68
+ Self: A new instance of a class implementing FedCM.
69
+ """
70
+
71
+ legacy_fedcm_obj = get_legacy_instance(instance=legacy_object)
72
+
73
+ if not isinstance(legacy_fedcm_obj, legacyFedCM):
74
+ raise CannotConvertTypeError(from_=legacyFedCM, to_=legacy_object)
75
+
76
+ return cls(selenium_fedcm=legacy_fedcm_obj)
77
+
78
+ @property
79
+ def legacy(self) -> legacyFedCM:
80
+ return self._legacy_impl
81
+
82
+ def reset_cooldown(self) -> None:
83
+ self._reset_cooldown_impl()
84
+
85
+ def select_account(self, index: int) -> None:
86
+ self._select_account_impl(index=index)
87
+
88
+ def subtitle(self) -> Optional[str]:
89
+ return self._subtitle_impl()
90
+
91
+ def title(self) -> str:
92
+ return self._title_impl()
@@ -0,0 +1,75 @@
1
+ from typing import List, Self, Union
2
+ from osn_selenium.instances._typehints import MOBILE_TYPEHINT
3
+ from osn_selenium.instances.convert import get_legacy_instance
4
+ from osn_selenium.instances.unified.mobile import UnifiedMobile
5
+ from osn_selenium.abstract.instances.mobile import AbstractMobile
6
+ from osn_selenium.exceptions.instance import (
7
+ CannotConvertTypeError
8
+ )
9
+ from selenium.webdriver.remote.mobile import (
10
+ Mobile as legacyMobile,
11
+ _ConnectionType
12
+ )
13
+
14
+
15
+ __all__ = ["Mobile"]
16
+
17
+
18
+ class Mobile(UnifiedMobile, AbstractMobile):
19
+ """
20
+ Wrapper for the legacy Selenium Mobile instance.
21
+
22
+ Manages network connection types and context settings (e.g., native app vs web view)
23
+ for mobile emulation.
24
+ """
25
+
26
+ def __init__(self, selenium_mobile: legacyMobile) -> None:
27
+ """
28
+ Initializes the Mobile wrapper.
29
+
30
+ Args:
31
+ selenium_mobile (legacyMobile): The legacy Selenium Mobile instance to wrap.
32
+ """
33
+
34
+ UnifiedMobile.__init__(self, selenium_mobile=selenium_mobile)
35
+
36
+ def context(self) -> str:
37
+ return self._get_context_impl()
38
+
39
+ def contexts(self) -> List[str]:
40
+ return self._contexts_impl()
41
+
42
+ @classmethod
43
+ def from_legacy(cls, legacy_object: MOBILE_TYPEHINT) -> Self:
44
+ """
45
+ Creates an instance from a legacy Selenium Mobile object.
46
+
47
+ This factory method is used to wrap an existing Selenium Mobile
48
+ instance into the new interface.
49
+
50
+ Args:
51
+ legacy_object (MOBILE_TYPEHINT): The legacy Selenium Mobile instance or its wrapper.
52
+
53
+ Returns:
54
+ Self: A new instance of a class implementing Mobile.
55
+ """
56
+
57
+ legacy_mobile_obj = get_legacy_instance(instance=legacy_object)
58
+
59
+ if not isinstance(legacy_mobile_obj, legacyMobile):
60
+ raise CannotConvertTypeError(from_=legacyMobile, to_=legacy_object)
61
+
62
+ return cls(selenium_mobile=legacy_mobile_obj)
63
+
64
+ @property
65
+ def legacy(self) -> legacyMobile:
66
+ return self._legacy_impl
67
+
68
+ def network_connection(self) -> _ConnectionType:
69
+ return self._network_connection_impl()
70
+
71
+ def set_context(self, new_context: str) -> None:
72
+ self._set_context_impl(new_context=new_context)
73
+
74
+ def set_network_connection(self, network: Union[int, _ConnectionType]) -> _ConnectionType:
75
+ return self._set_network_connection_impl(network=network)
@@ -0,0 +1,90 @@
1
+ from typing import (
2
+ Callable,
3
+ List,
4
+ Optional,
5
+ Self
6
+ )
7
+ from osn_selenium.instances._typehints import NETWORK_TYPEHINT
8
+ from osn_selenium.instances.convert import get_legacy_instance
9
+ from osn_selenium.instances.unified.network import UnifiedNetwork
10
+ from osn_selenium.abstract.instances.network import AbstractNetwork
11
+ from osn_selenium.exceptions.instance import (
12
+ CannotConvertTypeError
13
+ )
14
+ from selenium.webdriver.common.bidi.network import (
15
+ Network as legacyNetwork
16
+ )
17
+
18
+
19
+ __all__ = ["Network"]
20
+
21
+
22
+ class Network(UnifiedNetwork, AbstractNetwork):
23
+ """
24
+ Wrapper for the legacy Selenium BiDi Network instance.
25
+
26
+ Allows interception of network requests, adding authentication handlers,
27
+ and managing request callbacks.
28
+ """
29
+
30
+ def __init__(self, selenium_network: legacyNetwork) -> None:
31
+ """
32
+ Initializes the Network wrapper.
33
+
34
+ Args:
35
+ selenium_network (legacyNetwork): The legacy Selenium Network instance to wrap.
36
+ """
37
+
38
+ UnifiedNetwork.__init__(self, selenium_network=selenium_network)
39
+
40
+ def add_auth_handler(self, username: str, password: str) -> int:
41
+ return self._add_auth_handler_impl(username=username, password=password)
42
+
43
+ def add_request_handler(
44
+ self,
45
+ event: str,
46
+ callback: Callable,
47
+ url_patterns: Optional[List[str]] = None,
48
+ contexts: Optional[List[str]] = None,
49
+ ) -> int:
50
+ return self._add_request_handler_impl(
51
+ event=event,
52
+ callback=callback,
53
+ url_patterns=url_patterns,
54
+ contexts=contexts
55
+ )
56
+
57
+ def clear_request_handlers(self) -> None:
58
+ self._clear_request_handlers_impl()
59
+
60
+ @classmethod
61
+ def from_legacy(cls, legacy_object: NETWORK_TYPEHINT) -> Self:
62
+ """
63
+ Creates an instance from a legacy Selenium Network object.
64
+
65
+ This factory method is used to wrap an existing Selenium Network
66
+ instance into the new interface.
67
+
68
+ Args:
69
+ legacy_object (NETWORK_TYPEHINT): The legacy Selenium Network instance or its wrapper.
70
+
71
+ Returns:
72
+ Self: A new instance of a class implementing Network.
73
+ """
74
+
75
+ legacy_network_obj = get_legacy_instance(instance=legacy_object)
76
+
77
+ if not isinstance(legacy_network_obj, legacyNetwork):
78
+ raise CannotConvertTypeError(from_=legacyNetwork, to_=legacy_object)
79
+
80
+ return cls(selenium_network=legacy_network_obj)
81
+
82
+ @property
83
+ def legacy(self) -> legacyNetwork:
84
+ return self._legacy_impl
85
+
86
+ def remove_auth_handler(self, callback_id: int) -> None:
87
+ self._remove_auth_handler_impl(callback_id=callback_id)
88
+
89
+ def remove_request_handler(self, event: str, callback_id: int) -> None:
90
+ self._remove_request_handler_impl(event=event, callback_id=callback_id)
@@ -0,0 +1,80 @@
1
+ from typing import (
2
+ Any,
3
+ Dict,
4
+ Optional,
5
+ Self,
6
+ Union
7
+ )
8
+ from osn_selenium.instances.convert import get_legacy_instance
9
+ from osn_selenium.instances._typehints import PERMISSIONS_TYPEHINT
10
+ from osn_selenium.exceptions.instance import (
11
+ CannotConvertTypeError
12
+ )
13
+ from osn_selenium.instances.unified.permissions import UnifiedPermissions
14
+ from osn_selenium.abstract.instances.permissions import AbstractPermissions
15
+ from selenium.webdriver.common.bidi.permissions import (
16
+ PermissionDescriptor,
17
+ Permissions as legacyPermissions
18
+ )
19
+
20
+
21
+ __all__ = ["Permissions"]
22
+
23
+
24
+ class Permissions(UnifiedPermissions, AbstractPermissions):
25
+ """
26
+ Wrapper for the legacy Selenium Permissions instance.
27
+
28
+ Provides methods to set and modify browser permissions (e.g., camera, microphone, geolocation)
29
+ via the WebDriver BiDi protocol.
30
+ """
31
+
32
+ def __init__(self, selenium_permissions: legacyPermissions) -> None:
33
+ """
34
+ Initializes the Permissions wrapper.
35
+
36
+ Args:
37
+ selenium_permissions (legacyPermissions): The legacy Selenium Permissions instance to wrap.
38
+ """
39
+
40
+ UnifiedPermissions.__init__(self, selenium_permissions=selenium_permissions)
41
+
42
+ @classmethod
43
+ def from_legacy(cls, legacy_object: PERMISSIONS_TYPEHINT) -> Self:
44
+ """
45
+ Creates an instance from a legacy Selenium Permissions object.
46
+
47
+ This factory method is used to wrap an existing Selenium Permissions
48
+ instance into the new interface.
49
+
50
+ Args:
51
+ legacy_object (PERMISSIONS_TYPEHINT): The legacy Selenium Permissions instance or its wrapper.
52
+
53
+ Returns:
54
+ Self: A new instance of a class implementing Permissions.
55
+ """
56
+
57
+ legacy_permissions_obj = get_legacy_instance(instance=legacy_object)
58
+
59
+ if not isinstance(legacy_permissions_obj, legacyPermissions):
60
+ raise CannotConvertTypeError(from_=legacyPermissions, to_=legacy_object)
61
+
62
+ return cls(selenium_permissions=legacy_permissions_obj)
63
+
64
+ @property
65
+ def legacy(self) -> legacyPermissions:
66
+ return self._legacy_impl
67
+
68
+ def set_permission(
69
+ self,
70
+ descriptor: Union[Dict[str, Any], PermissionDescriptor],
71
+ state: str,
72
+ origin: str,
73
+ user_context: Optional[str] = None,
74
+ ) -> None:
75
+ self._set_permission_impl(
76
+ descriptor=descriptor,
77
+ state=state,
78
+ origin=origin,
79
+ user_context=user_context
80
+ )
@@ -0,0 +1,77 @@
1
+ from typing import Any, Callable, Self
2
+ from osn_selenium.instances._typehints import SCRIPT_TYPEHINT
3
+ from osn_selenium.instances.convert import get_legacy_instance
4
+ from osn_selenium.instances.unified.script import UnifiedScript
5
+ from osn_selenium.abstract.instances.script import AbstractScript
6
+ from osn_selenium.exceptions.instance import (
7
+ CannotConvertTypeError
8
+ )
9
+ from selenium.webdriver.common.bidi.script import (
10
+ Script as legacyScript
11
+ )
12
+
13
+
14
+ __all__ = ["Script"]
15
+
16
+
17
+ class Script(UnifiedScript, AbstractScript):
18
+ """
19
+ Wrapper for the legacy Selenium BiDi Script instance.
20
+
21
+ Facilitates execution of JavaScript within specific contexts, adding preload scripts,
22
+ and handling console messages or JS errors.
23
+ """
24
+
25
+ def __init__(self, selenium_script: legacyScript) -> None:
26
+ """
27
+ Initializes the Script wrapper.
28
+
29
+ Args:
30
+ selenium_script (legacyScript): The legacy Selenium Script instance to wrap.
31
+ """
32
+
33
+ UnifiedScript.__init__(self, selenium_script=selenium_script)
34
+
35
+ def add_console_message_handler(self, handler: Callable[[Any], None]) -> int:
36
+ return self._add_console_message_handler_impl(handler=handler)
37
+
38
+ def add_javascript_error_handler(self, handler: Callable[[Any], None]) -> int:
39
+ return self._add_javascript_error_handler_impl(handler=handler)
40
+
41
+ def execute(self, script: str, *args: Any) -> Any:
42
+ return self._execute_impl(script, *args)
43
+
44
+ @classmethod
45
+ def from_legacy(cls, legacy_object: SCRIPT_TYPEHINT) -> Self:
46
+ """
47
+ Creates an instance from a legacy Selenium Script object.
48
+
49
+ This factory method is used to wrap an existing Selenium Script
50
+ instance into the new interface.
51
+
52
+ Args:
53
+ legacy_object (SCRIPT_TYPEHINT): The legacy Selenium Script instance or its wrapper.
54
+
55
+ Returns:
56
+ Self: A new instance of a class implementing Script.
57
+ """
58
+
59
+ legacy_script_obj = get_legacy_instance(instance=legacy_object)
60
+
61
+ if not isinstance(legacy_script_obj, legacyScript):
62
+ raise CannotConvertTypeError(from_=legacyScript, to_=legacy_object)
63
+
64
+ return cls(selenium_script=legacy_script_obj)
65
+
66
+ @property
67
+ def legacy(self) -> legacyScript:
68
+ return self._legacy_impl
69
+
70
+ def pin(self, script: str) -> str:
71
+ return self._pin_impl(script=script)
72
+
73
+ def remove_console_message_handler(self, id: int) -> None:
74
+ self._remove_console_message_handler_impl(id=id)
75
+
76
+ def unpin(self, script_id: str) -> None:
77
+ self._unpin_impl(script_id=script_id)