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,58 @@
1
+ from typing import Optional
2
+ from osn_selenium.models import WindowRect
3
+ from osn_selenium._typehints import PATH_TYPEHINT
4
+ from osn_selenium.flags.models.chrome import ChromeFlags
5
+ from osn_selenium.webdrivers.unified.chrome.settings import (
6
+ UnifiedChromeSettingsMixin
7
+ )
8
+ from osn_selenium.abstract.webdriver.chrome.settings import (
9
+ AbstractChromeSettingsMixin
10
+ )
11
+
12
+
13
+ __all__ = ["ChromeSettingsMixin"]
14
+
15
+
16
+ class ChromeSettingsMixin(UnifiedChromeSettingsMixin, AbstractChromeSettingsMixin):
17
+ """
18
+ Mixin for configuring and updating settings of the Chrome WebDriver.
19
+
20
+ Provides methods to modify browser flags, window rectangles, and other
21
+ configuration parameters either before startup either during a reset.
22
+ """
23
+
24
+ def reset_settings(
25
+ self,
26
+ flags: Optional[ChromeFlags] = None,
27
+ browser_exe: Optional[PATH_TYPEHINT] = None,
28
+ browser_name_in_system: Optional[str] = None,
29
+ use_browser_exe: Optional[bool] = None,
30
+ start_page_url: str = "",
31
+ window_rect: Optional[WindowRect] = None,
32
+ ) -> None:
33
+ self._reset_settings_impl(
34
+ flags=flags,
35
+ browser_exe=browser_exe,
36
+ browser_name_in_system=browser_name_in_system,
37
+ use_browser_exe=use_browser_exe,
38
+ start_page_url=start_page_url,
39
+ window_rect=window_rect,
40
+ )
41
+
42
+ def update_settings(
43
+ self,
44
+ flags: Optional[ChromeFlags] = None,
45
+ browser_exe: Optional[PATH_TYPEHINT] = None,
46
+ browser_name_in_system: Optional[str] = None,
47
+ use_browser_exe: Optional[bool] = None,
48
+ start_page_url: Optional[str] = None,
49
+ window_rect: Optional[WindowRect] = None,
50
+ ) -> None:
51
+ self._update_settings_impl(
52
+ flags=flags,
53
+ browser_exe=browser_exe,
54
+ browser_name_in_system=browser_name_in_system,
55
+ use_browser_exe=use_browser_exe,
56
+ start_page_url=start_page_url,
57
+ window_rect=window_rect,
58
+ )
@@ -0,0 +1,100 @@
1
+ from osn_selenium.models import WindowRect
2
+ from typing import (
3
+ Mapping,
4
+ Optional,
5
+ Type
6
+ )
7
+ from osn_selenium._typehints import PATH_TYPEHINT
8
+ from osn_selenium.flags.base import BrowserFlagsManager
9
+ from osn_selenium.flags.models.base import BrowserFlags
10
+ from osn_selenium.webdrivers.sync.core.auth import CoreAuthMixin
11
+ from osn_selenium.webdrivers.sync.core.base import CoreBaseMixin
12
+ from osn_selenium.webdrivers.sync.core.file import CoreFileMixin
13
+ from osn_selenium.webdrivers.sync.core.script import CoreScriptMixin
14
+ from osn_selenium.webdrivers.sync.core.window import CoreWindowMixin
15
+ from osn_selenium.webdrivers.sync.core.actions import CoreActionsMixin
16
+ from osn_selenium.webdrivers.sync.core.capture import CoreCaptureMixin
17
+ from osn_selenium.webdrivers.sync.core.element import CoreElementMixin
18
+ from osn_selenium.webdrivers.sync.core.storage import CoreStorageMixin
19
+ from osn_selenium.webdrivers.sync.core.devtools import CoreDevToolsMixin
20
+ from osn_selenium.webdrivers.sync.core.settings import CoreSettingsMixin
21
+ from osn_selenium.webdrivers.sync.core.timeouts import CoreTimeoutsMixin
22
+ from osn_selenium.webdrivers.sync.core.lifecycle import CoreLifecycleMixin
23
+ from osn_selenium.abstract.webdriver.core import (
24
+ AbstractCoreWebDriver
25
+ )
26
+ from osn_selenium.webdrivers.sync.core.comonents import CoreComponentsMixin
27
+ from osn_selenium.webdrivers.sync.core.navigation import CoreNavigationMixin
28
+
29
+
30
+ __all__ = ["CoreWebDriver"]
31
+
32
+
33
+ class CoreWebDriver(
34
+ CoreActionsMixin,
35
+ CoreAuthMixin,
36
+ CoreBaseMixin,
37
+ CoreCaptureMixin,
38
+ CoreComponentsMixin,
39
+ CoreDevToolsMixin,
40
+ CoreElementMixin,
41
+ CoreFileMixin,
42
+ CoreLifecycleMixin,
43
+ CoreNavigationMixin,
44
+ CoreScriptMixin,
45
+ CoreSettingsMixin,
46
+ CoreStorageMixin,
47
+ CoreTimeoutsMixin,
48
+ CoreWindowMixin,
49
+ AbstractCoreWebDriver,
50
+ ):
51
+ """
52
+ Concrete Core WebDriver implementation combining all functional mixins.
53
+
54
+ This class aggregates lifecycle management, element interaction, navigation,
55
+ and browser-specific features into a single usable driver instance.
56
+ """
57
+
58
+ def __init__(
59
+ self,
60
+ webdriver_path: str,
61
+ flags_manager_type: Type[BrowserFlagsManager] = BrowserFlagsManager,
62
+ flags: Optional[BrowserFlags] = None,
63
+ implicitly_wait: int = 5,
64
+ page_load_timeout: int = 5,
65
+ script_timeout: int = 5,
66
+ window_rect: Optional[WindowRect] = None,
67
+ cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
68
+ ignore_cdp_version_package_missing: bool = True,
69
+ ) -> None:
70
+ """
71
+ Initializes the synchronous WebDriver instance.
72
+
73
+ Args:
74
+ webdriver_path (str): The file path to the WebDriver executable.
75
+ flags_manager_type (Type[BrowserFlagsManager]): The class type used to manage
76
+ browser-specific configuration flags. Defaults to BrowserFlagsManager.
77
+ flags (Optional[BrowserFlags]): Initial set of browser flags or options
78
+ to apply upon startup. Defaults to None.
79
+ implicitly_wait (int): The amount of time (in seconds) that the driver should
80
+ wait when searching for elements. Defaults to 5.
81
+ page_load_timeout (int): The amount of time (in seconds) to wait for a page
82
+ load to complete. Defaults to 5.
83
+ script_timeout (int): The amount of time (in seconds) to wait for an
84
+ asynchronous script to finish execution. Defaults to 5.
85
+ window_rect (Optional[WindowRect]): The initial size and position of the
86
+ browser window. Defaults to None.
87
+ """
88
+
89
+ CoreBaseMixin.__init__(
90
+ self,
91
+ webdriver_path=webdriver_path,
92
+ flags_manager_type=flags_manager_type,
93
+ flags=flags,
94
+ implicitly_wait=implicitly_wait,
95
+ page_load_timeout=page_load_timeout,
96
+ script_timeout=script_timeout,
97
+ window_rect=window_rect,
98
+ cdp_versioned_packages_paths=cdp_versioned_packages_paths,
99
+ ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
100
+ )
@@ -0,0 +1,59 @@
1
+ from typing import (
2
+ Iterable,
3
+ List,
4
+ Optional
5
+ )
6
+ from osn_selenium._typehints import DEVICES_TYPEHINT
7
+ from osn_selenium.instances.sync.action_chains import ActionChains
8
+ from osn_selenium.webdrivers.sync.core.script import CoreScriptMixin
9
+ from osn_selenium.instances.sync.web_driver_wait import WebDriverWait
10
+ from osn_selenium.webdrivers._bridges import (
11
+ get_js_executor_bridge
12
+ )
13
+ from osn_selenium.instances.convert import (
14
+ get_sync_instance_wrapper
15
+ )
16
+ from osn_selenium.webdrivers.unified.core.actions import (
17
+ UnifiedCoreActionsMixin
18
+ )
19
+ from osn_selenium.abstract.webdriver.core.actions import (
20
+ AbstractCoreActionsMixin
21
+ )
22
+
23
+
24
+ __all__ = ["CoreActionsMixin"]
25
+
26
+
27
+ class CoreActionsMixin(UnifiedCoreActionsMixin, CoreScriptMixin, AbstractCoreActionsMixin):
28
+ """
29
+ Mixin providing high-level interaction capabilities for Core WebDrivers.
30
+
31
+ Includes factories for standard and human-like ActionChains, as well as
32
+ custom WebDriverWait implementations.
33
+ """
34
+
35
+ def action_chains(
36
+ self,
37
+ duration: int = 250,
38
+ devices: Optional[List[DEVICES_TYPEHINT]] = None,
39
+ ) -> ActionChains:
40
+ legacy = self._action_chains_impl(duration=duration, devices=devices)
41
+
42
+ return ActionChains(
43
+ selenium_action_chains=legacy,
44
+ execute_js_script_function=get_js_executor_bridge(self),
45
+ )
46
+
47
+ def web_driver_wait(
48
+ self,
49
+ timeout: float,
50
+ poll_frequency: float = 0.5,
51
+ ignored_exceptions: Optional[Iterable[BaseException]] = None,
52
+ ) -> WebDriverWait:
53
+ legacy = self._web_driver_wait_impl(
54
+ timeout=timeout,
55
+ poll_frequency=poll_frequency,
56
+ ignored_exceptions=ignored_exceptions
57
+ )
58
+
59
+ return get_sync_instance_wrapper(wrapper_class=WebDriverWait, legacy_object=legacy)
@@ -0,0 +1,77 @@
1
+ from osn_selenium.instances.sync.fedcm import FedCM
2
+ from typing import (
3
+ Any,
4
+ List,
5
+ Optional,
6
+ Union
7
+ )
8
+ from osn_selenium.instances.sync.dialog import Dialog
9
+ from osn_selenium.instances.convert import (
10
+ get_sync_instance_wrapper
11
+ )
12
+ from osn_selenium.webdrivers.unified.core.auth import UnifiedCoreAuthMixin
13
+ from osn_selenium.abstract.webdriver.core.auth import (
14
+ AbstractCoreAuthMixin
15
+ )
16
+ from selenium.webdriver.common.virtual_authenticator import (
17
+ Credential,
18
+ VirtualAuthenticatorOptions
19
+ )
20
+
21
+
22
+ __all__ = ["CoreAuthMixin"]
23
+
24
+
25
+ class CoreAuthMixin(UnifiedCoreAuthMixin, AbstractCoreAuthMixin):
26
+ """
27
+ Mixin handling authentication and credential management for Core WebDrivers.
28
+
29
+ Provides interfaces for adding/removing credentials, managing virtual
30
+ authenticators, and handling Federated Credential Management (FedCM) dialogs.
31
+ """
32
+
33
+ def add_credential(self, credential: Credential) -> None:
34
+ self._add_credential_impl(credential=credential)
35
+
36
+ def add_virtual_authenticator(self, options: VirtualAuthenticatorOptions) -> None:
37
+ self._add_virtual_authenticator_impl(options=options)
38
+
39
+ def fedcm(self) -> FedCM:
40
+ legacy = self._fedcm_impl()
41
+
42
+ return get_sync_instance_wrapper(wrapper_class=FedCM, legacy_object=legacy)
43
+
44
+ def fedcm_dialog(
45
+ self,
46
+ timeout: int = 5,
47
+ poll_frequency: float = 0.5,
48
+ ignored_exceptions: Any = None,
49
+ ) -> Dialog:
50
+ legacy = self._fedcm_dialog_impl(
51
+ timeout=timeout,
52
+ poll_frequency=poll_frequency,
53
+ ignored_exceptions=ignored_exceptions,
54
+ )
55
+
56
+ return get_sync_instance_wrapper(wrapper_class=Dialog, legacy_object=legacy)
57
+
58
+ def get_credentials(self) -> List[Credential]:
59
+ return self._get_credentials_impl()
60
+
61
+ def remove_all_credentials(self) -> None:
62
+ self._remove_all_credentials_impl()
63
+
64
+ def remove_credential(self, credential_id: Union[str, bytearray]) -> None:
65
+ self._remove_credential_impl(credential_id=credential_id)
66
+
67
+ def remove_virtual_authenticator(self) -> None:
68
+ self._remove_virtual_authenticator_impl()
69
+
70
+ def set_user_verified(self, verified: bool) -> None:
71
+ self._set_user_verified_impl(verified=verified)
72
+
73
+ def supports_fedcm(self) -> bool:
74
+ return self._supports_fedcm_impl()
75
+
76
+ def virtual_authenticator_id(self) -> Optional[str]:
77
+ return self._virtual_authenticator_id_impl()
@@ -0,0 +1,175 @@
1
+ from osn_selenium.models import WindowRect
2
+ from osn_selenium.executors.sync.cdp import CDPExecutor
3
+ from osn_selenium.flags.base import BrowserFlagsManager
4
+ from osn_selenium.flags.models.base import BrowserFlags
5
+ from selenium.webdriver.common.bidi.session import Session
6
+ from osn_selenium.executors.sync.javascript import JSExecutor
7
+ from typing import (
8
+ Any,
9
+ Dict,
10
+ Mapping,
11
+ Optional,
12
+ Type
13
+ )
14
+ from selenium.webdriver.remote.errorhandler import ErrorHandler
15
+ from selenium.webdriver.remote.locator_converter import LocatorConverter
16
+ from selenium.webdriver.remote.remote_connection import RemoteConnection
17
+ from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
18
+ from osn_selenium._typehints import (
19
+ ARCHITECTURES_TYPEHINT,
20
+ PATH_TYPEHINT
21
+ )
22
+ from osn_selenium.abstract.webdriver.core.base import (
23
+ AbstractCoreBaseMixin
24
+ )
25
+ from selenium.webdriver.remote.webdriver import (
26
+ WebDriver as legacyWebDriver
27
+ )
28
+ from osn_selenium.webdrivers._bridges import (
29
+ get_cdp_executor_bridge,
30
+ get_js_executor_bridge
31
+ )
32
+
33
+
34
+ __all__ = ["CoreBaseMixin"]
35
+
36
+
37
+ class CoreBaseMixin(UnifiedCoreBaseMixin, AbstractCoreBaseMixin):
38
+ """
39
+ This class serves as the foundation for browser-specific implementations, managing
40
+ the WebDriver executable path, configuration flags, timeouts, and the active
41
+ driver instance.
42
+ """
43
+
44
+ def __init__(
45
+ self,
46
+ webdriver_path: str,
47
+ flags_manager_type: Type[BrowserFlagsManager] = BrowserFlagsManager,
48
+ flags: Optional[BrowserFlags] = None,
49
+ implicitly_wait: int = 5,
50
+ page_load_timeout: int = 5,
51
+ script_timeout: int = 5,
52
+ window_rect: Optional[WindowRect] = None,
53
+ cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
54
+ ignore_cdp_version_package_missing: bool = True,
55
+ ) -> None:
56
+ """
57
+ Initializes the base mixin for synchronous WebDrivers.
58
+
59
+ Args:
60
+ webdriver_path (str): The file path to the WebDriver executable.
61
+ flags_manager_type (Type[BrowserFlagsManager]): The class type used to manage
62
+ browser-specific configuration flags. Defaults to BrowserFlagsManager.
63
+ flags (Optional[BrowserFlags]): Initial set of browser flags or options
64
+ to apply upon startup. Defaults to None.
65
+ implicitly_wait (int): The amount of time (in seconds) that the driver should
66
+ wait when searching for elements. Defaults to 5.
67
+ page_load_timeout (int): The amount of time (in seconds) to wait for a page
68
+ load to complete. Defaults to 5.
69
+ script_timeout (int): The amount of time (in seconds) to wait for an
70
+ asynchronous script to finish execution. Defaults to 5.
71
+ window_rect (Optional[WindowRect]): The initial size and position of the
72
+ browser window. Defaults to None.
73
+ cdp_versioned_packages_paths (Optional[Mapping[int, PATH_TYPEHINT]]): Custom local paths for specific CDP versions packages.
74
+ ignore_cdp_version_package_missing (bool): Whether to ignore missing CDP package errors.
75
+ """
76
+
77
+ UnifiedCoreBaseMixin.__init__(
78
+ self,
79
+ webdriver_path=webdriver_path,
80
+ architecture="sync",
81
+ flags_manager_type=flags_manager_type,
82
+ flags=flags,
83
+ implicitly_wait=implicitly_wait,
84
+ page_load_timeout=page_load_timeout,
85
+ script_timeout=script_timeout,
86
+ window_rect=window_rect,
87
+ cdp_versioned_packages_paths=cdp_versioned_packages_paths,
88
+ ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
89
+ )
90
+
91
+ self._cdp_executor = CDPExecutor(execute_function=get_cdp_executor_bridge(self))
92
+
93
+ self._js_executor = JSExecutor(execute_function=get_js_executor_bridge(self))
94
+
95
+ @property
96
+ def architecture(self) -> ARCHITECTURES_TYPEHINT:
97
+ return self._architecture_impl
98
+
99
+ @property
100
+ def capabilities(self) -> Dict[str, Any]:
101
+ return self._capabilities_impl()
102
+
103
+ @property
104
+ def caps(self) -> Dict[str, Any]:
105
+ return self._caps_get_impl()
106
+
107
+ @caps.setter
108
+ def caps(self, value: Dict[str, Any]) -> None:
109
+ self._caps_set_impl(value)
110
+
111
+ @property
112
+ def cdp(self) -> CDPExecutor:
113
+ return self._cdp_executor
114
+
115
+ @property
116
+ def command_executor(self) -> RemoteConnection:
117
+ return self._command_executor_get_impl()
118
+
119
+ @command_executor.setter
120
+ def command_executor(self, value: RemoteConnection) -> None:
121
+ self._command_executor_set_impl(value)
122
+
123
+ @property
124
+ def driver(self) -> Optional[legacyWebDriver]:
125
+ return self._driver_impl
126
+
127
+ @property
128
+ def error_handler(self) -> ErrorHandler:
129
+ return self._error_handler_get_impl()
130
+
131
+ @error_handler.setter
132
+ def error_handler(self, value: ErrorHandler) -> None:
133
+ self._error_handler_set_impl(value)
134
+
135
+ def execute(self, driver_command: str, params: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
136
+ return self._execute_impl(driver_command=driver_command, params=params)
137
+
138
+ @property
139
+ def is_active(self) -> bool:
140
+ return self._is_active_impl
141
+
142
+ @property
143
+ def javascript(self) -> JSExecutor:
144
+ return self._js_executor
145
+
146
+ @property
147
+ def locator_converter(self) -> LocatorConverter:
148
+ return self._locator_converter_get_impl()
149
+
150
+ @locator_converter.setter
151
+ def locator_converter(self, value: LocatorConverter) -> None:
152
+ self._locator_converter_set_impl(value)
153
+
154
+ @property
155
+ def name(self) -> str:
156
+ return self._name_impl()
157
+
158
+ @property
159
+ def pinned_scripts(self) -> Dict[str, Any]:
160
+ return self._pinned_scripts_get_impl()
161
+
162
+ @pinned_scripts.setter
163
+ def pinned_scripts(self, value: Dict[str, Any]) -> None:
164
+ self._pinned_scripts_set_impl(value)
165
+
166
+ def session(self) -> Session:
167
+ return self._session_impl()
168
+
169
+ @property
170
+ def session_id(self) -> Optional[str]:
171
+ return self._session_id_get_impl()
172
+
173
+ @session_id.setter
174
+ def session_id(self, value: Optional[str]) -> None:
175
+ self._session_id_set_impl(value)
@@ -0,0 +1,37 @@
1
+ from typing import Any, Optional
2
+ from osn_selenium.webdrivers.unified.core.capture import (
3
+ UnifiedCoreCaptureMixin
4
+ )
5
+ from osn_selenium.abstract.webdriver.core.capture import (
6
+ AbstractCoreCaptureMixin
7
+ )
8
+
9
+
10
+ __all__ = ["CoreCaptureMixin"]
11
+
12
+
13
+ class CoreCaptureMixin(UnifiedCoreCaptureMixin, AbstractCoreCaptureMixin):
14
+ """
15
+ Mixin enabling screen capture and page source retrieval for Core WebDrivers.
16
+
17
+ Offers methods to take screenshots (file, base64, png), print pages,
18
+ and extract the current DOM source.
19
+ """
20
+
21
+ def get_screenshot_as_base64(self) -> str:
22
+ return self._get_screenshot_as_base64_impl()
23
+
24
+ def get_screenshot_as_file(self, filename: str) -> bool:
25
+ return self._get_screenshot_as_file_impl(filename=filename)
26
+
27
+ def get_screenshot_as_png(self) -> bytes:
28
+ return self._get_screenshot_as_png_impl()
29
+
30
+ def page_source(self) -> str:
31
+ return self._page_source_impl()
32
+
33
+ def print_page(self, print_options: Optional[Any] = None) -> str:
34
+ return self._print_page_impl(print_options=print_options)
35
+
36
+ def save_screenshot(self, filename: str) -> bool:
37
+ return self._save_screenshot_impl(filename=filename)
@@ -0,0 +1,57 @@
1
+ from osn_selenium.instances.sync.dialog import Dialog
2
+ from osn_selenium.instances.sync.mobile import Mobile
3
+ from osn_selenium.instances.sync.browser import Browser
4
+ from osn_selenium.instances.sync.permissions import Permissions
5
+ from osn_selenium.instances.sync.web_extension import WebExtension
6
+ from osn_selenium.instances.sync.browsing_context import BrowsingContext
7
+ from osn_selenium.instances.convert import (
8
+ get_sync_instance_wrapper
9
+ )
10
+ from osn_selenium.webdrivers.unified.core.components import (
11
+ UnifiedCoreComponentsMixin
12
+ )
13
+ from osn_selenium.abstract.webdriver.core.components import (
14
+ AbstractCoreComponentsMixin
15
+ )
16
+
17
+
18
+ __all__ = ["CoreComponentsMixin"]
19
+
20
+
21
+ class CoreComponentsMixin(UnifiedCoreComponentsMixin, AbstractCoreComponentsMixin):
22
+ """
23
+ Mixin providing access to specialized browser components for Core WebDrivers.
24
+
25
+ Exposes interfaces for interacting with specific browser domains such as
26
+ permissions, mobile emulation, dialog handling, and web extensions.
27
+ """
28
+
29
+ def browser(self) -> Browser:
30
+ legacy = self._browser_impl()
31
+
32
+ return get_sync_instance_wrapper(wrapper_class=Browser, legacy_object=legacy)
33
+
34
+ def browsing_context(self) -> BrowsingContext:
35
+ legacy = self._browsing_context_impl()
36
+
37
+ return get_sync_instance_wrapper(wrapper_class=BrowsingContext, legacy_object=legacy)
38
+
39
+ def dialog(self) -> Dialog:
40
+ legacy = self._dialog_impl()
41
+
42
+ return get_sync_instance_wrapper(wrapper_class=Dialog, legacy_object=legacy)
43
+
44
+ def mobile(self) -> Mobile:
45
+ legacy = self._mobile_impl()
46
+
47
+ return get_sync_instance_wrapper(wrapper_class=Mobile, legacy_object=legacy)
48
+
49
+ def permissions(self) -> Permissions:
50
+ legacy = self._permissions_impl()
51
+
52
+ return get_sync_instance_wrapper(wrapper_class=Permissions, legacy_object=legacy)
53
+
54
+ def webextension(self) -> WebExtension:
55
+ legacy = self._webextension_impl()
56
+
57
+ return get_sync_instance_wrapper(wrapper_class=WebExtension, legacy_object=legacy)
@@ -0,0 +1,47 @@
1
+ from contextlib import asynccontextmanager
2
+ from osn_selenium.instances.sync.network import Network
3
+ from typing import (
4
+ Any,
5
+ AsyncGenerator,
6
+ Dict,
7
+ Tuple
8
+ )
9
+ from selenium.webdriver.remote.bidi_connection import BidiConnection
10
+ from osn_selenium.instances.convert import (
11
+ get_sync_instance_wrapper
12
+ )
13
+ from selenium.webdriver.remote.websocket_connection import WebSocketConnection
14
+ from osn_selenium.webdrivers.unified.core.devtools import (
15
+ UnifiedCoreDevToolsMixin
16
+ )
17
+ from osn_selenium.abstract.webdriver.core.devtools import (
18
+ AbstractCoreDevToolsMixin
19
+ )
20
+
21
+
22
+ __all__ = ["CoreDevToolsMixin"]
23
+
24
+
25
+ class CoreDevToolsMixin(UnifiedCoreDevToolsMixin, AbstractCoreDevToolsMixin):
26
+ """
27
+ Mixin for Chrome DevTools Protocol (CDP) and BiDi interactions in Core WebDrivers.
28
+
29
+ Facilitates low-level browser control via CDP commands, network interception,
30
+ and bidirectional communication sessions.
31
+ """
32
+
33
+ @asynccontextmanager
34
+ async def bidi_connection(self) -> AsyncGenerator[BidiConnection, Any]:
35
+ async with self._bidi_connection_impl() as bidi:
36
+ yield bidi
37
+
38
+ def execute_cdp_cmd(self, cmd: str, cmd_args: Dict[str, Any]) -> Any:
39
+ return self._execute_cdp_cmd_impl(cmd=cmd, cmd_args=cmd_args)
40
+
41
+ def network(self) -> Network:
42
+ legacy = self._network_impl()
43
+
44
+ return get_sync_instance_wrapper(wrapper_class=Network, legacy_object=legacy)
45
+
46
+ def start_devtools(self) -> Tuple[Any, WebSocketConnection]:
47
+ return self._start_devtools_impl()
@@ -0,0 +1,42 @@
1
+ from typing import List, Optional
2
+ from selenium.webdriver.common.by import By
3
+ from osn_selenium.instances.sync.web_element import WebElement
4
+ from osn_selenium.instances.convert import (
5
+ get_sync_instance_wrapper
6
+ )
7
+ from osn_selenium.webdrivers.unified.core.element import (
8
+ UnifiedCoreElementMixin
9
+ )
10
+ from osn_selenium.abstract.webdriver.core.element import (
11
+ AbstractCoreElementMixin
12
+ )
13
+
14
+
15
+ __all__ = ["CoreElementMixin"]
16
+
17
+
18
+ class CoreElementMixin(UnifiedCoreElementMixin, AbstractCoreElementMixin):
19
+ """
20
+ Mixin for DOM element retrieval in Core WebDrivers.
21
+
22
+ Provides standard methods to locate single or multiple elements within
23
+ the current page context.
24
+ """
25
+
26
+ def create_web_element(self, element_id: str) -> WebElement:
27
+ legacy = self._create_web_element_impl(element_id=element_id)
28
+
29
+ return get_sync_instance_wrapper(wrapper_class=WebElement, legacy_object=legacy)
30
+
31
+ def find_element(self, by: str = By.ID, value: Optional[str] = None) -> WebElement:
32
+ legacy = self._find_element_impl(by=by, value=value)
33
+
34
+ return get_sync_instance_wrapper(wrapper_class=WebElement, legacy_object=legacy)
35
+
36
+ def find_elements(self, by: str = By.ID, value: Optional[str] = None) -> List[WebElement]:
37
+ legacy_elements = self._find_elements_impl(by=by, value=value)
38
+
39
+ return [
40
+ get_sync_instance_wrapper(wrapper_class=WebElement, legacy_object=element)
41
+ for element in legacy_elements
42
+ ]
@@ -0,0 +1,40 @@
1
+ from contextlib import contextmanager
2
+ from typing import Any, Generator, List
3
+ from osn_selenium.webdrivers.unified.core.file import UnifiedCoreFileMixin
4
+ from osn_selenium.abstract.webdriver.core.file import (
5
+ AbstractCoreFileMixin
6
+ )
7
+
8
+
9
+ __all__ = ["CoreFileMixin"]
10
+
11
+
12
+ class CoreFileMixin(UnifiedCoreFileMixin, AbstractCoreFileMixin):
13
+ """
14
+ Mixin for file system interactions within Core WebDrivers.
15
+
16
+ Manages file upload detection, download verification, and cleanup of
17
+ downloaded files.
18
+ """
19
+
20
+ def delete_downloadable_files(self) -> None:
21
+ self._delete_downloadable_files_impl()
22
+
23
+ def download_file(self, file_name: str, target_directory: str) -> None:
24
+ self._download_file_impl(file_name=file_name, target_directory=target_directory)
25
+
26
+ @property
27
+ def file_detector(self) -> Any:
28
+ return self._file_detector_get_impl()
29
+
30
+ @file_detector.setter
31
+ def file_detector(self, value: Any) -> None:
32
+ self._file_detector_set_impl(value)
33
+
34
+ @contextmanager
35
+ def file_detector_context(self, file_detector_class: Any, *args: Any, **kwargs: Any) -> Generator[None, Any, None]:
36
+ with self._file_detector_context_impl(file_detector_class, *args, **kwargs) as file_detector:
37
+ yield file_detector
38
+
39
+ def get_downloadable_files(self) -> List[str]:
40
+ return self._get_downloadable_files_impl()