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.edge import EdgeFlags
5
+ from osn_selenium.webdrivers.unified.edge.settings import (
6
+ UnifiedEdgeSettingsMixin
7
+ )
8
+ from osn_selenium.abstract.webdriver.edge.settings import (
9
+ AbstractEdgeSettingsMixin
10
+ )
11
+
12
+
13
+ __all__ = ["EdgeSettingsMixin"]
14
+
15
+
16
+ class EdgeSettingsMixin(UnifiedEdgeSettingsMixin, AbstractEdgeSettingsMixin):
17
+ """
18
+ Mixin for configuring and updating settings of the Edge 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[EdgeFlags] = 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[EdgeFlags] = 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,102 @@
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.models.yandex import YandexFlags
9
+ from osn_selenium.flags.yandex import YandexFlagsManager
10
+ from osn_selenium.webdrivers.sync.chrome import ChromeWebDriver
11
+ from osn_selenium.webdrivers.sync.yandex.base import YandexBaseMixin
12
+ from osn_selenium.webdrivers.sync.yandex.settings import YandexSettingsMixin
13
+ from osn_selenium.webdrivers.sync.yandex.lifecycle import YandexLifecycleMixin
14
+ from osn_selenium.abstract.webdriver.yandex import (
15
+ AbstractYandexWebDriver
16
+ )
17
+
18
+
19
+ __all__ = ["YandexWebDriver"]
20
+
21
+
22
+ class YandexWebDriver(
23
+ YandexBaseMixin,
24
+ YandexLifecycleMixin,
25
+ YandexSettingsMixin,
26
+ ChromeWebDriver,
27
+ AbstractYandexWebDriver,
28
+ ):
29
+ def __init__(
30
+ self,
31
+ webdriver_path: str,
32
+ flags_manager_type: Type[YandexFlagsManager] = YandexFlagsManager,
33
+ use_browser_exe: bool = True,
34
+ browser_name_in_system: str = "Yandex",
35
+ browser_exe: Optional[PATH_TYPEHINT] = None,
36
+ flags: Optional[YandexFlags] = None,
37
+ start_page_url: str = "about:blank",
38
+ implicitly_wait: int = 5,
39
+ page_load_timeout: int = 5,
40
+ script_timeout: int = 5,
41
+ window_rect: Optional[WindowRect] = None,
42
+ cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
43
+ ignore_cdp_version_package_missing: bool = True,
44
+ ):
45
+ """
46
+ Initializes the synchronous Yandex WebDriver with specified configuration.
47
+
48
+ Args:
49
+ webdriver_path (str): Path to the YandexDriver executable.
50
+ flags_manager_type (Type[YandexFlagsManager]): The class type used for managing Yandex flags.
51
+ Defaults to YandexFlagsManager.
52
+ use_browser_exe (bool): Whether to use a specific browser executable path or auto-detect.
53
+ Defaults to True.
54
+ browser_name_in_system (str): The name of the browser in the system registry or path.
55
+ Defaults to "Yandex".
56
+ browser_exe (Optional[PATH_TYPEHINT]): Explicit path to the Yandex browser executable.
57
+ If None, it may be auto-detected based on other parameters.
58
+ flags (Optional[YandexFlags]): Initial set of flags to configure the Yandex instance.
59
+ start_page_url (str): The URL to navigate to immediately upon startup.
60
+ Defaults to "about:blank".
61
+ implicitly_wait (int): Default implicit wait time in seconds. Defaults to 5.
62
+ page_load_timeout (int): Default page load timeout in seconds. Defaults to 5.
63
+ script_timeout (int): Default script execution timeout in seconds. Defaults to 5.
64
+ window_rect (Optional[WindowRect]): Initial window dimensions and position.
65
+ If None, browser defaults are used.
66
+ cdp_versioned_packages_paths (Optional[Mapping[int, PATH_TYPEHINT]]): Custom local paths for specific CDP versions packages.
67
+ ignore_cdp_version_package_missing (bool): Whether to ignore missing CDP package errors.
68
+ """
69
+
70
+ ChromeWebDriver.__init__(
71
+ self,
72
+ browser_exe=browser_exe,
73
+ browser_name_in_system=browser_name_in_system,
74
+ webdriver_path=webdriver_path,
75
+ use_browser_exe=use_browser_exe,
76
+ flags_manager_type=flags_manager_type,
77
+ flags=flags,
78
+ implicitly_wait=implicitly_wait,
79
+ page_load_timeout=page_load_timeout,
80
+ script_timeout=script_timeout,
81
+ window_rect=window_rect,
82
+ cdp_versioned_packages_paths=cdp_versioned_packages_paths,
83
+ ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
84
+ )
85
+
86
+ YandexBaseMixin.__init__(
87
+ self,
88
+ browser_exe=browser_exe,
89
+ browser_name_in_system=browser_name_in_system,
90
+ use_browser_exe=use_browser_exe,
91
+ webdriver_path=webdriver_path,
92
+ architecture="sync",
93
+ flags_manager_type=flags_manager_type,
94
+ flags=flags,
95
+ start_page_url=start_page_url,
96
+ implicitly_wait=implicitly_wait,
97
+ page_load_timeout=page_load_timeout,
98
+ script_timeout=script_timeout,
99
+ window_rect=window_rect,
100
+ cdp_versioned_packages_paths=cdp_versioned_packages_paths,
101
+ ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
102
+ )
@@ -0,0 +1,111 @@
1
+ from osn_selenium.models import WindowRect
2
+ from typing import (
3
+ Mapping,
4
+ Optional,
5
+ Type
6
+ )
7
+ from osn_selenium.flags.models.yandex import YandexFlags
8
+ from osn_selenium.flags.yandex import YandexFlagsManager
9
+ from osn_selenium.webdrivers.sync.chrome.base import ChromeBaseMixin
10
+ from osn_selenium._typehints import (
11
+ ARCHITECTURES_TYPEHINT,
12
+ PATH_TYPEHINT
13
+ )
14
+ from osn_selenium.webdrivers.unified.yandex.base import (
15
+ UnifiedYandexBaseMixin
16
+ )
17
+ from osn_selenium.abstract.webdriver.yandex.base import (
18
+ AbstractYandexBaseMixin
19
+ )
20
+
21
+
22
+ __all__ = ["YandexBaseMixin"]
23
+
24
+
25
+ class YandexBaseMixin(UnifiedYandexBaseMixin, ChromeBaseMixin, AbstractYandexBaseMixin):
26
+ """
27
+ Base mixin for Yandex WebDrivers handling core initialization and state management.
28
+
29
+ This class serves as the foundation for browser-specific implementations, managing
30
+ the WebDriver executable path, configuration flags, timeouts, and the active
31
+ driver instance.
32
+ """
33
+
34
+ def __init__(
35
+ self,
36
+ webdriver_path: str,
37
+ architecture: ARCHITECTURES_TYPEHINT,
38
+ flags_manager_type: Type[YandexFlagsManager] = YandexFlagsManager,
39
+ use_browser_exe: bool = True,
40
+ browser_name_in_system: str = "Yandex",
41
+ browser_exe: Optional[PATH_TYPEHINT] = None,
42
+ flags: Optional[YandexFlags] = None,
43
+ start_page_url: str = "about:blank",
44
+ implicitly_wait: int = 5,
45
+ page_load_timeout: int = 5,
46
+ script_timeout: int = 5,
47
+ window_rect: Optional[WindowRect] = None,
48
+ cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
49
+ ignore_cdp_version_package_missing: bool = True,
50
+ ):
51
+ """
52
+ Initializes the synchronous Yandex WebDriver mixin with specified configuration.
53
+
54
+ Args:
55
+ webdriver_path (str): Path to the YandexDriver executable.
56
+ architecture (ARCHITECTURE_TYPEHINT): System architecture.
57
+ flags_manager_type (Type[YandexFlagsManager]): The class type used for managing Yandex flags.
58
+ Defaults to YandexFlagsManager.
59
+ use_browser_exe (bool): Whether to use a specific browser executable path or auto-detect.
60
+ Defaults to True.
61
+ browser_name_in_system (str): The name of the browser in the system registry or path.
62
+ Defaults to "Yandex".
63
+ browser_exe (Optional[PATH_TYPEHINT]): Explicit path to the Yandex browser executable.
64
+ If None, it may be auto-detected based on other parameters.
65
+ flags (Optional[YandexFlags]): Initial set of flags to configure the Yandex instance.
66
+ start_page_url (str): The URL to navigate to immediately upon startup.
67
+ Defaults to "about:blank".
68
+ implicitly_wait (int): Default implicit wait time in seconds. Defaults to 5.
69
+ page_load_timeout (int): Default page load timeout in seconds. Defaults to 5.
70
+ script_timeout (int): Default script execution timeout in seconds. Defaults to 5.
71
+ window_rect (Optional[WindowRect]): Initial window dimensions and position.
72
+ If None, browser defaults are used.
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
+ ChromeBaseMixin.__init__(
78
+ self,
79
+ browser_exe=browser_exe,
80
+ browser_name_in_system=browser_name_in_system,
81
+ use_browser_exe=use_browser_exe,
82
+ webdriver_path=webdriver_path,
83
+ architecture=architecture,
84
+ flags_manager_type=flags_manager_type,
85
+ flags=flags,
86
+ start_page_url=start_page_url,
87
+ implicitly_wait=implicitly_wait,
88
+ page_load_timeout=page_load_timeout,
89
+ script_timeout=script_timeout,
90
+ window_rect=window_rect,
91
+ cdp_versioned_packages_paths=cdp_versioned_packages_paths,
92
+ ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
93
+ )
94
+
95
+ UnifiedYandexBaseMixin.__init__(
96
+ self,
97
+ webdriver_path=webdriver_path,
98
+ architecture=architecture,
99
+ flags_manager_type=flags_manager_type,
100
+ use_browser_exe=use_browser_exe,
101
+ browser_name_in_system=browser_name_in_system,
102
+ browser_exe=browser_exe,
103
+ flags=flags,
104
+ start_page_url=start_page_url,
105
+ implicitly_wait=implicitly_wait,
106
+ page_load_timeout=page_load_timeout,
107
+ script_timeout=script_timeout,
108
+ window_rect=window_rect,
109
+ cdp_versioned_packages_paths=cdp_versioned_packages_paths,
110
+ ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
111
+ )
@@ -0,0 +1,63 @@
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.yandex import YandexFlags
5
+ from osn_selenium.webdrivers.sync.chrome import ChromeLifecycleMixin
6
+ from osn_selenium.webdrivers.unified.yandex.lifecycle import (
7
+ UnifiedYandexLifecycleMixin
8
+ )
9
+ from osn_selenium.abstract.webdriver.yandex.lifecycle import (
10
+ AbstractYandexLifecycleMixin
11
+ )
12
+
13
+
14
+ __all__ = ["YandexLifecycleMixin"]
15
+
16
+
17
+ class YandexLifecycleMixin(
18
+ UnifiedYandexLifecycleMixin,
19
+ ChromeLifecycleMixin,
20
+ AbstractYandexLifecycleMixin
21
+ ):
22
+ """
23
+ Mixin for managing the lifecycle of the Yandex WebDriver.
24
+
25
+ Handles the creation, startup, shutdown, and restarting processes of the
26
+ underlying browser instance, ensuring clean session management.
27
+ """
28
+
29
+ def restart_webdriver(
30
+ self,
31
+ flags: Optional[YandexFlags] = None,
32
+ browser_exe: Optional[PATH_TYPEHINT] = None,
33
+ browser_name_in_system: Optional[str] = None,
34
+ use_browser_exe: Optional[bool] = None,
35
+ start_page_url: Optional[str] = None,
36
+ window_rect: Optional[WindowRect] = None,
37
+ ) -> None:
38
+ self._restart_webdriver_impl(
39
+ flags=flags,
40
+ browser_exe=browser_exe,
41
+ browser_name_in_system=browser_name_in_system,
42
+ use_browser_exe=use_browser_exe,
43
+ start_page_url=start_page_url,
44
+ window_rect=window_rect,
45
+ )
46
+
47
+ def start_webdriver(
48
+ self,
49
+ flags: Optional[YandexFlags] = None,
50
+ browser_exe: Optional[PATH_TYPEHINT] = None,
51
+ browser_name_in_system: Optional[str] = None,
52
+ use_browser_exe: Optional[bool] = None,
53
+ start_page_url: Optional[str] = None,
54
+ window_rect: Optional[WindowRect] = None,
55
+ ) -> None:
56
+ self._start_webdriver_impl(
57
+ flags=flags,
58
+ browser_exe=browser_exe,
59
+ browser_name_in_system=browser_name_in_system,
60
+ use_browser_exe=use_browser_exe,
61
+ start_page_url=start_page_url,
62
+ window_rect=window_rect,
63
+ )
@@ -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.yandex import YandexFlags
5
+ from osn_selenium.webdrivers.unified.yandex.settings import (
6
+ UnifiedYandexSettingsMixin
7
+ )
8
+ from osn_selenium.abstract.webdriver.yandex.settings import (
9
+ AbstractYandexSettingsMixin
10
+ )
11
+
12
+
13
+ __all__ = ["YandexSettingsMixin"]
14
+
15
+
16
+ class YandexSettingsMixin(UnifiedYandexSettingsMixin, AbstractYandexSettingsMixin):
17
+ """
18
+ Mixin for configuring and updating settings of the Yandex 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[YandexFlags] = 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[YandexFlags] = 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,134 @@
1
+ import trio
2
+ from osn_selenium.models import WindowRect
3
+ from typing import (
4
+ Mapping,
5
+ Optional,
6
+ Type
7
+ )
8
+ from osn_selenium._typehints import PATH_TYPEHINT
9
+ from osn_selenium.flags.blink import BlinkFlagsManager
10
+ from osn_selenium.flags.models.blink import BlinkFlags
11
+ from osn_selenium.dev_tools.settings import DevToolsSettings
12
+ from osn_selenium.webdrivers.trio_threads.core import CoreWebDriver
13
+ from osn_selenium.webdrivers.trio_threads.blink.base import BlinkBaseMixin
14
+ from osn_selenium.abstract.webdriver.blink import (
15
+ AbstractBlinkWebDriver
16
+ )
17
+ from osn_selenium.webdrivers.trio_threads.blink.casting import BlinkCastingMixin
18
+ from osn_selenium.webdrivers.trio_threads.blink.logging import BlinkLoggingMixin
19
+ from osn_selenium.webdrivers.trio_threads.blink.network import BlinkNetworkMixin
20
+ from osn_selenium.webdrivers.trio_threads.blink.features import BlinkFeaturesMixin
21
+ from osn_selenium.webdrivers.trio_threads.blink.settings import BlinkSettingsMixin
22
+ from osn_selenium.webdrivers.trio_threads.blink.lifecycle import BlinkLifecycleMixin
23
+
24
+
25
+ __all__ = ["BlinkWebDriver"]
26
+
27
+
28
+ class BlinkWebDriver(
29
+ BlinkBaseMixin,
30
+ BlinkCastingMixin,
31
+ BlinkFeaturesMixin,
32
+ BlinkLifecycleMixin,
33
+ BlinkLoggingMixin,
34
+ BlinkNetworkMixin,
35
+ BlinkSettingsMixin,
36
+ CoreWebDriver,
37
+ AbstractBlinkWebDriver,
38
+ ):
39
+ """
40
+ Concrete Blink WebDriver implementation combining all functional mixins.
41
+
42
+ This class aggregates lifecycle management, element interaction, navigation,
43
+ and browser-specific features into a single usable driver instance.
44
+ """
45
+
46
+ def __init__(
47
+ self,
48
+ browser_exe: Optional[PATH_TYPEHINT],
49
+ browser_name_in_system: str,
50
+ webdriver_path: str,
51
+ use_browser_exe: bool = True,
52
+ flags_manager_type: Type[BlinkFlagsManager] = BlinkFlagsManager,
53
+ flags: Optional[BlinkFlags] = None,
54
+ start_page_url: str = "",
55
+ implicitly_wait: int = 5,
56
+ page_load_timeout: int = 5,
57
+ script_timeout: int = 5,
58
+ window_rect: Optional[WindowRect] = None,
59
+ devtools_settings: Optional[DevToolsSettings] = None,
60
+ capacity_limiter: Optional[trio.CapacityLimiter] = None,
61
+ cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
62
+ ignore_cdp_version_package_missing: bool = True,
63
+ ):
64
+ """
65
+ Initializes the BlinkWebDriver instance.
66
+
67
+ This constructor sets up the necessary components for controlling a Blink-based browser,
68
+ including paths, flag managers, timeouts, and integration with DevTools and Trio.
69
+ It also initializes properties related to console encoding and IP pattern matching
70
+ for managing browser processes.
71
+
72
+ Args:
73
+ browser_exe (Optional[PATH_TYPEHINT]): The path to the browser executable
74
+ (e.g., `chrome.exe` or `msedge.exe`). If None, the browser executable will not be
75
+ managed directly by this class (e.g., for remote WebDriver connections where the
76
+ browser is already running).
77
+ browser_name_in_system (str): The common name of the browser executable in the system
78
+ (e.g., "Chrome", "Edge"). Used to auto-detect `browser_exe` if `use_browser_exe` is True.
79
+ webdriver_path (str): The file path to the WebDriver executable (e.g., `chromedriver.exe`).
80
+ use_browser_exe (bool): If True, the browser executable path will be
81
+ automatically determined based on `browser_name_in_system` if `browser_exe`
82
+ is not explicitly provided. If False, `browser_exe` must be None.
83
+ Defaults to True.
84
+ flags_manager_type (Type[BlinkFlagsManager]): The type of flags manager to use.
85
+ Defaults to `BlinkFlagsManager`, which is suitable for Chrome/Edge.
86
+ flags (Optional[BlinkFlags]): Initial browser flags or options
87
+ specific to Blink-based browsers. Can be a `BlinkFlags` object or a generic mapping.
88
+ Defaults to None.
89
+ start_page_url (str): The URL that the browser will attempt to navigate to
90
+ immediately after starting. Defaults to an empty string.
91
+ implicitly_wait (int): The default implicit wait time in seconds for element searches.
92
+ Defaults to 5.
93
+ page_load_timeout (int): The default page load timeout in seconds. Defaults to 5.
94
+ script_timeout (int): The default asynchronous script timeout in seconds. Defaults to 5.
95
+ window_rect (Optional[WindowRect]): The initial window size and position. If None,
96
+ the browser's default window size will be used. Defaults to None.
97
+ devtools_settings (Optional[DevToolsSettings]): Configuration for Chrome DevTools Protocol.
98
+ capacity_limiter (Optional[trio.CapacityLimiter]): A Trio capacity limiter used to
99
+ throttle concurrent thread-based operations. Defaults to None.
100
+ """
101
+
102
+ CoreWebDriver.__init__(
103
+ self,
104
+ webdriver_path=webdriver_path,
105
+ flags_manager_type=flags_manager_type,
106
+ flags=flags,
107
+ implicitly_wait=implicitly_wait,
108
+ page_load_timeout=page_load_timeout,
109
+ script_timeout=script_timeout,
110
+ window_rect=window_rect,
111
+ devtools_settings=devtools_settings,
112
+ capacity_limiter=capacity_limiter,
113
+ cdp_versioned_packages_paths=cdp_versioned_packages_paths,
114
+ ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
115
+ )
116
+
117
+ BlinkBaseMixin.__init__(
118
+ self,
119
+ browser_exe=browser_exe,
120
+ browser_name_in_system=browser_name_in_system,
121
+ use_browser_exe=use_browser_exe,
122
+ webdriver_path=webdriver_path,
123
+ architecture="trio_threads",
124
+ flags_manager_type=flags_manager_type,
125
+ flags=flags,
126
+ start_page_url=start_page_url,
127
+ implicitly_wait=implicitly_wait,
128
+ page_load_timeout=page_load_timeout,
129
+ script_timeout=script_timeout,
130
+ window_rect=window_rect,
131
+ capacity_limiter=capacity_limiter,
132
+ cdp_versioned_packages_paths=cdp_versioned_packages_paths,
133
+ ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
134
+ )
@@ -0,0 +1,143 @@
1
+ import trio
2
+ import pathlib
3
+ from osn_selenium.models import WindowRect
4
+ from typing import (
5
+ Mapping,
6
+ Optional,
7
+ Type
8
+ )
9
+ from osn_selenium.flags.blink import BlinkFlagsManager
10
+ from osn_selenium.flags.models.blink import BlinkFlags
11
+ from osn_selenium.webdrivers.trio_threads.core.base import CoreBaseMixin
12
+ from osn_selenium._typehints import (
13
+ ARCHITECTURES_TYPEHINT,
14
+ PATH_TYPEHINT
15
+ )
16
+ from osn_selenium.webdrivers.unified.blink.base import (
17
+ UnifiedBlinkBaseMixin
18
+ )
19
+ from osn_selenium.abstract.webdriver.blink.base import (
20
+ AbstractBlinkBaseMixin
21
+ )
22
+ from selenium.webdriver.chromium.webdriver import (
23
+ ChromiumDriver as legacyWebDriver
24
+ )
25
+
26
+
27
+ __all__ = ["BlinkBaseMixin"]
28
+
29
+
30
+ class BlinkBaseMixin(UnifiedBlinkBaseMixin, CoreBaseMixin, AbstractBlinkBaseMixin):
31
+ """
32
+ Base mixin for Blink WebDrivers handling core initialization and state management.
33
+
34
+ This class serves as the foundation for browser-specific implementations, managing
35
+ the WebDriver executable path, configuration flags, timeouts, and the active
36
+ driver instance.
37
+ """
38
+
39
+ def __init__(
40
+ self,
41
+ browser_exe: Optional[PATH_TYPEHINT],
42
+ browser_name_in_system: str,
43
+ webdriver_path: str,
44
+ architecture: ARCHITECTURES_TYPEHINT,
45
+ use_browser_exe: bool = True,
46
+ flags_manager_type: Type[BlinkFlagsManager] = BlinkFlagsManager,
47
+ flags: Optional[BlinkFlags] = None,
48
+ start_page_url: str = "",
49
+ implicitly_wait: int = 5,
50
+ page_load_timeout: int = 5,
51
+ script_timeout: int = 5,
52
+ window_rect: Optional[WindowRect] = None,
53
+ capacity_limiter: Optional[trio.CapacityLimiter] = None,
54
+ cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
55
+ ignore_cdp_version_package_missing: bool = True,
56
+ ):
57
+ """
58
+ Initializes the BlinkWebDriver instance.
59
+
60
+ This constructor sets up the necessary components for controlling a Blink-based browser,
61
+ including paths, flag managers, timeouts, and integration with DevTools and Trio.
62
+ It also initializes properties related to console encoding and IP pattern matching
63
+ for managing browser processes.
64
+
65
+ Args:
66
+ browser_exe (Optional[PATH_TYPEHINT]): The path to the browser executable
67
+ (e.g., `chrome.exe` or `msedge.exe`). If None, the browser executable will not be
68
+ managed directly by this class (e.g., for remote WebDriver connections where the
69
+ browser is already running).
70
+ browser_name_in_system (str): The common name of the browser executable in the system
71
+ (e.g., "Chrome", "Edge"). Used to auto-detect `browser_exe` if `use_browser_exe` is True.
72
+ webdriver_path (str): The file path to the WebDriver executable (e.g., `chromedriver.exe`).
73
+ use_browser_exe (bool): If True, the browser executable path will be
74
+ automatically determined based on `browser_name_in_system` if `browser_exe`
75
+ is not explicitly provided. If False, `browser_exe` must be None.
76
+ Defaults to True.
77
+ flags_manager_type (Type[BlinkFlagsManager]): The type of flags manager to use.
78
+ Defaults to `BlinkFlagsManager`, which is suitable for Chrome/Edge.
79
+ flags (Optional[BlinkFlags]): Initial browser flags or options
80
+ specific to Blink-based browsers. Can be a `BlinkFlags` object or a generic mapping.
81
+ Defaults to None.
82
+ start_page_url (str): The URL that the browser will attempt to navigate to
83
+ immediately after starting. Defaults to an empty string.
84
+ implicitly_wait (int): The default implicit wait time in seconds for element searches.
85
+ Defaults to 5.
86
+ page_load_timeout (int): The default page load timeout in seconds. Defaults to 5.
87
+ script_timeout (int): The default asynchronous script timeout in seconds. Defaults to 5.
88
+ window_rect (Optional[WindowRect]): The initial window size and position. If None,
89
+ the browser's default window size will be used. Defaults to None.
90
+ capacity_limiter (Optional[trio.CapacityLimiter]): A Trio capacity limiter used to
91
+ throttle concurrent thread-based operations. Defaults to None.
92
+ cdp_versioned_packages_paths (Optional[Mapping[int, PATH_TYPEHINT]]): Custom local paths for specific CDP versions packages.
93
+ ignore_cdp_version_package_missing (bool): Whether to ignore missing CDP package errors.
94
+ """
95
+
96
+ CoreBaseMixin.__init__(
97
+ self,
98
+ webdriver_path=webdriver_path,
99
+ flags_manager_type=flags_manager_type,
100
+ flags=flags,
101
+ implicitly_wait=implicitly_wait,
102
+ page_load_timeout=page_load_timeout,
103
+ script_timeout=script_timeout,
104
+ window_rect=window_rect,
105
+ capacity_limiter=capacity_limiter,
106
+ cdp_versioned_packages_paths=cdp_versioned_packages_paths,
107
+ ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
108
+ )
109
+
110
+ UnifiedBlinkBaseMixin.__init__(
111
+ self,
112
+ browser_exe=browser_exe,
113
+ browser_name_in_system=browser_name_in_system,
114
+ webdriver_path=webdriver_path,
115
+ architecture=architecture,
116
+ use_browser_exe=use_browser_exe,
117
+ flags_manager_type=flags_manager_type,
118
+ flags=flags,
119
+ start_page_url=start_page_url,
120
+ implicitly_wait=implicitly_wait,
121
+ page_load_timeout=page_load_timeout,
122
+ script_timeout=script_timeout,
123
+ window_rect=window_rect,
124
+ )
125
+
126
+ @property
127
+ def browser_exe(self) -> Optional[pathlib.Path]:
128
+ return self._browser_exe_impl
129
+
130
+ @property
131
+ def debugging_ip(self) -> Optional[str]:
132
+ return self._debugging_ip_impl
133
+
134
+ @property
135
+ def debugging_port(self) -> Optional[int]:
136
+ return self._debugging_port_impl
137
+
138
+ @property
139
+ def driver(self) -> Optional[legacyWebDriver]:
140
+ return self._driver_impl
141
+
142
+ def set_start_page_url(self, start_page_url: str) -> None:
143
+ self._webdriver_flags_manager.start_page_url = start_page_url