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,283 @@
1
+ import trio
2
+ from osn_selenium.base_mixin import TrioThreadMixin
3
+ from typing import (
4
+ Any,
5
+ Callable,
6
+ Dict,
7
+ List,
8
+ Optional
9
+ )
10
+ from osn_selenium.executors.unified.cdp.emulation import (
11
+ UnifiedEmulationCDPExecutor
12
+ )
13
+ from osn_selenium.abstract.executors.cdp.emulation import (
14
+ AbstractEmulationCDPExecutor
15
+ )
16
+
17
+
18
+ __all__ = ["EmulationCDPExecutor"]
19
+
20
+
21
+ class EmulationCDPExecutor(
22
+ UnifiedEmulationCDPExecutor,
23
+ TrioThreadMixin,
24
+ AbstractEmulationCDPExecutor
25
+ ):
26
+ def __init__(
27
+ self,
28
+ execute_function: Callable[[str, Dict[str, Any]], Any],
29
+ lock: trio.Lock,
30
+ limiter: trio.CapacityLimiter
31
+ ):
32
+ UnifiedEmulationCDPExecutor.__init__(self, execute_function=execute_function)
33
+
34
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
35
+
36
+ async def add_screen(
37
+ self,
38
+ left: int,
39
+ top: int,
40
+ width: int,
41
+ height: int,
42
+ work_area_insets: Optional[Dict[str, Any]] = None,
43
+ device_pixel_ratio: Optional[float] = None,
44
+ rotation: Optional[int] = None,
45
+ color_depth: Optional[int] = None,
46
+ label: Optional[str] = None,
47
+ is_internal: Optional[bool] = None
48
+ ) -> Dict[str, Any]:
49
+ return await self.sync_to_trio(sync_function=self._add_screen_impl)(
50
+ left=left,
51
+ top=top,
52
+ width=width,
53
+ height=height,
54
+ work_area_insets=work_area_insets,
55
+ device_pixel_ratio=device_pixel_ratio,
56
+ rotation=rotation,
57
+ color_depth=color_depth,
58
+ label=label,
59
+ is_internal=is_internal
60
+ )
61
+
62
+ async def can_emulate(self) -> bool:
63
+ return await self.sync_to_trio(sync_function=self._can_emulate_impl)()
64
+
65
+ async def clear_device_metrics_override(self) -> None:
66
+ return await self.sync_to_trio(sync_function=self._clear_device_metrics_override_impl)()
67
+
68
+ async def clear_device_posture_override(self) -> None:
69
+ return await self.sync_to_trio(sync_function=self._clear_device_posture_override_impl)()
70
+
71
+ async def clear_display_features_override(self) -> None:
72
+ return await self.sync_to_trio(sync_function=self._clear_display_features_override_impl)()
73
+
74
+ async def clear_geolocation_override(self) -> None:
75
+ return await self.sync_to_trio(sync_function=self._clear_geolocation_override_impl)()
76
+
77
+ async def clear_idle_override(self) -> None:
78
+ return await self.sync_to_trio(sync_function=self._clear_idle_override_impl)()
79
+
80
+ async def get_overridden_sensor_information(self, type_: str) -> float:
81
+ return await self.sync_to_trio(sync_function=self._get_overridden_sensor_information_impl)(type_=type_)
82
+
83
+ async def get_screen_infos(self) -> List[Dict[str, Any]]:
84
+ return await self.sync_to_trio(sync_function=self._get_screen_infos_impl)()
85
+
86
+ async def remove_screen(self, screen_id: str) -> None:
87
+ return await self.sync_to_trio(sync_function=self._remove_screen_impl)(screen_id=screen_id)
88
+
89
+ async def reset_page_scale_factor(self) -> None:
90
+ return await self.sync_to_trio(sync_function=self._reset_page_scale_factor_impl)()
91
+
92
+ async def set_auto_dark_mode_override(self, enabled: Optional[bool] = None) -> None:
93
+ return await self.sync_to_trio(sync_function=self._set_auto_dark_mode_override_impl)(enabled=enabled)
94
+
95
+ async def set_automation_override(self, enabled: bool) -> None:
96
+ return await self.sync_to_trio(sync_function=self._set_automation_override_impl)(enabled=enabled)
97
+
98
+ async def set_cpu_throttling_rate(self, rate: float) -> None:
99
+ return await self.sync_to_trio(sync_function=self._set_cpu_throttling_rate_impl)(rate=rate)
100
+
101
+ async def set_data_saver_override(self, data_saver_enabled: Optional[bool] = None) -> None:
102
+ return await self.sync_to_trio(sync_function=self._set_data_saver_override_impl)(data_saver_enabled=data_saver_enabled)
103
+
104
+ async def set_default_background_color_override(self, color: Optional[Dict[str, Any]] = None) -> None:
105
+ return await self.sync_to_trio(sync_function=self._set_default_background_color_override_impl)(color=color)
106
+
107
+ async def set_device_metrics_override(
108
+ self,
109
+ width: int,
110
+ height: int,
111
+ device_scale_factor: float,
112
+ mobile: bool,
113
+ scale: Optional[float] = None,
114
+ screen_width: Optional[int] = None,
115
+ screen_height: Optional[int] = None,
116
+ position_x: Optional[int] = None,
117
+ position_y: Optional[int] = None,
118
+ dont_set_visible_size: Optional[bool] = None,
119
+ screen_orientation: Optional[Dict[str, Any]] = None,
120
+ viewport: Optional[Dict[str, Any]] = None,
121
+ display_feature: Optional[Dict[str, Any]] = None,
122
+ device_posture: Optional[Dict[str, Any]] = None
123
+ ) -> None:
124
+ return await self.sync_to_trio(sync_function=self._set_device_metrics_override_impl)(
125
+ width=width,
126
+ height=height,
127
+ device_scale_factor=device_scale_factor,
128
+ mobile=mobile,
129
+ scale=scale,
130
+ screen_width=screen_width,
131
+ screen_height=screen_height,
132
+ position_x=position_x,
133
+ position_y=position_y,
134
+ dont_set_visible_size=dont_set_visible_size,
135
+ screen_orientation=screen_orientation,
136
+ viewport=viewport,
137
+ display_feature=display_feature,
138
+ device_posture=device_posture
139
+ )
140
+
141
+ async def set_device_posture_override(self, posture: Dict[str, Any]) -> None:
142
+ return await self.sync_to_trio(sync_function=self._set_device_posture_override_impl)(posture=posture)
143
+
144
+ async def set_disabled_image_types(self, image_types: List[str]) -> None:
145
+ return await self.sync_to_trio(sync_function=self._set_disabled_image_types_impl)(image_types=image_types)
146
+
147
+ async def set_display_features_override(self, features: List[Dict[str, Any]]) -> None:
148
+ return await self.sync_to_trio(sync_function=self._set_display_features_override_impl)(features=features)
149
+
150
+ async def set_document_cookie_disabled(self, disabled: bool) -> None:
151
+ return await self.sync_to_trio(sync_function=self._set_document_cookie_disabled_impl)(disabled=disabled)
152
+
153
+ async def set_emit_touch_events_for_mouse(self, enabled: bool, configuration: Optional[str] = None) -> None:
154
+ return await self.sync_to_trio(sync_function=self._set_emit_touch_events_for_mouse_impl)(enabled=enabled, configuration=configuration)
155
+
156
+ async def set_emulated_media(
157
+ self,
158
+ media: Optional[str] = None,
159
+ features: Optional[List[Dict[str, Any]]] = None
160
+ ) -> None:
161
+ return await self.sync_to_trio(sync_function=self._set_emulated_media_impl)(media=media, features=features)
162
+
163
+ async def set_emulated_os_text_scale(self, scale: Optional[float] = None) -> None:
164
+ return await self.sync_to_trio(sync_function=self._set_emulated_os_text_scale_impl)(scale=scale)
165
+
166
+ async def set_emulated_vision_deficiency(self, type_: str) -> None:
167
+ return await self.sync_to_trio(sync_function=self._set_emulated_vision_deficiency_impl)(type_=type_)
168
+
169
+ async def set_focus_emulation_enabled(self, enabled: bool) -> None:
170
+ return await self.sync_to_trio(sync_function=self._set_focus_emulation_enabled_impl)(enabled=enabled)
171
+
172
+ async def set_geolocation_override(
173
+ self,
174
+ latitude: Optional[float] = None,
175
+ longitude: Optional[float] = None,
176
+ accuracy: Optional[float] = None,
177
+ altitude: Optional[float] = None,
178
+ altitude_accuracy: Optional[float] = None,
179
+ heading: Optional[float] = None,
180
+ speed: Optional[float] = None
181
+ ) -> None:
182
+ return await self.sync_to_trio(sync_function=self._set_geolocation_override_impl)(
183
+ latitude=latitude,
184
+ longitude=longitude,
185
+ accuracy=accuracy,
186
+ altitude=altitude,
187
+ altitude_accuracy=altitude_accuracy,
188
+ heading=heading,
189
+ speed=speed
190
+ )
191
+
192
+ async def set_hardware_concurrency_override(self, hardware_concurrency: int) -> None:
193
+ return await self.sync_to_trio(sync_function=self._set_hardware_concurrency_override_impl)(hardware_concurrency=hardware_concurrency)
194
+
195
+ async def set_idle_override(self, is_user_active: bool, is_screen_unlocked: bool) -> None:
196
+ return await self.sync_to_trio(sync_function=self._set_idle_override_impl)(is_user_active=is_user_active, is_screen_unlocked=is_screen_unlocked)
197
+
198
+ async def set_locale_override(self, locale: Optional[str] = None) -> None:
199
+ return await self.sync_to_trio(sync_function=self._set_locale_override_impl)(locale=locale)
200
+
201
+ async def set_navigator_overrides(self, platform: str) -> None:
202
+ return await self.sync_to_trio(sync_function=self._set_navigator_overrides_impl)(platform=platform)
203
+
204
+ async def set_page_scale_factor(self, page_scale_factor: float) -> None:
205
+ return await self.sync_to_trio(sync_function=self._set_page_scale_factor_impl)(page_scale_factor=page_scale_factor)
206
+
207
+ async def set_pressure_data_override(
208
+ self,
209
+ source: str,
210
+ state: str,
211
+ own_contribution_estimate: Optional[float] = None
212
+ ) -> None:
213
+ return await self.sync_to_trio(sync_function=self._set_pressure_data_override_impl)(
214
+ source=source,
215
+ state=state,
216
+ own_contribution_estimate=own_contribution_estimate
217
+ )
218
+
219
+ async def set_pressure_source_override_enabled(
220
+ self,
221
+ enabled: bool,
222
+ source: str,
223
+ metadata: Optional[Dict[str, Any]] = None
224
+ ) -> None:
225
+ return await self.sync_to_trio(sync_function=self._set_pressure_source_override_enabled_impl)(enabled=enabled, source=source, metadata=metadata)
226
+
227
+ async def set_pressure_state_override(self, source: str, state: str) -> None:
228
+ return await self.sync_to_trio(sync_function=self._set_pressure_state_override_impl)(source=source, state=state)
229
+
230
+ async def set_safe_area_insets_override(self, insets: Dict[str, Any]) -> None:
231
+ return await self.sync_to_trio(sync_function=self._set_safe_area_insets_override_impl)(insets=insets)
232
+
233
+ async def set_script_execution_disabled(self, value: bool) -> None:
234
+ return await self.sync_to_trio(sync_function=self._set_script_execution_disabled_impl)(value=value)
235
+
236
+ async def set_scrollbars_hidden(self, hidden: bool) -> None:
237
+ return await self.sync_to_trio(sync_function=self._set_scrollbars_hidden_impl)(hidden=hidden)
238
+
239
+ async def set_sensor_override_enabled(self, enabled: bool, type_: str, metadata: Optional[Dict[str, Any]] = None) -> None:
240
+ return await self.sync_to_trio(sync_function=self._set_sensor_override_enabled_impl)(enabled=enabled, type_=type_, metadata=metadata)
241
+
242
+ async def set_sensor_override_readings(self, type_: str, reading: Dict[str, Any]) -> None:
243
+ return await self.sync_to_trio(sync_function=self._set_sensor_override_readings_impl)(type_=type_, reading=reading)
244
+
245
+ async def set_small_viewport_height_difference_override(self, difference: int) -> None:
246
+ return await self.sync_to_trio(sync_function=self._set_small_viewport_height_difference_override_impl)(difference=difference)
247
+
248
+ async def set_timezone_override(self, timezone_id: str) -> None:
249
+ return await self.sync_to_trio(sync_function=self._set_timezone_override_impl)(timezone_id=timezone_id)
250
+
251
+ async def set_touch_emulation_enabled(self, enabled: bool, max_touch_points: Optional[int] = None) -> None:
252
+ return await self.sync_to_trio(sync_function=self._set_touch_emulation_enabled_impl)(enabled=enabled, max_touch_points=max_touch_points)
253
+
254
+ async def set_user_agent_override(
255
+ self,
256
+ user_agent: str,
257
+ accept_language: Optional[str] = None,
258
+ platform: Optional[str] = None,
259
+ user_agent_metadata: Optional[Dict[str, Any]] = None
260
+ ) -> None:
261
+ return await self.sync_to_trio(sync_function=self._set_user_agent_override_impl)(
262
+ user_agent=user_agent,
263
+ accept_language=accept_language,
264
+ platform=platform,
265
+ user_agent_metadata=user_agent_metadata
266
+ )
267
+
268
+ async def set_virtual_time_policy(
269
+ self,
270
+ policy: str,
271
+ budget: Optional[float] = None,
272
+ max_virtual_time_task_starvation_count: Optional[int] = None,
273
+ initial_virtual_time: Optional[float] = None
274
+ ) -> float:
275
+ return await self.sync_to_trio(sync_function=self._set_virtual_time_policy_impl)(
276
+ policy=policy,
277
+ budget=budget,
278
+ max_virtual_time_task_starvation_count=max_virtual_time_task_starvation_count,
279
+ initial_virtual_time=initial_virtual_time
280
+ )
281
+
282
+ async def set_visible_size(self, width: int, height: int) -> None:
283
+ return await self.sync_to_trio(sync_function=self._set_visible_size_impl)(width=width, height=height)
@@ -0,0 +1,37 @@
1
+ import trio
2
+ from typing import Any, Callable, Dict
3
+ from osn_selenium.base_mixin import TrioThreadMixin
4
+ from osn_selenium.executors.unified.cdp.event_breakpoints import (
5
+ UnifiedEventBreakpointsCDPExecutor
6
+ )
7
+ from osn_selenium.abstract.executors.cdp.event_breakpoints import (
8
+ AbstractEventBreakpointsCDPExecutor
9
+ )
10
+
11
+
12
+ __all__ = ["EventBreakpointsCDPExecutor"]
13
+
14
+
15
+ class EventBreakpointsCDPExecutor(
16
+ UnifiedEventBreakpointsCDPExecutor,
17
+ TrioThreadMixin,
18
+ AbstractEventBreakpointsCDPExecutor
19
+ ):
20
+ def __init__(
21
+ self,
22
+ execute_function: Callable[[str, Dict[str, Any]], Any],
23
+ lock: trio.Lock,
24
+ limiter: trio.CapacityLimiter
25
+ ):
26
+ UnifiedEventBreakpointsCDPExecutor.__init__(self, execute_function=execute_function)
27
+
28
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
29
+
30
+ async def disable(self) -> None:
31
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
32
+
33
+ async def remove_instrumentation_breakpoint(self, event_name: str) -> None:
34
+ return await self.sync_to_trio(sync_function=self._remove_instrumentation_breakpoint_impl)(event_name=event_name)
35
+
36
+ async def set_instrumentation_breakpoint(self, event_name: str) -> None:
37
+ return await self.sync_to_trio(sync_function=self._set_instrumentation_breakpoint_impl)(event_name=event_name)
@@ -0,0 +1,52 @@
1
+ import trio
2
+ from osn_selenium.base_mixin import TrioThreadMixin
3
+ from typing import (
4
+ Any,
5
+ Callable,
6
+ Dict,
7
+ List,
8
+ Optional
9
+ )
10
+ from osn_selenium.executors.unified.cdp.extensions import (
11
+ UnifiedExtensionsCDPExecutor
12
+ )
13
+ from osn_selenium.abstract.executors.cdp.extensions import (
14
+ AbstractExtensionsCDPExecutor
15
+ )
16
+
17
+
18
+ __all__ = ["ExtensionsCDPExecutor"]
19
+
20
+
21
+ class ExtensionsCDPExecutor(
22
+ UnifiedExtensionsCDPExecutor,
23
+ TrioThreadMixin,
24
+ AbstractExtensionsCDPExecutor
25
+ ):
26
+ def __init__(
27
+ self,
28
+ execute_function: Callable[[str, Dict[str, Any]], Any],
29
+ lock: trio.Lock,
30
+ limiter: trio.CapacityLimiter
31
+ ):
32
+ UnifiedExtensionsCDPExecutor.__init__(self, execute_function=execute_function)
33
+
34
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
35
+
36
+ async def clear_storage_items(self, id_: str, storage_area: str) -> None:
37
+ return await self.sync_to_trio(sync_function=self._clear_storage_items_impl)(id_=id_, storage_area=storage_area)
38
+
39
+ async def get_storage_items(self, id_: str, storage_area: str, keys: Optional[List[str]] = None) -> Any:
40
+ return await self.sync_to_trio(sync_function=self._get_storage_items_impl)(id_=id_, storage_area=storage_area, keys=keys)
41
+
42
+ async def load_unpacked(self, path: str) -> str:
43
+ return await self.sync_to_trio(sync_function=self._load_unpacked_impl)(path=path)
44
+
45
+ async def remove_storage_items(self, id_: str, storage_area: str, keys: List[str]) -> None:
46
+ return await self.sync_to_trio(sync_function=self._remove_storage_items_impl)(id_=id_, storage_area=storage_area, keys=keys)
47
+
48
+ async def set_storage_items(self, id_: str, storage_area: str, values: Any) -> None:
49
+ return await self.sync_to_trio(sync_function=self._set_storage_items_impl)(id_=id_, storage_area=storage_area, values=values)
50
+
51
+ async def uninstall(self, id_: str) -> None:
52
+ return await self.sync_to_trio(sync_function=self._uninstall_impl)(id_=id_)
@@ -0,0 +1,54 @@
1
+ import trio
2
+ from osn_selenium.base_mixin import TrioThreadMixin
3
+ from typing import (
4
+ Any,
5
+ Callable,
6
+ Dict,
7
+ Optional
8
+ )
9
+ from osn_selenium.executors.unified.cdp.fed_cm import (
10
+ UnifiedFedCmCDPExecutor
11
+ )
12
+ from osn_selenium.abstract.executors.cdp.fed_cm import (
13
+ AbstractFedCmCDPExecutor
14
+ )
15
+
16
+
17
+ __all__ = ["FedCmCDPExecutor"]
18
+
19
+
20
+ class FedCmCDPExecutor(UnifiedFedCmCDPExecutor, TrioThreadMixin, AbstractFedCmCDPExecutor):
21
+ def __init__(
22
+ self,
23
+ execute_function: Callable[[str, Dict[str, Any]], Any],
24
+ lock: trio.Lock,
25
+ limiter: trio.CapacityLimiter
26
+ ):
27
+ UnifiedFedCmCDPExecutor.__init__(self, execute_function=execute_function)
28
+
29
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
30
+
31
+ async def click_dialog_button(self, dialog_id: str, dialog_button: str) -> None:
32
+ return await self.sync_to_trio(sync_function=self._click_dialog_button_impl)(dialog_id=dialog_id, dialog_button=dialog_button)
33
+
34
+ async def disable(self) -> None:
35
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
36
+
37
+ async def dismiss_dialog(self, dialog_id: str, trigger_cooldown: Optional[bool] = None) -> None:
38
+ return await self.sync_to_trio(sync_function=self._dismiss_dialog_impl)(dialog_id=dialog_id, trigger_cooldown=trigger_cooldown)
39
+
40
+ async def enable(self, disable_rejection_delay: Optional[bool] = None) -> None:
41
+ return await self.sync_to_trio(sync_function=self._enable_impl)(disable_rejection_delay=disable_rejection_delay)
42
+
43
+ async def open_url(self, dialog_id: str, account_index: int, account_url_type: str) -> None:
44
+ return await self.sync_to_trio(sync_function=self._open_url_impl)(
45
+ dialog_id=dialog_id,
46
+ account_index=account_index,
47
+ account_url_type=account_url_type
48
+ )
49
+
50
+ async def reset_cooldown(self) -> None:
51
+ return await self.sync_to_trio(sync_function=self._reset_cooldown_impl)()
52
+
53
+ async def select_account(self, dialog_id: str, account_index: int) -> None:
54
+ return await self.sync_to_trio(sync_function=self._select_account_impl)(dialog_id=dialog_id, account_index=account_index)
@@ -0,0 +1,105 @@
1
+ import trio
2
+ from osn_selenium.base_mixin import TrioThreadMixin
3
+ from typing import (
4
+ Any,
5
+ Callable,
6
+ Dict,
7
+ List,
8
+ Optional,
9
+ Tuple
10
+ )
11
+ from osn_selenium.executors.unified.cdp.fetch import (
12
+ UnifiedFetchCDPExecutor
13
+ )
14
+ from osn_selenium.abstract.executors.cdp.fetch import (
15
+ AbstractFetchCDPExecutor
16
+ )
17
+
18
+
19
+ __all__ = ["FetchCDPExecutor"]
20
+
21
+
22
+ class FetchCDPExecutor(UnifiedFetchCDPExecutor, TrioThreadMixin, AbstractFetchCDPExecutor):
23
+ def __init__(
24
+ self,
25
+ execute_function: Callable[[str, Dict[str, Any]], Any],
26
+ lock: trio.Lock,
27
+ limiter: trio.CapacityLimiter
28
+ ):
29
+ UnifiedFetchCDPExecutor.__init__(self, execute_function=execute_function)
30
+
31
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
32
+
33
+ async def continue_request(
34
+ self,
35
+ request_id: str,
36
+ url: Optional[str] = None,
37
+ method: Optional[str] = None,
38
+ post_data: Optional[str] = None,
39
+ headers: Optional[List[Dict[str, Any]]] = None,
40
+ intercept_response: Optional[bool] = None
41
+ ) -> None:
42
+ return await self.sync_to_trio(sync_function=self._continue_request_impl)(
43
+ request_id=request_id,
44
+ url=url,
45
+ method=method,
46
+ post_data=post_data,
47
+ headers=headers,
48
+ intercept_response=intercept_response
49
+ )
50
+
51
+ async def continue_response(
52
+ self,
53
+ request_id: str,
54
+ response_code: Optional[int] = None,
55
+ response_phrase: Optional[str] = None,
56
+ response_headers: Optional[List[Dict[str, Any]]] = None,
57
+ binary_response_headers: Optional[str] = None
58
+ ) -> None:
59
+ return await self.sync_to_trio(sync_function=self._continue_response_impl)(
60
+ request_id=request_id,
61
+ response_code=response_code,
62
+ response_phrase=response_phrase,
63
+ response_headers=response_headers,
64
+ binary_response_headers=binary_response_headers
65
+ )
66
+
67
+ async def continue_with_auth(self, request_id: str, auth_challenge_response: Dict[str, Any]) -> None:
68
+ return await self.sync_to_trio(sync_function=self._continue_with_auth_impl)(request_id=request_id, auth_challenge_response=auth_challenge_response)
69
+
70
+ async def disable(self) -> None:
71
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
72
+
73
+ async def enable(
74
+ self,
75
+ patterns: Optional[List[Dict[str, Any]]] = None,
76
+ handle_auth_requests: Optional[bool] = None
77
+ ) -> None:
78
+ return await self.sync_to_trio(sync_function=self._enable_impl)(patterns=patterns, handle_auth_requests=handle_auth_requests)
79
+
80
+ async def fail_request(self, request_id: str, error_reason: str) -> None:
81
+ return await self.sync_to_trio(sync_function=self._fail_request_impl)(request_id=request_id, error_reason=error_reason)
82
+
83
+ async def fulfill_request(
84
+ self,
85
+ request_id: str,
86
+ response_code: int,
87
+ response_headers: Optional[List[Dict[str, Any]]] = None,
88
+ binary_response_headers: Optional[str] = None,
89
+ body: Optional[str] = None,
90
+ response_phrase: Optional[str] = None
91
+ ) -> None:
92
+ return await self.sync_to_trio(sync_function=self._fulfill_request_impl)(
93
+ request_id=request_id,
94
+ response_code=response_code,
95
+ response_headers=response_headers,
96
+ binary_response_headers=binary_response_headers,
97
+ body=body,
98
+ response_phrase=response_phrase
99
+ )
100
+
101
+ async def get_response_body(self, request_id: str) -> Tuple[str, bool]:
102
+ return await self.sync_to_trio(sync_function=self._get_response_body_impl)(request_id=request_id)
103
+
104
+ async def take_response_body_as_stream(self, request_id: str) -> str:
105
+ return await self.sync_to_trio(sync_function=self._take_response_body_as_stream_impl)(request_id=request_id)
@@ -0,0 +1,31 @@
1
+ import trio
2
+ from typing import Any, Callable, Dict
3
+ from osn_selenium.base_mixin import TrioThreadMixin
4
+ from osn_selenium.executors.unified.cdp.file_system import (
5
+ UnifiedFileSystemCDPExecutor
6
+ )
7
+ from osn_selenium.abstract.executors.cdp.file_system import (
8
+ AbstractFileSystemCDPExecutor
9
+ )
10
+
11
+
12
+ __all__ = ["FileSystemCDPExecutor"]
13
+
14
+
15
+ class FileSystemCDPExecutor(
16
+ UnifiedFileSystemCDPExecutor,
17
+ TrioThreadMixin,
18
+ AbstractFileSystemCDPExecutor
19
+ ):
20
+ def __init__(
21
+ self,
22
+ execute_function: Callable[[str, Dict[str, Any]], Any],
23
+ lock: trio.Lock,
24
+ limiter: trio.CapacityLimiter
25
+ ):
26
+ UnifiedFileSystemCDPExecutor.__init__(self, execute_function=execute_function)
27
+
28
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
29
+
30
+ async def get_directory(self, bucket_file_system_locator: Dict[str, Any]) -> Dict[str, Any]:
31
+ return await self.sync_to_trio(sync_function=self._get_directory_impl)(bucket_file_system_locator=bucket_file_system_locator)
@@ -0,0 +1,54 @@
1
+ import trio
2
+ from osn_selenium.base_mixin import TrioThreadMixin
3
+ from typing import (
4
+ Any,
5
+ Callable,
6
+ Dict,
7
+ Optional,
8
+ Tuple
9
+ )
10
+ from osn_selenium.executors.unified.cdp.headless_experimental import (
11
+ UnifiedHeadlessExperimentalCDPExecutor
12
+ )
13
+ from osn_selenium.abstract.executors.cdp.headless_experimental import (
14
+ AbstractHeadlessExperimentalCDPExecutor
15
+ )
16
+
17
+
18
+ __all__ = ["HeadlessExperimentalCDPExecutor"]
19
+
20
+
21
+ class HeadlessExperimentalCDPExecutor(
22
+ UnifiedHeadlessExperimentalCDPExecutor,
23
+ TrioThreadMixin,
24
+ AbstractHeadlessExperimentalCDPExecutor
25
+ ):
26
+ def __init__(
27
+ self,
28
+ execute_function: Callable[[str, Dict[str, Any]], Any],
29
+ lock: trio.Lock,
30
+ limiter: trio.CapacityLimiter
31
+ ):
32
+ UnifiedHeadlessExperimentalCDPExecutor.__init__(self, execute_function=execute_function)
33
+
34
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
35
+
36
+ async def begin_frame(
37
+ self,
38
+ frame_time_ticks: Optional[float] = None,
39
+ interval: Optional[float] = None,
40
+ no_display_updates: Optional[bool] = None,
41
+ screenshot: Optional[Dict[str, Any]] = None
42
+ ) -> Tuple[bool, Optional[str]]:
43
+ return await self.sync_to_trio(sync_function=self._begin_frame_impl)(
44
+ frame_time_ticks=frame_time_ticks,
45
+ interval=interval,
46
+ no_display_updates=no_display_updates,
47
+ screenshot=screenshot
48
+ )
49
+
50
+ async def disable(self) -> None:
51
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
52
+
53
+ async def enable(self) -> None:
54
+ return await self.sync_to_trio(sync_function=self._enable_impl)()