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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. osn_selenium/_functions.py +84 -0
  2. osn_selenium/_typehints.py +19 -0
  3. osn_selenium/abstract/executors/cdp/__init__.py +435 -0
  4. osn_selenium/abstract/executors/cdp/accessibility.py +62 -0
  5. osn_selenium/abstract/executors/cdp/animation.py +47 -0
  6. osn_selenium/abstract/executors/cdp/audits.py +39 -0
  7. osn_selenium/abstract/executors/cdp/autofill.py +34 -0
  8. osn_selenium/abstract/executors/cdp/background_service.py +22 -0
  9. osn_selenium/abstract/executors/cdp/bluetooth_emulation.py +95 -0
  10. osn_selenium/abstract/executors/cdp/browser.py +122 -0
  11. osn_selenium/abstract/executors/cdp/cache_storage.py +49 -0
  12. osn_selenium/abstract/executors/cdp/cast.py +31 -0
  13. osn_selenium/abstract/executors/cdp/console.py +18 -0
  14. osn_selenium/abstract/executors/cdp/css.py +197 -0
  15. osn_selenium/abstract/executors/cdp/debugger.py +198 -0
  16. osn_selenium/abstract/executors/cdp/device_access.py +22 -0
  17. osn_selenium/abstract/executors/cdp/device_orientation.py +14 -0
  18. osn_selenium/abstract/executors/cdp/dom.py +305 -0
  19. osn_selenium/abstract/executors/cdp/dom_debugger.py +57 -0
  20. osn_selenium/abstract/executors/cdp/dom_snapshot.py +42 -0
  21. osn_selenium/abstract/executors/cdp/dom_storage.py +31 -0
  22. osn_selenium/abstract/executors/cdp/emulation.py +259 -0
  23. osn_selenium/abstract/executors/cdp/event_breakpoints.py +18 -0
  24. osn_selenium/abstract/executors/cdp/extensions.py +31 -0
  25. osn_selenium/abstract/executors/cdp/fed_cm.py +35 -0
  26. osn_selenium/abstract/executors/cdp/fetch.py +76 -0
  27. osn_selenium/abstract/executors/cdp/file_system.py +11 -0
  28. osn_selenium/abstract/executors/cdp/headless_experimental.py +30 -0
  29. osn_selenium/abstract/executors/cdp/heap_profiler.py +73 -0
  30. osn_selenium/abstract/executors/cdp/indexed_db.py +99 -0
  31. osn_selenium/abstract/executors/cdp/input.py +158 -0
  32. osn_selenium/abstract/executors/cdp/inspector.py +14 -0
  33. osn_selenium/abstract/executors/cdp/io.py +24 -0
  34. osn_selenium/abstract/executors/cdp/layer_tree.py +61 -0
  35. osn_selenium/abstract/executors/cdp/log.py +27 -0
  36. osn_selenium/abstract/executors/cdp/media.py +14 -0
  37. osn_selenium/abstract/executors/cdp/memory.py +61 -0
  38. osn_selenium/abstract/executors/cdp/network.py +252 -0
  39. osn_selenium/abstract/executors/cdp/overlay.py +166 -0
  40. osn_selenium/abstract/executors/cdp/page.py +347 -0
  41. osn_selenium/abstract/executors/cdp/performance.py +28 -0
  42. osn_selenium/abstract/executors/cdp/performance_timeline.py +11 -0
  43. osn_selenium/abstract/executors/cdp/preload.py +14 -0
  44. osn_selenium/abstract/executors/cdp/profiler.py +54 -0
  45. osn_selenium/abstract/executors/cdp/pwa.py +46 -0
  46. osn_selenium/abstract/executors/cdp/runtime.py +176 -0
  47. osn_selenium/abstract/executors/cdp/schema.py +11 -0
  48. osn_selenium/abstract/executors/cdp/security.py +26 -0
  49. osn_selenium/abstract/executors/cdp/service_worker.py +54 -0
  50. osn_selenium/abstract/executors/cdp/storage.py +175 -0
  51. osn_selenium/abstract/executors/cdp/system_info.py +24 -0
  52. osn_selenium/abstract/executors/cdp/target.py +125 -0
  53. osn_selenium/abstract/executors/cdp/tethering.py +14 -0
  54. osn_selenium/abstract/executors/cdp/tracing.py +48 -0
  55. osn_selenium/abstract/executors/cdp/web_audio.py +19 -0
  56. osn_selenium/abstract/executors/cdp/web_authn.py +76 -0
  57. osn_selenium/abstract/executors/javascript.py +203 -0
  58. osn_selenium/abstract/instances/action_chains/__init__.py +12 -0
  59. osn_selenium/abstract/instances/action_chains/base.py +25 -0
  60. osn_selenium/abstract/instances/action_chains/click.py +93 -0
  61. osn_selenium/abstract/instances/action_chains/drag_and_drop.py +46 -0
  62. osn_selenium/abstract/instances/action_chains/hm_keyboard.py +44 -0
  63. osn_selenium/abstract/instances/action_chains/hm_move.py +104 -0
  64. osn_selenium/abstract/instances/action_chains/hm_scroll.py +75 -0
  65. osn_selenium/abstract/instances/action_chains/keyboard.py +79 -0
  66. osn_selenium/abstract/instances/action_chains/move.py +60 -0
  67. osn_selenium/abstract/instances/action_chains/scroll.py +61 -0
  68. osn_selenium/abstract/instances/action_chains/utils.py +44 -0
  69. osn_selenium/abstract/instances/alert.py +67 -0
  70. osn_selenium/abstract/instances/browser.py +76 -0
  71. osn_selenium/abstract/instances/browsing_context.py +310 -0
  72. osn_selenium/abstract/instances/dialog.py +107 -0
  73. osn_selenium/abstract/instances/fedcm.py +133 -0
  74. osn_selenium/abstract/instances/mobile.py +79 -0
  75. osn_selenium/abstract/instances/network.py +100 -0
  76. osn_selenium/abstract/instances/permissions.py +52 -0
  77. osn_selenium/abstract/instances/script.py +109 -0
  78. osn_selenium/abstract/instances/shadow_root.py +81 -0
  79. osn_selenium/abstract/instances/storage.py +98 -0
  80. osn_selenium/abstract/instances/switch_to.py +104 -0
  81. osn_selenium/abstract/instances/web_driver_wait.py +57 -0
  82. osn_selenium/abstract/instances/web_element.py +395 -0
  83. osn_selenium/abstract/instances/web_extension.py +70 -0
  84. osn_selenium/abstract/webdriver/blink/__init__.py +18 -0
  85. osn_selenium/abstract/webdriver/blink/base.py +80 -0
  86. osn_selenium/abstract/webdriver/blink/casting.py +82 -0
  87. osn_selenium/abstract/webdriver/blink/features.py +51 -0
  88. osn_selenium/abstract/webdriver/blink/lifecycle.py +76 -0
  89. osn_selenium/abstract/webdriver/blink/logging.py +40 -0
  90. osn_selenium/abstract/webdriver/blink/network.py +45 -0
  91. osn_selenium/abstract/webdriver/blink/settings.py +68 -0
  92. osn_selenium/abstract/webdriver/chrome/__init__.py +18 -0
  93. osn_selenium/abstract/webdriver/chrome/base.py +36 -0
  94. osn_selenium/abstract/webdriver/chrome/lifecycle.py +92 -0
  95. osn_selenium/abstract/webdriver/chrome/settings.py +110 -0
  96. osn_selenium/abstract/webdriver/core/__init__.py +16 -0
  97. osn_selenium/abstract/webdriver/core/actions.py +58 -0
  98. osn_selenium/abstract/webdriver/core/auth.py +145 -0
  99. osn_selenium/abstract/webdriver/core/base.py +298 -0
  100. osn_selenium/abstract/webdriver/core/capture.py +84 -0
  101. osn_selenium/abstract/webdriver/core/components.py +82 -0
  102. osn_selenium/abstract/webdriver/core/devtools.py +69 -0
  103. osn_selenium/abstract/webdriver/core/element.py +55 -0
  104. osn_selenium/abstract/webdriver/core/file.py +82 -0
  105. osn_selenium/abstract/webdriver/core/lifecycle.py +103 -0
  106. osn_selenium/abstract/webdriver/core/navigation.py +65 -0
  107. osn_selenium/abstract/webdriver/core/script.py +88 -0
  108. osn_selenium/abstract/webdriver/core/settings.py +43 -0
  109. osn_selenium/abstract/webdriver/core/storage.py +81 -0
  110. osn_selenium/abstract/webdriver/core/timeouts.py +101 -0
  111. osn_selenium/abstract/webdriver/core/window.py +237 -0
  112. osn_selenium/abstract/webdriver/edge/__init__.py +18 -0
  113. osn_selenium/abstract/webdriver/edge/base.py +36 -0
  114. osn_selenium/abstract/webdriver/edge/lifecycle.py +92 -0
  115. osn_selenium/abstract/webdriver/edge/settings.py +110 -0
  116. osn_selenium/abstract/webdriver/yandex/__init__.py +18 -0
  117. osn_selenium/abstract/webdriver/yandex/base.py +18 -0
  118. osn_selenium/abstract/webdriver/yandex/lifecycle.py +92 -0
  119. osn_selenium/abstract/webdriver/yandex/settings.py +110 -0
  120. osn_selenium/base_mixin.py +122 -0
  121. osn_selenium/browsers_handler/__init__.py +47 -17
  122. osn_selenium/browsers_handler/_linux.py +226 -0
  123. osn_selenium/browsers_handler/_windows.py +21 -14
  124. osn_selenium/browsers_handler/{types.py → models.py} +5 -2
  125. osn_selenium/dev_tools/_decorators.py +140 -0
  126. osn_selenium/dev_tools/_exception_helpers.py +116 -0
  127. osn_selenium/dev_tools/_functions.py +174 -0
  128. osn_selenium/dev_tools/_system_utils.py +35 -0
  129. osn_selenium/dev_tools/_typehints.py +32 -0
  130. osn_selenium/dev_tools/_validators.py +227 -0
  131. osn_selenium/dev_tools/_wrappers.py +95 -0
  132. osn_selenium/dev_tools/domains/__init__.py +7 -40
  133. osn_selenium/dev_tools/domains/abstract.py +98 -254
  134. osn_selenium/dev_tools/domains/fetch.py +229 -906
  135. osn_selenium/dev_tools/domains_default/fetch.py +40 -28
  136. osn_selenium/dev_tools/filters.py +40 -0
  137. osn_selenium/dev_tools/logger/main.py +226 -0
  138. osn_selenium/dev_tools/logger/models.py +232 -0
  139. osn_selenium/dev_tools/logger/target.py +258 -0
  140. osn_selenium/dev_tools/manager/__init__.py +16 -0
  141. osn_selenium/dev_tools/manager/base.py +147 -0
  142. osn_selenium/dev_tools/manager/lifecycle.py +236 -0
  143. osn_selenium/dev_tools/manager/logging.py +153 -0
  144. osn_selenium/dev_tools/manager/settings.py +89 -0
  145. osn_selenium/dev_tools/manager/targets.py +175 -0
  146. osn_selenium/dev_tools/models.py +49 -0
  147. osn_selenium/dev_tools/settings.py +135 -0
  148. osn_selenium/dev_tools/target/__init__.py +16 -0
  149. osn_selenium/dev_tools/target/base.py +438 -0
  150. osn_selenium/dev_tools/target/detach.py +54 -0
  151. osn_selenium/dev_tools/target/discovery.py +112 -0
  152. osn_selenium/dev_tools/target/events.py +120 -0
  153. osn_selenium/dev_tools/target/fingerprint.py +126 -0
  154. osn_selenium/dev_tools/target/lifecycle.py +179 -0
  155. osn_selenium/dev_tools/target/logging.py +155 -0
  156. osn_selenium/exceptions/__init__.py +1 -0
  157. osn_selenium/exceptions/base.py +9 -0
  158. osn_selenium/exceptions/configuration.py +84 -0
  159. osn_selenium/exceptions/devtools.py +114 -0
  160. osn_selenium/exceptions/flags.py +45 -0
  161. osn_selenium/exceptions/instance.py +92 -0
  162. osn_selenium/exceptions/javascript.py +31 -0
  163. osn_selenium/exceptions/logic.py +31 -0
  164. osn_selenium/exceptions/path.py +77 -0
  165. osn_selenium/exceptions/platform.py +33 -0
  166. osn_selenium/exceptions/protocol.py +86 -0
  167. osn_selenium/exceptions/webdriver.py +44 -0
  168. osn_selenium/exceptions/window.py +63 -0
  169. osn_selenium/executors/__init__.py +1 -0
  170. osn_selenium/executors/sync/__init__.py +1 -0
  171. osn_selenium/executors/sync/cdp/__init__.py +550 -0
  172. osn_selenium/executors/sync/cdp/accessibility.py +74 -0
  173. osn_selenium/executors/sync/cdp/animation.py +50 -0
  174. osn_selenium/executors/sync/cdp/audits.py +48 -0
  175. osn_selenium/executors/sync/cdp/autofill.py +39 -0
  176. osn_selenium/executors/sync/cdp/background_service.py +30 -0
  177. osn_selenium/executors/sync/cdp/bluetooth_emulation.py +101 -0
  178. osn_selenium/executors/sync/cdp/browser.py +131 -0
  179. osn_selenium/executors/sync/cdp/cache_storage.py +66 -0
  180. osn_selenium/executors/sync/cdp/cast.py +38 -0
  181. osn_selenium/executors/sync/cdp/console.py +24 -0
  182. osn_selenium/executors/sync/cdp/css.py +187 -0
  183. osn_selenium/executors/sync/cdp/debugger.py +206 -0
  184. osn_selenium/executors/sync/cdp/device_access.py +27 -0
  185. osn_selenium/executors/sync/cdp/device_orientation.py +24 -0
  186. osn_selenium/executors/sync/cdp/dom.py +310 -0
  187. osn_selenium/executors/sync/cdp/dom_debugger.py +56 -0
  188. osn_selenium/executors/sync/cdp/dom_snapshot.py +58 -0
  189. osn_selenium/executors/sync/cdp/dom_storage.py +38 -0
  190. osn_selenium/executors/sync/cdp/emulation.py +270 -0
  191. osn_selenium/executors/sync/cdp/event_breakpoints.py +27 -0
  192. osn_selenium/executors/sync/cdp/extensions.py +39 -0
  193. osn_selenium/executors/sync/cdp/fed_cm.py +45 -0
  194. osn_selenium/executors/sync/cdp/fetch.py +96 -0
  195. osn_selenium/executors/sync/cdp/file_system.py +18 -0
  196. osn_selenium/executors/sync/cdp/headless_experimental.py +44 -0
  197. osn_selenium/executors/sync/cdp/heap_profiler.py +89 -0
  198. osn_selenium/executors/sync/cdp/indexed_db.py +142 -0
  199. osn_selenium/executors/sync/cdp/input.py +233 -0
  200. osn_selenium/executors/sync/cdp/inspector.py +21 -0
  201. osn_selenium/executors/sync/cdp/io.py +33 -0
  202. osn_selenium/executors/sync/cdp/layer_tree.py +71 -0
  203. osn_selenium/executors/sync/cdp/log.py +35 -0
  204. osn_selenium/executors/sync/cdp/media.py +21 -0
  205. osn_selenium/executors/sync/cdp/memory.py +62 -0
  206. osn_selenium/executors/sync/cdp/network.py +287 -0
  207. osn_selenium/executors/sync/cdp/overlay.py +174 -0
  208. osn_selenium/executors/sync/cdp/page.py +365 -0
  209. osn_selenium/executors/sync/cdp/performance.py +33 -0
  210. osn_selenium/executors/sync/cdp/performance_timeline.py +26 -0
  211. osn_selenium/executors/sync/cdp/preload.py +21 -0
  212. osn_selenium/executors/sync/cdp/profiler.py +58 -0
  213. osn_selenium/executors/sync/cdp/pwa.py +55 -0
  214. osn_selenium/executors/sync/cdp/runtime.py +221 -0
  215. osn_selenium/executors/sync/cdp/schema.py +23 -0
  216. osn_selenium/executors/sync/cdp/security.py +30 -0
  217. osn_selenium/executors/sync/cdp/service_worker.py +56 -0
  218. osn_selenium/executors/sync/cdp/storage.py +151 -0
  219. osn_selenium/executors/sync/cdp/system_info.py +30 -0
  220. osn_selenium/executors/sync/cdp/target.py +147 -0
  221. osn_selenium/executors/sync/cdp/tethering.py +21 -0
  222. osn_selenium/executors/sync/cdp/tracing.py +62 -0
  223. osn_selenium/executors/sync/cdp/web_audio.py +24 -0
  224. osn_selenium/executors/sync/cdp/web_authn.py +82 -0
  225. osn_selenium/executors/sync/javascript.py +79 -0
  226. osn_selenium/executors/trio_threads/__init__.py +1 -0
  227. osn_selenium/executors/trio_threads/cdp/__init__.py +771 -0
  228. osn_selenium/executors/trio_threads/cdp/accessibility.py +87 -0
  229. osn_selenium/executors/trio_threads/cdp/animation.py +63 -0
  230. osn_selenium/executors/trio_threads/cdp/audits.py +57 -0
  231. osn_selenium/executors/trio_threads/cdp/autofill.py +52 -0
  232. osn_selenium/executors/trio_threads/cdp/background_service.py +40 -0
  233. osn_selenium/executors/trio_threads/cdp/bluetooth_emulation.py +111 -0
  234. osn_selenium/executors/trio_threads/cdp/browser.py +140 -0
  235. osn_selenium/executors/trio_threads/cdp/cache_storage.py +79 -0
  236. osn_selenium/executors/trio_threads/cdp/cast.py +47 -0
  237. osn_selenium/executors/trio_threads/cdp/console.py +33 -0
  238. osn_selenium/executors/trio_threads/cdp/css.py +196 -0
  239. osn_selenium/executors/trio_threads/cdp/debugger.py +219 -0
  240. osn_selenium/executors/trio_threads/cdp/device_access.py +40 -0
  241. osn_selenium/executors/trio_threads/cdp/device_orientation.py +34 -0
  242. osn_selenium/executors/trio_threads/cdp/dom.py +319 -0
  243. osn_selenium/executors/trio_threads/cdp/dom_debugger.py +69 -0
  244. osn_selenium/executors/trio_threads/cdp/dom_snapshot.py +71 -0
  245. osn_selenium/executors/trio_threads/cdp/dom_storage.py +51 -0
  246. osn_selenium/executors/trio_threads/cdp/emulation.py +283 -0
  247. osn_selenium/executors/trio_threads/cdp/event_breakpoints.py +37 -0
  248. osn_selenium/executors/trio_threads/cdp/extensions.py +52 -0
  249. osn_selenium/executors/trio_threads/cdp/fed_cm.py +54 -0
  250. osn_selenium/executors/trio_threads/cdp/fetch.py +105 -0
  251. osn_selenium/executors/trio_threads/cdp/file_system.py +31 -0
  252. osn_selenium/executors/trio_threads/cdp/headless_experimental.py +54 -0
  253. osn_selenium/executors/trio_threads/cdp/heap_profiler.py +102 -0
  254. osn_selenium/executors/trio_threads/cdp/indexed_db.py +155 -0
  255. osn_selenium/executors/trio_threads/cdp/input.py +242 -0
  256. osn_selenium/executors/trio_threads/cdp/inspector.py +34 -0
  257. osn_selenium/executors/trio_threads/cdp/io.py +42 -0
  258. osn_selenium/executors/trio_threads/cdp/layer_tree.py +84 -0
  259. osn_selenium/executors/trio_threads/cdp/log.py +44 -0
  260. osn_selenium/executors/trio_threads/cdp/media.py +30 -0
  261. osn_selenium/executors/trio_threads/cdp/memory.py +71 -0
  262. osn_selenium/executors/trio_threads/cdp/network.py +296 -0
  263. osn_selenium/executors/trio_threads/cdp/overlay.py +183 -0
  264. osn_selenium/executors/trio_threads/cdp/page.py +374 -0
  265. osn_selenium/executors/trio_threads/cdp/performance.py +46 -0
  266. osn_selenium/executors/trio_threads/cdp/performance_timeline.py +36 -0
  267. osn_selenium/executors/trio_threads/cdp/preload.py +30 -0
  268. osn_selenium/executors/trio_threads/cdp/profiler.py +71 -0
  269. osn_selenium/executors/trio_threads/cdp/pwa.py +64 -0
  270. osn_selenium/executors/trio_threads/cdp/runtime.py +230 -0
  271. osn_selenium/executors/trio_threads/cdp/schema.py +32 -0
  272. osn_selenium/executors/trio_threads/cdp/security.py +43 -0
  273. osn_selenium/executors/trio_threads/cdp/service_worker.py +69 -0
  274. osn_selenium/executors/trio_threads/cdp/storage.py +162 -0
  275. osn_selenium/executors/trio_threads/cdp/system_info.py +43 -0
  276. osn_selenium/executors/trio_threads/cdp/target.py +156 -0
  277. osn_selenium/executors/trio_threads/cdp/tethering.py +34 -0
  278. osn_selenium/executors/trio_threads/cdp/tracing.py +71 -0
  279. osn_selenium/executors/trio_threads/cdp/web_audio.py +37 -0
  280. osn_selenium/executors/trio_threads/cdp/web_authn.py +95 -0
  281. osn_selenium/executors/trio_threads/javascript.py +90 -0
  282. osn_selenium/executors/unified/__init__.py +1 -0
  283. osn_selenium/executors/unified/cdp/__init__.py +1 -0
  284. osn_selenium/executors/unified/cdp/accessibility.py +81 -0
  285. osn_selenium/executors/unified/cdp/animation.py +50 -0
  286. osn_selenium/executors/unified/cdp/audits.py +45 -0
  287. osn_selenium/executors/unified/cdp/autofill.py +41 -0
  288. osn_selenium/executors/unified/cdp/background_service.py +24 -0
  289. osn_selenium/executors/unified/cdp/bluetooth_emulation.py +132 -0
  290. osn_selenium/executors/unified/cdp/browser.py +143 -0
  291. osn_selenium/executors/unified/cdp/cache_storage.py +69 -0
  292. osn_selenium/executors/unified/cdp/cast.py +32 -0
  293. osn_selenium/executors/unified/cdp/console.py +18 -0
  294. osn_selenium/executors/unified/cdp/css.py +237 -0
  295. osn_selenium/executors/unified/cdp/debugger.py +243 -0
  296. osn_selenium/executors/unified/cdp/device_access.py +21 -0
  297. osn_selenium/executors/unified/cdp/device_orientation.py +18 -0
  298. osn_selenium/executors/unified/cdp/dom.py +380 -0
  299. osn_selenium/executors/unified/cdp/dom_debugger.py +65 -0
  300. osn_selenium/executors/unified/cdp/dom_snapshot.py +58 -0
  301. osn_selenium/executors/unified/cdp/dom_storage.py +38 -0
  302. osn_selenium/executors/unified/cdp/emulation.py +312 -0
  303. osn_selenium/executors/unified/cdp/event_breakpoints.py +24 -0
  304. osn_selenium/executors/unified/cdp/extensions.py +45 -0
  305. osn_selenium/executors/unified/cdp/fed_cm.py +51 -0
  306. osn_selenium/executors/unified/cdp/fetch.py +111 -0
  307. osn_selenium/executors/unified/cdp/file_system.py +15 -0
  308. osn_selenium/executors/unified/cdp/headless_experimental.py +38 -0
  309. osn_selenium/executors/unified/cdp/heap_profiler.py +101 -0
  310. osn_selenium/executors/unified/cdp/indexed_db.py +157 -0
  311. osn_selenium/executors/unified/cdp/input.py +254 -0
  312. osn_selenium/executors/unified/cdp/inspector.py +15 -0
  313. osn_selenium/executors/unified/cdp/io.py +29 -0
  314. osn_selenium/executors/unified/cdp/layer_tree.py +71 -0
  315. osn_selenium/executors/unified/cdp/log.py +29 -0
  316. osn_selenium/executors/unified/cdp/media.py +15 -0
  317. osn_selenium/executors/unified/cdp/memory.py +59 -0
  318. osn_selenium/executors/unified/cdp/network.py +323 -0
  319. osn_selenium/executors/unified/cdp/overlay.py +209 -0
  320. osn_selenium/executors/unified/cdp/page.py +410 -0
  321. osn_selenium/executors/unified/cdp/performance.py +27 -0
  322. osn_selenium/executors/unified/cdp/performance_timeline.py +17 -0
  323. osn_selenium/executors/unified/cdp/preload.py +15 -0
  324. osn_selenium/executors/unified/cdp/profiler.py +55 -0
  325. osn_selenium/executors/unified/cdp/pwa.py +55 -0
  326. osn_selenium/executors/unified/cdp/runtime.py +245 -0
  327. osn_selenium/executors/unified/cdp/schema.py +17 -0
  328. osn_selenium/executors/unified/cdp/security.py +27 -0
  329. osn_selenium/executors/unified/cdp/service_worker.py +62 -0
  330. osn_selenium/executors/unified/cdp/storage.py +178 -0
  331. osn_selenium/executors/unified/cdp/system_info.py +24 -0
  332. osn_selenium/executors/unified/cdp/target.py +165 -0
  333. osn_selenium/executors/unified/cdp/tethering.py +15 -0
  334. osn_selenium/executors/unified/cdp/tracing.py +62 -0
  335. osn_selenium/executors/unified/cdp/web_audio.py +18 -0
  336. osn_selenium/executors/unified/cdp/web_authn.py +103 -0
  337. osn_selenium/executors/unified/javascript.py +108 -0
  338. osn_selenium/flags/__init__.py +1 -0
  339. osn_selenium/flags/_functions.py +45 -0
  340. osn_selenium/flags/_typehints.py +34 -0
  341. osn_selenium/flags/_validators.py +101 -0
  342. osn_selenium/{webdrivers/BaseDriver/flags.py → flags/base.py} +165 -243
  343. osn_selenium/{webdrivers/Blink/flags.py → flags/blink.py} +133 -371
  344. osn_selenium/flags/chrome.py +259 -0
  345. osn_selenium/flags/edge.py +259 -0
  346. osn_selenium/flags/models/__init__.py +1 -0
  347. osn_selenium/flags/models/base.py +130 -0
  348. osn_selenium/flags/models/blink.py +263 -0
  349. osn_selenium/{webdrivers/Chrome/flags.py → flags/models/chrome.py} +25 -75
  350. osn_selenium/{webdrivers/Edge/flags.py → flags/models/edge.py} +25 -75
  351. osn_selenium/flags/models/values.py +44 -0
  352. osn_selenium/{webdrivers/Yandex/flags.py → flags/models/yandex.py} +26 -76
  353. osn_selenium/flags/yandex.py +259 -0
  354. osn_selenium/instances/__init__.py +1 -0
  355. osn_selenium/instances/_functions.py +242 -0
  356. osn_selenium/instances/_typehints.py +148 -0
  357. osn_selenium/instances/_utils.py +143 -0
  358. osn_selenium/instances/convert.py +287 -0
  359. osn_selenium/instances/protocols.py +105 -0
  360. osn_selenium/instances/sync/__init__.py +1 -0
  361. osn_selenium/instances/sync/action_chains/__init__.py +26 -0
  362. osn_selenium/instances/sync/action_chains/base.py +74 -0
  363. osn_selenium/instances/sync/action_chains/click.py +61 -0
  364. osn_selenium/instances/sync/action_chains/drag_and_drop.py +45 -0
  365. osn_selenium/instances/sync/action_chains/hm_keyboard.py +37 -0
  366. osn_selenium/instances/sync/action_chains/hm_move.py +81 -0
  367. osn_selenium/instances/sync/action_chains/hm_scroll.py +60 -0
  368. osn_selenium/instances/sync/action_chains/keyboard.py +55 -0
  369. osn_selenium/instances/sync/action_chains/move.py +46 -0
  370. osn_selenium/instances/sync/action_chains/scroll.py +43 -0
  371. osn_selenium/instances/sync/action_chains/utils.py +30 -0
  372. osn_selenium/instances/sync/alert.py +69 -0
  373. osn_selenium/instances/sync/browser.py +72 -0
  374. osn_selenium/instances/sync/browsing_context.py +193 -0
  375. osn_selenium/instances/sync/dialog.py +81 -0
  376. osn_selenium/instances/sync/fedcm.py +92 -0
  377. osn_selenium/instances/sync/mobile.py +75 -0
  378. osn_selenium/instances/sync/network.py +90 -0
  379. osn_selenium/instances/sync/permissions.py +80 -0
  380. osn_selenium/instances/sync/script.py +77 -0
  381. osn_selenium/instances/sync/shadow_root.py +91 -0
  382. osn_selenium/instances/sync/storage.py +91 -0
  383. osn_selenium/instances/sync/switch_to.py +92 -0
  384. osn_selenium/instances/sync/web_driver_wait.py +83 -0
  385. osn_selenium/instances/sync/web_element.py +179 -0
  386. osn_selenium/instances/sync/web_extension.py +77 -0
  387. osn_selenium/instances/trio_threads/__init__.py +1 -0
  388. osn_selenium/instances/trio_threads/action_chains/__init__.py +26 -0
  389. osn_selenium/instances/trio_threads/action_chains/base.py +88 -0
  390. osn_selenium/instances/trio_threads/action_chains/click.py +71 -0
  391. osn_selenium/instances/trio_threads/action_chains/drag_and_drop.py +49 -0
  392. osn_selenium/instances/trio_threads/action_chains/hm_keyboard.py +41 -0
  393. osn_selenium/instances/trio_threads/action_chains/hm_move.py +91 -0
  394. osn_selenium/instances/trio_threads/action_chains/hm_scroll.py +66 -0
  395. osn_selenium/instances/trio_threads/action_chains/keyboard.py +63 -0
  396. osn_selenium/instances/trio_threads/action_chains/move.py +52 -0
  397. osn_selenium/instances/trio_threads/action_chains/scroll.py +49 -0
  398. osn_selenium/instances/trio_threads/action_chains/utils.py +32 -0
  399. osn_selenium/instances/trio_threads/alert.py +87 -0
  400. osn_selenium/instances/trio_threads/browser.py +90 -0
  401. osn_selenium/instances/trio_threads/browsing_context.py +216 -0
  402. osn_selenium/instances/trio_threads/dialog.py +99 -0
  403. osn_selenium/instances/trio_threads/fedcm.py +110 -0
  404. osn_selenium/instances/trio_threads/mobile.py +93 -0
  405. osn_selenium/instances/trio_threads/network.py +108 -0
  406. osn_selenium/instances/trio_threads/permissions.py +102 -0
  407. osn_selenium/instances/trio_threads/script.py +95 -0
  408. osn_selenium/instances/trio_threads/shadow_root.py +123 -0
  409. osn_selenium/instances/trio_threads/storage.py +109 -0
  410. osn_selenium/instances/trio_threads/switch_to.py +124 -0
  411. osn_selenium/instances/trio_threads/web_driver_wait.py +101 -0
  412. osn_selenium/instances/trio_threads/web_element.py +217 -0
  413. osn_selenium/instances/trio_threads/web_extension.py +99 -0
  414. osn_selenium/instances/unified/__init__.py +1 -0
  415. osn_selenium/instances/unified/action_chains/__init__.py +22 -0
  416. osn_selenium/instances/unified/action_chains/base.py +31 -0
  417. osn_selenium/instances/unified/action_chains/click.py +27 -0
  418. osn_selenium/instances/unified/action_chains/drag_and_drop.py +24 -0
  419. osn_selenium/instances/unified/action_chains/hm_keyboard.py +30 -0
  420. osn_selenium/instances/unified/action_chains/hm_move.py +66 -0
  421. osn_selenium/instances/unified/action_chains/hm_scroll.py +79 -0
  422. osn_selenium/instances/unified/action_chains/keyboard.py +24 -0
  423. osn_selenium/instances/unified/action_chains/move.py +24 -0
  424. osn_selenium/instances/unified/action_chains/scroll.py +21 -0
  425. osn_selenium/instances/unified/action_chains/utils.py +19 -0
  426. osn_selenium/instances/unified/alert.py +29 -0
  427. osn_selenium/instances/unified/browser.py +33 -0
  428. osn_selenium/instances/unified/browsing_context.py +151 -0
  429. osn_selenium/instances/unified/dialog.py +42 -0
  430. osn_selenium/instances/unified/fedcm.py +48 -0
  431. osn_selenium/instances/unified/mobile.py +36 -0
  432. osn_selenium/instances/unified/network.py +50 -0
  433. osn_selenium/instances/unified/permissions.py +43 -0
  434. osn_selenium/instances/unified/script.py +38 -0
  435. osn_selenium/instances/unified/shadow_root.py +46 -0
  436. osn_selenium/instances/unified/storage.py +48 -0
  437. osn_selenium/instances/unified/switch_to.py +49 -0
  438. osn_selenium/instances/unified/web_driver_wait.py +45 -0
  439. osn_selenium/instances/unified/web_element.py +145 -0
  440. osn_selenium/instances/unified/web_extension.py +38 -0
  441. osn_selenium/javascript/__init__.py +1 -0
  442. osn_selenium/javascript/_functions.py +63 -0
  443. osn_selenium/javascript/fingerprint/__init__.py +120 -0
  444. osn_selenium/javascript/fingerprint/_decorators.py +41 -0
  445. osn_selenium/javascript/fingerprint/_detect/__init__.py +1 -0
  446. osn_selenium/javascript/fingerprint/_detect/functions.py +253 -0
  447. osn_selenium/javascript/fingerprint/_detect/templates.py +128 -0
  448. osn_selenium/javascript/fingerprint/_functions.py +35 -0
  449. osn_selenium/javascript/fingerprint/_typehints.py +27 -0
  450. osn_selenium/javascript/fingerprint/registry/__init__.py +7 -0
  451. osn_selenium/javascript/fingerprint/registry/_core_functions.py +236 -0
  452. osn_selenium/javascript/fingerprint/registry/_functions.py +923 -0
  453. osn_selenium/javascript/fingerprint/registry/_typehints.py +6 -0
  454. osn_selenium/javascript/fingerprint/registry/_utils.py +6 -0
  455. osn_selenium/javascript/fingerprint/registry/models.py +41 -0
  456. osn_selenium/javascript/fingerprint/spoof/__init__.py +1 -0
  457. osn_selenium/javascript/fingerprint/spoof/_functions.py +172 -0
  458. osn_selenium/javascript/fingerprint/spoof/_templates.py +134 -0
  459. osn_selenium/javascript/fingerprint/spoof/_typehints.py +22 -0
  460. osn_selenium/javascript/fingerprint/spoof/core_rules.py +141 -0
  461. osn_selenium/javascript/fingerprint/spoof/noise.py +51 -0
  462. osn_selenium/javascript/fingerprint/spoof/rules.py +313 -0
  463. osn_selenium/javascript/functions.py +44 -0
  464. osn_selenium/javascript/models.py +35 -0
  465. osn_selenium/javascript/scripts/start_fingerprint_detection.js +56 -0
  466. osn_selenium/models.py +139 -0
  467. osn_selenium/webdrivers/_args_helpers.py +181 -0
  468. osn_selenium/webdrivers/_bridges.py +57 -0
  469. osn_selenium/webdrivers/_decorators.py +83 -0
  470. osn_selenium/webdrivers/_executable_tables/__init__.py +1 -0
  471. osn_selenium/webdrivers/_executable_tables/functions.py +113 -0
  472. osn_selenium/webdrivers/_executable_tables/models.py +19 -0
  473. osn_selenium/webdrivers/_typehints.py +10 -0
  474. osn_selenium/webdrivers/protocols.py +50 -0
  475. osn_selenium/webdrivers/sync/__init__.py +1 -0
  476. osn_selenium/webdrivers/sync/blink/__init__.py +114 -0
  477. osn_selenium/webdrivers/sync/blink/base.py +128 -0
  478. osn_selenium/webdrivers/sync/blink/casting.py +34 -0
  479. osn_selenium/webdrivers/sync/blink/features.py +28 -0
  480. osn_selenium/webdrivers/sync/blink/lifecycle.py +66 -0
  481. osn_selenium/webdrivers/sync/blink/logging.py +25 -0
  482. osn_selenium/webdrivers/sync/blink/network.py +28 -0
  483. osn_selenium/webdrivers/sync/blink/settings.py +63 -0
  484. osn_selenium/webdrivers/sync/chrome/__init__.py +67 -0
  485. osn_selenium/webdrivers/sync/chrome/base.py +106 -0
  486. osn_selenium/webdrivers/sync/chrome/lifecycle.py +63 -0
  487. osn_selenium/webdrivers/sync/chrome/settings.py +58 -0
  488. osn_selenium/webdrivers/sync/core/__init__.py +91 -0
  489. osn_selenium/webdrivers/sync/core/actions.py +59 -0
  490. osn_selenium/webdrivers/sync/core/auth.py +77 -0
  491. osn_selenium/webdrivers/sync/core/base.py +167 -0
  492. osn_selenium/webdrivers/sync/core/capture.py +37 -0
  493. osn_selenium/webdrivers/sync/core/comonents.py +57 -0
  494. osn_selenium/webdrivers/sync/core/devtools.py +47 -0
  495. osn_selenium/webdrivers/sync/core/element.py +42 -0
  496. osn_selenium/webdrivers/sync/core/file.py +40 -0
  497. osn_selenium/webdrivers/sync/core/lifecycle.py +59 -0
  498. osn_selenium/webdrivers/sync/core/navigation.py +36 -0
  499. osn_selenium/webdrivers/sync/core/script.py +53 -0
  500. osn_selenium/webdrivers/sync/core/settings.py +35 -0
  501. osn_selenium/webdrivers/sync/core/storage.py +48 -0
  502. osn_selenium/webdrivers/sync/core/timeouts.py +59 -0
  503. osn_selenium/webdrivers/sync/core/window.py +99 -0
  504. osn_selenium/webdrivers/sync/edge/__init__.py +67 -0
  505. osn_selenium/webdrivers/sync/edge/base.py +102 -0
  506. osn_selenium/webdrivers/sync/edge/lifecycle.py +63 -0
  507. osn_selenium/webdrivers/sync/edge/settings.py +58 -0
  508. osn_selenium/webdrivers/sync/yandex/__init__.py +67 -0
  509. osn_selenium/webdrivers/sync/yandex/base.py +99 -0
  510. osn_selenium/webdrivers/sync/yandex/lifecycle.py +63 -0
  511. osn_selenium/webdrivers/sync/yandex/settings.py +58 -0
  512. osn_selenium/webdrivers/trio_threads/__init__.py +1 -0
  513. osn_selenium/webdrivers/trio_threads/blink/__init__.py +124 -0
  514. osn_selenium/webdrivers/trio_threads/blink/base.py +133 -0
  515. osn_selenium/webdrivers/trio_threads/blink/casting.py +35 -0
  516. osn_selenium/webdrivers/trio_threads/blink/features.py +29 -0
  517. osn_selenium/webdrivers/trio_threads/blink/lifecycle.py +66 -0
  518. osn_selenium/webdrivers/trio_threads/blink/logging.py +26 -0
  519. osn_selenium/webdrivers/trio_threads/blink/network.py +29 -0
  520. osn_selenium/webdrivers/trio_threads/blink/settings.py +63 -0
  521. osn_selenium/webdrivers/trio_threads/chrome/__init__.py +81 -0
  522. osn_selenium/webdrivers/trio_threads/chrome/base.py +107 -0
  523. osn_selenium/webdrivers/trio_threads/chrome/lifecycle.py +63 -0
  524. osn_selenium/webdrivers/trio_threads/chrome/settings.py +63 -0
  525. osn_selenium/webdrivers/trio_threads/core/__init__.py +109 -0
  526. osn_selenium/webdrivers/trio_threads/core/actions.py +72 -0
  527. osn_selenium/webdrivers/trio_threads/core/auth.py +88 -0
  528. osn_selenium/webdrivers/trio_threads/core/base.py +191 -0
  529. osn_selenium/webdrivers/trio_threads/core/capture.py +38 -0
  530. osn_selenium/webdrivers/trio_threads/core/comonents.py +92 -0
  531. osn_selenium/webdrivers/trio_threads/core/devtools.py +53 -0
  532. osn_selenium/webdrivers/trio_threads/core/element.py +58 -0
  533. osn_selenium/webdrivers/trio_threads/core/file.py +45 -0
  534. osn_selenium/webdrivers/trio_threads/core/lifecycle.py +60 -0
  535. osn_selenium/webdrivers/trio_threads/core/navigation.py +41 -0
  536. osn_selenium/webdrivers/trio_threads/core/script.py +59 -0
  537. osn_selenium/webdrivers/trio_threads/core/settings.py +36 -0
  538. osn_selenium/webdrivers/trio_threads/core/storage.py +54 -0
  539. osn_selenium/webdrivers/trio_threads/core/timeouts.py +60 -0
  540. osn_selenium/webdrivers/trio_threads/core/window.py +105 -0
  541. osn_selenium/webdrivers/trio_threads/edge/__init__.py +81 -0
  542. osn_selenium/webdrivers/trio_threads/edge/base.py +103 -0
  543. osn_selenium/webdrivers/trio_threads/edge/lifecycle.py +63 -0
  544. osn_selenium/webdrivers/trio_threads/edge/settings.py +63 -0
  545. osn_selenium/webdrivers/trio_threads/yandex/__init__.py +81 -0
  546. osn_selenium/webdrivers/trio_threads/yandex/base.py +100 -0
  547. osn_selenium/webdrivers/trio_threads/yandex/lifecycle.py +63 -0
  548. osn_selenium/webdrivers/trio_threads/yandex/settings.py +63 -0
  549. osn_selenium/webdrivers/unified/__init__.py +1 -0
  550. osn_selenium/webdrivers/unified/blink/__init__.py +1 -0
  551. osn_selenium/webdrivers/unified/blink/base.py +131 -0
  552. osn_selenium/webdrivers/unified/blink/casting.py +30 -0
  553. osn_selenium/webdrivers/unified/blink/features.py +22 -0
  554. osn_selenium/webdrivers/unified/blink/lifecycle.py +114 -0
  555. osn_selenium/webdrivers/unified/blink/logging.py +18 -0
  556. osn_selenium/webdrivers/unified/blink/network.py +22 -0
  557. osn_selenium/webdrivers/unified/blink/settings.py +86 -0
  558. osn_selenium/webdrivers/unified/chrome/__init__.py +1 -0
  559. osn_selenium/webdrivers/unified/chrome/base.py +54 -0
  560. osn_selenium/webdrivers/unified/chrome/lifecycle.py +88 -0
  561. osn_selenium/webdrivers/unified/chrome/settings.py +48 -0
  562. osn_selenium/webdrivers/unified/core/__init__.py +1 -0
  563. osn_selenium/webdrivers/unified/core/actions.py +43 -0
  564. osn_selenium/webdrivers/unified/core/auth.py +70 -0
  565. osn_selenium/webdrivers/unified/core/base.py +132 -0
  566. osn_selenium/webdrivers/unified/core/capture.py +32 -0
  567. osn_selenium/webdrivers/unified/core/components.py +32 -0
  568. osn_selenium/webdrivers/unified/core/devtools.py +35 -0
  569. osn_selenium/webdrivers/unified/core/element.py +24 -0
  570. osn_selenium/webdrivers/unified/core/file.py +35 -0
  571. osn_selenium/webdrivers/unified/core/lifecycle.py +84 -0
  572. osn_selenium/webdrivers/unified/core/navigation.py +31 -0
  573. osn_selenium/webdrivers/unified/core/script.py +32 -0
  574. osn_selenium/webdrivers/unified/core/settings.py +44 -0
  575. osn_selenium/webdrivers/unified/core/storage.py +37 -0
  576. osn_selenium/webdrivers/unified/core/timeouts.py +56 -0
  577. osn_selenium/webdrivers/unified/core/window.py +135 -0
  578. osn_selenium/webdrivers/unified/edge/__init__.py +1 -0
  579. osn_selenium/webdrivers/unified/edge/base.py +52 -0
  580. osn_selenium/webdrivers/unified/edge/lifecycle.py +88 -0
  581. osn_selenium/webdrivers/unified/edge/settings.py +48 -0
  582. osn_selenium/webdrivers/unified/yandex/__init__.py +1 -0
  583. osn_selenium/webdrivers/unified/yandex/base.py +54 -0
  584. osn_selenium/webdrivers/unified/yandex/lifecycle.py +58 -0
  585. osn_selenium/webdrivers/unified/yandex/settings.py +48 -0
  586. osn_selenium-1.0.0.dist-info/METADATA +239 -0
  587. osn_selenium-1.0.0.dist-info/RECORD +608 -0
  588. {osn_selenium-0.0.0.dist-info → osn_selenium-1.0.0.dist-info}/WHEEL +1 -1
  589. osn_selenium/captcha_workers/__init__.py +0 -26
  590. osn_selenium/dev_tools/_types.py +0 -22
  591. osn_selenium/dev_tools/errors.py +0 -89
  592. osn_selenium/dev_tools/logger.py +0 -558
  593. osn_selenium/dev_tools/manager.py +0 -1551
  594. osn_selenium/dev_tools/utils.py +0 -509
  595. osn_selenium/errors.py +0 -16
  596. osn_selenium/types.py +0 -118
  597. osn_selenium/webdrivers/BaseDriver/_utils.py +0 -37
  598. osn_selenium/webdrivers/BaseDriver/protocols.py +0 -2135
  599. osn_selenium/webdrivers/BaseDriver/trio_wrapper.py +0 -71
  600. osn_selenium/webdrivers/BaseDriver/webdriver.py +0 -2626
  601. osn_selenium/webdrivers/Blink/protocols.py +0 -330
  602. osn_selenium/webdrivers/Blink/webdriver.py +0 -637
  603. osn_selenium/webdrivers/Chrome/protocols.py +0 -228
  604. osn_selenium/webdrivers/Chrome/webdriver.py +0 -394
  605. osn_selenium/webdrivers/Edge/protocols.py +0 -228
  606. osn_selenium/webdrivers/Edge/webdriver.py +0 -394
  607. osn_selenium/webdrivers/Yandex/protocols.py +0 -211
  608. osn_selenium/webdrivers/Yandex/webdriver.py +0 -350
  609. osn_selenium/webdrivers/_functions.py +0 -504
  610. osn_selenium/webdrivers/types.py +0 -390
  611. osn_selenium-0.0.0.dist-info/METADATA +0 -710
  612. osn_selenium-0.0.0.dist-info/RECORD +0 -57
  613. /osn_selenium/{webdrivers/BaseDriver → abstract}/__init__.py +0 -0
  614. /osn_selenium/{webdrivers/Blink → abstract/executors}/__init__.py +0 -0
  615. /osn_selenium/{webdrivers/Chrome → abstract/instances}/__init__.py +0 -0
  616. /osn_selenium/{webdrivers/Edge → abstract/webdriver}/__init__.py +0 -0
  617. /osn_selenium/{webdrivers/Yandex → dev_tools/logger}/__init__.py +0 -0
  618. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/check_element_in_viewport.js +0 -0
  619. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_document_scroll_size.js +0 -0
  620. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_css.js +0 -0
  621. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_element_rect_in_viewport.js +0 -0
  622. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_random_element_point_in_viewport.js +0 -0
  623. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_position.js +0 -0
  624. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_rect.js +0 -0
  625. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/get_viewport_size.js +0 -0
  626. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/open_new_tab.js +0 -0
  627. /osn_selenium/{webdrivers/js_scripts → javascript/scripts}/stop_window_loading.js +0 -0
  628. {osn_selenium-0.0.0.dist-info → osn_selenium-1.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,128 @@
1
+ import pathlib
2
+ from typing import Optional, Type
3
+ from osn_selenium.models import WindowRect
4
+ from osn_selenium.flags.blink import BlinkFlagsManager
5
+ from osn_selenium.flags.models.blink import BlinkFlags
6
+ from osn_selenium.webdrivers.sync.core.base import CoreBaseMixin
7
+ from osn_selenium._typehints import (
8
+ ARCHITECTURES_TYPEHINT,
9
+ PATH_TYPEHINT
10
+ )
11
+ from osn_selenium.webdrivers.unified.blink.base import (
12
+ UnifiedBlinkBaseMixin
13
+ )
14
+ from osn_selenium.abstract.webdriver.blink.base import (
15
+ AbstractBlinkBaseMixin
16
+ )
17
+ from selenium.webdriver.chromium.webdriver import (
18
+ ChromiumDriver as legacyWebDriver
19
+ )
20
+
21
+
22
+ __all__ = ["BlinkBaseMixin"]
23
+
24
+
25
+ class BlinkBaseMixin(UnifiedBlinkBaseMixin, CoreBaseMixin, AbstractBlinkBaseMixin):
26
+ """
27
+ Base mixin for Blink 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
+ browser_exe: Optional[PATH_TYPEHINT],
37
+ browser_name_in_system: str,
38
+ webdriver_path: str,
39
+ architecture: ARCHITECTURES_TYPEHINT,
40
+ use_browser_exe: bool = True,
41
+ flags_manager_type: Type[BlinkFlagsManager] = BlinkFlagsManager,
42
+ flags: Optional[BlinkFlags] = None,
43
+ start_page_url: str = "",
44
+ implicitly_wait: int = 5,
45
+ page_load_timeout: int = 5,
46
+ script_timeout: int = 5,
47
+ window_rect: Optional[WindowRect] = None,
48
+ ):
49
+ """
50
+ Initializes the BlinkWebDriver instance.
51
+
52
+ This constructor sets up the necessary components for controlling a Blink-based browser,
53
+ including paths, flag managers, timeouts, and integration with DevTools and Trio.
54
+ It also initializes properties related to console encoding and IP pattern matching
55
+ for managing browser processes.
56
+
57
+ Args:
58
+ browser_exe (Optional[PATH_TYPEHINT]): The path to the browser executable
59
+ (e.g., `chrome.exe` or `msedge.exe`). If None, the browser executable will not be
60
+ managed directly by this class (e.g., for remote WebDriver connections where the
61
+ browser is already running).
62
+ browser_name_in_system (str): The common name of the browser executable in the system
63
+ (e.g., "Chrome", "Edge"). Used to auto-detect `browser_exe` if `use_browser_exe` is True.
64
+ webdriver_path (str): The file path to the WebDriver executable (e.g., `chromedriver.exe`).
65
+ use_browser_exe (bool): If True, the browser executable path will be
66
+ automatically determined based on `browser_name_in_system` if `browser_exe`
67
+ is not explicitly provided. If False, `browser_exe` must be None.
68
+ Defaults to True.
69
+ flags_manager_type (Type[BlinkFlagsManager]): The type of flags manager to use.
70
+ Defaults to `BlinkFlagsManager`, which is suitable for Chrome/Edge.
71
+ flags (Optional[BlinkFlags]): Initial browser flags or options
72
+ specific to Blink-based browsers. Can be a `BlinkFlags` object or a generic mapping.
73
+ Defaults to None.
74
+ start_page_url (str): The URL that the browser will attempt to navigate to
75
+ immediately after starting. Defaults to an empty string.
76
+ implicitly_wait (int): The default implicit wait time in seconds for element searches.
77
+ Defaults to 5.
78
+ page_load_timeout (int): The default page load timeout in seconds. Defaults to 5.
79
+ script_timeout (int): The default asynchronous script timeout in seconds. Defaults to 5.
80
+ window_rect (Optional[WindowRect]): The initial window size and position. If None,
81
+ the browser's default window size will be used. Defaults to None.
82
+ """
83
+
84
+ CoreBaseMixin.__init__(
85
+ self,
86
+ webdriver_path=webdriver_path,
87
+ flags_manager_type=flags_manager_type,
88
+ flags=flags,
89
+ implicitly_wait=implicitly_wait,
90
+ page_load_timeout=page_load_timeout,
91
+ script_timeout=script_timeout,
92
+ window_rect=window_rect,
93
+ )
94
+
95
+ UnifiedBlinkBaseMixin.__init__(
96
+ self,
97
+ browser_exe=browser_exe,
98
+ browser_name_in_system=browser_name_in_system,
99
+ webdriver_path=webdriver_path,
100
+ architecture=architecture,
101
+ use_browser_exe=use_browser_exe,
102
+ flags_manager_type=flags_manager_type,
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
+ )
110
+
111
+ @property
112
+ def browser_exe(self) -> Optional[pathlib.Path]:
113
+ return self._browser_exe_impl
114
+
115
+ @property
116
+ def debugging_ip(self) -> Optional[str]:
117
+ return self._debugging_ip_impl
118
+
119
+ @property
120
+ def debugging_port(self) -> Optional[int]:
121
+ return self._debugging_port_impl
122
+
123
+ @property
124
+ def driver(self) -> Optional[legacyWebDriver]:
125
+ return self._driver_impl
126
+
127
+ def set_start_page_url(self, start_page_url: str) -> None:
128
+ self._webdriver_flags_manager.start_page_url = start_page_url
@@ -0,0 +1,34 @@
1
+ from typing import Any, Dict, List
2
+ from osn_selenium.webdrivers.unified.blink.casting import (
3
+ UnifiedBlinkCastingMixin
4
+ )
5
+ from osn_selenium.abstract.webdriver.blink.casting import (
6
+ AbstractBlinkCastingMixin
7
+ )
8
+
9
+
10
+ __all__ = ["BlinkCastingMixin"]
11
+
12
+
13
+ class BlinkCastingMixin(UnifiedBlinkCastingMixin, AbstractBlinkCastingMixin):
14
+ """
15
+ Mixin handling object type casting and wrapping for Blink WebDrivers.
16
+
17
+ Ensures that raw Selenium objects are converted into their corresponding
18
+ internal wrapper representations and vice versa during method calls.
19
+ """
20
+
21
+ def get_sinks(self) -> List[Dict[str, Any]]:
22
+ return self._get_sinks_impl()
23
+
24
+ def set_sink_to_use(self, sink_name: str) -> Dict[str, Any]:
25
+ return self._set_sink_to_use_impl(sink_name=sink_name)
26
+
27
+ def start_desktop_mirroring(self, sink_name: str) -> Dict[str, Any]:
28
+ return self._start_desktop_mirroring_impl(sink_name=sink_name)
29
+
30
+ def start_tab_mirroring(self, sink_name: str) -> Dict[str, Any]:
31
+ return self._start_tab_mirroring_impl(sink_name=sink_name)
32
+
33
+ def stop_casting(self, sink_name: str) -> Dict[str, Any]:
34
+ return self._stop_casting_impl(sink_name=sink_name)
@@ -0,0 +1,28 @@
1
+ from typing import Any, Dict
2
+ from osn_selenium.webdrivers.unified.blink.features import (
3
+ UnifiedBlinkFeaturesMixin
4
+ )
5
+ from osn_selenium.abstract.webdriver.blink.features import (
6
+ AbstractBlinkFeaturesMixin
7
+ )
8
+
9
+
10
+ __all__ = ["BlinkFeaturesMixin"]
11
+
12
+
13
+ class BlinkFeaturesMixin(UnifiedBlinkFeaturesMixin, AbstractBlinkFeaturesMixin):
14
+ """
15
+ Mixin for managing browser features and capabilities for Blink WebDrivers.
16
+
17
+ Provides interfaces to query, enable, or disable specific browser features
18
+ and inspect the supported capabilities of the current session.
19
+ """
20
+
21
+ def get_issue_message(self) -> Any:
22
+ return self._get_issue_message_impl()
23
+
24
+ def launch_app(self, id: str) -> Dict[str, Any]:
25
+ return self._launch_app_impl(id=id)
26
+
27
+ def set_permissions(self, name: str, value: str) -> None:
28
+ self._set_permissions_impl(name=name, value=value)
@@ -0,0 +1,66 @@
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.blink import BlinkFlags
5
+ from osn_selenium.webdrivers.sync.core.lifecycle import CoreLifecycleMixin
6
+ from osn_selenium.webdrivers.unified.blink.lifecycle import (
7
+ UnifiedBlinkLifecycleMixin
8
+ )
9
+ from osn_selenium.abstract.webdriver.blink.lifecycle import (
10
+ AbstractBlinkLifecycleMixin
11
+ )
12
+
13
+
14
+ __all__ = ["BlinkLifecycleMixin"]
15
+
16
+
17
+ class BlinkLifecycleMixin(
18
+ UnifiedBlinkLifecycleMixin,
19
+ CoreLifecycleMixin,
20
+ AbstractBlinkLifecycleMixin
21
+ ):
22
+ """
23
+ Mixin for managing the lifecycle of the Blink 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 close_webdriver(self) -> None:
30
+ self._close_webdriver_impl()
31
+
32
+ def restart_webdriver(
33
+ self,
34
+ flags: Optional[BlinkFlags] = None,
35
+ browser_exe: Optional[PATH_TYPEHINT] = None,
36
+ browser_name_in_system: Optional[str] = None,
37
+ use_browser_exe: Optional[bool] = None,
38
+ start_page_url: Optional[str] = None,
39
+ window_rect: Optional[WindowRect] = None,
40
+ ) -> None:
41
+ self._restart_webdriver_impl(
42
+ flags=flags,
43
+ browser_exe=browser_exe,
44
+ browser_name_in_system=browser_name_in_system,
45
+ use_browser_exe=use_browser_exe,
46
+ start_page_url=start_page_url,
47
+ window_rect=window_rect
48
+ )
49
+
50
+ def start_webdriver(
51
+ self,
52
+ flags: Optional[BlinkFlags] = None,
53
+ browser_exe: Optional[PATH_TYPEHINT] = None,
54
+ browser_name_in_system: Optional[str] = None,
55
+ use_browser_exe: Optional[bool] = None,
56
+ start_page_url: Optional[str] = None,
57
+ window_rect: Optional[WindowRect] = None,
58
+ ) -> None:
59
+ self._start_webdriver_impl(
60
+ flags=flags,
61
+ browser_exe=browser_exe,
62
+ browser_name_in_system=browser_name_in_system,
63
+ use_browser_exe=use_browser_exe,
64
+ start_page_url=start_page_url,
65
+ window_rect=window_rect,
66
+ )
@@ -0,0 +1,25 @@
1
+ from typing import Any
2
+ from osn_selenium.webdrivers.unified.blink.logging import (
3
+ UnifiedBlinkLoggingMixin
4
+ )
5
+ from osn_selenium.abstract.webdriver.blink.logging import (
6
+ AbstractBlinkLoggingMixin
7
+ )
8
+
9
+
10
+ __all__ = ["BlinkLoggingMixin"]
11
+
12
+
13
+ class BlinkLoggingMixin(UnifiedBlinkLoggingMixin, AbstractBlinkLoggingMixin):
14
+ """
15
+ Mixin for retrieving and managing browser logs for Blink WebDrivers.
16
+
17
+ Allows access to various log types (e.g., browser, performance, driver)
18
+ generated during the session execution.
19
+ """
20
+
21
+ def get_log(self, log_type: str) -> Any:
22
+ return self._get_log_impl(log_type=log_type)
23
+
24
+ def log_types(self) -> Any:
25
+ return self._log_types_impl()
@@ -0,0 +1,28 @@
1
+ from typing import Any, Dict
2
+ from osn_selenium.webdrivers.unified.blink.network import (
3
+ UnifiedBlinkNetworkMixin
4
+ )
5
+ from osn_selenium.abstract.webdriver.blink.network import (
6
+ AbstractBlinkNetworkMixin
7
+ )
8
+
9
+
10
+ __all__ = ["BlinkNetworkMixin"]
11
+
12
+
13
+ class BlinkNetworkMixin(UnifiedBlinkNetworkMixin, AbstractBlinkNetworkMixin):
14
+ """
15
+ Mixin for network interception and condition simulation for Blink WebDrivers.
16
+
17
+ Facilitates monitoring of network traffic, modifying requests/responses,
18
+ and emulating specific network conditions like offline mode or latency.
19
+ """
20
+
21
+ def delete_network_conditions(self) -> None:
22
+ self._delete_network_conditions_impl()
23
+
24
+ def get_network_conditions(self) -> Dict[str, Any]:
25
+ return self._get_network_conditions_impl()
26
+
27
+ def set_network_conditions(self, **network_conditions: Any) -> None:
28
+ self._set_network_conditions_impl(**network_conditions)
@@ -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.blink import BlinkFlags
5
+ from osn_selenium.webdrivers.sync.core.settings import CoreSettingsMixin
6
+ from osn_selenium.webdrivers.unified.blink.settings import (
7
+ UnifiedBlinkSettingsMixin
8
+ )
9
+ from osn_selenium.abstract.webdriver.blink.settings import (
10
+ AbstractBlinkSettingsMixin
11
+ )
12
+
13
+
14
+ __all__ = ["BlinkSettingsMixin"]
15
+
16
+
17
+ class BlinkSettingsMixin(
18
+ UnifiedBlinkSettingsMixin,
19
+ CoreSettingsMixin,
20
+ AbstractBlinkSettingsMixin
21
+ ):
22
+ """
23
+ Mixin for configuring and updating settings of the Blink WebDriver.
24
+
25
+ Provides methods to modify browser flags, window rectangles, and other
26
+ configuration parameters either before startup or during a reset.
27
+ """
28
+
29
+ def reset_settings(
30
+ self,
31
+ flags: Optional[BlinkFlags] = 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: str = "",
36
+ window_rect: Optional[WindowRect] = None,
37
+ ) -> None:
38
+ self._reset_settings_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 update_settings(
48
+ self,
49
+ flags: Optional[BlinkFlags] = 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._update_settings_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,67 @@
1
+ from typing import Optional, Type
2
+ from osn_selenium.models import WindowRect
3
+ from osn_selenium._typehints import PATH_TYPEHINT
4
+ from osn_selenium.flags.chrome import ChromeFlagsManager
5
+ from osn_selenium.flags.models.chrome import ChromeFlags
6
+ from osn_selenium.webdrivers.sync.blink import BlinkWebDriver
7
+ from osn_selenium.webdrivers.sync.chrome.base import ChromeBaseMixin
8
+ from osn_selenium.webdrivers.sync.chrome.settings import ChromeSettingsMixin
9
+ from osn_selenium.webdrivers.sync.chrome.lifecycle import ChromeLifecycleMixin
10
+ from osn_selenium.abstract.webdriver.chrome import (
11
+ AbstractChromeWebDriver
12
+ )
13
+
14
+
15
+ __all__ = ["ChromeWebDriver"]
16
+
17
+
18
+ class ChromeWebDriver(
19
+ ChromeBaseMixin,
20
+ ChromeLifecycleMixin,
21
+ ChromeSettingsMixin,
22
+ BlinkWebDriver,
23
+ AbstractChromeWebDriver,
24
+ ):
25
+ def __init__(
26
+ self,
27
+ webdriver_path: str,
28
+ flags_manager_type: Type[ChromeFlagsManager] = ChromeFlagsManager,
29
+ use_browser_exe: bool = True,
30
+ browser_name_in_system: str = "Google Chrome",
31
+ browser_exe: Optional[PATH_TYPEHINT] = None,
32
+ flags: Optional[ChromeFlags] = None,
33
+ start_page_url: str = "",
34
+ implicitly_wait: int = 5,
35
+ page_load_timeout: int = 5,
36
+ script_timeout: int = 5,
37
+ window_rect: Optional[WindowRect] = None,
38
+ ):
39
+ BlinkWebDriver.__init__(
40
+ self,
41
+ browser_exe=browser_exe,
42
+ browser_name_in_system=browser_name_in_system,
43
+ webdriver_path=webdriver_path,
44
+ use_browser_exe=use_browser_exe,
45
+ flags_manager_type=flags_manager_type,
46
+ flags=flags,
47
+ implicitly_wait=implicitly_wait,
48
+ page_load_timeout=page_load_timeout,
49
+ script_timeout=script_timeout,
50
+ window_rect=window_rect,
51
+ )
52
+
53
+ ChromeBaseMixin.__init__(
54
+ self,
55
+ browser_exe=browser_exe,
56
+ browser_name_in_system=browser_name_in_system,
57
+ use_browser_exe=use_browser_exe,
58
+ webdriver_path=webdriver_path,
59
+ architecture="sync",
60
+ flags_manager_type=flags_manager_type,
61
+ flags=flags,
62
+ start_page_url=start_page_url,
63
+ implicitly_wait=implicitly_wait,
64
+ page_load_timeout=page_load_timeout,
65
+ script_timeout=script_timeout,
66
+ window_rect=window_rect,
67
+ )
@@ -0,0 +1,106 @@
1
+ from typing import Optional, Type
2
+ from osn_selenium.models import WindowRect
3
+ from osn_selenium.flags.chrome import ChromeFlagsManager
4
+ from osn_selenium.flags.models.chrome import ChromeFlags
5
+ from selenium.webdriver import (
6
+ Chrome as legacyChrome
7
+ )
8
+ from osn_selenium.webdrivers.sync.blink.base import BlinkBaseMixin
9
+ from osn_selenium._typehints import (
10
+ ARCHITECTURES_TYPEHINT,
11
+ PATH_TYPEHINT
12
+ )
13
+ from osn_selenium.webdrivers.unified.chrome.base import (
14
+ UnifiedChromeBaseMixin
15
+ )
16
+ from osn_selenium.abstract.webdriver.chrome.base import (
17
+ AbstractChromeBaseMixin
18
+ )
19
+
20
+
21
+ __all__ = ["ChromeBaseMixin"]
22
+
23
+
24
+ class ChromeBaseMixin(UnifiedChromeBaseMixin, BlinkBaseMixin, AbstractChromeBaseMixin):
25
+ """
26
+ Base mixin for Chrome WebDrivers handling core initialization and state management.
27
+
28
+ This class serves as the foundation for browser-specific implementations, managing
29
+ the WebDriver executable path, configuration flags, timeouts, and the active
30
+ driver instance.
31
+ """
32
+
33
+ def __init__(
34
+ self,
35
+ webdriver_path: str,
36
+ architecture: ARCHITECTURES_TYPEHINT,
37
+ flags_manager_type: Type[ChromeFlagsManager] = ChromeFlagsManager,
38
+ use_browser_exe: bool = True,
39
+ browser_name_in_system: str = "Google Chrome",
40
+ browser_exe: Optional[PATH_TYPEHINT] = None,
41
+ flags: Optional[ChromeFlags] = None,
42
+ start_page_url: str = "about:blank",
43
+ implicitly_wait: int = 5,
44
+ page_load_timeout: int = 5,
45
+ script_timeout: int = 5,
46
+ window_rect: Optional[WindowRect] = None,
47
+ ):
48
+ """
49
+ Initializes the synchronous Chrome WebDriver mixin with specified configuration.
50
+
51
+ Args:
52
+ webdriver_path (str): Path to the ChromeDriver executable.
53
+ architecture (ARCHITECTURE_TYPEHINT): System architecture.
54
+ flags_manager_type (Type[ChromeFlagsManager]): The class type used for managing Chrome flags.
55
+ Defaults to ChromeFlagsManager.
56
+ use_browser_exe (bool): Whether to use a specific browser executable path or auto-detect.
57
+ Defaults to True.
58
+ browser_name_in_system (str): The name of the browser in the system registry or path.
59
+ Defaults to "Google Chrome".
60
+ browser_exe (Optional[PATH_TYPEHINT]): Explicit path to the Chrome browser executable.
61
+ If None, it may be auto-detected based on other parameters.
62
+ flags (Optional[ChromeFlags]): Initial set of flags to configure the Chrome instance.
63
+ start_page_url (str): The URL to navigate to immediately upon startup.
64
+ Defaults to "about:blank".
65
+ implicitly_wait (int): Default implicit wait time in seconds. Defaults to 5.
66
+ page_load_timeout (int): Default page load timeout in seconds. Defaults to 5.
67
+ script_timeout (int): Default script execution timeout in seconds. Defaults to 5.
68
+ window_rect (Optional[WindowRect]): Initial window dimensions and position.
69
+ If None, browser defaults are used.
70
+ """
71
+
72
+ BlinkBaseMixin.__init__(
73
+ self,
74
+ browser_exe=browser_exe,
75
+ browser_name_in_system=browser_name_in_system,
76
+ use_browser_exe=use_browser_exe,
77
+ webdriver_path=webdriver_path,
78
+ architecture=architecture,
79
+ flags_manager_type=flags_manager_type,
80
+ flags=flags,
81
+ start_page_url=start_page_url,
82
+ implicitly_wait=implicitly_wait,
83
+ page_load_timeout=page_load_timeout,
84
+ script_timeout=script_timeout,
85
+ window_rect=window_rect,
86
+ )
87
+
88
+ UnifiedChromeBaseMixin.__init__(
89
+ self,
90
+ webdriver_path=webdriver_path,
91
+ architecture=architecture,
92
+ flags_manager_type=flags_manager_type,
93
+ use_browser_exe=use_browser_exe,
94
+ browser_name_in_system=browser_name_in_system,
95
+ browser_exe=browser_exe,
96
+ flags=flags,
97
+ start_page_url=start_page_url,
98
+ implicitly_wait=implicitly_wait,
99
+ page_load_timeout=page_load_timeout,
100
+ script_timeout=script_timeout,
101
+ window_rect=window_rect,
102
+ )
103
+
104
+ @property
105
+ def driver(self) -> Optional[legacyChrome]:
106
+ return self._driver_impl
@@ -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.chrome import ChromeFlags
5
+ from osn_selenium.webdrivers.sync.blink import BlinkLifecycleMixin
6
+ from osn_selenium.webdrivers.unified.chrome.lifecycle import (
7
+ UnifiedChromeLifecycleMixin
8
+ )
9
+ from osn_selenium.abstract.webdriver.chrome.lifecycle import (
10
+ AbstractChromeLifecycleMixin
11
+ )
12
+
13
+
14
+ __all__ = ["ChromeLifecycleMixin"]
15
+
16
+
17
+ class ChromeLifecycleMixin(
18
+ UnifiedChromeLifecycleMixin,
19
+ BlinkLifecycleMixin,
20
+ AbstractChromeLifecycleMixin
21
+ ):
22
+ """
23
+ Mixin for managing the lifecycle of the Chrome 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[ChromeFlags] = 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[ChromeFlags] = 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.chrome import ChromeFlags
5
+ from osn_selenium.webdrivers.unified.chrome.settings import (
6
+ UnifiedChromeSettingsMixin
7
+ )
8
+ from osn_selenium.abstract.webdriver.chrome.settings import (
9
+ AbstractChromeSettingsMixin
10
+ )
11
+
12
+
13
+ __all__ = ["ChromeSettingsMixin"]
14
+
15
+
16
+ class ChromeSettingsMixin(UnifiedChromeSettingsMixin, AbstractChromeSettingsMixin):
17
+ """
18
+ Mixin for configuring and updating settings of the Chrome WebDriver.
19
+
20
+ Provides methods to modify browser flags, window rectangles, and other
21
+ configuration parameters either before startup either during a reset.
22
+ """
23
+
24
+ def reset_settings(
25
+ self,
26
+ flags: Optional[ChromeFlags] = None,
27
+ browser_exe: Optional[PATH_TYPEHINT] = None,
28
+ browser_name_in_system: Optional[str] = None,
29
+ use_browser_exe: Optional[bool] = None,
30
+ start_page_url: str = "",
31
+ window_rect: Optional[WindowRect] = None,
32
+ ) -> None:
33
+ self._reset_settings_impl(
34
+ flags=flags,
35
+ browser_exe=browser_exe,
36
+ browser_name_in_system=browser_name_in_system,
37
+ use_browser_exe=use_browser_exe,
38
+ start_page_url=start_page_url,
39
+ window_rect=window_rect,
40
+ )
41
+
42
+ def update_settings(
43
+ self,
44
+ flags: Optional[ChromeFlags] = None,
45
+ browser_exe: Optional[PATH_TYPEHINT] = None,
46
+ browser_name_in_system: Optional[str] = None,
47
+ use_browser_exe: Optional[bool] = None,
48
+ start_page_url: Optional[str] = None,
49
+ window_rect: Optional[WindowRect] = None,
50
+ ) -> None:
51
+ self._update_settings_impl(
52
+ flags=flags,
53
+ browser_exe=browser_exe,
54
+ browser_name_in_system=browser_name_in_system,
55
+ use_browser_exe=use_browser_exe,
56
+ start_page_url=start_page_url,
57
+ window_rect=window_rect,
58
+ )