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,237 @@
1
+ from abc import ABC, abstractmethod
2
+ from typing import (
3
+ List,
4
+ Literal,
5
+ Optional,
6
+ Union
7
+ )
8
+ from osn_selenium.models import (
9
+ Position,
10
+ Rectangle,
11
+ Size
12
+ )
13
+ from osn_selenium.abstract.instances.switch_to import AbstractSwitchTo
14
+
15
+
16
+ __all__ = ["AbstractCoreWindowMixin"]
17
+
18
+
19
+ class AbstractCoreWindowMixin(ABC):
20
+ """Mixin responsible for window management, switching, and geometry."""
21
+
22
+ @abstractmethod
23
+ def close(self) -> None:
24
+ """
25
+ Closes the current window.
26
+ """
27
+
28
+ ...
29
+
30
+ @abstractmethod
31
+ def close_all_windows(self) -> None:
32
+ """
33
+ Closes all open windows in the current session.
34
+ """
35
+
36
+ ...
37
+
38
+ @abstractmethod
39
+ def close_window(self, window: Optional[Union[str, int]] = None) -> None:
40
+ """
41
+ Closes a specific window by handle or index, or the current window if not specified.
42
+ If the closed window was the current one, attempts to switch to the last remaining window.
43
+
44
+ Args:
45
+ window (Optional[Union[str, int]]): The window handle (str) or index (int) to close.
46
+ """
47
+
48
+ ...
49
+
50
+ @abstractmethod
51
+ def current_window_handle(self) -> str:
52
+ """
53
+ Returns the handle of the current window.
54
+
55
+ Returns:
56
+ str: The handle of the current window.
57
+ """
58
+
59
+ ...
60
+
61
+ @abstractmethod
62
+ def fullscreen_window(self) -> None:
63
+ """
64
+ Invokes the window manager-specific "full screen" operation.
65
+ """
66
+
67
+ ...
68
+
69
+ @abstractmethod
70
+ def get_window_handle(self, window: Optional[Union[str, int]] = None) -> str:
71
+ """
72
+ Gets the handle of a specific window by handle or index.
73
+
74
+ Args:
75
+ window (Optional[Union[str, int]]): The specific window handle (str) or index (int).
76
+ If None, defaults to the current window.
77
+
78
+ Returns:
79
+ str: The window handle.
80
+
81
+ Raises:
82
+ IndexError: If the numeric window index is out of range.
83
+ RuntimeError: If no window handles are available.
84
+ """
85
+
86
+ ...
87
+
88
+ @abstractmethod
89
+ def get_window_position(self, window_handle: str = "current") -> Position:
90
+ """
91
+ Gets the position of a window.
92
+
93
+ Args:
94
+ window_handle (str): The handle of the window.
95
+
96
+ Returns:
97
+ Position: An object containing the 'x' and 'y' coordinates of the window.
98
+ """
99
+
100
+ ...
101
+
102
+ @abstractmethod
103
+ def get_window_rect(self) -> Rectangle:
104
+ """
105
+ Gets the position and size of the current window.
106
+
107
+ Returns:
108
+ Rectangle: An object with 'x', 'y', 'width', and 'height' properties.
109
+ """
110
+
111
+ ...
112
+
113
+ @abstractmethod
114
+ def get_window_size(self, window_handle: str = "current") -> Size:
115
+ """
116
+ Gets the size of a window.
117
+
118
+ Args:
119
+ window_handle (str): The handle of the window.
120
+
121
+ Returns:
122
+ Size: An object containing the 'width' and 'height' of the window.
123
+ """
124
+
125
+ ...
126
+
127
+ @abstractmethod
128
+ def maximize_window(self) -> None:
129
+ """
130
+ Maximizes the current window.
131
+ """
132
+
133
+ ...
134
+
135
+ @abstractmethod
136
+ def minimize_window(self) -> None:
137
+ """
138
+ Minimizes the current window.
139
+ """
140
+
141
+ ...
142
+
143
+ @abstractmethod
144
+ def orientation(self) -> Literal["LANDSCAPE", "PORTRAIT"]:
145
+ """
146
+ Gets the current orientation of the browser.
147
+
148
+ Returns:
149
+ Literal["LANDSCAPE", "PORTRAIT"]: The current orientation.
150
+ """
151
+
152
+ ...
153
+
154
+ @abstractmethod
155
+ def set_orientation(self, value: Literal["LANDSCAPE", "PORTRAIT"]) -> None:
156
+ """
157
+ Sets the browser orientation.
158
+
159
+ Args:
160
+ value (Literal["LANDSCAPE", "PORTRAIT"]): The new orientation.
161
+ """
162
+
163
+ ...
164
+
165
+ @abstractmethod
166
+ def set_window_position(self, x: int, y: int, window_handle: str = "current") -> Position:
167
+ """
168
+ Sets the position of a window.
169
+
170
+ Args:
171
+ x (int): The x-coordinate of the top-left corner.
172
+ y (int): The y-coordinate of the top-left corner.
173
+ window_handle (str): The handle of the window to move.
174
+
175
+ Returns:
176
+ Position: An object representing the new window position.
177
+ """
178
+
179
+ ...
180
+
181
+ @abstractmethod
182
+ def set_window_rect(
183
+ self,
184
+ x: Optional[int] = None,
185
+ y: Optional[int] = None,
186
+ width: Optional[int] = None,
187
+ height: Optional[int] = None,
188
+ ) -> Rectangle:
189
+ """
190
+ Sets the position and size of the current window.
191
+
192
+ Args:
193
+ x (Optional[int]): The x-coordinate of the top-left corner.
194
+ y (Optional[int]): The y-coordinate of the top-left corner.
195
+ width (Optional[int]): The new width of the window.
196
+ height (Optional[int]): The new height of the window.
197
+
198
+ Returns:
199
+ Rectangle: An object representing the new window rectangle.
200
+ """
201
+
202
+ ...
203
+
204
+ @abstractmethod
205
+ def set_window_size(self, width: int, height: int, window_handle: str = "current") -> None:
206
+ """
207
+ Sets the size of a window.
208
+
209
+ Args:
210
+ width (int): The new width in pixels.
211
+ height (int): The new height in pixels.
212
+ window_handle (str): The handle of the window to resize.
213
+ """
214
+
215
+ ...
216
+
217
+ @abstractmethod
218
+ def switch_to(self) -> AbstractSwitchTo:
219
+ """
220
+ Returns an object to switch context to another frame, window, or alert.
221
+
222
+ Returns:
223
+ AbstractSwitchTo: The SwitchTo instance for context switching.
224
+ """
225
+
226
+ ...
227
+
228
+ @abstractmethod
229
+ def window_handles(self) -> List[str]:
230
+ """
231
+ Returns the handles of all windows within the current session.
232
+
233
+ Returns:
234
+ List[str]: A list of window handles.
235
+ """
236
+
237
+ ...
@@ -0,0 +1,18 @@
1
+ from abc import ABC
2
+ from osn_selenium.abstract.webdriver.blink import (
3
+ AbstractBlinkWebDriver
4
+ )
5
+
6
+
7
+ __all__ = ["AbstractEdgeWebDriver"]
8
+
9
+
10
+ class AbstractEdgeWebDriver(AbstractBlinkWebDriver, ABC):
11
+ """
12
+ Abstract composite class representing a full Edge WebDriver.
13
+
14
+ Combines lifecycle, settings, and base functionality for Edge browser.
15
+ Serves as the main entry point for abstract Edge implementations.
16
+ """
17
+
18
+ pass
@@ -0,0 +1,36 @@
1
+ from typing import Optional
2
+ from abc import abstractmethod
3
+ from selenium.webdriver.edge.webdriver import (
4
+ WebDriver as legacyWebDriver
5
+ )
6
+ from osn_selenium.abstract.webdriver.blink.base import (
7
+ AbstractBlinkBaseMixin
8
+ )
9
+
10
+
11
+ __all__ = ["AbstractEdgeBaseMixin"]
12
+
13
+
14
+ class AbstractEdgeBaseMixin(AbstractBlinkBaseMixin):
15
+ """
16
+ Abstract mixin defining the base interface for Edge WebDriver.
17
+
18
+ This class serves as a foundational component for Edge WebDriver implementations,
19
+ providing access to the underlying Selenium WebDriver instance.
20
+ """
21
+
22
+ @property
23
+ @abstractmethod
24
+ def driver(self) -> Optional[legacyWebDriver]:
25
+ """
26
+ Gets the underlying Selenium WebDriver instance associated with this object.
27
+
28
+ This property provides direct access to the WebDriver object (e.g., Edge)
29
+ that is being controlled, allowing for direct Selenium operations if needed.
30
+
31
+ Returns:
32
+ Optional[legacyWebDriver]:
33
+ The active WebDriver instance, or None if no driver is currently set or active.
34
+ """
35
+
36
+ ...
@@ -0,0 +1,92 @@
1
+ from typing import Optional
2
+ from abc import abstractmethod
3
+ from osn_selenium.models import WindowRect
4
+ from osn_selenium._typehints import PATH_TYPEHINT
5
+ from osn_selenium.flags.models.edge import EdgeFlags
6
+ from osn_selenium.abstract.webdriver.blink.lifecycle import (
7
+ AbstractBlinkLifecycleMixin
8
+ )
9
+
10
+
11
+ __all__ = ["AbstractEdgeLifecycleMixin"]
12
+
13
+
14
+ class AbstractEdgeLifecycleMixin(AbstractBlinkLifecycleMixin):
15
+ """
16
+ Abstract mixin managing the lifecycle of a Edge WebDriver session.
17
+
18
+ Defines the contract for creating, starting, and restarting the Edge browser
19
+ and its associated WebDriver service.
20
+ """
21
+
22
+ @abstractmethod
23
+ def restart_webdriver(
24
+ self,
25
+ flags: Optional[EdgeFlags] = None,
26
+ browser_exe: Optional[PATH_TYPEHINT] = None,
27
+ browser_name_in_system: Optional[str] = None,
28
+ use_browser_exe: Optional[bool] = None,
29
+ start_page_url: Optional[str] = None,
30
+ window_rect: Optional[WindowRect] = None,
31
+ ):
32
+ """
33
+ Restarts the WebDriver and browser session gracefully.
34
+
35
+ Performs a clean restart by first closing the existing WebDriver session and browser
36
+ (using `close_webdriver`), and then initiating a new session (using `start_webdriver`)
37
+ with potentially updated settings. If settings arguments are provided, they override
38
+ the existing settings for the new session; otherwise, the current settings are used.
39
+
40
+ Args:
41
+ flags (Optional[EdgeFlags]): Override flags for the new session.
42
+ If provided, these flags will be applied. If `None`, current settings are used.
43
+ browser_exe (Optional[PATH_TYPEHINT]): Override browser executable for the new session.
44
+ If provided, this path will be used. If `None`, current settings are used.
45
+ browser_name_in_system (Optional[str]): Override browser name for auto-detection for the new session.
46
+ Only takes effect if `use_browser_exe` is also provided. If `None`, current settings are used.
47
+ use_browser_exe (Optional[bool]): Override auto-detection behavior for the new session.
48
+ If provided, this boolean determines if the browser executable is auto-detected.
49
+ If `None`, current settings are used.
50
+ start_page_url (Optional[str]): Override start page URL for the new session.
51
+ If provided, this URL will be used. If `None`, current setting is used.
52
+ window_rect (Optional[WindowRect]): Override window rectangle for the new session.
53
+ If provided, these dimensions will be used. If `None`, current settings are used.
54
+ """
55
+
56
+ ...
57
+
58
+ @abstractmethod
59
+ def start_webdriver(
60
+ self,
61
+ flags: Optional[EdgeFlags] = None,
62
+ browser_exe: Optional[PATH_TYPEHINT] = None,
63
+ browser_name_in_system: Optional[str] = None,
64
+ use_browser_exe: Optional[bool] = None,
65
+ start_page_url: Optional[str] = None,
66
+ window_rect: Optional[WindowRect] = None,
67
+ ):
68
+ """
69
+ Starts the WebDriver service and the browser session.
70
+
71
+ Initializes and starts the WebDriver instance and the associated browser process.
72
+ It first updates settings based on provided parameters (if the driver is not already running),
73
+ checks if a browser process needs to be started, starts it if necessary using Popen,
74
+ waits for it to become active, and then creates the WebDriver client instance (`self.driver`).
75
+
76
+ Args:
77
+ flags (Optional[EdgeFlags]): Override flags for this start.
78
+ If provided, these flags will be applied. If `None`, current settings are used.
79
+ browser_exe (Optional[PATH_TYPEHINT]): Override browser executable path for this start.
80
+ If provided, this path will be used. If `None`, current settings are used.
81
+ browser_name_in_system (Optional[str]): Override browser name for auto-detection for this start.
82
+ Only takes effect if `use_browser_exe` is also provided. If `None`, current settings are used.
83
+ use_browser_exe (Optional[bool]): Override auto-detection behavior for this start.
84
+ If provided, this boolean determines if the browser executable is auto-detected.
85
+ If `None`, current settings are used.
86
+ start_page_url (Optional[str]): Override start page URL for this start.
87
+ If provided, this URL will be used. If `None`, current setting is used.
88
+ window_rect (Optional[WindowRect]): Override window rectangle for this start.
89
+ If provided, these dimensions will be used. If `None`, current settings are used.
90
+ """
91
+
92
+ ...
@@ -0,0 +1,110 @@
1
+ from typing import Optional
2
+ from abc import abstractmethod
3
+ from osn_selenium.models import WindowRect
4
+ from osn_selenium._typehints import PATH_TYPEHINT
5
+ from osn_selenium.flags.models.edge import EdgeFlags
6
+ from osn_selenium.abstract.webdriver.blink.settings import (
7
+ AbstractBlinkSettingsMixin
8
+ )
9
+
10
+
11
+ __all__ = ["AbstractEdgeSettingsMixin"]
12
+
13
+
14
+ class AbstractEdgeSettingsMixin(AbstractBlinkSettingsMixin):
15
+ """
16
+ Abstract mixin for managing Edge browser settings.
17
+
18
+ Provides methods to update or reset configuration parameters such as flags,
19
+ executable paths, and window dimensions for the Edge WebDriver.
20
+ """
21
+
22
+ @abstractmethod
23
+ def reset_settings(
24
+ self,
25
+ flags: Optional[EdgeFlags] = None,
26
+ browser_exe: Optional[PATH_TYPEHINT] = None,
27
+ browser_name_in_system: Optional[str] = None,
28
+ use_browser_exe: Optional[bool] = None,
29
+ start_page_url: str = "",
30
+ window_rect: Optional[WindowRect] = None,
31
+ ):
32
+ """
33
+ Resets various configurable browser settings to their specified or default values.
34
+
35
+ This method allows for reconfiguring the WebDriver's operational parameters,
36
+ such as browser flags, executable path, start URL, window dimensions, and
37
+ concurrency limits. It is crucial that the browser session is *not* active
38
+ when this method is called; otherwise, a warning will be issued, and no changes
39
+ will be applied.
40
+
41
+ Args:
42
+ flags (Optional[EdgeFlags]): New browser flags to apply.
43
+ If provided, existing flags are cleared and replaced with these.
44
+ If `None`, all custom flags are cleared, and the browser will start with default flags.
45
+ browser_exe (Optional[PATH_TYPEHINT]): The explicit path to the browser executable.
46
+ If provided, this path will be used. If `None`, the executable path managed by the
47
+ flags manager will be cleared, and then potentially re-detected based on
48
+ `use_browser_exe` and `browser_name_in_system`.
49
+ browser_name_in_system (Optional[str]): The common name of the browser (e.g., "Edge").
50
+ Used in conjunction with `use_browser_exe` to automatically detect the browser executable path.
51
+ This parameter only takes effect if `use_browser_exe` is explicitly `True` or `False`.
52
+ If `None`, no automatic detection based on name will occur through this method call.
53
+ use_browser_exe (Optional[bool]): Controls the automatic detection of the browser executable.
54
+ If `True` (and `browser_name_in_system` is provided), the browser executable path
55
+ will be automatically detected if `browser_exe` is `None`.
56
+ If `False` (and `browser_name_in_system` is provided), any existing `browser_exe`
57
+ path in the flags manager will be cleared.
58
+ If `None`, the current `use_browser_exe` state is maintained for the `_detect_browser_exe` logic.
59
+ start_page_url (str): The URL that the browser will attempt to navigate to
60
+ immediately after starting. Defaults to an empty string.
61
+ window_rect (Optional[WindowRect]): The initial window size and position settings.
62
+ If `None`, it defaults to a new `WindowRect()` instance, effectively resetting
63
+ to the browser's default window behavior.
64
+ """
65
+
66
+ ...
67
+
68
+ @abstractmethod
69
+ def update_settings(
70
+ self,
71
+ flags: Optional[EdgeFlags] = None,
72
+ browser_exe: Optional[PATH_TYPEHINT] = None,
73
+ browser_name_in_system: Optional[str] = None,
74
+ use_browser_exe: Optional[bool] = None,
75
+ start_page_url: Optional[str] = None,
76
+ window_rect: Optional[WindowRect] = None,
77
+ ):
78
+ """
79
+ Updates various browser settings selectively without resetting others.
80
+
81
+ This method allows for dynamic updating of browser settings. Only the settings
82
+ for which a non-None value is provided will be updated. Settings passed as `None`
83
+ will retain their current values. This method can be called whether the browser
84
+ is active or not, but some changes might only take effect after the browser is
85
+ restarted.
86
+
87
+ Args:
88
+ flags (Optional[EdgeFlags]): New browser flags to update.
89
+ If provided, these flags will be merged with or overwrite existing flags
90
+ within the flags manager. If `None`, existing flags remain unchanged.
91
+ browser_exe (Optional[PATH_TYPEHINT]): The new path to the browser executable.
92
+ If provided, this path will be set in the flags manager. If `None`, the
93
+ current browser executable path remains unchanged.
94
+ browser_name_in_system (Optional[str]): The common name of the browser (e.g., "Edge").
95
+ Used in conjunction with `use_browser_exe` to automatically detect the browser executable path.
96
+ This parameter only takes effect if `use_browser_exe` is explicitly provided.
97
+ If `None`, no automatic detection based on name will occur through this method call.
98
+ use_browser_exe (Optional[bool]): Controls the automatic detection of the browser executable.
99
+ If `True` (and `browser_name_in_system` is provided), the browser executable path
100
+ will be automatically detected if `browser_exe` is `None`.
101
+ If `False` (and `browser_name_in_system` is provided), any existing `browser_exe`
102
+ path in the flags manager will be cleared.
103
+ If `None`, the current `use_browser_exe` state is maintained for the `_detect_browser_exe` logic.
104
+ start_page_url (Optional[str]): The new URL that the browser will attempt to navigate to
105
+ immediately after starting. If `None`, the current start page URL remains unchanged.
106
+ window_rect (Optional[WindowRect]): The new window size and position settings.
107
+ If `None`, the current window rectangle settings remain unchanged.
108
+ """
109
+
110
+ ...
@@ -0,0 +1,18 @@
1
+ from abc import ABC
2
+ from osn_selenium.abstract.webdriver.chrome import (
3
+ AbstractChromeWebDriver
4
+ )
5
+
6
+
7
+ __all__ = ["AbstractYandexWebDriver"]
8
+
9
+
10
+ class AbstractYandexWebDriver(AbstractChromeWebDriver, ABC):
11
+ """
12
+ Abstract composite class representing a full Yandex WebDriver.
13
+
14
+ Combines lifecycle, settings, and base functionality for Yandex browser.
15
+ Serves as the main entry point for abstract Yandex implementations.
16
+ """
17
+
18
+ pass
@@ -0,0 +1,18 @@
1
+ from abc import ABC
2
+ from osn_selenium.abstract.webdriver.chrome.base import (
3
+ AbstractChromeBaseMixin
4
+ )
5
+
6
+
7
+ __all__ = ["AbstractYandexBaseMixin"]
8
+
9
+
10
+ class AbstractYandexBaseMixin(AbstractChromeBaseMixin, ABC):
11
+ """
12
+ Abstract mixin defining the base interface for Yandex WebDriver.
13
+
14
+ This class serves as a foundational component for Yandex WebDriver implementations,
15
+ providing access to the underlying Selenium WebDriver instance.
16
+ """
17
+
18
+ pass
@@ -0,0 +1,92 @@
1
+ from typing import Optional
2
+ from abc import abstractmethod
3
+ from osn_selenium.models import WindowRect
4
+ from osn_selenium._typehints import PATH_TYPEHINT
5
+ from osn_selenium.flags.models.yandex import YandexFlags
6
+ from osn_selenium.abstract.webdriver.chrome.lifecycle import (
7
+ AbstractChromeLifecycleMixin
8
+ )
9
+
10
+
11
+ __all__ = ["AbstractYandexLifecycleMixin"]
12
+
13
+
14
+ class AbstractYandexLifecycleMixin(AbstractChromeLifecycleMixin):
15
+ """
16
+ Abstract mixin managing the lifecycle of a Yandex WebDriver session.
17
+
18
+ Defines the contract for creating, starting, and restarting the Yandex browser
19
+ and its associated WebDriver service.
20
+ """
21
+
22
+ @abstractmethod
23
+ def restart_webdriver(
24
+ self,
25
+ flags: Optional[YandexFlags] = None,
26
+ browser_exe: Optional[PATH_TYPEHINT] = None,
27
+ browser_name_in_system: Optional[str] = None,
28
+ use_browser_exe: Optional[bool] = None,
29
+ start_page_url: Optional[str] = None,
30
+ window_rect: Optional[WindowRect] = None,
31
+ ):
32
+ """
33
+ Restarts the WebDriver and browser session gracefully.
34
+
35
+ Performs a clean restart by first closing the existing WebDriver session and browser
36
+ (using `close_webdriver`), and then initiating a new session (using `start_webdriver`)
37
+ with potentially updated settings. If settings arguments are provided, they override
38
+ the existing settings for the new session; otherwise, the current settings are used.
39
+
40
+ Args:
41
+ flags (Optional[YandexFlags]): Override flags for the new session.
42
+ If provided, these flags will be applied. If `None`, current settings are used.
43
+ browser_exe (Optional[PATH_TYPEHINT]): Override browser executable for the new session.
44
+ If provided, this path will be used. If `None`, current settings are used.
45
+ browser_name_in_system (Optional[str]): Override browser name for auto-detection for the new session.
46
+ Only takes effect if `use_browser_exe` is also provided. If `None`, current settings are used.
47
+ use_browser_exe (Optional[bool]): Override auto-detection behavior for the new session.
48
+ If provided, this boolean determines if the browser executable is auto-detected.
49
+ If `None`, current settings are used.
50
+ start_page_url (Optional[str]): Override start page URL for the new session.
51
+ If provided, this URL will be used. If `None`, current setting is used.
52
+ window_rect (Optional[WindowRect]): Override window rectangle for the new session.
53
+ If provided, these dimensions will be used. If `None`, current settings are used.
54
+ """
55
+
56
+ ...
57
+
58
+ @abstractmethod
59
+ def start_webdriver(
60
+ self,
61
+ flags: Optional[YandexFlags] = None,
62
+ browser_exe: Optional[PATH_TYPEHINT] = None,
63
+ browser_name_in_system: Optional[str] = None,
64
+ use_browser_exe: Optional[bool] = None,
65
+ start_page_url: Optional[str] = None,
66
+ window_rect: Optional[WindowRect] = None,
67
+ ):
68
+ """
69
+ Starts the WebDriver service and the browser session.
70
+
71
+ Initializes and starts the WebDriver instance and the associated browser process.
72
+ It first updates settings based on provided parameters (if the driver is not already running),
73
+ checks if a browser process needs to be started, starts it if necessary using Popen,
74
+ waits for it to become active, and then creates the WebDriver client instance (`self.driver`).
75
+
76
+ Args:
77
+ flags (Optional[YandexFlags]): Override flags for this start.
78
+ If provided, these flags will be applied. If `None`, current settings are used.
79
+ browser_exe (Optional[PATH_TYPEHINT]): Override browser executable path for this start.
80
+ If provided, this path will be used. If `None`, current settings are used.
81
+ browser_name_in_system (Optional[str]): Override browser name for auto-detection for this start.
82
+ Only takes effect if `use_browser_exe` is also provided. If `None`, current settings are used.
83
+ use_browser_exe (Optional[bool]): Override auto-detection behavior for this start.
84
+ If provided, this boolean determines if the browser executable is auto-detected.
85
+ If `None`, current settings are used.
86
+ start_page_url (Optional[str]): Override start page URL for this start.
87
+ If provided, this URL will be used. If `None`, current setting is used.
88
+ window_rect (Optional[WindowRect]): Override window rectangle for this start.
89
+ If provided, these dimensions will be used. If `None`, current settings are used.
90
+ """
91
+
92
+ ...