osn-selenium 0.0.0__py3-none-any.whl → 1.0.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 (628) hide show
  1. osn_selenium/_functions.py +84 -0
  2. osn_selenium/_typehints.py +19 -0
  3. osn_selenium/abstract/executors/cdp/__init__.py +435 -0
  4. osn_selenium/abstract/executors/cdp/accessibility.py +62 -0
  5. osn_selenium/abstract/executors/cdp/animation.py +47 -0
  6. osn_selenium/abstract/executors/cdp/audits.py +39 -0
  7. osn_selenium/abstract/executors/cdp/autofill.py +34 -0
  8. osn_selenium/abstract/executors/cdp/background_service.py +22 -0
  9. osn_selenium/abstract/executors/cdp/bluetooth_emulation.py +95 -0
  10. osn_selenium/abstract/executors/cdp/browser.py +122 -0
  11. osn_selenium/abstract/executors/cdp/cache_storage.py +49 -0
  12. osn_selenium/abstract/executors/cdp/cast.py +31 -0
  13. osn_selenium/abstract/executors/cdp/console.py +18 -0
  14. osn_selenium/abstract/executors/cdp/css.py +197 -0
  15. osn_selenium/abstract/executors/cdp/debugger.py +198 -0
  16. osn_selenium/abstract/executors/cdp/device_access.py +22 -0
  17. osn_selenium/abstract/executors/cdp/device_orientation.py +14 -0
  18. osn_selenium/abstract/executors/cdp/dom.py +305 -0
  19. osn_selenium/abstract/executors/cdp/dom_debugger.py +57 -0
  20. osn_selenium/abstract/executors/cdp/dom_snapshot.py +42 -0
  21. osn_selenium/abstract/executors/cdp/dom_storage.py +31 -0
  22. osn_selenium/abstract/executors/cdp/emulation.py +259 -0
  23. osn_selenium/abstract/executors/cdp/event_breakpoints.py +18 -0
  24. osn_selenium/abstract/executors/cdp/extensions.py +31 -0
  25. osn_selenium/abstract/executors/cdp/fed_cm.py +35 -0
  26. osn_selenium/abstract/executors/cdp/fetch.py +76 -0
  27. osn_selenium/abstract/executors/cdp/file_system.py +11 -0
  28. osn_selenium/abstract/executors/cdp/headless_experimental.py +30 -0
  29. osn_selenium/abstract/executors/cdp/heap_profiler.py +73 -0
  30. osn_selenium/abstract/executors/cdp/indexed_db.py +99 -0
  31. osn_selenium/abstract/executors/cdp/input.py +158 -0
  32. osn_selenium/abstract/executors/cdp/inspector.py +14 -0
  33. osn_selenium/abstract/executors/cdp/io.py +24 -0
  34. osn_selenium/abstract/executors/cdp/layer_tree.py +61 -0
  35. osn_selenium/abstract/executors/cdp/log.py +27 -0
  36. osn_selenium/abstract/executors/cdp/media.py +14 -0
  37. osn_selenium/abstract/executors/cdp/memory.py +61 -0
  38. osn_selenium/abstract/executors/cdp/network.py +252 -0
  39. osn_selenium/abstract/executors/cdp/overlay.py +166 -0
  40. osn_selenium/abstract/executors/cdp/page.py +347 -0
  41. osn_selenium/abstract/executors/cdp/performance.py +28 -0
  42. osn_selenium/abstract/executors/cdp/performance_timeline.py +11 -0
  43. osn_selenium/abstract/executors/cdp/preload.py +14 -0
  44. osn_selenium/abstract/executors/cdp/profiler.py +54 -0
  45. osn_selenium/abstract/executors/cdp/pwa.py +46 -0
  46. osn_selenium/abstract/executors/cdp/runtime.py +176 -0
  47. osn_selenium/abstract/executors/cdp/schema.py +11 -0
  48. osn_selenium/abstract/executors/cdp/security.py +26 -0
  49. osn_selenium/abstract/executors/cdp/service_worker.py +54 -0
  50. osn_selenium/abstract/executors/cdp/storage.py +175 -0
  51. osn_selenium/abstract/executors/cdp/system_info.py +24 -0
  52. osn_selenium/abstract/executors/cdp/target.py +125 -0
  53. osn_selenium/abstract/executors/cdp/tethering.py +14 -0
  54. osn_selenium/abstract/executors/cdp/tracing.py +48 -0
  55. osn_selenium/abstract/executors/cdp/web_audio.py +19 -0
  56. osn_selenium/abstract/executors/cdp/web_authn.py +76 -0
  57. osn_selenium/abstract/executors/javascript.py +203 -0
  58. osn_selenium/abstract/instances/action_chains/__init__.py +12 -0
  59. osn_selenium/abstract/instances/action_chains/base.py +25 -0
  60. osn_selenium/abstract/instances/action_chains/click.py +93 -0
  61. osn_selenium/abstract/instances/action_chains/drag_and_drop.py +46 -0
  62. osn_selenium/abstract/instances/action_chains/hm_keyboard.py +44 -0
  63. osn_selenium/abstract/instances/action_chains/hm_move.py +104 -0
  64. osn_selenium/abstract/instances/action_chains/hm_scroll.py +75 -0
  65. osn_selenium/abstract/instances/action_chains/keyboard.py +79 -0
  66. osn_selenium/abstract/instances/action_chains/move.py +60 -0
  67. osn_selenium/abstract/instances/action_chains/scroll.py +61 -0
  68. osn_selenium/abstract/instances/action_chains/utils.py +44 -0
  69. osn_selenium/abstract/instances/alert.py +67 -0
  70. osn_selenium/abstract/instances/browser.py +76 -0
  71. osn_selenium/abstract/instances/browsing_context.py +310 -0
  72. osn_selenium/abstract/instances/dialog.py +107 -0
  73. osn_selenium/abstract/instances/fedcm.py +133 -0
  74. osn_selenium/abstract/instances/mobile.py +79 -0
  75. osn_selenium/abstract/instances/network.py +100 -0
  76. osn_selenium/abstract/instances/permissions.py +52 -0
  77. osn_selenium/abstract/instances/script.py +109 -0
  78. osn_selenium/abstract/instances/shadow_root.py +81 -0
  79. osn_selenium/abstract/instances/storage.py +98 -0
  80. osn_selenium/abstract/instances/switch_to.py +104 -0
  81. osn_selenium/abstract/instances/web_driver_wait.py +57 -0
  82. osn_selenium/abstract/instances/web_element.py +395 -0
  83. osn_selenium/abstract/instances/web_extension.py +70 -0
  84. osn_selenium/abstract/webdriver/blink/__init__.py +18 -0
  85. osn_selenium/abstract/webdriver/blink/base.py +80 -0
  86. osn_selenium/abstract/webdriver/blink/casting.py +82 -0
  87. osn_selenium/abstract/webdriver/blink/features.py +51 -0
  88. osn_selenium/abstract/webdriver/blink/lifecycle.py +76 -0
  89. osn_selenium/abstract/webdriver/blink/logging.py +40 -0
  90. osn_selenium/abstract/webdriver/blink/network.py +45 -0
  91. osn_selenium/abstract/webdriver/blink/settings.py +68 -0
  92. osn_selenium/abstract/webdriver/chrome/__init__.py +18 -0
  93. osn_selenium/abstract/webdriver/chrome/base.py +36 -0
  94. osn_selenium/abstract/webdriver/chrome/lifecycle.py +92 -0
  95. osn_selenium/abstract/webdriver/chrome/settings.py +110 -0
  96. osn_selenium/abstract/webdriver/core/__init__.py +16 -0
  97. osn_selenium/abstract/webdriver/core/actions.py +58 -0
  98. osn_selenium/abstract/webdriver/core/auth.py +145 -0
  99. osn_selenium/abstract/webdriver/core/base.py +298 -0
  100. osn_selenium/abstract/webdriver/core/capture.py +84 -0
  101. osn_selenium/abstract/webdriver/core/components.py +82 -0
  102. osn_selenium/abstract/webdriver/core/devtools.py +69 -0
  103. osn_selenium/abstract/webdriver/core/element.py +55 -0
  104. osn_selenium/abstract/webdriver/core/file.py +82 -0
  105. osn_selenium/abstract/webdriver/core/lifecycle.py +103 -0
  106. osn_selenium/abstract/webdriver/core/navigation.py +65 -0
  107. osn_selenium/abstract/webdriver/core/script.py +88 -0
  108. osn_selenium/abstract/webdriver/core/settings.py +43 -0
  109. osn_selenium/abstract/webdriver/core/storage.py +81 -0
  110. osn_selenium/abstract/webdriver/core/timeouts.py +101 -0
  111. osn_selenium/abstract/webdriver/core/window.py +237 -0
  112. osn_selenium/abstract/webdriver/edge/__init__.py +18 -0
  113. osn_selenium/abstract/webdriver/edge/base.py +36 -0
  114. osn_selenium/abstract/webdriver/edge/lifecycle.py +92 -0
  115. osn_selenium/abstract/webdriver/edge/settings.py +110 -0
  116. osn_selenium/abstract/webdriver/yandex/__init__.py +18 -0
  117. osn_selenium/abstract/webdriver/yandex/base.py +18 -0
  118. osn_selenium/abstract/webdriver/yandex/lifecycle.py +92 -0
  119. osn_selenium/abstract/webdriver/yandex/settings.py +110 -0
  120. osn_selenium/base_mixin.py +122 -0
  121. osn_selenium/browsers_handler/__init__.py +47 -17
  122. osn_selenium/browsers_handler/_linux.py +226 -0
  123. osn_selenium/browsers_handler/_windows.py +21 -14
  124. osn_selenium/browsers_handler/{types.py → models.py} +5 -2
  125. osn_selenium/dev_tools/_decorators.py +140 -0
  126. osn_selenium/dev_tools/_exception_helpers.py +116 -0
  127. osn_selenium/dev_tools/_functions.py +174 -0
  128. osn_selenium/dev_tools/_system_utils.py +35 -0
  129. osn_selenium/dev_tools/_typehints.py +32 -0
  130. osn_selenium/dev_tools/_validators.py +227 -0
  131. osn_selenium/dev_tools/_wrappers.py +95 -0
  132. osn_selenium/dev_tools/domains/__init__.py +7 -40
  133. osn_selenium/dev_tools/domains/abstract.py +98 -254
  134. osn_selenium/dev_tools/domains/fetch.py +229 -906
  135. osn_selenium/dev_tools/domains_default/fetch.py +40 -28
  136. osn_selenium/dev_tools/filters.py +40 -0
  137. osn_selenium/dev_tools/logger/main.py +226 -0
  138. osn_selenium/dev_tools/logger/models.py +232 -0
  139. osn_selenium/dev_tools/logger/target.py +258 -0
  140. osn_selenium/dev_tools/manager/__init__.py +16 -0
  141. osn_selenium/dev_tools/manager/base.py +147 -0
  142. osn_selenium/dev_tools/manager/lifecycle.py +236 -0
  143. osn_selenium/dev_tools/manager/logging.py +153 -0
  144. osn_selenium/dev_tools/manager/settings.py +89 -0
  145. osn_selenium/dev_tools/manager/targets.py +175 -0
  146. osn_selenium/dev_tools/models.py +49 -0
  147. osn_selenium/dev_tools/settings.py +135 -0
  148. osn_selenium/dev_tools/target/__init__.py +16 -0
  149. osn_selenium/dev_tools/target/base.py +438 -0
  150. osn_selenium/dev_tools/target/detach.py +54 -0
  151. osn_selenium/dev_tools/target/discovery.py +112 -0
  152. osn_selenium/dev_tools/target/events.py +120 -0
  153. osn_selenium/dev_tools/target/fingerprint.py +126 -0
  154. osn_selenium/dev_tools/target/lifecycle.py +179 -0
  155. osn_selenium/dev_tools/target/logging.py +155 -0
  156. osn_selenium/exceptions/__init__.py +1 -0
  157. osn_selenium/exceptions/base.py +9 -0
  158. osn_selenium/exceptions/configuration.py +84 -0
  159. osn_selenium/exceptions/devtools.py +114 -0
  160. osn_selenium/exceptions/flags.py +45 -0
  161. osn_selenium/exceptions/instance.py +92 -0
  162. osn_selenium/exceptions/javascript.py +31 -0
  163. osn_selenium/exceptions/logic.py +31 -0
  164. osn_selenium/exceptions/path.py +77 -0
  165. osn_selenium/exceptions/platform.py +33 -0
  166. osn_selenium/exceptions/protocol.py +86 -0
  167. osn_selenium/exceptions/webdriver.py +44 -0
  168. osn_selenium/exceptions/window.py +63 -0
  169. osn_selenium/executors/__init__.py +1 -0
  170. osn_selenium/executors/sync/__init__.py +1 -0
  171. osn_selenium/executors/sync/cdp/__init__.py +550 -0
  172. osn_selenium/executors/sync/cdp/accessibility.py +74 -0
  173. osn_selenium/executors/sync/cdp/animation.py +50 -0
  174. osn_selenium/executors/sync/cdp/audits.py +48 -0
  175. osn_selenium/executors/sync/cdp/autofill.py +39 -0
  176. osn_selenium/executors/sync/cdp/background_service.py +30 -0
  177. osn_selenium/executors/sync/cdp/bluetooth_emulation.py +101 -0
  178. osn_selenium/executors/sync/cdp/browser.py +131 -0
  179. osn_selenium/executors/sync/cdp/cache_storage.py +66 -0
  180. osn_selenium/executors/sync/cdp/cast.py +38 -0
  181. osn_selenium/executors/sync/cdp/console.py +24 -0
  182. osn_selenium/executors/sync/cdp/css.py +187 -0
  183. osn_selenium/executors/sync/cdp/debugger.py +206 -0
  184. osn_selenium/executors/sync/cdp/device_access.py +27 -0
  185. osn_selenium/executors/sync/cdp/device_orientation.py +24 -0
  186. osn_selenium/executors/sync/cdp/dom.py +310 -0
  187. osn_selenium/executors/sync/cdp/dom_debugger.py +56 -0
  188. osn_selenium/executors/sync/cdp/dom_snapshot.py +58 -0
  189. osn_selenium/executors/sync/cdp/dom_storage.py +38 -0
  190. osn_selenium/executors/sync/cdp/emulation.py +270 -0
  191. osn_selenium/executors/sync/cdp/event_breakpoints.py +27 -0
  192. osn_selenium/executors/sync/cdp/extensions.py +39 -0
  193. osn_selenium/executors/sync/cdp/fed_cm.py +45 -0
  194. osn_selenium/executors/sync/cdp/fetch.py +96 -0
  195. osn_selenium/executors/sync/cdp/file_system.py +18 -0
  196. osn_selenium/executors/sync/cdp/headless_experimental.py +44 -0
  197. osn_selenium/executors/sync/cdp/heap_profiler.py +89 -0
  198. osn_selenium/executors/sync/cdp/indexed_db.py +142 -0
  199. osn_selenium/executors/sync/cdp/input.py +233 -0
  200. osn_selenium/executors/sync/cdp/inspector.py +21 -0
  201. osn_selenium/executors/sync/cdp/io.py +33 -0
  202. osn_selenium/executors/sync/cdp/layer_tree.py +71 -0
  203. osn_selenium/executors/sync/cdp/log.py +35 -0
  204. osn_selenium/executors/sync/cdp/media.py +21 -0
  205. osn_selenium/executors/sync/cdp/memory.py +62 -0
  206. osn_selenium/executors/sync/cdp/network.py +287 -0
  207. osn_selenium/executors/sync/cdp/overlay.py +174 -0
  208. osn_selenium/executors/sync/cdp/page.py +365 -0
  209. osn_selenium/executors/sync/cdp/performance.py +33 -0
  210. osn_selenium/executors/sync/cdp/performance_timeline.py +26 -0
  211. osn_selenium/executors/sync/cdp/preload.py +21 -0
  212. osn_selenium/executors/sync/cdp/profiler.py +58 -0
  213. osn_selenium/executors/sync/cdp/pwa.py +55 -0
  214. osn_selenium/executors/sync/cdp/runtime.py +221 -0
  215. osn_selenium/executors/sync/cdp/schema.py +23 -0
  216. osn_selenium/executors/sync/cdp/security.py +30 -0
  217. osn_selenium/executors/sync/cdp/service_worker.py +56 -0
  218. osn_selenium/executors/sync/cdp/storage.py +151 -0
  219. osn_selenium/executors/sync/cdp/system_info.py +30 -0
  220. osn_selenium/executors/sync/cdp/target.py +147 -0
  221. osn_selenium/executors/sync/cdp/tethering.py +21 -0
  222. osn_selenium/executors/sync/cdp/tracing.py +62 -0
  223. osn_selenium/executors/sync/cdp/web_audio.py +24 -0
  224. osn_selenium/executors/sync/cdp/web_authn.py +82 -0
  225. osn_selenium/executors/sync/javascript.py +79 -0
  226. osn_selenium/executors/trio_threads/__init__.py +1 -0
  227. osn_selenium/executors/trio_threads/cdp/__init__.py +771 -0
  228. osn_selenium/executors/trio_threads/cdp/accessibility.py +87 -0
  229. osn_selenium/executors/trio_threads/cdp/animation.py +63 -0
  230. osn_selenium/executors/trio_threads/cdp/audits.py +57 -0
  231. osn_selenium/executors/trio_threads/cdp/autofill.py +52 -0
  232. osn_selenium/executors/trio_threads/cdp/background_service.py +40 -0
  233. osn_selenium/executors/trio_threads/cdp/bluetooth_emulation.py +111 -0
  234. osn_selenium/executors/trio_threads/cdp/browser.py +140 -0
  235. osn_selenium/executors/trio_threads/cdp/cache_storage.py +79 -0
  236. osn_selenium/executors/trio_threads/cdp/cast.py +47 -0
  237. osn_selenium/executors/trio_threads/cdp/console.py +33 -0
  238. osn_selenium/executors/trio_threads/cdp/css.py +196 -0
  239. osn_selenium/executors/trio_threads/cdp/debugger.py +219 -0
  240. osn_selenium/executors/trio_threads/cdp/device_access.py +40 -0
  241. osn_selenium/executors/trio_threads/cdp/device_orientation.py +34 -0
  242. osn_selenium/executors/trio_threads/cdp/dom.py +319 -0
  243. osn_selenium/executors/trio_threads/cdp/dom_debugger.py +69 -0
  244. osn_selenium/executors/trio_threads/cdp/dom_snapshot.py +71 -0
  245. osn_selenium/executors/trio_threads/cdp/dom_storage.py +51 -0
  246. osn_selenium/executors/trio_threads/cdp/emulation.py +283 -0
  247. osn_selenium/executors/trio_threads/cdp/event_breakpoints.py +37 -0
  248. osn_selenium/executors/trio_threads/cdp/extensions.py +52 -0
  249. osn_selenium/executors/trio_threads/cdp/fed_cm.py +54 -0
  250. osn_selenium/executors/trio_threads/cdp/fetch.py +105 -0
  251. osn_selenium/executors/trio_threads/cdp/file_system.py +31 -0
  252. osn_selenium/executors/trio_threads/cdp/headless_experimental.py +54 -0
  253. osn_selenium/executors/trio_threads/cdp/heap_profiler.py +102 -0
  254. osn_selenium/executors/trio_threads/cdp/indexed_db.py +155 -0
  255. osn_selenium/executors/trio_threads/cdp/input.py +242 -0
  256. osn_selenium/executors/trio_threads/cdp/inspector.py +34 -0
  257. osn_selenium/executors/trio_threads/cdp/io.py +42 -0
  258. osn_selenium/executors/trio_threads/cdp/layer_tree.py +84 -0
  259. osn_selenium/executors/trio_threads/cdp/log.py +44 -0
  260. osn_selenium/executors/trio_threads/cdp/media.py +30 -0
  261. osn_selenium/executors/trio_threads/cdp/memory.py +71 -0
  262. osn_selenium/executors/trio_threads/cdp/network.py +296 -0
  263. osn_selenium/executors/trio_threads/cdp/overlay.py +183 -0
  264. osn_selenium/executors/trio_threads/cdp/page.py +374 -0
  265. osn_selenium/executors/trio_threads/cdp/performance.py +46 -0
  266. osn_selenium/executors/trio_threads/cdp/performance_timeline.py +36 -0
  267. osn_selenium/executors/trio_threads/cdp/preload.py +30 -0
  268. osn_selenium/executors/trio_threads/cdp/profiler.py +71 -0
  269. osn_selenium/executors/trio_threads/cdp/pwa.py +64 -0
  270. osn_selenium/executors/trio_threads/cdp/runtime.py +230 -0
  271. osn_selenium/executors/trio_threads/cdp/schema.py +32 -0
  272. osn_selenium/executors/trio_threads/cdp/security.py +43 -0
  273. osn_selenium/executors/trio_threads/cdp/service_worker.py +69 -0
  274. osn_selenium/executors/trio_threads/cdp/storage.py +162 -0
  275. osn_selenium/executors/trio_threads/cdp/system_info.py +43 -0
  276. osn_selenium/executors/trio_threads/cdp/target.py +156 -0
  277. osn_selenium/executors/trio_threads/cdp/tethering.py +34 -0
  278. osn_selenium/executors/trio_threads/cdp/tracing.py +71 -0
  279. osn_selenium/executors/trio_threads/cdp/web_audio.py +37 -0
  280. osn_selenium/executors/trio_threads/cdp/web_authn.py +95 -0
  281. osn_selenium/executors/trio_threads/javascript.py +90 -0
  282. osn_selenium/executors/unified/__init__.py +1 -0
  283. osn_selenium/executors/unified/cdp/__init__.py +1 -0
  284. osn_selenium/executors/unified/cdp/accessibility.py +81 -0
  285. osn_selenium/executors/unified/cdp/animation.py +50 -0
  286. osn_selenium/executors/unified/cdp/audits.py +45 -0
  287. osn_selenium/executors/unified/cdp/autofill.py +41 -0
  288. osn_selenium/executors/unified/cdp/background_service.py +24 -0
  289. osn_selenium/executors/unified/cdp/bluetooth_emulation.py +132 -0
  290. osn_selenium/executors/unified/cdp/browser.py +143 -0
  291. osn_selenium/executors/unified/cdp/cache_storage.py +69 -0
  292. osn_selenium/executors/unified/cdp/cast.py +32 -0
  293. osn_selenium/executors/unified/cdp/console.py +18 -0
  294. osn_selenium/executors/unified/cdp/css.py +237 -0
  295. osn_selenium/executors/unified/cdp/debugger.py +243 -0
  296. osn_selenium/executors/unified/cdp/device_access.py +21 -0
  297. osn_selenium/executors/unified/cdp/device_orientation.py +18 -0
  298. osn_selenium/executors/unified/cdp/dom.py +380 -0
  299. osn_selenium/executors/unified/cdp/dom_debugger.py +65 -0
  300. osn_selenium/executors/unified/cdp/dom_snapshot.py +58 -0
  301. osn_selenium/executors/unified/cdp/dom_storage.py +38 -0
  302. osn_selenium/executors/unified/cdp/emulation.py +312 -0
  303. osn_selenium/executors/unified/cdp/event_breakpoints.py +24 -0
  304. osn_selenium/executors/unified/cdp/extensions.py +45 -0
  305. osn_selenium/executors/unified/cdp/fed_cm.py +51 -0
  306. osn_selenium/executors/unified/cdp/fetch.py +111 -0
  307. osn_selenium/executors/unified/cdp/file_system.py +15 -0
  308. osn_selenium/executors/unified/cdp/headless_experimental.py +38 -0
  309. osn_selenium/executors/unified/cdp/heap_profiler.py +101 -0
  310. osn_selenium/executors/unified/cdp/indexed_db.py +157 -0
  311. osn_selenium/executors/unified/cdp/input.py +254 -0
  312. osn_selenium/executors/unified/cdp/inspector.py +15 -0
  313. osn_selenium/executors/unified/cdp/io.py +29 -0
  314. osn_selenium/executors/unified/cdp/layer_tree.py +71 -0
  315. osn_selenium/executors/unified/cdp/log.py +29 -0
  316. osn_selenium/executors/unified/cdp/media.py +15 -0
  317. osn_selenium/executors/unified/cdp/memory.py +59 -0
  318. osn_selenium/executors/unified/cdp/network.py +323 -0
  319. osn_selenium/executors/unified/cdp/overlay.py +209 -0
  320. osn_selenium/executors/unified/cdp/page.py +410 -0
  321. osn_selenium/executors/unified/cdp/performance.py +27 -0
  322. osn_selenium/executors/unified/cdp/performance_timeline.py +17 -0
  323. osn_selenium/executors/unified/cdp/preload.py +15 -0
  324. osn_selenium/executors/unified/cdp/profiler.py +55 -0
  325. osn_selenium/executors/unified/cdp/pwa.py +55 -0
  326. osn_selenium/executors/unified/cdp/runtime.py +245 -0
  327. osn_selenium/executors/unified/cdp/schema.py +17 -0
  328. osn_selenium/executors/unified/cdp/security.py +27 -0
  329. osn_selenium/executors/unified/cdp/service_worker.py +62 -0
  330. osn_selenium/executors/unified/cdp/storage.py +178 -0
  331. osn_selenium/executors/unified/cdp/system_info.py +24 -0
  332. osn_selenium/executors/unified/cdp/target.py +165 -0
  333. osn_selenium/executors/unified/cdp/tethering.py +15 -0
  334. osn_selenium/executors/unified/cdp/tracing.py +62 -0
  335. osn_selenium/executors/unified/cdp/web_audio.py +18 -0
  336. osn_selenium/executors/unified/cdp/web_authn.py +103 -0
  337. osn_selenium/executors/unified/javascript.py +108 -0
  338. osn_selenium/flags/__init__.py +1 -0
  339. osn_selenium/flags/_functions.py +45 -0
  340. osn_selenium/flags/_typehints.py +34 -0
  341. osn_selenium/flags/_validators.py +101 -0
  342. osn_selenium/{webdrivers/BaseDriver/flags.py → flags/base.py} +165 -243
  343. osn_selenium/{webdrivers/Blink/flags.py → flags/blink.py} +133 -371
  344. osn_selenium/flags/chrome.py +259 -0
  345. osn_selenium/flags/edge.py +259 -0
  346. osn_selenium/flags/models/__init__.py +1 -0
  347. osn_selenium/flags/models/base.py +130 -0
  348. osn_selenium/flags/models/blink.py +263 -0
  349. osn_selenium/{webdrivers/Chrome/flags.py → flags/models/chrome.py} +25 -75
  350. osn_selenium/{webdrivers/Edge/flags.py → flags/models/edge.py} +25 -75
  351. osn_selenium/flags/models/values.py +44 -0
  352. osn_selenium/{webdrivers/Yandex/flags.py → flags/models/yandex.py} +26 -76
  353. osn_selenium/flags/yandex.py +259 -0
  354. osn_selenium/instances/__init__.py +1 -0
  355. osn_selenium/instances/_functions.py +242 -0
  356. osn_selenium/instances/_typehints.py +148 -0
  357. osn_selenium/instances/_utils.py +143 -0
  358. osn_selenium/instances/convert.py +287 -0
  359. osn_selenium/instances/protocols.py +105 -0
  360. osn_selenium/instances/sync/__init__.py +1 -0
  361. osn_selenium/instances/sync/action_chains/__init__.py +26 -0
  362. osn_selenium/instances/sync/action_chains/base.py +74 -0
  363. osn_selenium/instances/sync/action_chains/click.py +61 -0
  364. osn_selenium/instances/sync/action_chains/drag_and_drop.py +45 -0
  365. osn_selenium/instances/sync/action_chains/hm_keyboard.py +37 -0
  366. osn_selenium/instances/sync/action_chains/hm_move.py +81 -0
  367. osn_selenium/instances/sync/action_chains/hm_scroll.py +60 -0
  368. osn_selenium/instances/sync/action_chains/keyboard.py +55 -0
  369. osn_selenium/instances/sync/action_chains/move.py +46 -0
  370. osn_selenium/instances/sync/action_chains/scroll.py +43 -0
  371. osn_selenium/instances/sync/action_chains/utils.py +30 -0
  372. osn_selenium/instances/sync/alert.py +69 -0
  373. osn_selenium/instances/sync/browser.py +72 -0
  374. osn_selenium/instances/sync/browsing_context.py +193 -0
  375. osn_selenium/instances/sync/dialog.py +81 -0
  376. osn_selenium/instances/sync/fedcm.py +92 -0
  377. osn_selenium/instances/sync/mobile.py +75 -0
  378. osn_selenium/instances/sync/network.py +90 -0
  379. osn_selenium/instances/sync/permissions.py +80 -0
  380. osn_selenium/instances/sync/script.py +77 -0
  381. osn_selenium/instances/sync/shadow_root.py +91 -0
  382. osn_selenium/instances/sync/storage.py +91 -0
  383. osn_selenium/instances/sync/switch_to.py +92 -0
  384. osn_selenium/instances/sync/web_driver_wait.py +83 -0
  385. osn_selenium/instances/sync/web_element.py +179 -0
  386. osn_selenium/instances/sync/web_extension.py +77 -0
  387. osn_selenium/instances/trio_threads/__init__.py +1 -0
  388. osn_selenium/instances/trio_threads/action_chains/__init__.py +26 -0
  389. osn_selenium/instances/trio_threads/action_chains/base.py +88 -0
  390. osn_selenium/instances/trio_threads/action_chains/click.py +71 -0
  391. osn_selenium/instances/trio_threads/action_chains/drag_and_drop.py +49 -0
  392. osn_selenium/instances/trio_threads/action_chains/hm_keyboard.py +41 -0
  393. osn_selenium/instances/trio_threads/action_chains/hm_move.py +91 -0
  394. osn_selenium/instances/trio_threads/action_chains/hm_scroll.py +66 -0
  395. osn_selenium/instances/trio_threads/action_chains/keyboard.py +63 -0
  396. osn_selenium/instances/trio_threads/action_chains/move.py +52 -0
  397. osn_selenium/instances/trio_threads/action_chains/scroll.py +49 -0
  398. osn_selenium/instances/trio_threads/action_chains/utils.py +32 -0
  399. osn_selenium/instances/trio_threads/alert.py +87 -0
  400. osn_selenium/instances/trio_threads/browser.py +90 -0
  401. osn_selenium/instances/trio_threads/browsing_context.py +216 -0
  402. osn_selenium/instances/trio_threads/dialog.py +99 -0
  403. osn_selenium/instances/trio_threads/fedcm.py +110 -0
  404. osn_selenium/instances/trio_threads/mobile.py +93 -0
  405. osn_selenium/instances/trio_threads/network.py +108 -0
  406. osn_selenium/instances/trio_threads/permissions.py +102 -0
  407. osn_selenium/instances/trio_threads/script.py +95 -0
  408. osn_selenium/instances/trio_threads/shadow_root.py +123 -0
  409. osn_selenium/instances/trio_threads/storage.py +109 -0
  410. osn_selenium/instances/trio_threads/switch_to.py +124 -0
  411. osn_selenium/instances/trio_threads/web_driver_wait.py +101 -0
  412. osn_selenium/instances/trio_threads/web_element.py +217 -0
  413. osn_selenium/instances/trio_threads/web_extension.py +99 -0
  414. osn_selenium/instances/unified/__init__.py +1 -0
  415. osn_selenium/instances/unified/action_chains/__init__.py +22 -0
  416. osn_selenium/instances/unified/action_chains/base.py +31 -0
  417. osn_selenium/instances/unified/action_chains/click.py +27 -0
  418. osn_selenium/instances/unified/action_chains/drag_and_drop.py +24 -0
  419. osn_selenium/instances/unified/action_chains/hm_keyboard.py +30 -0
  420. osn_selenium/instances/unified/action_chains/hm_move.py +66 -0
  421. osn_selenium/instances/unified/action_chains/hm_scroll.py +79 -0
  422. osn_selenium/instances/unified/action_chains/keyboard.py +24 -0
  423. osn_selenium/instances/unified/action_chains/move.py +24 -0
  424. osn_selenium/instances/unified/action_chains/scroll.py +21 -0
  425. osn_selenium/instances/unified/action_chains/utils.py +19 -0
  426. osn_selenium/instances/unified/alert.py +29 -0
  427. osn_selenium/instances/unified/browser.py +33 -0
  428. osn_selenium/instances/unified/browsing_context.py +151 -0
  429. osn_selenium/instances/unified/dialog.py +42 -0
  430. osn_selenium/instances/unified/fedcm.py +48 -0
  431. osn_selenium/instances/unified/mobile.py +36 -0
  432. osn_selenium/instances/unified/network.py +50 -0
  433. osn_selenium/instances/unified/permissions.py +43 -0
  434. osn_selenium/instances/unified/script.py +38 -0
  435. osn_selenium/instances/unified/shadow_root.py +46 -0
  436. osn_selenium/instances/unified/storage.py +48 -0
  437. osn_selenium/instances/unified/switch_to.py +49 -0
  438. osn_selenium/instances/unified/web_driver_wait.py +45 -0
  439. osn_selenium/instances/unified/web_element.py +145 -0
  440. osn_selenium/instances/unified/web_extension.py +38 -0
  441. osn_selenium/javascript/__init__.py +1 -0
  442. osn_selenium/javascript/_functions.py +63 -0
  443. osn_selenium/javascript/fingerprint/__init__.py +120 -0
  444. osn_selenium/javascript/fingerprint/_decorators.py +41 -0
  445. osn_selenium/javascript/fingerprint/_detect/__init__.py +1 -0
  446. osn_selenium/javascript/fingerprint/_detect/functions.py +253 -0
  447. osn_selenium/javascript/fingerprint/_detect/templates.py +128 -0
  448. osn_selenium/javascript/fingerprint/_functions.py +35 -0
  449. osn_selenium/javascript/fingerprint/_typehints.py +27 -0
  450. osn_selenium/javascript/fingerprint/registry/__init__.py +7 -0
  451. osn_selenium/javascript/fingerprint/registry/_core_functions.py +236 -0
  452. osn_selenium/javascript/fingerprint/registry/_functions.py +923 -0
  453. osn_selenium/javascript/fingerprint/registry/_typehints.py +6 -0
  454. osn_selenium/javascript/fingerprint/registry/_utils.py +6 -0
  455. osn_selenium/javascript/fingerprint/registry/models.py +41 -0
  456. osn_selenium/javascript/fingerprint/spoof/__init__.py +1 -0
  457. osn_selenium/javascript/fingerprint/spoof/_functions.py +172 -0
  458. osn_selenium/javascript/fingerprint/spoof/_templates.py +134 -0
  459. osn_selenium/javascript/fingerprint/spoof/_typehints.py +22 -0
  460. osn_selenium/javascript/fingerprint/spoof/core_rules.py +141 -0
  461. osn_selenium/javascript/fingerprint/spoof/noise.py +51 -0
  462. osn_selenium/javascript/fingerprint/spoof/rules.py +313 -0
  463. osn_selenium/javascript/functions.py +44 -0
  464. osn_selenium/javascript/models.py +35 -0
  465. osn_selenium/javascript/scripts/start_fingerprint_detection.js +56 -0
  466. osn_selenium/models.py +139 -0
  467. osn_selenium/webdrivers/_args_helpers.py +181 -0
  468. osn_selenium/webdrivers/_bridges.py +57 -0
  469. osn_selenium/webdrivers/_decorators.py +83 -0
  470. osn_selenium/webdrivers/_executable_tables/__init__.py +1 -0
  471. osn_selenium/webdrivers/_executable_tables/functions.py +113 -0
  472. osn_selenium/webdrivers/_executable_tables/models.py +19 -0
  473. osn_selenium/webdrivers/_typehints.py +10 -0
  474. osn_selenium/webdrivers/protocols.py +50 -0
  475. osn_selenium/webdrivers/sync/__init__.py +1 -0
  476. osn_selenium/webdrivers/sync/blink/__init__.py +114 -0
  477. osn_selenium/webdrivers/sync/blink/base.py +128 -0
  478. osn_selenium/webdrivers/sync/blink/casting.py +34 -0
  479. osn_selenium/webdrivers/sync/blink/features.py +28 -0
  480. osn_selenium/webdrivers/sync/blink/lifecycle.py +66 -0
  481. osn_selenium/webdrivers/sync/blink/logging.py +25 -0
  482. osn_selenium/webdrivers/sync/blink/network.py +28 -0
  483. osn_selenium/webdrivers/sync/blink/settings.py +63 -0
  484. osn_selenium/webdrivers/sync/chrome/__init__.py +67 -0
  485. osn_selenium/webdrivers/sync/chrome/base.py +106 -0
  486. osn_selenium/webdrivers/sync/chrome/lifecycle.py +63 -0
  487. osn_selenium/webdrivers/sync/chrome/settings.py +58 -0
  488. osn_selenium/webdrivers/sync/core/__init__.py +91 -0
  489. osn_selenium/webdrivers/sync/core/actions.py +59 -0
  490. osn_selenium/webdrivers/sync/core/auth.py +77 -0
  491. osn_selenium/webdrivers/sync/core/base.py +167 -0
  492. osn_selenium/webdrivers/sync/core/capture.py +37 -0
  493. osn_selenium/webdrivers/sync/core/comonents.py +57 -0
  494. osn_selenium/webdrivers/sync/core/devtools.py +47 -0
  495. osn_selenium/webdrivers/sync/core/element.py +42 -0
  496. osn_selenium/webdrivers/sync/core/file.py +40 -0
  497. osn_selenium/webdrivers/sync/core/lifecycle.py +59 -0
  498. osn_selenium/webdrivers/sync/core/navigation.py +36 -0
  499. osn_selenium/webdrivers/sync/core/script.py +53 -0
  500. osn_selenium/webdrivers/sync/core/settings.py +35 -0
  501. osn_selenium/webdrivers/sync/core/storage.py +48 -0
  502. osn_selenium/webdrivers/sync/core/timeouts.py +59 -0
  503. osn_selenium/webdrivers/sync/core/window.py +99 -0
  504. osn_selenium/webdrivers/sync/edge/__init__.py +67 -0
  505. osn_selenium/webdrivers/sync/edge/base.py +102 -0
  506. osn_selenium/webdrivers/sync/edge/lifecycle.py +63 -0
  507. osn_selenium/webdrivers/sync/edge/settings.py +58 -0
  508. osn_selenium/webdrivers/sync/yandex/__init__.py +67 -0
  509. osn_selenium/webdrivers/sync/yandex/base.py +99 -0
  510. osn_selenium/webdrivers/sync/yandex/lifecycle.py +63 -0
  511. osn_selenium/webdrivers/sync/yandex/settings.py +58 -0
  512. osn_selenium/webdrivers/trio_threads/__init__.py +1 -0
  513. osn_selenium/webdrivers/trio_threads/blink/__init__.py +124 -0
  514. osn_selenium/webdrivers/trio_threads/blink/base.py +133 -0
  515. osn_selenium/webdrivers/trio_threads/blink/casting.py +35 -0
  516. osn_selenium/webdrivers/trio_threads/blink/features.py +29 -0
  517. osn_selenium/webdrivers/trio_threads/blink/lifecycle.py +66 -0
  518. osn_selenium/webdrivers/trio_threads/blink/logging.py +26 -0
  519. osn_selenium/webdrivers/trio_threads/blink/network.py +29 -0
  520. osn_selenium/webdrivers/trio_threads/blink/settings.py +63 -0
  521. osn_selenium/webdrivers/trio_threads/chrome/__init__.py +81 -0
  522. osn_selenium/webdrivers/trio_threads/chrome/base.py +107 -0
  523. osn_selenium/webdrivers/trio_threads/chrome/lifecycle.py +63 -0
  524. osn_selenium/webdrivers/trio_threads/chrome/settings.py +63 -0
  525. osn_selenium/webdrivers/trio_threads/core/__init__.py +109 -0
  526. osn_selenium/webdrivers/trio_threads/core/actions.py +72 -0
  527. osn_selenium/webdrivers/trio_threads/core/auth.py +88 -0
  528. osn_selenium/webdrivers/trio_threads/core/base.py +191 -0
  529. osn_selenium/webdrivers/trio_threads/core/capture.py +38 -0
  530. osn_selenium/webdrivers/trio_threads/core/comonents.py +92 -0
  531. osn_selenium/webdrivers/trio_threads/core/devtools.py +53 -0
  532. osn_selenium/webdrivers/trio_threads/core/element.py +58 -0
  533. osn_selenium/webdrivers/trio_threads/core/file.py +45 -0
  534. osn_selenium/webdrivers/trio_threads/core/lifecycle.py +60 -0
  535. osn_selenium/webdrivers/trio_threads/core/navigation.py +41 -0
  536. osn_selenium/webdrivers/trio_threads/core/script.py +59 -0
  537. osn_selenium/webdrivers/trio_threads/core/settings.py +36 -0
  538. osn_selenium/webdrivers/trio_threads/core/storage.py +54 -0
  539. osn_selenium/webdrivers/trio_threads/core/timeouts.py +60 -0
  540. osn_selenium/webdrivers/trio_threads/core/window.py +105 -0
  541. osn_selenium/webdrivers/trio_threads/edge/__init__.py +81 -0
  542. osn_selenium/webdrivers/trio_threads/edge/base.py +103 -0
  543. osn_selenium/webdrivers/trio_threads/edge/lifecycle.py +63 -0
  544. osn_selenium/webdrivers/trio_threads/edge/settings.py +63 -0
  545. osn_selenium/webdrivers/trio_threads/yandex/__init__.py +81 -0
  546. osn_selenium/webdrivers/trio_threads/yandex/base.py +100 -0
  547. osn_selenium/webdrivers/trio_threads/yandex/lifecycle.py +63 -0
  548. osn_selenium/webdrivers/trio_threads/yandex/settings.py +63 -0
  549. osn_selenium/webdrivers/unified/__init__.py +1 -0
  550. osn_selenium/webdrivers/unified/blink/__init__.py +1 -0
  551. osn_selenium/webdrivers/unified/blink/base.py +131 -0
  552. osn_selenium/webdrivers/unified/blink/casting.py +30 -0
  553. osn_selenium/webdrivers/unified/blink/features.py +22 -0
  554. osn_selenium/webdrivers/unified/blink/lifecycle.py +114 -0
  555. osn_selenium/webdrivers/unified/blink/logging.py +18 -0
  556. osn_selenium/webdrivers/unified/blink/network.py +22 -0
  557. osn_selenium/webdrivers/unified/blink/settings.py +86 -0
  558. osn_selenium/webdrivers/unified/chrome/__init__.py +1 -0
  559. osn_selenium/webdrivers/unified/chrome/base.py +54 -0
  560. osn_selenium/webdrivers/unified/chrome/lifecycle.py +88 -0
  561. osn_selenium/webdrivers/unified/chrome/settings.py +48 -0
  562. osn_selenium/webdrivers/unified/core/__init__.py +1 -0
  563. osn_selenium/webdrivers/unified/core/actions.py +43 -0
  564. osn_selenium/webdrivers/unified/core/auth.py +70 -0
  565. osn_selenium/webdrivers/unified/core/base.py +132 -0
  566. osn_selenium/webdrivers/unified/core/capture.py +32 -0
  567. osn_selenium/webdrivers/unified/core/components.py +32 -0
  568. osn_selenium/webdrivers/unified/core/devtools.py +35 -0
  569. osn_selenium/webdrivers/unified/core/element.py +24 -0
  570. osn_selenium/webdrivers/unified/core/file.py +35 -0
  571. osn_selenium/webdrivers/unified/core/lifecycle.py +84 -0
  572. osn_selenium/webdrivers/unified/core/navigation.py +31 -0
  573. osn_selenium/webdrivers/unified/core/script.py +32 -0
  574. osn_selenium/webdrivers/unified/core/settings.py +44 -0
  575. osn_selenium/webdrivers/unified/core/storage.py +37 -0
  576. osn_selenium/webdrivers/unified/core/timeouts.py +56 -0
  577. osn_selenium/webdrivers/unified/core/window.py +135 -0
  578. osn_selenium/webdrivers/unified/edge/__init__.py +1 -0
  579. osn_selenium/webdrivers/unified/edge/base.py +52 -0
  580. osn_selenium/webdrivers/unified/edge/lifecycle.py +88 -0
  581. osn_selenium/webdrivers/unified/edge/settings.py +48 -0
  582. osn_selenium/webdrivers/unified/yandex/__init__.py +1 -0
  583. osn_selenium/webdrivers/unified/yandex/base.py +54 -0
  584. osn_selenium/webdrivers/unified/yandex/lifecycle.py +58 -0
  585. osn_selenium/webdrivers/unified/yandex/settings.py +48 -0
  586. osn_selenium-1.0.0.dist-info/METADATA +239 -0
  587. osn_selenium-1.0.0.dist-info/RECORD +608 -0
  588. {osn_selenium-0.0.0.dist-info → osn_selenium-1.0.0.dist-info}/WHEEL +1 -1
  589. osn_selenium/captcha_workers/__init__.py +0 -26
  590. osn_selenium/dev_tools/_types.py +0 -22
  591. osn_selenium/dev_tools/errors.py +0 -89
  592. osn_selenium/dev_tools/logger.py +0 -558
  593. osn_selenium/dev_tools/manager.py +0 -1551
  594. osn_selenium/dev_tools/utils.py +0 -509
  595. osn_selenium/errors.py +0 -16
  596. osn_selenium/types.py +0 -118
  597. osn_selenium/webdrivers/BaseDriver/_utils.py +0 -37
  598. osn_selenium/webdrivers/BaseDriver/protocols.py +0 -2135
  599. osn_selenium/webdrivers/BaseDriver/trio_wrapper.py +0 -71
  600. osn_selenium/webdrivers/BaseDriver/webdriver.py +0 -2626
  601. osn_selenium/webdrivers/Blink/protocols.py +0 -330
  602. osn_selenium/webdrivers/Blink/webdriver.py +0 -637
  603. osn_selenium/webdrivers/Chrome/protocols.py +0 -228
  604. osn_selenium/webdrivers/Chrome/webdriver.py +0 -394
  605. osn_selenium/webdrivers/Edge/protocols.py +0 -228
  606. osn_selenium/webdrivers/Edge/webdriver.py +0 -394
  607. osn_selenium/webdrivers/Yandex/protocols.py +0 -211
  608. osn_selenium/webdrivers/Yandex/webdriver.py +0 -350
  609. osn_selenium/webdrivers/_functions.py +0 -504
  610. osn_selenium/webdrivers/types.py +0 -390
  611. osn_selenium-0.0.0.dist-info/METADATA +0 -710
  612. osn_selenium-0.0.0.dist-info/RECORD +0 -57
  613. /osn_selenium/{webdrivers/BaseDriver → abstract}/__init__.py +0 -0
  614. /osn_selenium/{webdrivers/Blink → abstract/executors}/__init__.py +0 -0
  615. /osn_selenium/{webdrivers/Chrome → abstract/instances}/__init__.py +0 -0
  616. /osn_selenium/{webdrivers/Edge → abstract/webdriver}/__init__.py +0 -0
  617. /osn_selenium/{webdrivers/Yandex → dev_tools/logger}/__init__.py +0 -0
  618. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/check_element_in_viewport.js +0 -0
  619. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_document_scroll_size.js +0 -0
  620. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_css.js +0 -0
  621. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_rect_in_viewport.js +0 -0
  622. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_random_element_point_in_viewport.js +0 -0
  623. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_position.js +0 -0
  624. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_rect.js +0 -0
  625. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_size.js +0 -0
  626. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/open_new_tab.js +0 -0
  627. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/stop_window_loading.js +0 -0
  628. {osn_selenium-0.0.0.dist-info → osn_selenium-1.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,84 @@
1
+ import pathlib
2
+ from types import UnionType
3
+ from osn_selenium.exceptions.path import PathValidationError
4
+ from typing import (
5
+ Iterable,
6
+ Optional,
7
+ Set,
8
+ Union,
9
+ get_args,
10
+ get_origin
11
+ )
12
+ from osn_selenium._typehints import (
13
+ PATH_TYPEHINT,
14
+ TYPES_FOR_FLATTENING_TYPEHINT
15
+ )
16
+
17
+
18
+ __all__ = ["flatten_types", "validate_path"]
19
+
20
+
21
+ def validate_path(path: Optional[PATH_TYPEHINT]) -> Optional[pathlib.Path]:
22
+ """
23
+ Validates the provided path and converts it to a pathlib.Path object.
24
+
25
+ Args:
26
+ path (Optional[PATH_TYPEHINT]): The path to be validated and converted.
27
+
28
+ Returns:
29
+ Optional[pathlib.Path]: A Path object if valid, or None if the input was None.
30
+
31
+ Raises:
32
+ PathValidationError: If the path conversion fails due to an exception.
33
+ """
34
+
35
+ try:
36
+ if path is None:
37
+ return None
38
+
39
+ return pathlib.Path(path)
40
+ except (Exception,) as exception:
41
+ raise PathValidationError(path=path, exception=exception)
42
+
43
+
44
+ def flatten_types(
45
+ types_: Union[TYPES_FOR_FLATTENING_TYPEHINT, Iterable[TYPES_FOR_FLATTENING_TYPEHINT]]
46
+ ) -> Set[str]:
47
+ """
48
+ Recursively extracts type names from a type, a union of types, or a collection of types.
49
+
50
+ Args:
51
+ types_ (Union[Type, Iterable[Type]]): The type definition or collection of types to flatten.
52
+
53
+ Returns:
54
+ Set[str]: A set of strings representing the names of the types found.
55
+ """
56
+
57
+ types_of_level = set()
58
+
59
+ if isinstance(types_, Iterable) and not isinstance(types_, str):
60
+ for t in types_:
61
+ types_of_level.update(flatten_types(t))
62
+
63
+ return types_of_level
64
+
65
+ if isinstance(types_, str):
66
+ types_of_level.add(types_)
67
+
68
+ origin = get_origin(types_)
69
+ args = get_args(types_)
70
+
71
+ is_union = origin is Union or isinstance(types_, UnionType)
72
+
73
+ if is_union:
74
+ for arg in args:
75
+ types_of_level.update(flatten_types(arg))
76
+ else:
77
+ if types_ is None or types_ is type(None):
78
+ types_of_level.add("NoneType")
79
+ elif hasattr(types_, "__name__"):
80
+ types_of_level.add(types_.__name__)
81
+ else:
82
+ types_of_level.add(str(types_))
83
+
84
+ return types_of_level
@@ -0,0 +1,19 @@
1
+ import os
2
+ import pathlib
3
+ from typing import Literal, Type, Union
4
+ from selenium.webdriver.common.actions.key_input import KeyInput
5
+ from selenium.webdriver.common.actions.wheel_input import WheelInput
6
+ from selenium.webdriver.common.actions.pointer_input import PointerInput
7
+
8
+
9
+ __all__ = [
10
+ "ARCHITECTURES_TYPEHINT",
11
+ "DEVICES_TYPEHINT",
12
+ "PATH_TYPEHINT",
13
+ "TYPES_FOR_FLATTENING_TYPEHINT"
14
+ ]
15
+
16
+ DEVICES_TYPEHINT = Union[PointerInput, KeyInput, WheelInput]
17
+ ARCHITECTURES_TYPEHINT = Literal["sync", "trio_threads"]
18
+ PATH_TYPEHINT = Union[str, bytes, pathlib.Path, os.PathLike]
19
+ TYPES_FOR_FLATTENING_TYPEHINT = Union[str, Type]
@@ -0,0 +1,435 @@
1
+ from typing import Any, Dict
2
+ from abc import ABC, abstractmethod
3
+ from osn_selenium.abstract.executors.cdp.io import (
4
+ AbstractIoCDPExecutor
5
+ )
6
+ from osn_selenium.abstract.executors.cdp.css import (
7
+ AbstractCssCDPExecutor
8
+ )
9
+ from osn_selenium.abstract.executors.cdp.dom import (
10
+ AbstractDomCDPExecutor
11
+ )
12
+ from osn_selenium.abstract.executors.cdp.log import (
13
+ AbstractLogCDPExecutor
14
+ )
15
+ from osn_selenium.abstract.executors.cdp.pwa import (
16
+ AbstractPwaCDPExecutor
17
+ )
18
+ from osn_selenium.abstract.executors.cdp.cast import (
19
+ AbstractCastCDPExecutor
20
+ )
21
+ from osn_selenium.abstract.executors.cdp.page import (
22
+ AbstractPageCDPExecutor
23
+ )
24
+ from osn_selenium.abstract.executors.cdp.fetch import (
25
+ AbstractFetchCDPExecutor
26
+ )
27
+ from osn_selenium.abstract.executors.cdp.input import (
28
+ AbstractInputCDPExecutor
29
+ )
30
+ from osn_selenium.abstract.executors.cdp.media import (
31
+ AbstractMediaCDPExecutor
32
+ )
33
+ from osn_selenium.abstract.executors.cdp.fed_cm import (
34
+ AbstractFedCmCDPExecutor
35
+ )
36
+ from osn_selenium.abstract.executors.cdp.audits import (
37
+ AbstractAuditsCDPExecutor
38
+ )
39
+ from osn_selenium.abstract.executors.cdp.memory import (
40
+ AbstractMemoryCDPExecutor
41
+ )
42
+ from osn_selenium.abstract.executors.cdp.schema import (
43
+ AbstractSchemaCDPExecutor
44
+ )
45
+ from osn_selenium.abstract.executors.cdp.target import (
46
+ AbstractTargetCDPExecutor
47
+ )
48
+ from osn_selenium.abstract.executors.cdp.browser import (
49
+ AbstractBrowserCDPExecutor
50
+ )
51
+ from osn_selenium.abstract.executors.cdp.console import (
52
+ AbstractConsoleCDPExecutor
53
+ )
54
+ from osn_selenium.abstract.executors.cdp.network import (
55
+ AbstractNetworkCDPExecutor
56
+ )
57
+ from osn_selenium.abstract.executors.cdp.overlay import (
58
+ AbstractOverlayCDPExecutor
59
+ )
60
+ from osn_selenium.abstract.executors.cdp.preload import (
61
+ AbstractPreloadCDPExecutor
62
+ )
63
+ from osn_selenium.abstract.executors.cdp.runtime import (
64
+ AbstractRuntimeCDPExecutor
65
+ )
66
+ from osn_selenium.abstract.executors.cdp.storage import (
67
+ AbstractStorageCDPExecutor
68
+ )
69
+ from osn_selenium.abstract.executors.cdp.tracing import (
70
+ AbstractTracingCDPExecutor
71
+ )
72
+ from osn_selenium.abstract.executors.cdp.autofill import (
73
+ AbstractAutofillCDPExecutor
74
+ )
75
+ from osn_selenium.abstract.executors.cdp.debugger import (
76
+ AbstractDebuggerCDPExecutor
77
+ )
78
+ from osn_selenium.abstract.executors.cdp.profiler import (
79
+ AbstractProfilerCDPExecutor
80
+ )
81
+ from osn_selenium.abstract.executors.cdp.security import (
82
+ AbstractSecurityCDPExecutor
83
+ )
84
+ from osn_selenium.abstract.executors.cdp.web_audio import (
85
+ AbstractWebAudioCDPExecutor
86
+ )
87
+ from osn_selenium.abstract.executors.cdp.web_authn import (
88
+ AbstractWebAuthnCDPExecutor
89
+ )
90
+ from osn_selenium.abstract.executors.cdp.animation import (
91
+ AbstractAnimationCDPExecutor
92
+ )
93
+ from osn_selenium.abstract.executors.cdp.emulation import (
94
+ AbstractEmulationCDPExecutor
95
+ )
96
+ from osn_selenium.abstract.executors.cdp.inspector import (
97
+ AbstractInspectorCDPExecutor
98
+ )
99
+ from osn_selenium.abstract.executors.cdp.tethering import (
100
+ AbstractTetheringCDPExecutor
101
+ )
102
+ from osn_selenium.abstract.executors.cdp.indexed_db import (
103
+ AbstractIndexedDbCDPExecutor
104
+ )
105
+ from osn_selenium.abstract.executors.cdp.layer_tree import (
106
+ AbstractLayerTreeCDPExecutor
107
+ )
108
+ from osn_selenium.abstract.executors.cdp.extensions import (
109
+ AbstractExtensionsCDPExecutor
110
+ )
111
+ from osn_selenium.abstract.executors.cdp.dom_storage import (
112
+ AbstractDomStorageCDPExecutor
113
+ )
114
+ from osn_selenium.abstract.executors.cdp.file_system import (
115
+ AbstractFileSystemCDPExecutor
116
+ )
117
+ from osn_selenium.abstract.executors.cdp.system_info import (
118
+ AbstractSystemInfoCDPExecutor
119
+ )
120
+ from osn_selenium.abstract.executors.cdp.performance import (
121
+ AbstractPerformanceCDPExecutor
122
+ )
123
+ from osn_selenium.abstract.executors.cdp.dom_debugger import (
124
+ AbstractDomDebuggerCDPExecutor
125
+ )
126
+ from osn_selenium.abstract.executors.cdp.dom_snapshot import (
127
+ AbstractDomSnapshotCDPExecutor
128
+ )
129
+ from osn_selenium.abstract.executors.cdp.cache_storage import (
130
+ AbstractCacheStorageCDPExecutor
131
+ )
132
+ from osn_selenium.abstract.executors.cdp.device_access import (
133
+ AbstractDeviceAccessCDPExecutor
134
+ )
135
+ from osn_selenium.abstract.executors.cdp.heap_profiler import (
136
+ AbstractHeapProfilerCDPExecutor
137
+ )
138
+ from osn_selenium.abstract.executors.cdp.accessibility import (
139
+ AbstractAccessibilityCDPExecutor
140
+ )
141
+ from osn_selenium.abstract.executors.cdp.service_worker import (
142
+ AbstractServiceWorkerCDPExecutor
143
+ )
144
+ from osn_selenium.abstract.executors.cdp.event_breakpoints import (
145
+ AbstractEventBreakpointsCDPExecutor
146
+ )
147
+ from osn_selenium.abstract.executors.cdp.background_service import (
148
+ AbstractBackgroundServiceCDPExecutor
149
+ )
150
+ from osn_selenium.abstract.executors.cdp.device_orientation import (
151
+ AbstractDeviceOrientationCDPExecutor
152
+ )
153
+ from osn_selenium.abstract.executors.cdp.bluetooth_emulation import (
154
+ AbstractBluetoothEmulationCDPExecutor
155
+ )
156
+ from osn_selenium.abstract.executors.cdp.performance_timeline import (
157
+ AbstractPerformanceTimelineCDPExecutor
158
+ )
159
+ from osn_selenium.abstract.executors.cdp.headless_experimental import (
160
+ AbstractHeadlessExperimentalCDPExecutor
161
+ )
162
+
163
+
164
+ __all__ = ["AbstractCDPExecutor"]
165
+
166
+
167
+ class AbstractCDPExecutor(ABC):
168
+ @property
169
+ @abstractmethod
170
+ def accessibility(self) -> AbstractAccessibilityCDPExecutor:
171
+ ...
172
+
173
+ @property
174
+ @abstractmethod
175
+ def animation(self) -> AbstractAnimationCDPExecutor:
176
+ ...
177
+
178
+ @property
179
+ @abstractmethod
180
+ def audits(self) -> AbstractAuditsCDPExecutor:
181
+ ...
182
+
183
+ @property
184
+ @abstractmethod
185
+ def autofill(self) -> AbstractAutofillCDPExecutor:
186
+ ...
187
+
188
+ @property
189
+ @abstractmethod
190
+ def background_service(self) -> AbstractBackgroundServiceCDPExecutor:
191
+ ...
192
+
193
+ @property
194
+ @abstractmethod
195
+ def bluetooth_emulation(self) -> AbstractBluetoothEmulationCDPExecutor:
196
+ ...
197
+
198
+ @property
199
+ @abstractmethod
200
+ def browser(self) -> AbstractBrowserCDPExecutor:
201
+ ...
202
+
203
+ @property
204
+ @abstractmethod
205
+ def cache_storage(self) -> AbstractCacheStorageCDPExecutor:
206
+ ...
207
+
208
+ @property
209
+ @abstractmethod
210
+ def cast(self) -> AbstractCastCDPExecutor:
211
+ ...
212
+
213
+ @property
214
+ @abstractmethod
215
+ def console(self) -> AbstractConsoleCDPExecutor:
216
+ ...
217
+
218
+ @property
219
+ @abstractmethod
220
+ def css(self) -> AbstractCssCDPExecutor:
221
+ ...
222
+
223
+ @property
224
+ @abstractmethod
225
+ def debugger(self) -> AbstractDebuggerCDPExecutor:
226
+ ...
227
+
228
+ @property
229
+ @abstractmethod
230
+ def device_access(self) -> AbstractDeviceAccessCDPExecutor:
231
+ ...
232
+
233
+ @property
234
+ @abstractmethod
235
+ def device_orientation(self) -> AbstractDeviceOrientationCDPExecutor:
236
+ ...
237
+
238
+ @property
239
+ @abstractmethod
240
+ def dom(self) -> AbstractDomCDPExecutor:
241
+ ...
242
+
243
+ @property
244
+ @abstractmethod
245
+ def dom_debugger(self) -> AbstractDomDebuggerCDPExecutor:
246
+ ...
247
+
248
+ @property
249
+ @abstractmethod
250
+ def dom_snapshot(self) -> AbstractDomSnapshotCDPExecutor:
251
+ ...
252
+
253
+ @property
254
+ @abstractmethod
255
+ def dom_storage(self) -> AbstractDomStorageCDPExecutor:
256
+ ...
257
+
258
+ @property
259
+ @abstractmethod
260
+ def emulation(self) -> AbstractEmulationCDPExecutor:
261
+ ...
262
+
263
+ @property
264
+ @abstractmethod
265
+ def event_breakpoints(self) -> AbstractEventBreakpointsCDPExecutor:
266
+ ...
267
+
268
+ @abstractmethod
269
+ def execute(self, cmd: str, cmd_args: Dict[str, Any]) -> Any:
270
+ ...
271
+
272
+ @property
273
+ @abstractmethod
274
+ def extensions(self) -> AbstractExtensionsCDPExecutor:
275
+ ...
276
+
277
+ @property
278
+ @abstractmethod
279
+ def fed_cm(self) -> AbstractFedCmCDPExecutor:
280
+ ...
281
+
282
+ @property
283
+ @abstractmethod
284
+ def fetch(self) -> AbstractFetchCDPExecutor:
285
+ ...
286
+
287
+ @property
288
+ @abstractmethod
289
+ def file_system(self) -> AbstractFileSystemCDPExecutor:
290
+ ...
291
+
292
+ @property
293
+ @abstractmethod
294
+ def headless_experimental(self) -> AbstractHeadlessExperimentalCDPExecutor:
295
+ ...
296
+
297
+ @property
298
+ @abstractmethod
299
+ def heap_profiler(self) -> AbstractHeapProfilerCDPExecutor:
300
+ ...
301
+
302
+ @property
303
+ @abstractmethod
304
+ def indexed_db(self) -> AbstractIndexedDbCDPExecutor:
305
+ ...
306
+
307
+ @property
308
+ @abstractmethod
309
+ def input(self) -> AbstractInputCDPExecutor:
310
+ ...
311
+
312
+ @property
313
+ @abstractmethod
314
+ def inspector(self) -> AbstractInspectorCDPExecutor:
315
+ ...
316
+
317
+ @property
318
+ @abstractmethod
319
+ def io(self) -> AbstractIoCDPExecutor:
320
+ ...
321
+
322
+ @property
323
+ @abstractmethod
324
+ def layer_tree(self) -> AbstractLayerTreeCDPExecutor:
325
+ ...
326
+
327
+ @property
328
+ @abstractmethod
329
+ def log(self) -> AbstractLogCDPExecutor:
330
+ ...
331
+
332
+ @property
333
+ @abstractmethod
334
+ def media(self) -> AbstractMediaCDPExecutor:
335
+ ...
336
+
337
+ @property
338
+ @abstractmethod
339
+ def memory(self) -> AbstractMemoryCDPExecutor:
340
+ ...
341
+
342
+ @property
343
+ @abstractmethod
344
+ def network(self) -> AbstractNetworkCDPExecutor:
345
+ ...
346
+
347
+ @property
348
+ @abstractmethod
349
+ def overlay(self) -> AbstractOverlayCDPExecutor:
350
+ ...
351
+
352
+ @property
353
+ @abstractmethod
354
+ def page(self) -> AbstractPageCDPExecutor:
355
+ ...
356
+
357
+ @property
358
+ @abstractmethod
359
+ def performance(self) -> AbstractPerformanceCDPExecutor:
360
+ ...
361
+
362
+ @property
363
+ @abstractmethod
364
+ def performance_timeline(self) -> AbstractPerformanceTimelineCDPExecutor:
365
+ ...
366
+
367
+ @property
368
+ @abstractmethod
369
+ def preload(self) -> AbstractPreloadCDPExecutor:
370
+ ...
371
+
372
+ @property
373
+ @abstractmethod
374
+ def profiler(self) -> AbstractProfilerCDPExecutor:
375
+ ...
376
+
377
+ @property
378
+ @abstractmethod
379
+ def pwa(self) -> AbstractPwaCDPExecutor:
380
+ ...
381
+
382
+ @property
383
+ @abstractmethod
384
+ def runtime(self) -> AbstractRuntimeCDPExecutor:
385
+ ...
386
+
387
+ @property
388
+ @abstractmethod
389
+ def schema(self) -> AbstractSchemaCDPExecutor:
390
+ ...
391
+
392
+ @property
393
+ @abstractmethod
394
+ def security(self) -> AbstractSecurityCDPExecutor:
395
+ ...
396
+
397
+ @property
398
+ @abstractmethod
399
+ def service_worker(self) -> AbstractServiceWorkerCDPExecutor:
400
+ ...
401
+
402
+ @property
403
+ @abstractmethod
404
+ def storage(self) -> AbstractStorageCDPExecutor:
405
+ ...
406
+
407
+ @property
408
+ @abstractmethod
409
+ def system_info(self) -> AbstractSystemInfoCDPExecutor:
410
+ ...
411
+
412
+ @property
413
+ @abstractmethod
414
+ def target(self) -> AbstractTargetCDPExecutor:
415
+ ...
416
+
417
+ @property
418
+ @abstractmethod
419
+ def tethering(self) -> AbstractTetheringCDPExecutor:
420
+ ...
421
+
422
+ @property
423
+ @abstractmethod
424
+ def tracing(self) -> AbstractTracingCDPExecutor:
425
+ ...
426
+
427
+ @property
428
+ @abstractmethod
429
+ def web_audio(self) -> AbstractWebAudioCDPExecutor:
430
+ ...
431
+
432
+ @property
433
+ @abstractmethod
434
+ def web_authn(self) -> AbstractWebAuthnCDPExecutor:
435
+ ...
@@ -0,0 +1,62 @@
1
+ from abc import ABC, abstractmethod
2
+ from typing import (
3
+ Any,
4
+ Dict,
5
+ List,
6
+ Optional
7
+ )
8
+
9
+
10
+ __all__ = ["AbstractAccessibilityCDPExecutor"]
11
+
12
+
13
+ class AbstractAccessibilityCDPExecutor(ABC):
14
+ @abstractmethod
15
+ def disable(self) -> None:
16
+ ...
17
+
18
+ @abstractmethod
19
+ def enable(self) -> None:
20
+ ...
21
+
22
+ @abstractmethod
23
+ def get_ax_node_and_ancestors(
24
+ self,
25
+ node_id: Optional[int] = None,
26
+ backend_node_id: Optional[int] = None,
27
+ object_id: Optional[str] = None
28
+ ) -> List[Dict[str, Any]]:
29
+ ...
30
+
31
+ @abstractmethod
32
+ def get_child_ax_nodes(self, id_: str, frame_id: Optional[str] = None) -> List[Dict[str, Any]]:
33
+ ...
34
+
35
+ @abstractmethod
36
+ def get_full_ax_tree(self, depth: Optional[int] = None, frame_id: Optional[str] = None) -> List[Dict[str, Any]]:
37
+ ...
38
+
39
+ @abstractmethod
40
+ def get_partial_ax_tree(
41
+ self,
42
+ node_id: Optional[int] = None,
43
+ backend_node_id: Optional[int] = None,
44
+ object_id: Optional[str] = None,
45
+ fetch_relatives: Optional[bool] = None
46
+ ) -> List[Dict[str, Any]]:
47
+ ...
48
+
49
+ @abstractmethod
50
+ def get_root_ax_node(self, frame_id: Optional[str] = None) -> Dict[str, Any]:
51
+ ...
52
+
53
+ @abstractmethod
54
+ def query_ax_tree(
55
+ self,
56
+ node_id: Optional[int] = None,
57
+ backend_node_id: Optional[int] = None,
58
+ object_id: Optional[str] = None,
59
+ accessible_name: Optional[str] = None,
60
+ role: Optional[str] = None
61
+ ) -> List[Dict[str, Any]]:
62
+ ...
@@ -0,0 +1,47 @@
1
+ from typing import Any, Dict, List
2
+ from abc import ABC, abstractmethod
3
+
4
+
5
+ __all__ = ["AbstractAnimationCDPExecutor"]
6
+
7
+
8
+ class AbstractAnimationCDPExecutor(ABC):
9
+ @abstractmethod
10
+ def disable(self) -> None:
11
+ ...
12
+
13
+ @abstractmethod
14
+ def enable(self) -> None:
15
+ ...
16
+
17
+ @abstractmethod
18
+ def get_current_time(self, id_: str) -> float:
19
+ ...
20
+
21
+ @abstractmethod
22
+ def get_playback_rate(self) -> float:
23
+ ...
24
+
25
+ @abstractmethod
26
+ def release_animations(self, animations: List[str]) -> None:
27
+ ...
28
+
29
+ @abstractmethod
30
+ def resolve_animation(self, animation_id: str) -> Dict[str, Any]:
31
+ ...
32
+
33
+ @abstractmethod
34
+ def seek_animations(self, animations: List[str], current_time: float) -> None:
35
+ ...
36
+
37
+ @abstractmethod
38
+ def set_paused(self, animations: List[str], paused: bool) -> None:
39
+ ...
40
+
41
+ @abstractmethod
42
+ def set_playback_rate(self, playback_rate: float) -> None:
43
+ ...
44
+
45
+ @abstractmethod
46
+ def set_timing(self, animation_id: str, duration: float, delay: float) -> None:
47
+ ...
@@ -0,0 +1,39 @@
1
+ from abc import ABC, abstractmethod
2
+ from typing import (
3
+ Any,
4
+ Dict,
5
+ List,
6
+ Optional,
7
+ Tuple
8
+ )
9
+
10
+
11
+ __all__ = ["AbstractAuditsCDPExecutor"]
12
+
13
+
14
+ class AbstractAuditsCDPExecutor(ABC):
15
+ @abstractmethod
16
+ def check_contrast(self, report_aaa: Optional[bool] = None) -> None:
17
+ ...
18
+
19
+ @abstractmethod
20
+ def check_forms_issues(self) -> List[Dict[str, Any]]:
21
+ ...
22
+
23
+ @abstractmethod
24
+ def disable(self) -> None:
25
+ ...
26
+
27
+ @abstractmethod
28
+ def enable(self) -> None:
29
+ ...
30
+
31
+ @abstractmethod
32
+ def get_encoded_response(
33
+ self,
34
+ request_id: str,
35
+ encoding: str,
36
+ quality: Optional[float] = None,
37
+ size_only: Optional[bool] = None
38
+ ) -> Tuple[Optional[str], int, int]:
39
+ ...
@@ -0,0 +1,34 @@
1
+ from abc import ABC, abstractmethod
2
+ from typing import (
3
+ Any,
4
+ Dict,
5
+ List,
6
+ Optional
7
+ )
8
+
9
+
10
+ __all__ = ["AbstractAutofillCDPExecutor"]
11
+
12
+
13
+ class AbstractAutofillCDPExecutor(ABC):
14
+ @abstractmethod
15
+ def disable(self) -> None:
16
+ ...
17
+
18
+ @abstractmethod
19
+ def enable(self) -> None:
20
+ ...
21
+
22
+ @abstractmethod
23
+ def set_addresses(self, addresses: List[Dict[str, Any]]) -> None:
24
+ ...
25
+
26
+ @abstractmethod
27
+ def trigger(
28
+ self,
29
+ field_id: int,
30
+ frame_id: Optional[str] = None,
31
+ card: Optional[Dict[str, Any]] = None,
32
+ address: Optional[Dict[str, Any]] = None
33
+ ) -> None:
34
+ ...