osn-selenium 0.0.0__py3-none-any.whl → 1.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (635) hide show
  1. osn_selenium/_base_models.py +41 -0
  2. osn_selenium/_cdp_import.py +253 -0
  3. osn_selenium/_functions.py +84 -0
  4. osn_selenium/_typehints.py +19 -0
  5. osn_selenium/abstract/executors/cdp/__init__.py +435 -0
  6. osn_selenium/abstract/executors/cdp/accessibility.py +62 -0
  7. osn_selenium/abstract/executors/cdp/animation.py +47 -0
  8. osn_selenium/abstract/executors/cdp/audits.py +39 -0
  9. osn_selenium/abstract/executors/cdp/autofill.py +34 -0
  10. osn_selenium/abstract/executors/cdp/background_service.py +22 -0
  11. osn_selenium/abstract/executors/cdp/bluetooth_emulation.py +95 -0
  12. osn_selenium/abstract/executors/cdp/browser.py +122 -0
  13. osn_selenium/abstract/executors/cdp/cache_storage.py +49 -0
  14. osn_selenium/abstract/executors/cdp/cast.py +31 -0
  15. osn_selenium/abstract/executors/cdp/console.py +18 -0
  16. osn_selenium/abstract/executors/cdp/css.py +197 -0
  17. osn_selenium/abstract/executors/cdp/debugger.py +198 -0
  18. osn_selenium/abstract/executors/cdp/device_access.py +22 -0
  19. osn_selenium/abstract/executors/cdp/device_orientation.py +14 -0
  20. osn_selenium/abstract/executors/cdp/dom.py +305 -0
  21. osn_selenium/abstract/executors/cdp/dom_debugger.py +57 -0
  22. osn_selenium/abstract/executors/cdp/dom_snapshot.py +42 -0
  23. osn_selenium/abstract/executors/cdp/dom_storage.py +31 -0
  24. osn_selenium/abstract/executors/cdp/emulation.py +259 -0
  25. osn_selenium/abstract/executors/cdp/event_breakpoints.py +18 -0
  26. osn_selenium/abstract/executors/cdp/extensions.py +31 -0
  27. osn_selenium/abstract/executors/cdp/fed_cm.py +35 -0
  28. osn_selenium/abstract/executors/cdp/fetch.py +76 -0
  29. osn_selenium/abstract/executors/cdp/file_system.py +11 -0
  30. osn_selenium/abstract/executors/cdp/headless_experimental.py +30 -0
  31. osn_selenium/abstract/executors/cdp/heap_profiler.py +73 -0
  32. osn_selenium/abstract/executors/cdp/indexed_db.py +99 -0
  33. osn_selenium/abstract/executors/cdp/input.py +158 -0
  34. osn_selenium/abstract/executors/cdp/inspector.py +14 -0
  35. osn_selenium/abstract/executors/cdp/io.py +24 -0
  36. osn_selenium/abstract/executors/cdp/layer_tree.py +61 -0
  37. osn_selenium/abstract/executors/cdp/log.py +27 -0
  38. osn_selenium/abstract/executors/cdp/media.py +14 -0
  39. osn_selenium/abstract/executors/cdp/memory.py +61 -0
  40. osn_selenium/abstract/executors/cdp/network.py +252 -0
  41. osn_selenium/abstract/executors/cdp/overlay.py +166 -0
  42. osn_selenium/abstract/executors/cdp/page.py +347 -0
  43. osn_selenium/abstract/executors/cdp/performance.py +28 -0
  44. osn_selenium/abstract/executors/cdp/performance_timeline.py +11 -0
  45. osn_selenium/abstract/executors/cdp/preload.py +14 -0
  46. osn_selenium/abstract/executors/cdp/profiler.py +54 -0
  47. osn_selenium/abstract/executors/cdp/pwa.py +46 -0
  48. osn_selenium/abstract/executors/cdp/runtime.py +176 -0
  49. osn_selenium/abstract/executors/cdp/schema.py +11 -0
  50. osn_selenium/abstract/executors/cdp/security.py +26 -0
  51. osn_selenium/abstract/executors/cdp/service_worker.py +54 -0
  52. osn_selenium/abstract/executors/cdp/storage.py +175 -0
  53. osn_selenium/abstract/executors/cdp/system_info.py +24 -0
  54. osn_selenium/abstract/executors/cdp/target.py +125 -0
  55. osn_selenium/abstract/executors/cdp/tethering.py +14 -0
  56. osn_selenium/abstract/executors/cdp/tracing.py +48 -0
  57. osn_selenium/abstract/executors/cdp/web_audio.py +19 -0
  58. osn_selenium/abstract/executors/cdp/web_authn.py +76 -0
  59. osn_selenium/abstract/executors/cdp.py +63 -0
  60. osn_selenium/abstract/executors/javascript.py +203 -0
  61. osn_selenium/abstract/instances/action_chains/__init__.py +12 -0
  62. osn_selenium/abstract/instances/action_chains/base.py +25 -0
  63. osn_selenium/abstract/instances/action_chains/click.py +93 -0
  64. osn_selenium/abstract/instances/action_chains/drag_and_drop.py +46 -0
  65. osn_selenium/abstract/instances/action_chains/hm_keyboard.py +44 -0
  66. osn_selenium/abstract/instances/action_chains/hm_move.py +104 -0
  67. osn_selenium/abstract/instances/action_chains/hm_scroll.py +75 -0
  68. osn_selenium/abstract/instances/action_chains/keyboard.py +79 -0
  69. osn_selenium/abstract/instances/action_chains/move.py +60 -0
  70. osn_selenium/abstract/instances/action_chains/scroll.py +61 -0
  71. osn_selenium/abstract/instances/action_chains/utils.py +44 -0
  72. osn_selenium/abstract/instances/alert.py +67 -0
  73. osn_selenium/abstract/instances/browser.py +76 -0
  74. osn_selenium/abstract/instances/browsing_context.py +310 -0
  75. osn_selenium/abstract/instances/dialog.py +107 -0
  76. osn_selenium/abstract/instances/fedcm.py +133 -0
  77. osn_selenium/abstract/instances/mobile.py +79 -0
  78. osn_selenium/abstract/instances/network.py +100 -0
  79. osn_selenium/abstract/instances/permissions.py +52 -0
  80. osn_selenium/abstract/instances/script.py +109 -0
  81. osn_selenium/abstract/instances/shadow_root.py +81 -0
  82. osn_selenium/abstract/instances/storage.py +98 -0
  83. osn_selenium/abstract/instances/switch_to.py +104 -0
  84. osn_selenium/abstract/instances/web_driver_wait.py +57 -0
  85. osn_selenium/abstract/instances/web_element.py +395 -0
  86. osn_selenium/abstract/instances/web_extension.py +70 -0
  87. osn_selenium/abstract/webdriver/blink/__init__.py +18 -0
  88. osn_selenium/abstract/webdriver/blink/base.py +80 -0
  89. osn_selenium/abstract/webdriver/blink/casting.py +82 -0
  90. osn_selenium/abstract/webdriver/blink/features.py +51 -0
  91. osn_selenium/abstract/webdriver/blink/lifecycle.py +76 -0
  92. osn_selenium/abstract/webdriver/blink/logging.py +40 -0
  93. osn_selenium/abstract/webdriver/blink/network.py +45 -0
  94. osn_selenium/abstract/webdriver/blink/settings.py +68 -0
  95. osn_selenium/abstract/webdriver/chrome/__init__.py +18 -0
  96. osn_selenium/abstract/webdriver/chrome/base.py +36 -0
  97. osn_selenium/abstract/webdriver/chrome/lifecycle.py +92 -0
  98. osn_selenium/abstract/webdriver/chrome/settings.py +110 -0
  99. osn_selenium/abstract/webdriver/core/__init__.py +16 -0
  100. osn_selenium/abstract/webdriver/core/actions.py +58 -0
  101. osn_selenium/abstract/webdriver/core/auth.py +145 -0
  102. osn_selenium/abstract/webdriver/core/base.py +298 -0
  103. osn_selenium/abstract/webdriver/core/capture.py +84 -0
  104. osn_selenium/abstract/webdriver/core/components.py +82 -0
  105. osn_selenium/abstract/webdriver/core/devtools.py +69 -0
  106. osn_selenium/abstract/webdriver/core/element.py +55 -0
  107. osn_selenium/abstract/webdriver/core/file.py +82 -0
  108. osn_selenium/abstract/webdriver/core/lifecycle.py +103 -0
  109. osn_selenium/abstract/webdriver/core/navigation.py +65 -0
  110. osn_selenium/abstract/webdriver/core/script.py +88 -0
  111. osn_selenium/abstract/webdriver/core/settings.py +43 -0
  112. osn_selenium/abstract/webdriver/core/storage.py +81 -0
  113. osn_selenium/abstract/webdriver/core/timeouts.py +101 -0
  114. osn_selenium/abstract/webdriver/core/window.py +237 -0
  115. osn_selenium/abstract/webdriver/edge/__init__.py +18 -0
  116. osn_selenium/abstract/webdriver/edge/base.py +36 -0
  117. osn_selenium/abstract/webdriver/edge/lifecycle.py +92 -0
  118. osn_selenium/abstract/webdriver/edge/settings.py +110 -0
  119. osn_selenium/abstract/webdriver/yandex/__init__.py +18 -0
  120. osn_selenium/abstract/webdriver/yandex/base.py +18 -0
  121. osn_selenium/abstract/webdriver/yandex/lifecycle.py +92 -0
  122. osn_selenium/abstract/webdriver/yandex/settings.py +110 -0
  123. osn_selenium/base_mixin.py +122 -0
  124. osn_selenium/browsers_handler/__init__.py +47 -17
  125. osn_selenium/browsers_handler/_linux.py +226 -0
  126. osn_selenium/browsers_handler/_windows.py +21 -14
  127. osn_selenium/browsers_handler/{types.py → models.py} +5 -2
  128. osn_selenium/dev_tools/_decorators.py +149 -0
  129. osn_selenium/dev_tools/_exception_helpers.py +116 -0
  130. osn_selenium/dev_tools/_functions.py +174 -0
  131. osn_selenium/dev_tools/_system_utils.py +35 -0
  132. osn_selenium/dev_tools/_typehints.py +35 -0
  133. osn_selenium/dev_tools/_validators.py +227 -0
  134. osn_selenium/dev_tools/_wrappers.py +92 -0
  135. osn_selenium/dev_tools/domains/__init__.py +7 -40
  136. osn_selenium/dev_tools/domains/abstract.py +98 -254
  137. osn_selenium/dev_tools/domains/fetch.py +229 -906
  138. osn_selenium/dev_tools/domains_default/fetch.py +40 -28
  139. osn_selenium/dev_tools/filters.py +40 -0
  140. osn_selenium/dev_tools/logger/main.py +214 -0
  141. osn_selenium/dev_tools/logger/models.py +232 -0
  142. osn_selenium/dev_tools/logger/target.py +278 -0
  143. osn_selenium/dev_tools/manager/__init__.py +16 -0
  144. osn_selenium/dev_tools/manager/base.py +124 -0
  145. osn_selenium/dev_tools/manager/lifecycle.py +236 -0
  146. osn_selenium/dev_tools/manager/logging.py +153 -0
  147. osn_selenium/dev_tools/manager/settings.py +89 -0
  148. osn_selenium/dev_tools/manager/targets.py +175 -0
  149. osn_selenium/dev_tools/models.py +49 -0
  150. osn_selenium/dev_tools/settings.py +139 -0
  151. osn_selenium/dev_tools/target/__init__.py +16 -0
  152. osn_selenium/dev_tools/target/base.py +427 -0
  153. osn_selenium/dev_tools/target/detach.py +54 -0
  154. osn_selenium/dev_tools/target/discovery.py +112 -0
  155. osn_selenium/dev_tools/target/events.py +120 -0
  156. osn_selenium/dev_tools/target/fingerprint.py +126 -0
  157. osn_selenium/dev_tools/target/lifecycle.py +184 -0
  158. osn_selenium/dev_tools/target/logging.py +163 -0
  159. osn_selenium/exceptions/__init__.py +1 -0
  160. osn_selenium/exceptions/base.py +9 -0
  161. osn_selenium/exceptions/configuration.py +84 -0
  162. osn_selenium/exceptions/dependencies.py +60 -0
  163. osn_selenium/exceptions/devtools.py +114 -0
  164. osn_selenium/exceptions/flags.py +45 -0
  165. osn_selenium/exceptions/instance.py +92 -0
  166. osn_selenium/exceptions/javascript.py +31 -0
  167. osn_selenium/exceptions/logic.py +31 -0
  168. osn_selenium/exceptions/path.py +77 -0
  169. osn_selenium/exceptions/platform.py +33 -0
  170. osn_selenium/exceptions/protocol.py +86 -0
  171. osn_selenium/exceptions/webdriver.py +44 -0
  172. osn_selenium/exceptions/window.py +63 -0
  173. osn_selenium/executors/__init__.py +1 -0
  174. osn_selenium/executors/sync/__init__.py +1 -0
  175. osn_selenium/executors/sync/cdp/__init__.py +550 -0
  176. osn_selenium/executors/sync/cdp/accessibility.py +74 -0
  177. osn_selenium/executors/sync/cdp/animation.py +50 -0
  178. osn_selenium/executors/sync/cdp/audits.py +48 -0
  179. osn_selenium/executors/sync/cdp/autofill.py +39 -0
  180. osn_selenium/executors/sync/cdp/background_service.py +30 -0
  181. osn_selenium/executors/sync/cdp/bluetooth_emulation.py +101 -0
  182. osn_selenium/executors/sync/cdp/browser.py +131 -0
  183. osn_selenium/executors/sync/cdp/cache_storage.py +66 -0
  184. osn_selenium/executors/sync/cdp/cast.py +38 -0
  185. osn_selenium/executors/sync/cdp/console.py +24 -0
  186. osn_selenium/executors/sync/cdp/css.py +187 -0
  187. osn_selenium/executors/sync/cdp/debugger.py +206 -0
  188. osn_selenium/executors/sync/cdp/device_access.py +27 -0
  189. osn_selenium/executors/sync/cdp/device_orientation.py +24 -0
  190. osn_selenium/executors/sync/cdp/dom.py +310 -0
  191. osn_selenium/executors/sync/cdp/dom_debugger.py +56 -0
  192. osn_selenium/executors/sync/cdp/dom_snapshot.py +58 -0
  193. osn_selenium/executors/sync/cdp/dom_storage.py +38 -0
  194. osn_selenium/executors/sync/cdp/emulation.py +270 -0
  195. osn_selenium/executors/sync/cdp/event_breakpoints.py +27 -0
  196. osn_selenium/executors/sync/cdp/extensions.py +39 -0
  197. osn_selenium/executors/sync/cdp/fed_cm.py +45 -0
  198. osn_selenium/executors/sync/cdp/fetch.py +96 -0
  199. osn_selenium/executors/sync/cdp/file_system.py +18 -0
  200. osn_selenium/executors/sync/cdp/headless_experimental.py +44 -0
  201. osn_selenium/executors/sync/cdp/heap_profiler.py +89 -0
  202. osn_selenium/executors/sync/cdp/indexed_db.py +142 -0
  203. osn_selenium/executors/sync/cdp/input.py +233 -0
  204. osn_selenium/executors/sync/cdp/inspector.py +21 -0
  205. osn_selenium/executors/sync/cdp/io.py +33 -0
  206. osn_selenium/executors/sync/cdp/layer_tree.py +71 -0
  207. osn_selenium/executors/sync/cdp/log.py +35 -0
  208. osn_selenium/executors/sync/cdp/media.py +21 -0
  209. osn_selenium/executors/sync/cdp/memory.py +62 -0
  210. osn_selenium/executors/sync/cdp/network.py +287 -0
  211. osn_selenium/executors/sync/cdp/overlay.py +174 -0
  212. osn_selenium/executors/sync/cdp/page.py +365 -0
  213. osn_selenium/executors/sync/cdp/performance.py +33 -0
  214. osn_selenium/executors/sync/cdp/performance_timeline.py +26 -0
  215. osn_selenium/executors/sync/cdp/preload.py +21 -0
  216. osn_selenium/executors/sync/cdp/profiler.py +58 -0
  217. osn_selenium/executors/sync/cdp/pwa.py +55 -0
  218. osn_selenium/executors/sync/cdp/runtime.py +221 -0
  219. osn_selenium/executors/sync/cdp/schema.py +23 -0
  220. osn_selenium/executors/sync/cdp/security.py +30 -0
  221. osn_selenium/executors/sync/cdp/service_worker.py +56 -0
  222. osn_selenium/executors/sync/cdp/storage.py +151 -0
  223. osn_selenium/executors/sync/cdp/system_info.py +30 -0
  224. osn_selenium/executors/sync/cdp/target.py +147 -0
  225. osn_selenium/executors/sync/cdp/tethering.py +21 -0
  226. osn_selenium/executors/sync/cdp/tracing.py +62 -0
  227. osn_selenium/executors/sync/cdp/web_audio.py +24 -0
  228. osn_selenium/executors/sync/cdp/web_authn.py +82 -0
  229. osn_selenium/executors/sync/cdp.py +100 -0
  230. osn_selenium/executors/sync/javascript.py +79 -0
  231. osn_selenium/executors/trio_threads/__init__.py +1 -0
  232. osn_selenium/executors/trio_threads/cdp/__init__.py +771 -0
  233. osn_selenium/executors/trio_threads/cdp/accessibility.py +87 -0
  234. osn_selenium/executors/trio_threads/cdp/animation.py +63 -0
  235. osn_selenium/executors/trio_threads/cdp/audits.py +57 -0
  236. osn_selenium/executors/trio_threads/cdp/autofill.py +52 -0
  237. osn_selenium/executors/trio_threads/cdp/background_service.py +40 -0
  238. osn_selenium/executors/trio_threads/cdp/bluetooth_emulation.py +111 -0
  239. osn_selenium/executors/trio_threads/cdp/browser.py +140 -0
  240. osn_selenium/executors/trio_threads/cdp/cache_storage.py +79 -0
  241. osn_selenium/executors/trio_threads/cdp/cast.py +47 -0
  242. osn_selenium/executors/trio_threads/cdp/console.py +33 -0
  243. osn_selenium/executors/trio_threads/cdp/css.py +196 -0
  244. osn_selenium/executors/trio_threads/cdp/debugger.py +219 -0
  245. osn_selenium/executors/trio_threads/cdp/device_access.py +40 -0
  246. osn_selenium/executors/trio_threads/cdp/device_orientation.py +34 -0
  247. osn_selenium/executors/trio_threads/cdp/dom.py +319 -0
  248. osn_selenium/executors/trio_threads/cdp/dom_debugger.py +69 -0
  249. osn_selenium/executors/trio_threads/cdp/dom_snapshot.py +71 -0
  250. osn_selenium/executors/trio_threads/cdp/dom_storage.py +51 -0
  251. osn_selenium/executors/trio_threads/cdp/emulation.py +283 -0
  252. osn_selenium/executors/trio_threads/cdp/event_breakpoints.py +37 -0
  253. osn_selenium/executors/trio_threads/cdp/extensions.py +52 -0
  254. osn_selenium/executors/trio_threads/cdp/fed_cm.py +54 -0
  255. osn_selenium/executors/trio_threads/cdp/fetch.py +105 -0
  256. osn_selenium/executors/trio_threads/cdp/file_system.py +31 -0
  257. osn_selenium/executors/trio_threads/cdp/headless_experimental.py +54 -0
  258. osn_selenium/executors/trio_threads/cdp/heap_profiler.py +102 -0
  259. osn_selenium/executors/trio_threads/cdp/indexed_db.py +155 -0
  260. osn_selenium/executors/trio_threads/cdp/input.py +242 -0
  261. osn_selenium/executors/trio_threads/cdp/inspector.py +34 -0
  262. osn_selenium/executors/trio_threads/cdp/io.py +42 -0
  263. osn_selenium/executors/trio_threads/cdp/layer_tree.py +84 -0
  264. osn_selenium/executors/trio_threads/cdp/log.py +44 -0
  265. osn_selenium/executors/trio_threads/cdp/media.py +30 -0
  266. osn_selenium/executors/trio_threads/cdp/memory.py +71 -0
  267. osn_selenium/executors/trio_threads/cdp/network.py +296 -0
  268. osn_selenium/executors/trio_threads/cdp/overlay.py +183 -0
  269. osn_selenium/executors/trio_threads/cdp/page.py +374 -0
  270. osn_selenium/executors/trio_threads/cdp/performance.py +46 -0
  271. osn_selenium/executors/trio_threads/cdp/performance_timeline.py +36 -0
  272. osn_selenium/executors/trio_threads/cdp/preload.py +30 -0
  273. osn_selenium/executors/trio_threads/cdp/profiler.py +71 -0
  274. osn_selenium/executors/trio_threads/cdp/pwa.py +64 -0
  275. osn_selenium/executors/trio_threads/cdp/runtime.py +230 -0
  276. osn_selenium/executors/trio_threads/cdp/schema.py +32 -0
  277. osn_selenium/executors/trio_threads/cdp/security.py +43 -0
  278. osn_selenium/executors/trio_threads/cdp/service_worker.py +69 -0
  279. osn_selenium/executors/trio_threads/cdp/storage.py +162 -0
  280. osn_selenium/executors/trio_threads/cdp/system_info.py +43 -0
  281. osn_selenium/executors/trio_threads/cdp/target.py +156 -0
  282. osn_selenium/executors/trio_threads/cdp/tethering.py +34 -0
  283. osn_selenium/executors/trio_threads/cdp/tracing.py +71 -0
  284. osn_selenium/executors/trio_threads/cdp/web_audio.py +37 -0
  285. osn_selenium/executors/trio_threads/cdp/web_authn.py +95 -0
  286. osn_selenium/executors/trio_threads/cdp.py +104 -0
  287. osn_selenium/executors/trio_threads/javascript.py +90 -0
  288. osn_selenium/executors/unified/__init__.py +1 -0
  289. osn_selenium/executors/unified/cdp/__init__.py +1 -0
  290. osn_selenium/executors/unified/cdp/accessibility.py +81 -0
  291. osn_selenium/executors/unified/cdp/animation.py +50 -0
  292. osn_selenium/executors/unified/cdp/audits.py +45 -0
  293. osn_selenium/executors/unified/cdp/autofill.py +41 -0
  294. osn_selenium/executors/unified/cdp/background_service.py +24 -0
  295. osn_selenium/executors/unified/cdp/bluetooth_emulation.py +132 -0
  296. osn_selenium/executors/unified/cdp/browser.py +143 -0
  297. osn_selenium/executors/unified/cdp/cache_storage.py +69 -0
  298. osn_selenium/executors/unified/cdp/cast.py +32 -0
  299. osn_selenium/executors/unified/cdp/console.py +18 -0
  300. osn_selenium/executors/unified/cdp/css.py +237 -0
  301. osn_selenium/executors/unified/cdp/debugger.py +243 -0
  302. osn_selenium/executors/unified/cdp/device_access.py +21 -0
  303. osn_selenium/executors/unified/cdp/device_orientation.py +18 -0
  304. osn_selenium/executors/unified/cdp/dom.py +380 -0
  305. osn_selenium/executors/unified/cdp/dom_debugger.py +65 -0
  306. osn_selenium/executors/unified/cdp/dom_snapshot.py +58 -0
  307. osn_selenium/executors/unified/cdp/dom_storage.py +38 -0
  308. osn_selenium/executors/unified/cdp/emulation.py +312 -0
  309. osn_selenium/executors/unified/cdp/event_breakpoints.py +24 -0
  310. osn_selenium/executors/unified/cdp/extensions.py +45 -0
  311. osn_selenium/executors/unified/cdp/fed_cm.py +51 -0
  312. osn_selenium/executors/unified/cdp/fetch.py +111 -0
  313. osn_selenium/executors/unified/cdp/file_system.py +15 -0
  314. osn_selenium/executors/unified/cdp/headless_experimental.py +38 -0
  315. osn_selenium/executors/unified/cdp/heap_profiler.py +101 -0
  316. osn_selenium/executors/unified/cdp/indexed_db.py +157 -0
  317. osn_selenium/executors/unified/cdp/input.py +254 -0
  318. osn_selenium/executors/unified/cdp/inspector.py +15 -0
  319. osn_selenium/executors/unified/cdp/io.py +29 -0
  320. osn_selenium/executors/unified/cdp/layer_tree.py +71 -0
  321. osn_selenium/executors/unified/cdp/log.py +29 -0
  322. osn_selenium/executors/unified/cdp/media.py +15 -0
  323. osn_selenium/executors/unified/cdp/memory.py +59 -0
  324. osn_selenium/executors/unified/cdp/network.py +323 -0
  325. osn_selenium/executors/unified/cdp/overlay.py +209 -0
  326. osn_selenium/executors/unified/cdp/page.py +410 -0
  327. osn_selenium/executors/unified/cdp/performance.py +27 -0
  328. osn_selenium/executors/unified/cdp/performance_timeline.py +17 -0
  329. osn_selenium/executors/unified/cdp/preload.py +15 -0
  330. osn_selenium/executors/unified/cdp/profiler.py +55 -0
  331. osn_selenium/executors/unified/cdp/pwa.py +55 -0
  332. osn_selenium/executors/unified/cdp/runtime.py +245 -0
  333. osn_selenium/executors/unified/cdp/schema.py +17 -0
  334. osn_selenium/executors/unified/cdp/security.py +27 -0
  335. osn_selenium/executors/unified/cdp/service_worker.py +62 -0
  336. osn_selenium/executors/unified/cdp/storage.py +178 -0
  337. osn_selenium/executors/unified/cdp/system_info.py +24 -0
  338. osn_selenium/executors/unified/cdp/target.py +165 -0
  339. osn_selenium/executors/unified/cdp/tethering.py +15 -0
  340. osn_selenium/executors/unified/cdp/tracing.py +62 -0
  341. osn_selenium/executors/unified/cdp/web_audio.py +18 -0
  342. osn_selenium/executors/unified/cdp/web_authn.py +103 -0
  343. osn_selenium/executors/unified/javascript.py +104 -0
  344. osn_selenium/flags/__init__.py +1 -0
  345. osn_selenium/flags/_functions.py +45 -0
  346. osn_selenium/flags/_typehints.py +34 -0
  347. osn_selenium/flags/_validators.py +101 -0
  348. osn_selenium/{webdrivers/BaseDriver/flags.py → flags/base.py} +159 -245
  349. osn_selenium/{webdrivers/Blink/flags.py → flags/blink.py} +130 -374
  350. osn_selenium/flags/chrome.py +259 -0
  351. osn_selenium/flags/edge.py +259 -0
  352. osn_selenium/flags/models/__init__.py +1 -0
  353. osn_selenium/flags/models/base.py +130 -0
  354. osn_selenium/flags/models/blink.py +263 -0
  355. osn_selenium/{webdrivers/Chrome/flags.py → flags/models/chrome.py} +25 -75
  356. osn_selenium/{webdrivers/Edge/flags.py → flags/models/edge.py} +25 -75
  357. osn_selenium/flags/models/values.py +44 -0
  358. osn_selenium/{webdrivers/Yandex/flags.py → flags/models/yandex.py} +26 -76
  359. osn_selenium/flags/yandex.py +259 -0
  360. osn_selenium/instances/__init__.py +1 -0
  361. osn_selenium/instances/_functions.py +242 -0
  362. osn_selenium/instances/_typehints.py +148 -0
  363. osn_selenium/instances/_utils.py +143 -0
  364. osn_selenium/instances/convert.py +287 -0
  365. osn_selenium/instances/protocols.py +105 -0
  366. osn_selenium/instances/sync/__init__.py +1 -0
  367. osn_selenium/instances/sync/action_chains/__init__.py +32 -0
  368. osn_selenium/instances/sync/action_chains/base.py +74 -0
  369. osn_selenium/instances/sync/action_chains/click.py +61 -0
  370. osn_selenium/instances/sync/action_chains/drag_and_drop.py +45 -0
  371. osn_selenium/instances/sync/action_chains/hm_keyboard.py +37 -0
  372. osn_selenium/instances/sync/action_chains/hm_move.py +81 -0
  373. osn_selenium/instances/sync/action_chains/hm_scroll.py +60 -0
  374. osn_selenium/instances/sync/action_chains/keyboard.py +55 -0
  375. osn_selenium/instances/sync/action_chains/move.py +46 -0
  376. osn_selenium/instances/sync/action_chains/scroll.py +43 -0
  377. osn_selenium/instances/sync/action_chains/utils.py +30 -0
  378. osn_selenium/instances/sync/alert.py +69 -0
  379. osn_selenium/instances/sync/browser.py +72 -0
  380. osn_selenium/instances/sync/browsing_context.py +193 -0
  381. osn_selenium/instances/sync/dialog.py +81 -0
  382. osn_selenium/instances/sync/fedcm.py +92 -0
  383. osn_selenium/instances/sync/mobile.py +75 -0
  384. osn_selenium/instances/sync/network.py +90 -0
  385. osn_selenium/instances/sync/permissions.py +80 -0
  386. osn_selenium/instances/sync/script.py +77 -0
  387. osn_selenium/instances/sync/shadow_root.py +113 -0
  388. osn_selenium/instances/sync/storage.py +91 -0
  389. osn_selenium/instances/sync/switch_to.py +92 -0
  390. osn_selenium/instances/sync/web_driver_wait.py +83 -0
  391. osn_selenium/instances/sync/web_element.py +179 -0
  392. osn_selenium/instances/sync/web_extension.py +77 -0
  393. osn_selenium/instances/trio_threads/__init__.py +1 -0
  394. osn_selenium/instances/trio_threads/action_chains/__init__.py +32 -0
  395. osn_selenium/instances/trio_threads/action_chains/base.py +88 -0
  396. osn_selenium/instances/trio_threads/action_chains/click.py +71 -0
  397. osn_selenium/instances/trio_threads/action_chains/drag_and_drop.py +49 -0
  398. osn_selenium/instances/trio_threads/action_chains/hm_keyboard.py +41 -0
  399. osn_selenium/instances/trio_threads/action_chains/hm_move.py +91 -0
  400. osn_selenium/instances/trio_threads/action_chains/hm_scroll.py +66 -0
  401. osn_selenium/instances/trio_threads/action_chains/keyboard.py +63 -0
  402. osn_selenium/instances/trio_threads/action_chains/move.py +52 -0
  403. osn_selenium/instances/trio_threads/action_chains/scroll.py +49 -0
  404. osn_selenium/instances/trio_threads/action_chains/utils.py +32 -0
  405. osn_selenium/instances/trio_threads/alert.py +87 -0
  406. osn_selenium/instances/trio_threads/browser.py +90 -0
  407. osn_selenium/instances/trio_threads/browsing_context.py +216 -0
  408. osn_selenium/instances/trio_threads/dialog.py +99 -0
  409. osn_selenium/instances/trio_threads/fedcm.py +110 -0
  410. osn_selenium/instances/trio_threads/mobile.py +93 -0
  411. osn_selenium/instances/trio_threads/network.py +108 -0
  412. osn_selenium/instances/trio_threads/permissions.py +102 -0
  413. osn_selenium/instances/trio_threads/script.py +95 -0
  414. osn_selenium/instances/trio_threads/shadow_root.py +154 -0
  415. osn_selenium/instances/trio_threads/storage.py +109 -0
  416. osn_selenium/instances/trio_threads/switch_to.py +124 -0
  417. osn_selenium/instances/trio_threads/web_driver_wait.py +101 -0
  418. osn_selenium/instances/trio_threads/web_element.py +217 -0
  419. osn_selenium/instances/trio_threads/web_extension.py +99 -0
  420. osn_selenium/instances/unified/__init__.py +1 -0
  421. osn_selenium/instances/unified/action_chains/__init__.py +22 -0
  422. osn_selenium/instances/unified/action_chains/base.py +31 -0
  423. osn_selenium/instances/unified/action_chains/click.py +27 -0
  424. osn_selenium/instances/unified/action_chains/drag_and_drop.py +24 -0
  425. osn_selenium/instances/unified/action_chains/hm_keyboard.py +30 -0
  426. osn_selenium/instances/unified/action_chains/hm_move.py +66 -0
  427. osn_selenium/instances/unified/action_chains/hm_scroll.py +79 -0
  428. osn_selenium/instances/unified/action_chains/keyboard.py +24 -0
  429. osn_selenium/instances/unified/action_chains/move.py +24 -0
  430. osn_selenium/instances/unified/action_chains/scroll.py +21 -0
  431. osn_selenium/instances/unified/action_chains/utils.py +19 -0
  432. osn_selenium/instances/unified/alert.py +29 -0
  433. osn_selenium/instances/unified/browser.py +33 -0
  434. osn_selenium/instances/unified/browsing_context.py +151 -0
  435. osn_selenium/instances/unified/dialog.py +42 -0
  436. osn_selenium/instances/unified/fedcm.py +48 -0
  437. osn_selenium/instances/unified/mobile.py +36 -0
  438. osn_selenium/instances/unified/network.py +50 -0
  439. osn_selenium/instances/unified/permissions.py +43 -0
  440. osn_selenium/instances/unified/script.py +38 -0
  441. osn_selenium/instances/unified/shadow_root.py +46 -0
  442. osn_selenium/instances/unified/storage.py +48 -0
  443. osn_selenium/instances/unified/switch_to.py +49 -0
  444. osn_selenium/instances/unified/web_driver_wait.py +45 -0
  445. osn_selenium/instances/unified/web_element.py +145 -0
  446. osn_selenium/instances/unified/web_extension.py +38 -0
  447. osn_selenium/javascript/__init__.py +1 -0
  448. osn_selenium/javascript/_functions.py +63 -0
  449. osn_selenium/javascript/fingerprint/__init__.py +120 -0
  450. osn_selenium/javascript/fingerprint/_decorators.py +41 -0
  451. osn_selenium/javascript/fingerprint/_detect/__init__.py +1 -0
  452. osn_selenium/javascript/fingerprint/_detect/functions.py +253 -0
  453. osn_selenium/javascript/fingerprint/_detect/templates.py +128 -0
  454. osn_selenium/javascript/fingerprint/_functions.py +35 -0
  455. osn_selenium/javascript/fingerprint/_typehints.py +27 -0
  456. osn_selenium/javascript/fingerprint/registry/__init__.py +7 -0
  457. osn_selenium/javascript/fingerprint/registry/_core_functions.py +236 -0
  458. osn_selenium/javascript/fingerprint/registry/_functions.py +923 -0
  459. osn_selenium/javascript/fingerprint/registry/_typehints.py +6 -0
  460. osn_selenium/javascript/fingerprint/registry/_utils.py +6 -0
  461. osn_selenium/javascript/fingerprint/registry/models.py +41 -0
  462. osn_selenium/javascript/fingerprint/spoof/__init__.py +1 -0
  463. osn_selenium/javascript/fingerprint/spoof/_functions.py +172 -0
  464. osn_selenium/javascript/fingerprint/spoof/_templates.py +134 -0
  465. osn_selenium/javascript/fingerprint/spoof/_typehints.py +22 -0
  466. osn_selenium/javascript/fingerprint/spoof/core_rules.py +141 -0
  467. osn_selenium/javascript/fingerprint/spoof/noise.py +51 -0
  468. osn_selenium/javascript/fingerprint/spoof/rules.py +313 -0
  469. osn_selenium/javascript/functions.py +44 -0
  470. osn_selenium/javascript/models.py +35 -0
  471. osn_selenium/javascript/scripts/start_fingerprint_detection.js +56 -0
  472. osn_selenium/models.py +94 -0
  473. osn_selenium/trio_threads_mixin.py +159 -0
  474. osn_selenium/webdrivers/_args_helpers.py +181 -0
  475. osn_selenium/webdrivers/_bridges.py +57 -0
  476. osn_selenium/webdrivers/_decorators.py +83 -0
  477. osn_selenium/webdrivers/_executable_tables/__init__.py +1 -0
  478. osn_selenium/webdrivers/_executable_tables/functions.py +113 -0
  479. osn_selenium/webdrivers/_executable_tables/models.py +19 -0
  480. osn_selenium/webdrivers/_typehints.py +10 -0
  481. osn_selenium/webdrivers/protocols.py +50 -0
  482. osn_selenium/webdrivers/sync/__init__.py +1 -0
  483. osn_selenium/webdrivers/sync/blink/__init__.py +124 -0
  484. osn_selenium/webdrivers/sync/blink/base.py +140 -0
  485. osn_selenium/webdrivers/sync/blink/casting.py +34 -0
  486. osn_selenium/webdrivers/sync/blink/features.py +28 -0
  487. osn_selenium/webdrivers/sync/blink/lifecycle.py +66 -0
  488. osn_selenium/webdrivers/sync/blink/logging.py +25 -0
  489. osn_selenium/webdrivers/sync/blink/network.py +28 -0
  490. osn_selenium/webdrivers/sync/blink/settings.py +63 -0
  491. osn_selenium/webdrivers/sync/chrome/__init__.py +102 -0
  492. osn_selenium/webdrivers/sync/chrome/base.py +118 -0
  493. osn_selenium/webdrivers/sync/chrome/lifecycle.py +63 -0
  494. osn_selenium/webdrivers/sync/chrome/settings.py +58 -0
  495. osn_selenium/webdrivers/sync/core/__init__.py +100 -0
  496. osn_selenium/webdrivers/sync/core/actions.py +59 -0
  497. osn_selenium/webdrivers/sync/core/auth.py +77 -0
  498. osn_selenium/webdrivers/sync/core/base.py +175 -0
  499. osn_selenium/webdrivers/sync/core/capture.py +37 -0
  500. osn_selenium/webdrivers/sync/core/comonents.py +57 -0
  501. osn_selenium/webdrivers/sync/core/devtools.py +47 -0
  502. osn_selenium/webdrivers/sync/core/element.py +42 -0
  503. osn_selenium/webdrivers/sync/core/file.py +40 -0
  504. osn_selenium/webdrivers/sync/core/lifecycle.py +59 -0
  505. osn_selenium/webdrivers/sync/core/navigation.py +36 -0
  506. osn_selenium/webdrivers/sync/core/script.py +53 -0
  507. osn_selenium/webdrivers/sync/core/settings.py +35 -0
  508. osn_selenium/webdrivers/sync/core/storage.py +48 -0
  509. osn_selenium/webdrivers/sync/core/timeouts.py +59 -0
  510. osn_selenium/webdrivers/sync/core/window.py +99 -0
  511. osn_selenium/webdrivers/sync/edge/__init__.py +102 -0
  512. osn_selenium/webdrivers/sync/edge/base.py +114 -0
  513. osn_selenium/webdrivers/sync/edge/lifecycle.py +63 -0
  514. osn_selenium/webdrivers/sync/edge/settings.py +58 -0
  515. osn_selenium/webdrivers/sync/yandex/__init__.py +102 -0
  516. osn_selenium/webdrivers/sync/yandex/base.py +111 -0
  517. osn_selenium/webdrivers/sync/yandex/lifecycle.py +63 -0
  518. osn_selenium/webdrivers/sync/yandex/settings.py +58 -0
  519. osn_selenium/webdrivers/trio_threads/__init__.py +1 -0
  520. osn_selenium/webdrivers/trio_threads/blink/__init__.py +134 -0
  521. osn_selenium/webdrivers/trio_threads/blink/base.py +143 -0
  522. osn_selenium/webdrivers/trio_threads/blink/casting.py +35 -0
  523. osn_selenium/webdrivers/trio_threads/blink/features.py +29 -0
  524. osn_selenium/webdrivers/trio_threads/blink/lifecycle.py +66 -0
  525. osn_selenium/webdrivers/trio_threads/blink/logging.py +26 -0
  526. osn_selenium/webdrivers/trio_threads/blink/network.py +29 -0
  527. osn_selenium/webdrivers/trio_threads/blink/settings.py +63 -0
  528. osn_selenium/webdrivers/trio_threads/chrome/__init__.py +114 -0
  529. osn_selenium/webdrivers/trio_threads/chrome/base.py +119 -0
  530. osn_selenium/webdrivers/trio_threads/chrome/lifecycle.py +63 -0
  531. osn_selenium/webdrivers/trio_threads/chrome/settings.py +63 -0
  532. osn_selenium/webdrivers/trio_threads/core/__init__.py +115 -0
  533. osn_selenium/webdrivers/trio_threads/core/actions.py +72 -0
  534. osn_selenium/webdrivers/trio_threads/core/auth.py +88 -0
  535. osn_selenium/webdrivers/trio_threads/core/base.py +199 -0
  536. osn_selenium/webdrivers/trio_threads/core/capture.py +38 -0
  537. osn_selenium/webdrivers/trio_threads/core/comonents.py +92 -0
  538. osn_selenium/webdrivers/trio_threads/core/devtools.py +53 -0
  539. osn_selenium/webdrivers/trio_threads/core/element.py +58 -0
  540. osn_selenium/webdrivers/trio_threads/core/file.py +45 -0
  541. osn_selenium/webdrivers/trio_threads/core/lifecycle.py +60 -0
  542. osn_selenium/webdrivers/trio_threads/core/navigation.py +41 -0
  543. osn_selenium/webdrivers/trio_threads/core/script.py +59 -0
  544. osn_selenium/webdrivers/trio_threads/core/settings.py +36 -0
  545. osn_selenium/webdrivers/trio_threads/core/storage.py +54 -0
  546. osn_selenium/webdrivers/trio_threads/core/timeouts.py +60 -0
  547. osn_selenium/webdrivers/trio_threads/core/window.py +105 -0
  548. osn_selenium/webdrivers/trio_threads/edge/__init__.py +114 -0
  549. osn_selenium/webdrivers/trio_threads/edge/base.py +115 -0
  550. osn_selenium/webdrivers/trio_threads/edge/lifecycle.py +63 -0
  551. osn_selenium/webdrivers/trio_threads/edge/settings.py +63 -0
  552. osn_selenium/webdrivers/trio_threads/yandex/__init__.py +114 -0
  553. osn_selenium/webdrivers/trio_threads/yandex/base.py +112 -0
  554. osn_selenium/webdrivers/trio_threads/yandex/lifecycle.py +63 -0
  555. osn_selenium/webdrivers/trio_threads/yandex/settings.py +63 -0
  556. osn_selenium/webdrivers/unified/__init__.py +1 -0
  557. osn_selenium/webdrivers/unified/blink/__init__.py +1 -0
  558. osn_selenium/webdrivers/unified/blink/base.py +135 -0
  559. osn_selenium/webdrivers/unified/blink/casting.py +30 -0
  560. osn_selenium/webdrivers/unified/blink/features.py +22 -0
  561. osn_selenium/webdrivers/unified/blink/lifecycle.py +114 -0
  562. osn_selenium/webdrivers/unified/blink/logging.py +18 -0
  563. osn_selenium/webdrivers/unified/blink/network.py +22 -0
  564. osn_selenium/webdrivers/unified/blink/settings.py +86 -0
  565. osn_selenium/webdrivers/unified/chrome/__init__.py +1 -0
  566. osn_selenium/webdrivers/unified/chrome/base.py +58 -0
  567. osn_selenium/webdrivers/unified/chrome/lifecycle.py +88 -0
  568. osn_selenium/webdrivers/unified/chrome/settings.py +48 -0
  569. osn_selenium/webdrivers/unified/core/__init__.py +1 -0
  570. osn_selenium/webdrivers/unified/core/actions.py +43 -0
  571. osn_selenium/webdrivers/unified/core/auth.py +70 -0
  572. osn_selenium/webdrivers/unified/core/base.py +139 -0
  573. osn_selenium/webdrivers/unified/core/capture.py +32 -0
  574. osn_selenium/webdrivers/unified/core/components.py +32 -0
  575. osn_selenium/webdrivers/unified/core/devtools.py +35 -0
  576. osn_selenium/webdrivers/unified/core/element.py +24 -0
  577. osn_selenium/webdrivers/unified/core/file.py +35 -0
  578. osn_selenium/webdrivers/unified/core/lifecycle.py +84 -0
  579. osn_selenium/webdrivers/unified/core/navigation.py +31 -0
  580. osn_selenium/webdrivers/unified/core/script.py +32 -0
  581. osn_selenium/webdrivers/unified/core/settings.py +44 -0
  582. osn_selenium/webdrivers/unified/core/storage.py +37 -0
  583. osn_selenium/webdrivers/unified/core/timeouts.py +56 -0
  584. osn_selenium/webdrivers/unified/core/window.py +135 -0
  585. osn_selenium/webdrivers/unified/edge/__init__.py +1 -0
  586. osn_selenium/webdrivers/unified/edge/base.py +56 -0
  587. osn_selenium/webdrivers/unified/edge/lifecycle.py +88 -0
  588. osn_selenium/webdrivers/unified/edge/settings.py +48 -0
  589. osn_selenium/webdrivers/unified/yandex/__init__.py +1 -0
  590. osn_selenium/webdrivers/unified/yandex/base.py +58 -0
  591. osn_selenium/webdrivers/unified/yandex/lifecycle.py +58 -0
  592. osn_selenium/webdrivers/unified/yandex/settings.py +48 -0
  593. osn_selenium-1.1.0.dist-info/METADATA +252 -0
  594. osn_selenium-1.1.0.dist-info/RECORD +615 -0
  595. {osn_selenium-0.0.0.dist-info → osn_selenium-1.1.0.dist-info}/WHEEL +1 -1
  596. osn_selenium/captcha_workers/__init__.py +0 -26
  597. osn_selenium/dev_tools/_types.py +0 -22
  598. osn_selenium/dev_tools/errors.py +0 -89
  599. osn_selenium/dev_tools/logger.py +0 -558
  600. osn_selenium/dev_tools/manager.py +0 -1551
  601. osn_selenium/dev_tools/utils.py +0 -509
  602. osn_selenium/errors.py +0 -16
  603. osn_selenium/types.py +0 -118
  604. osn_selenium/webdrivers/BaseDriver/_utils.py +0 -37
  605. osn_selenium/webdrivers/BaseDriver/protocols.py +0 -2135
  606. osn_selenium/webdrivers/BaseDriver/trio_wrapper.py +0 -71
  607. osn_selenium/webdrivers/BaseDriver/webdriver.py +0 -2626
  608. osn_selenium/webdrivers/Blink/protocols.py +0 -330
  609. osn_selenium/webdrivers/Blink/webdriver.py +0 -637
  610. osn_selenium/webdrivers/Chrome/protocols.py +0 -228
  611. osn_selenium/webdrivers/Chrome/webdriver.py +0 -394
  612. osn_selenium/webdrivers/Edge/protocols.py +0 -228
  613. osn_selenium/webdrivers/Edge/webdriver.py +0 -394
  614. osn_selenium/webdrivers/Yandex/protocols.py +0 -211
  615. osn_selenium/webdrivers/Yandex/webdriver.py +0 -350
  616. osn_selenium/webdrivers/_functions.py +0 -504
  617. osn_selenium/webdrivers/types.py +0 -390
  618. osn_selenium-0.0.0.dist-info/METADATA +0 -710
  619. osn_selenium-0.0.0.dist-info/RECORD +0 -57
  620. /osn_selenium/{webdrivers/BaseDriver → abstract}/__init__.py +0 -0
  621. /osn_selenium/{webdrivers/Blink → abstract/executors}/__init__.py +0 -0
  622. /osn_selenium/{webdrivers/Chrome → abstract/instances}/__init__.py +0 -0
  623. /osn_selenium/{webdrivers/Edge → abstract/webdriver}/__init__.py +0 -0
  624. /osn_selenium/{webdrivers/Yandex → dev_tools/logger}/__init__.py +0 -0
  625. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/check_element_in_viewport.js +0 -0
  626. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_document_scroll_size.js +0 -0
  627. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_css.js +0 -0
  628. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_rect_in_viewport.js +0 -0
  629. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_random_element_point_in_viewport.js +0 -0
  630. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_position.js +0 -0
  631. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_rect.js +0 -0
  632. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_size.js +0 -0
  633. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/open_new_tab.js +0 -0
  634. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/stop_window_loading.js +0 -0
  635. {osn_selenium-0.0.0.dist-info → osn_selenium-1.1.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,374 @@
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.page import (
12
+ UnifiedPageCDPExecutor
13
+ )
14
+ from osn_selenium.abstract.executors.cdp.page import (
15
+ AbstractPageCDPExecutor
16
+ )
17
+
18
+
19
+ __all__ = ["PageCDPExecutor"]
20
+
21
+
22
+ class PageCDPExecutor(UnifiedPageCDPExecutor, TrioThreadMixin, AbstractPageCDPExecutor):
23
+ def __init__(
24
+ self,
25
+ execute_function: Callable[[str, Dict[str, Any]], Any],
26
+ lock: trio.Lock,
27
+ limiter: trio.CapacityLimiter
28
+ ):
29
+ UnifiedPageCDPExecutor.__init__(self, execute_function=execute_function)
30
+
31
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
32
+
33
+ async def add_compilation_cache(self, url: str, data: str) -> None:
34
+ return await self.sync_to_trio(sync_function=self._add_compilation_cache_impl)(url=url, data=data)
35
+
36
+ async def add_script_to_evaluate_on_load(self, script_source: str) -> str:
37
+ return await self.sync_to_trio(sync_function=self._add_script_to_evaluate_on_load_impl)(script_source=script_source)
38
+
39
+ async def add_script_to_evaluate_on_new_document(
40
+ self,
41
+ source: str,
42
+ world_name: Optional[str] = None,
43
+ include_command_line_api: Optional[bool] = None,
44
+ run_immediately: Optional[bool] = None
45
+ ) -> str:
46
+ return await self.sync_to_trio(sync_function=self._add_script_to_evaluate_on_new_document_impl)(
47
+ source=source,
48
+ world_name=world_name,
49
+ include_command_line_api=include_command_line_api,
50
+ run_immediately=run_immediately
51
+ )
52
+
53
+ async def bring_to_front(self) -> None:
54
+ return await self.sync_to_trio(sync_function=self._bring_to_front_impl)()
55
+
56
+ async def capture_screenshot(
57
+ self,
58
+ format_: Optional[str] = None,
59
+ quality: Optional[int] = None,
60
+ clip: Optional[Dict[str, Any]] = None,
61
+ from_surface: Optional[bool] = None,
62
+ capture_beyond_viewport: Optional[bool] = None,
63
+ optimize_for_speed: Optional[bool] = None
64
+ ) -> str:
65
+ return await self.sync_to_trio(sync_function=self._capture_screenshot_impl)(
66
+ format_=format_,
67
+ quality=quality,
68
+ clip=clip,
69
+ from_surface=from_surface,
70
+ capture_beyond_viewport=capture_beyond_viewport,
71
+ optimize_for_speed=optimize_for_speed
72
+ )
73
+
74
+ async def capture_snapshot(self, format_: Optional[str] = None) -> str:
75
+ return await self.sync_to_trio(sync_function=self._capture_snapshot_impl)(format_=format_)
76
+
77
+ async def clear_compilation_cache(self) -> None:
78
+ return await self.sync_to_trio(sync_function=self._clear_compilation_cache_impl)()
79
+
80
+ async def clear_device_metrics_override(self) -> None:
81
+ return await self.sync_to_trio(sync_function=self._clear_device_metrics_override_impl)()
82
+
83
+ async def clear_device_orientation_override(self) -> None:
84
+ return await self.sync_to_trio(sync_function=self._clear_device_orientation_override_impl)()
85
+
86
+ async def clear_geolocation_override(self) -> None:
87
+ return await self.sync_to_trio(sync_function=self._clear_geolocation_override_impl)()
88
+
89
+ async def close(self) -> None:
90
+ return await self.sync_to_trio(sync_function=self._close_impl)()
91
+
92
+ async def crash(self) -> None:
93
+ return await self.sync_to_trio(sync_function=self._crash_impl)()
94
+
95
+ async def create_isolated_world(
96
+ self,
97
+ frame_id: str,
98
+ world_name: Optional[str] = None,
99
+ grant_univeral_access: Optional[bool] = None
100
+ ) -> int:
101
+ return await self.sync_to_trio(sync_function=self._create_isolated_world_impl)(
102
+ frame_id=frame_id,
103
+ world_name=world_name,
104
+ grant_univeral_access=grant_univeral_access
105
+ )
106
+
107
+ async def delete_cookie(self, cookie_name: str, url: str) -> None:
108
+ return await self.sync_to_trio(sync_function=self._delete_cookie_impl)(cookie_name=cookie_name, url=url)
109
+
110
+ async def disable(self) -> None:
111
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
112
+
113
+ async def enable(self, enable_file_chooser_opened_event: Optional[bool] = None) -> None:
114
+ return await self.sync_to_trio(sync_function=self._enable_impl)(enable_file_chooser_opened_event=enable_file_chooser_opened_event)
115
+
116
+ async def generate_test_report(self, message: str, group: Optional[str] = None) -> None:
117
+ return await self.sync_to_trio(sync_function=self._generate_test_report_impl)(message=message, group=group)
118
+
119
+ async def get_ad_script_ancestry(self, frame_id: str) -> Optional[Dict[str, Any]]:
120
+ return await self.sync_to_trio(sync_function=self._get_ad_script_ancestry_impl)(frame_id=frame_id)
121
+
122
+ async def get_app_id(self) -> Tuple[Optional[str], Optional[str]]:
123
+ return await self.sync_to_trio(sync_function=self._get_app_id_impl)()
124
+
125
+ async def get_app_manifest(self, manifest_id: Optional[str] = None) -> Tuple[str, List[Dict[str, Any]], Optional[str], Optional[Dict[str, Any]], Dict[str, Any]]:
126
+ return await self.sync_to_trio(sync_function=self._get_app_manifest_impl)(manifest_id=manifest_id)
127
+
128
+ async def get_frame_tree(self) -> Dict[str, Any]:
129
+ return await self.sync_to_trio(sync_function=self._get_frame_tree_impl)()
130
+
131
+ async def get_installability_errors(self) -> List[Dict[str, Any]]:
132
+ return await self.sync_to_trio(sync_function=self._get_installability_errors_impl)()
133
+
134
+ async def get_layout_metrics(self) -> Tuple[
135
+ Dict[str, Any],
136
+ Dict[str, Any],
137
+ Dict[str, Any],
138
+ Dict[str, Any],
139
+ Dict[str, Any],
140
+ Dict[str, Any]
141
+ ]:
142
+ return await self.sync_to_trio(sync_function=self._get_layout_metrics_impl)()
143
+
144
+ async def get_manifest_icons(self) -> Optional[str]:
145
+ return await self.sync_to_trio(sync_function=self._get_manifest_icons_impl)()
146
+
147
+ async def get_navigation_history(self) -> Tuple[int, List[Dict[str, Any]]]:
148
+ return await self.sync_to_trio(sync_function=self._get_navigation_history_impl)()
149
+
150
+ async def get_origin_trials(self, frame_id: str) -> List[Dict[str, Any]]:
151
+ return await self.sync_to_trio(sync_function=self._get_origin_trials_impl)(frame_id=frame_id)
152
+
153
+ async def get_permissions_policy_state(self, frame_id: str) -> List[Dict[str, Any]]:
154
+ return await self.sync_to_trio(sync_function=self._get_permissions_policy_state_impl)(frame_id=frame_id)
155
+
156
+ async def get_resource_content(self, frame_id: str, url: str) -> Tuple[str, bool]:
157
+ return await self.sync_to_trio(sync_function=self._get_resource_content_impl)(frame_id=frame_id, url=url)
158
+
159
+ async def get_resource_tree(self) -> Dict[str, Any]:
160
+ return await self.sync_to_trio(sync_function=self._get_resource_tree_impl)()
161
+
162
+ async def handle_java_script_dialog(self, accept: bool, prompt_text: Optional[str] = None) -> None:
163
+ return await self.sync_to_trio(sync_function=self._handle_java_script_dialog_impl)(accept=accept, prompt_text=prompt_text)
164
+
165
+ async def navigate(
166
+ self,
167
+ url: str,
168
+ referrer: Optional[str] = None,
169
+ transition_type: Optional[str] = None,
170
+ frame_id: Optional[str] = None,
171
+ referrer_policy: Optional[str] = None
172
+ ) -> Tuple[str, Optional[str], Optional[str], Optional[bool]]:
173
+ return await self.sync_to_trio(sync_function=self._navigate_impl)(
174
+ url=url,
175
+ referrer=referrer,
176
+ transition_type=transition_type,
177
+ frame_id=frame_id,
178
+ referrer_policy=referrer_policy
179
+ )
180
+
181
+ async def navigate_to_history_entry(self, entry_id: int) -> None:
182
+ return await self.sync_to_trio(sync_function=self._navigate_to_history_entry_impl)(entry_id=entry_id)
183
+
184
+ async def print_to_pdf(
185
+ self,
186
+ landscape: Optional[bool] = None,
187
+ display_header_footer: Optional[bool] = None,
188
+ print_background: Optional[bool] = None,
189
+ scale: Optional[float] = None,
190
+ paper_width: Optional[float] = None,
191
+ paper_height: Optional[float] = None,
192
+ margin_top: Optional[float] = None,
193
+ margin_bottom: Optional[float] = None,
194
+ margin_left: Optional[float] = None,
195
+ margin_right: Optional[float] = None,
196
+ page_ranges: Optional[str] = None,
197
+ header_template: Optional[str] = None,
198
+ footer_template: Optional[str] = None,
199
+ prefer_css_page_size: Optional[bool] = None,
200
+ transfer_mode: Optional[str] = None,
201
+ generate_tagged_pdf: Optional[bool] = None,
202
+ generate_document_outline: Optional[bool] = None
203
+ ) -> Tuple[str, Optional[str]]:
204
+ return await self.sync_to_trio(sync_function=self._print_to_pdf_impl)(
205
+ landscape=landscape,
206
+ display_header_footer=display_header_footer,
207
+ print_background=print_background,
208
+ scale=scale,
209
+ paper_width=paper_width,
210
+ paper_height=paper_height,
211
+ margin_top=margin_top,
212
+ margin_bottom=margin_bottom,
213
+ margin_left=margin_left,
214
+ margin_right=margin_right,
215
+ page_ranges=page_ranges,
216
+ header_template=header_template,
217
+ footer_template=footer_template,
218
+ prefer_css_page_size=prefer_css_page_size,
219
+ transfer_mode=transfer_mode,
220
+ generate_tagged_pdf=generate_tagged_pdf,
221
+ generate_document_outline=generate_document_outline
222
+ )
223
+
224
+ async def produce_compilation_cache(self, scripts: List[Dict[str, Any]]) -> None:
225
+ return await self.sync_to_trio(sync_function=self._produce_compilation_cache_impl)(scripts=scripts)
226
+
227
+ async def reload(
228
+ self,
229
+ ignore_cache: Optional[bool] = None,
230
+ script_to_evaluate_on_load: Optional[str] = None,
231
+ loader_id: Optional[str] = None
232
+ ) -> None:
233
+ return await self.sync_to_trio(sync_function=self._reload_impl)(
234
+ ignore_cache=ignore_cache,
235
+ script_to_evaluate_on_load=script_to_evaluate_on_load,
236
+ loader_id=loader_id
237
+ )
238
+
239
+ async def remove_script_to_evaluate_on_load(self, identifier: str) -> None:
240
+ return await self.sync_to_trio(sync_function=self._remove_script_to_evaluate_on_load_impl)(identifier=identifier)
241
+
242
+ async def remove_script_to_evaluate_on_new_document(self, identifier: str) -> None:
243
+ return await self.sync_to_trio(sync_function=self._remove_script_to_evaluate_on_new_document_impl)(identifier=identifier)
244
+
245
+ async def reset_navigation_history(self) -> None:
246
+ return await self.sync_to_trio(sync_function=self._reset_navigation_history_impl)()
247
+
248
+ async def screencast_frame_ack(self, session_id: int) -> None:
249
+ return await self.sync_to_trio(sync_function=self._screencast_frame_ack_impl)(session_id=session_id)
250
+
251
+ async def search_in_resource(
252
+ self,
253
+ frame_id: str,
254
+ url: str,
255
+ query: str,
256
+ case_sensitive: Optional[bool] = None,
257
+ is_regex: Optional[bool] = None
258
+ ) -> List[Dict[str, Any]]:
259
+ return await self.sync_to_trio(sync_function=self._search_in_resource_impl)(
260
+ frame_id=frame_id,
261
+ url=url,
262
+ query=query,
263
+ case_sensitive=case_sensitive,
264
+ is_regex=is_regex
265
+ )
266
+
267
+ async def set_ad_blocking_enabled(self, enabled: bool) -> None:
268
+ return await self.sync_to_trio(sync_function=self._set_ad_blocking_enabled_impl)(enabled=enabled)
269
+
270
+ async def set_bypass_csp(self, enabled: bool) -> None:
271
+ return await self.sync_to_trio(sync_function=self._set_bypass_csp_impl)(enabled=enabled)
272
+
273
+ async def set_device_metrics_override(
274
+ self,
275
+ width: int,
276
+ height: int,
277
+ device_scale_factor: float,
278
+ mobile: bool,
279
+ scale: Optional[float] = None,
280
+ screen_width: Optional[int] = None,
281
+ screen_height: Optional[int] = None,
282
+ position_x: Optional[int] = None,
283
+ position_y: Optional[int] = None,
284
+ dont_set_visible_size: Optional[bool] = None,
285
+ screen_orientation: Optional[Dict[str, Any]] = None,
286
+ viewport: Optional[Dict[str, Any]] = None
287
+ ) -> None:
288
+ return await self.sync_to_trio(sync_function=self._set_device_metrics_override_impl)(
289
+ width=width,
290
+ height=height,
291
+ device_scale_factor=device_scale_factor,
292
+ mobile=mobile,
293
+ scale=scale,
294
+ screen_width=screen_width,
295
+ screen_height=screen_height,
296
+ position_x=position_x,
297
+ position_y=position_y,
298
+ dont_set_visible_size=dont_set_visible_size,
299
+ screen_orientation=screen_orientation,
300
+ viewport=viewport
301
+ )
302
+
303
+ async def set_device_orientation_override(self, alpha: float, beta: float, gamma: float) -> None:
304
+ return await self.sync_to_trio(sync_function=self._set_device_orientation_override_impl)(alpha=alpha, beta=beta, gamma=gamma)
305
+
306
+ async def set_document_content(self, frame_id: str, html: str) -> None:
307
+ return await self.sync_to_trio(sync_function=self._set_document_content_impl)(frame_id=frame_id, html=html)
308
+
309
+ async def set_download_behavior(self, behavior: str, download_path: Optional[str] = None) -> None:
310
+ return await self.sync_to_trio(sync_function=self._set_download_behavior_impl)(behavior=behavior, download_path=download_path)
311
+
312
+ async def set_font_families(
313
+ self,
314
+ font_families: Dict[str, Any],
315
+ for_scripts: Optional[List[Dict[str, Any]]] = None
316
+ ) -> None:
317
+ return await self.sync_to_trio(sync_function=self._set_font_families_impl)(font_families=font_families, for_scripts=for_scripts)
318
+
319
+ async def set_font_sizes(self, font_sizes: Dict[str, Any]) -> None:
320
+ return await self.sync_to_trio(sync_function=self._set_font_sizes_impl)(font_sizes=font_sizes)
321
+
322
+ async def set_geolocation_override(
323
+ self,
324
+ latitude: Optional[float] = None,
325
+ longitude: Optional[float] = None,
326
+ accuracy: Optional[float] = None
327
+ ) -> None:
328
+ return await self.sync_to_trio(sync_function=self._set_geolocation_override_impl)(latitude=latitude, longitude=longitude, accuracy=accuracy)
329
+
330
+ async def set_intercept_file_chooser_dialog(self, enabled: bool, cancel: Optional[bool] = None) -> None:
331
+ return await self.sync_to_trio(sync_function=self._set_intercept_file_chooser_dialog_impl)(enabled=enabled, cancel=cancel)
332
+
333
+ async def set_lifecycle_events_enabled(self, enabled: bool) -> None:
334
+ return await self.sync_to_trio(sync_function=self._set_lifecycle_events_enabled_impl)(enabled=enabled)
335
+
336
+ async def set_prerendering_allowed(self, is_allowed: bool) -> None:
337
+ return await self.sync_to_trio(sync_function=self._set_prerendering_allowed_impl)(is_allowed=is_allowed)
338
+
339
+ async def set_rph_registration_mode(self, mode: str) -> None:
340
+ return await self.sync_to_trio(sync_function=self._set_rph_registration_mode_impl)(mode=mode)
341
+
342
+ async def set_spc_transaction_mode(self, mode: str) -> None:
343
+ return await self.sync_to_trio(sync_function=self._set_spc_transaction_mode_impl)(mode=mode)
344
+
345
+ async def set_touch_emulation_enabled(self, enabled: bool, configuration: Optional[str] = None) -> None:
346
+ return await self.sync_to_trio(sync_function=self._set_touch_emulation_enabled_impl)(enabled=enabled, configuration=configuration)
347
+
348
+ async def set_web_lifecycle_state(self, state: str) -> None:
349
+ return await self.sync_to_trio(sync_function=self._set_web_lifecycle_state_impl)(state=state)
350
+
351
+ async def start_screencast(
352
+ self,
353
+ format_: Optional[str] = None,
354
+ quality: Optional[int] = None,
355
+ max_width: Optional[int] = None,
356
+ max_height: Optional[int] = None,
357
+ every_nth_frame: Optional[int] = None
358
+ ) -> None:
359
+ return await self.sync_to_trio(sync_function=self._start_screencast_impl)(
360
+ format_=format_,
361
+ quality=quality,
362
+ max_width=max_width,
363
+ max_height=max_height,
364
+ every_nth_frame=every_nth_frame
365
+ )
366
+
367
+ async def stop_loading(self) -> None:
368
+ return await self.sync_to_trio(sync_function=self._stop_loading_impl)()
369
+
370
+ async def stop_screencast(self) -> None:
371
+ return await self.sync_to_trio(sync_function=self._stop_screencast_impl)()
372
+
373
+ async def wait_for_debugger(self) -> None:
374
+ return await self.sync_to_trio(sync_function=self._wait_for_debugger_impl)()
@@ -0,0 +1,46 @@
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.performance import (
11
+ UnifiedPerformanceCDPExecutor
12
+ )
13
+ from osn_selenium.abstract.executors.cdp.performance import (
14
+ AbstractPerformanceCDPExecutor
15
+ )
16
+
17
+
18
+ __all__ = ["PerformanceCDPExecutor"]
19
+
20
+
21
+ class PerformanceCDPExecutor(
22
+ UnifiedPerformanceCDPExecutor,
23
+ TrioThreadMixin,
24
+ AbstractPerformanceCDPExecutor
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
+ UnifiedPerformanceCDPExecutor.__init__(self, execute_function=execute_function)
33
+
34
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
35
+
36
+ async def disable(self) -> None:
37
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
38
+
39
+ async def enable(self, time_domain: Optional[str] = None) -> None:
40
+ return await self.sync_to_trio(sync_function=self._enable_impl)(time_domain=time_domain)
41
+
42
+ async def get_metrics(self) -> List[Dict[str, Any]]:
43
+ return await self.sync_to_trio(sync_function=self._get_metrics_impl)()
44
+
45
+ async def set_time_domain(self, time_domain: str) -> None:
46
+ return await self.sync_to_trio(sync_function=self._set_time_domain_impl)(time_domain=time_domain)
@@ -0,0 +1,36 @@
1
+ import trio
2
+ from osn_selenium.base_mixin import TrioThreadMixin
3
+ from typing import (
4
+ Any,
5
+ Callable,
6
+ Dict,
7
+ List
8
+ )
9
+ from osn_selenium.executors.unified.cdp.performance_timeline import (
10
+ UnifiedPerformanceTimelineCDPExecutor
11
+ )
12
+ from osn_selenium.abstract.executors.cdp.performance_timeline import (
13
+ AbstractPerformanceTimelineCDPExecutor
14
+ )
15
+
16
+
17
+ __all__ = ["PerformanceTimelineCDPExecutor"]
18
+
19
+
20
+ class PerformanceTimelineCDPExecutor(
21
+ UnifiedPerformanceTimelineCDPExecutor,
22
+ TrioThreadMixin,
23
+ AbstractPerformanceTimelineCDPExecutor
24
+ ):
25
+ def __init__(
26
+ self,
27
+ execute_function: Callable[[str, Dict[str, Any]], Any],
28
+ lock: trio.Lock,
29
+ limiter: trio.CapacityLimiter
30
+ ):
31
+ UnifiedPerformanceTimelineCDPExecutor.__init__(self, execute_function=execute_function)
32
+
33
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
34
+
35
+ async def enable(self, event_types: List[str]) -> None:
36
+ return await self.sync_to_trio(sync_function=self._enable_impl)(event_types=event_types)
@@ -0,0 +1,30 @@
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.preload import (
5
+ UnifiedPreloadCDPExecutor
6
+ )
7
+ from osn_selenium.abstract.executors.cdp.preload import (
8
+ AbstractPreloadCDPExecutor
9
+ )
10
+
11
+
12
+ __all__ = ["PreloadCDPExecutor"]
13
+
14
+
15
+ class PreloadCDPExecutor(UnifiedPreloadCDPExecutor, TrioThreadMixin, AbstractPreloadCDPExecutor):
16
+ def __init__(
17
+ self,
18
+ execute_function: Callable[[str, Dict[str, Any]], Any],
19
+ lock: trio.Lock,
20
+ limiter: trio.CapacityLimiter
21
+ ):
22
+ UnifiedPreloadCDPExecutor.__init__(self, execute_function=execute_function)
23
+
24
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
25
+
26
+ async def disable(self) -> None:
27
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
28
+
29
+ async def enable(self) -> None:
30
+ return await self.sync_to_trio(sync_function=self._enable_impl)()
@@ -0,0 +1,71 @@
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.profiler import (
12
+ UnifiedProfilerCDPExecutor
13
+ )
14
+ from osn_selenium.abstract.executors.cdp.profiler import (
15
+ AbstractProfilerCDPExecutor
16
+ )
17
+
18
+
19
+ __all__ = ["ProfilerCDPExecutor"]
20
+
21
+
22
+ class ProfilerCDPExecutor(
23
+ UnifiedProfilerCDPExecutor,
24
+ TrioThreadMixin,
25
+ AbstractProfilerCDPExecutor
26
+ ):
27
+ def __init__(
28
+ self,
29
+ execute_function: Callable[[str, Dict[str, Any]], Any],
30
+ lock: trio.Lock,
31
+ limiter: trio.CapacityLimiter
32
+ ):
33
+ UnifiedProfilerCDPExecutor.__init__(self, execute_function=execute_function)
34
+
35
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
36
+
37
+ async def disable(self) -> None:
38
+ return await self.sync_to_trio(sync_function=self._disable_impl)()
39
+
40
+ async def enable(self) -> None:
41
+ return await self.sync_to_trio(sync_function=self._enable_impl)()
42
+
43
+ async def get_best_effort_coverage(self) -> List[Dict[str, Any]]:
44
+ return await self.sync_to_trio(sync_function=self._get_best_effort_coverage_impl)()
45
+
46
+ async def set_sampling_interval(self, interval: int) -> None:
47
+ return await self.sync_to_trio(sync_function=self._set_sampling_interval_impl)(interval=interval)
48
+
49
+ async def start(self) -> None:
50
+ return await self.sync_to_trio(sync_function=self._start_impl)()
51
+
52
+ async def start_precise_coverage(
53
+ self,
54
+ call_count: Optional[bool] = None,
55
+ detailed: Optional[bool] = None,
56
+ allow_triggered_updates: Optional[bool] = None
57
+ ) -> float:
58
+ return await self.sync_to_trio(sync_function=self._start_precise_coverage_impl)(
59
+ call_count=call_count,
60
+ detailed=detailed,
61
+ allow_triggered_updates=allow_triggered_updates
62
+ )
63
+
64
+ async def stop(self) -> Dict[str, Any]:
65
+ return await self.sync_to_trio(sync_function=self._stop_impl)()
66
+
67
+ async def stop_precise_coverage(self) -> None:
68
+ return await self.sync_to_trio(sync_function=self._stop_precise_coverage_impl)()
69
+
70
+ async def take_precise_coverage(self) -> Tuple[List[Dict[str, Any]], float]:
71
+ return await self.sync_to_trio(sync_function=self._take_precise_coverage_impl)()
@@ -0,0 +1,64 @@
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.pwa import (
12
+ UnifiedPwaCDPExecutor
13
+ )
14
+ from osn_selenium.abstract.executors.cdp.pwa import (
15
+ AbstractPwaCDPExecutor
16
+ )
17
+
18
+
19
+ __all__ = ["PwaCDPExecutor"]
20
+
21
+
22
+ class PwaCDPExecutor(UnifiedPwaCDPExecutor, TrioThreadMixin, AbstractPwaCDPExecutor):
23
+ def __init__(
24
+ self,
25
+ execute_function: Callable[[str, Dict[str, Any]], Any],
26
+ lock: trio.Lock,
27
+ limiter: trio.CapacityLimiter
28
+ ):
29
+ UnifiedPwaCDPExecutor.__init__(self, execute_function=execute_function)
30
+
31
+ TrioThreadMixin.__init__(self, lock=lock, limiter=limiter)
32
+
33
+ async def change_app_user_settings(
34
+ self,
35
+ manifest_id: str,
36
+ link_capturing: Optional[bool] = None,
37
+ display_mode: Optional[str] = None
38
+ ) -> None:
39
+ return await self.sync_to_trio(sync_function=self._change_app_user_settings_impl)(
40
+ manifest_id=manifest_id,
41
+ link_capturing=link_capturing,
42
+ display_mode=display_mode
43
+ )
44
+
45
+ async def get_os_app_state(self, manifest_id: str) -> Tuple[int, List[Dict[str, Any]]]:
46
+ return await self.sync_to_trio(sync_function=self._get_os_app_state_impl)(manifest_id=manifest_id)
47
+
48
+ async def install(self, manifest_id: str, install_url_or_bundle_url: Optional[str] = None) -> None:
49
+ return await self.sync_to_trio(sync_function=self._install_impl)(
50
+ manifest_id=manifest_id,
51
+ install_url_or_bundle_url=install_url_or_bundle_url
52
+ )
53
+
54
+ async def launch(self, manifest_id: str, url: Optional[str] = None) -> str:
55
+ return await self.sync_to_trio(sync_function=self._launch_impl)(manifest_id=manifest_id, url=url)
56
+
57
+ async def launch_files_in_app(self, manifest_id: str, files: List[str]) -> List[str]:
58
+ return await self.sync_to_trio(sync_function=self._launch_files_in_app_impl)(manifest_id=manifest_id, files=files)
59
+
60
+ async def open_current_page_in_app(self, manifest_id: str) -> None:
61
+ return await self.sync_to_trio(sync_function=self._open_current_page_in_app_impl)(manifest_id=manifest_id)
62
+
63
+ async def uninstall(self, manifest_id: str) -> None:
64
+ return await self.sync_to_trio(sync_function=self._uninstall_impl)(manifest_id=manifest_id)