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 List, Optional
2
+ from selenium.webdriver.common.by import By
3
+ from osn_selenium.trio_threads_mixin import TrioThreadMixin
4
+ from osn_selenium.instances.trio_threads.web_element import WebElement
5
+ from osn_selenium.instances.convert import (
6
+ get_trio_thread_instance_wrapper
7
+ )
8
+ from osn_selenium.webdrivers.unified.core.element import (
9
+ UnifiedCoreElementMixin
10
+ )
11
+ from osn_selenium.abstract.webdriver.core.element import (
12
+ AbstractCoreElementMixin
13
+ )
14
+
15
+
16
+ __all__ = ["CoreElementMixin"]
17
+
18
+
19
+ class CoreElementMixin(UnifiedCoreElementMixin, TrioThreadMixin, AbstractCoreElementMixin):
20
+ """
21
+ Mixin for DOM element retrieval in Core WebDrivers.
22
+
23
+ Provides standard methods to locate single or multiple elements within
24
+ the current page context.
25
+ """
26
+
27
+ async def create_web_element(self, element_id: str) -> WebElement:
28
+ legacy = await self.sync_to_trio(sync_function=self._create_web_element_impl)(element_id=element_id)
29
+
30
+ return get_trio_thread_instance_wrapper(
31
+ wrapper_class=WebElement,
32
+ legacy_object=legacy,
33
+ lock=self._lock,
34
+ limiter=self._capacity_limiter,
35
+ )
36
+
37
+ async def find_element(self, by: str = By.ID, value: Optional[str] = None) -> WebElement:
38
+ legacy = await self.sync_to_trio(sync_function=self._find_element_impl)(by=by, value=value)
39
+
40
+ return get_trio_thread_instance_wrapper(
41
+ wrapper_class=WebElement,
42
+ legacy_object=legacy,
43
+ lock=self._lock,
44
+ limiter=self._capacity_limiter,
45
+ )
46
+
47
+ async def find_elements(self, by: str = By.ID, value: Optional[str] = None) -> List[WebElement]:
48
+ legacy_elements = await self.sync_to_trio(sync_function=self._find_elements_impl)(by=by, value=value)
49
+
50
+ return [
51
+ get_trio_thread_instance_wrapper(
52
+ wrapper_class=WebElement,
53
+ legacy_object=element,
54
+ lock=self._lock,
55
+ limiter=self._capacity_limiter,
56
+ )
57
+ for element in legacy_elements
58
+ ]
@@ -0,0 +1,45 @@
1
+ from contextlib import asynccontextmanager
2
+ from typing import (
3
+ Any,
4
+ AsyncGenerator,
5
+ List
6
+ )
7
+ from osn_selenium.trio_threads_mixin import TrioThreadMixin
8
+ from osn_selenium.webdrivers.unified.core.file import UnifiedCoreFileMixin
9
+ from osn_selenium.abstract.webdriver.core.file import (
10
+ AbstractCoreFileMixin
11
+ )
12
+
13
+
14
+ __all__ = ["CoreFileMixin"]
15
+
16
+
17
+ class CoreFileMixin(UnifiedCoreFileMixin, TrioThreadMixin, AbstractCoreFileMixin):
18
+ """
19
+ Mixin for file system interactions within Core WebDrivers.
20
+
21
+ Manages file upload detection, download verification, and cleanup of
22
+ downloaded files.
23
+ """
24
+
25
+ async def delete_downloadable_files(self) -> None:
26
+ await self.sync_to_trio(sync_function=self._delete_downloadable_files_impl)()
27
+
28
+ async def download_file(self, file_name: str, target_directory: str) -> None:
29
+ await self.sync_to_trio(sync_function=self._download_file_impl)(file_name=file_name, target_directory=target_directory)
30
+
31
+ @property
32
+ async def file_detector(self) -> Any:
33
+ return await self.sync_to_trio(sync_function=self._file_detector_get_impl)()
34
+
35
+ @file_detector.setter
36
+ async def file_detector(self, value: Any) -> None:
37
+ await self.sync_to_trio(sync_function=self._file_detector_set_impl)(value=value)
38
+
39
+ @asynccontextmanager
40
+ async def file_detector_context(self, file_detector_class: Any, *args: Any, **kwargs: Any) -> AsyncGenerator[Any, Any]:
41
+ async with self.sync_to_trio_context(context_manager_factory=self._file_detector_context_impl)(file_detector_class, *args, **kwargs) as file_detector:
42
+ yield file_detector
43
+
44
+ async def get_downloadable_files(self) -> List[str]:
45
+ return await self.sync_to_trio(sync_function=self._get_downloadable_files_impl)()
@@ -0,0 +1,60 @@
1
+ from osn_selenium.models import WindowRect
2
+ from osn_selenium.trio_threads_mixin import TrioThreadMixin
3
+ from typing import (
4
+ Any,
5
+ Dict,
6
+ Optional,
7
+ Union
8
+ )
9
+ from osn_selenium.flags.models.base import BrowserFlags
10
+ from selenium.webdriver.remote.remote_connection import RemoteConnection
11
+ from osn_selenium.webdrivers.unified.core.lifecycle import (
12
+ UnifiedCoreLifecycleMixin
13
+ )
14
+ from osn_selenium.abstract.webdriver.core.lifecycle import (
15
+ AbstractCoreLifecycleMixin
16
+ )
17
+
18
+
19
+ __all__ = ["CoreLifecycleMixin"]
20
+
21
+
22
+ class CoreLifecycleMixin(UnifiedCoreLifecycleMixin, TrioThreadMixin, AbstractCoreLifecycleMixin):
23
+ """
24
+ Mixin for managing the lifecycle of the Core WebDriver.
25
+
26
+ Handles the creation, startup, shutdown, and restarting processes of the
27
+ underlying browser instance, ensuring clean session management.
28
+ """
29
+
30
+ async def close_webdriver(self) -> None:
31
+ await self.sync_to_trio(sync_function=self._close_webdriver_impl)()
32
+
33
+ async def quit(self) -> None:
34
+ await self.sync_to_trio(sync_function=self._quit_impl)()
35
+
36
+ async def remote_connect_driver(self, command_executor: Union[str, RemoteConnection]) -> None:
37
+ await self.sync_to_trio(sync_function=self._remote_connect_driver_impl)(command_executor=command_executor)
38
+
39
+ async def restart_webdriver(
40
+ self,
41
+ flags: Optional[BrowserFlags] = None,
42
+ window_rect: Optional[WindowRect] = None,
43
+ ) -> None:
44
+ await self.sync_to_trio(sync_function=self._restart_webdriver_impl)(flags=flags, window_rect=window_rect)
45
+
46
+ async def start_client(self) -> None:
47
+ await self.sync_to_trio(sync_function=self._start_client_impl)()
48
+
49
+ async def start_session(self, capabilities: Dict[str, Any]) -> None:
50
+ await self.sync_to_trio(sync_function=self._start_session_impl)(capabilities=capabilities)
51
+
52
+ async def start_webdriver(
53
+ self,
54
+ flags: Optional[BrowserFlags] = None,
55
+ window_rect: Optional[WindowRect] = None,
56
+ ) -> None:
57
+ await self.sync_to_trio(sync_function=self._start_webdriver_impl)(flags=flags, window_rect=window_rect)
58
+
59
+ async def stop_client(self) -> None:
60
+ await self.sync_to_trio(sync_function=self._stop_client_impl)()
@@ -0,0 +1,41 @@
1
+ from osn_selenium.trio_threads_mixin import TrioThreadMixin
2
+ from osn_selenium.webdrivers.unified.core.navigation import (
3
+ UnifiedCoreNavigationMixin
4
+ )
5
+ from osn_selenium.abstract.webdriver.core.navigation import (
6
+ AbstractCoreNavigationMixin
7
+ )
8
+
9
+
10
+ __all__ = ["CoreNavigationMixin"]
11
+
12
+
13
+ class CoreNavigationMixin(
14
+ UnifiedCoreNavigationMixin,
15
+ TrioThreadMixin,
16
+ AbstractCoreNavigationMixin
17
+ ):
18
+ """
19
+ Mixin controlling browser navigation for Core WebDrivers.
20
+
21
+ Includes standard navigation commands such as visiting URLs, history
22
+ traversal (back/forward), and page refreshing.
23
+ """
24
+
25
+ async def back(self) -> None:
26
+ await self.sync_to_trio(sync_function=self._back_impl)()
27
+
28
+ async def current_url(self) -> str:
29
+ return await self.sync_to_trio(sync_function=self._current_url_impl)()
30
+
31
+ async def forward(self) -> None:
32
+ await self.sync_to_trio(sync_function=self._forward_impl)()
33
+
34
+ async def get(self, url: str) -> None:
35
+ await self.sync_to_trio(sync_function=self._get_impl)(url=url)
36
+
37
+ async def refresh(self) -> None:
38
+ await self.sync_to_trio(sync_function=self._refresh_impl)()
39
+
40
+ async def title(self) -> str:
41
+ return await self.sync_to_trio(sync_function=self._title_impl)()
@@ -0,0 +1,59 @@
1
+ from typing import Any, List, Optional
2
+ from osn_selenium.trio_threads_mixin import TrioThreadMixin
3
+ from osn_selenium.instances.trio_threads.script import Script
4
+ from osn_selenium.instances.convert import (
5
+ get_trio_thread_instance_wrapper
6
+ )
7
+ from osn_selenium.webdrivers.unified.core.script import (
8
+ UnifiedCoreScriptMixin
9
+ )
10
+ from osn_selenium.abstract.webdriver.core.script import (
11
+ AbstractCoreScriptMixin
12
+ )
13
+ from osn_selenium.webdrivers._args_helpers import (
14
+ unwrap_args,
15
+ wrap_trio_thread_args
16
+ )
17
+
18
+
19
+ __all__ = ["CoreScriptMixin"]
20
+
21
+
22
+ class CoreScriptMixin(UnifiedCoreScriptMixin, TrioThreadMixin, AbstractCoreScriptMixin):
23
+ """
24
+ Mixin for JavaScript execution and management in Core WebDrivers.
25
+
26
+ Allows execution of synchronous and asynchronous JavaScript, as well as
27
+ pinning scripts for repeated use.
28
+ """
29
+
30
+ async def execute_async_script(self, script: str, *args: Any) -> Any:
31
+ unwrapped = unwrap_args(args=args)
32
+ result = await self.sync_to_trio(sync_function=self._execute_async_script_impl)(script, *unwrapped)
33
+
34
+ return wrap_trio_thread_args(args=result, lock=self._lock, limiter=self._capacity_limiter)
35
+
36
+ async def execute_script(self, script: str, *args: Any) -> Any:
37
+ unwrapped = unwrap_args(args=args)
38
+ result = await self.sync_to_trio(sync_function=self._execute_script_impl)(script, *unwrapped)
39
+
40
+ return wrap_trio_thread_args(args=result, lock=self._lock, limiter=self._capacity_limiter)
41
+
42
+ async def get_pinned_scripts(self) -> List[str]:
43
+ return await self.sync_to_trio(sync_function=self._get_pinned_scripts_impl)()
44
+
45
+ async def pin_script(self, script: str, script_key: Optional[Any] = None) -> Any:
46
+ return await self.sync_to_trio(sync_function=self._pin_script_impl)(script=script, script_key=script_key)
47
+
48
+ async def script(self) -> Script:
49
+ legacy = await self.sync_to_trio(sync_function=self._script_impl)()
50
+
51
+ return get_trio_thread_instance_wrapper(
52
+ wrapper_class=Script,
53
+ legacy_object=legacy,
54
+ lock=self._lock,
55
+ limiter=self._capacity_limiter,
56
+ )
57
+
58
+ async def unpin(self, script_key: Any) -> None:
59
+ await self.sync_to_trio(sync_function=self._unpin_impl)(script_key=script_key)
@@ -0,0 +1,36 @@
1
+ from typing import Optional
2
+ from osn_selenium.models import WindowRect
3
+ from osn_selenium.trio_threads_mixin import TrioThreadMixin
4
+ from osn_selenium.flags.models.base import BrowserFlags
5
+ from osn_selenium.webdrivers.unified.core.settings import (
6
+ UnifiedCoreSettingsMixin
7
+ )
8
+ from osn_selenium.abstract.webdriver.core.settings import (
9
+ AbstractCoreSettingsMixin
10
+ )
11
+
12
+
13
+ __all__ = ["CoreSettingsMixin"]
14
+
15
+
16
+ class CoreSettingsMixin(UnifiedCoreSettingsMixin, TrioThreadMixin, AbstractCoreSettingsMixin):
17
+ """
18
+ Mixin for configuring and updating settings of the Core WebDriver.
19
+
20
+ Provides methods to modify browser flags, window rectangles, and other
21
+ configuration parameters either before startup or during a reset.
22
+ """
23
+
24
+ async def reset_settings(
25
+ self,
26
+ flags: Optional[BrowserFlags] = None,
27
+ window_rect: Optional[WindowRect] = None,
28
+ ) -> None:
29
+ await self.sync_to_trio(sync_function=self._reset_settings_impl)(flags=flags, window_rect=window_rect)
30
+
31
+ async def update_settings(
32
+ self,
33
+ flags: Optional[BrowserFlags] = None,
34
+ window_rect: Optional[WindowRect] = None,
35
+ ) -> None:
36
+ await self.sync_to_trio(sync_function=self._update_settings_impl)(flags=flags, window_rect=window_rect)
@@ -0,0 +1,54 @@
1
+ from osn_selenium.trio_threads_mixin import TrioThreadMixin
2
+ from typing import (
3
+ Any,
4
+ Dict,
5
+ List,
6
+ Optional
7
+ )
8
+ from osn_selenium.instances.trio_threads.storage import Storage
9
+ from osn_selenium.instances.convert import (
10
+ get_trio_thread_instance_wrapper
11
+ )
12
+ from osn_selenium.webdrivers.unified.core.storage import (
13
+ UnifiedCoreStorageMixin
14
+ )
15
+ from osn_selenium.abstract.webdriver.core.storage import (
16
+ AbstractCoreStorageMixin
17
+ )
18
+
19
+
20
+ __all__ = ["CoreStorageMixin"]
21
+
22
+
23
+ class CoreStorageMixin(UnifiedCoreStorageMixin, TrioThreadMixin, AbstractCoreStorageMixin):
24
+ """
25
+ Mixin for managing browser storage and cookies in Core WebDrivers.
26
+
27
+ Provides methods to add, retrieve, and delete cookies, as well as access
28
+ other storage mechanisms.
29
+ """
30
+
31
+ async def add_cookie(self, cookie_dict: Dict[str, Any]) -> None:
32
+ await self.sync_to_trio(sync_function=self._add_cookie_impl)(cookie_dict=cookie_dict)
33
+
34
+ async def delete_all_cookies(self) -> None:
35
+ await self.sync_to_trio(sync_function=self._delete_all_cookies_impl)()
36
+
37
+ async def delete_cookie(self, name: str) -> None:
38
+ await self.sync_to_trio(sync_function=self._delete_cookie_impl)(name=name)
39
+
40
+ async def get_cookie(self, name: str) -> Optional[Dict[str, Any]]:
41
+ return await self.sync_to_trio(sync_function=self._get_cookie_impl)(name=name)
42
+
43
+ async def get_cookies(self) -> List[Dict[str, Any]]:
44
+ return await self.sync_to_trio(sync_function=self._get_cookies_impl)()
45
+
46
+ async def storage(self) -> Storage:
47
+ legacy = await self.sync_to_trio(sync_function=self._storage_impl)()
48
+
49
+ return get_trio_thread_instance_wrapper(
50
+ wrapper_class=Storage,
51
+ legacy_object=legacy,
52
+ lock=self._lock,
53
+ limiter=self._capacity_limiter,
54
+ )
@@ -0,0 +1,60 @@
1
+ from typing import Optional
2
+ from osn_selenium.trio_threads_mixin import TrioThreadMixin
3
+ from selenium.webdriver.common.timeouts import Timeouts
4
+ from osn_selenium.webdrivers.unified.core.timeouts import (
5
+ UnifiedCoreTimeoutsMixin
6
+ )
7
+ from osn_selenium.abstract.webdriver.core.timeouts import (
8
+ AbstractCoreTimeoutsMixin
9
+ )
10
+
11
+
12
+ __all__ = ["CoreTimeoutsMixin"]
13
+
14
+
15
+ class CoreTimeoutsMixin(UnifiedCoreTimeoutsMixin, TrioThreadMixin, AbstractCoreTimeoutsMixin):
16
+ """
17
+ Mixin for configuring execution timeouts in Core WebDrivers.
18
+
19
+ Manages implicit waits, page load timeouts, and script execution limits
20
+ to control driver behavior during delays.
21
+ """
22
+
23
+ async def get_timeouts(self) -> Timeouts:
24
+ return await self.sync_to_trio(sync_function=self._get_timeouts_impl)()
25
+
26
+ async def implicitly_wait(self, time_to_wait: float) -> None:
27
+ await self.sync_to_trio(sync_function=self._implicitly_wait_impl)(time_to_wait=time_to_wait)
28
+
29
+ async def set_driver_timeouts(
30
+ self,
31
+ page_load_timeout: float,
32
+ implicit_wait_timeout: float,
33
+ script_timeout: float,
34
+ ) -> None:
35
+ await self.sync_to_trio(sync_function=self._set_driver_timeouts_impl)(
36
+ page_load_timeout=page_load_timeout,
37
+ implicit_wait_timeout=implicit_wait_timeout,
38
+ script_timeout=script_timeout,
39
+ )
40
+
41
+ async def set_page_load_timeout(self, time_to_wait: float) -> None:
42
+ await self.sync_to_trio(sync_function=self._set_page_load_timeout_impl)(time_to_wait=time_to_wait)
43
+
44
+ async def set_script_timeout(self, time_to_wait: float) -> None:
45
+ await self.sync_to_trio(sync_function=self._set_script_timeout_impl)(time_to_wait=time_to_wait)
46
+
47
+ async def set_timeouts(self, timeouts: Timeouts) -> None:
48
+ await self.sync_to_trio(sync_function=self._set_timeouts_impl)(timeouts=timeouts)
49
+
50
+ async def update_times(
51
+ self,
52
+ temp_implicitly_wait: Optional[float] = None,
53
+ temp_page_load_timeout: Optional[float] = None,
54
+ temp_script_timeout: Optional[float] = None,
55
+ ) -> None:
56
+ await self.sync_to_trio(sync_function=self._update_times_impl)(
57
+ temp_implicitly_wait=temp_implicitly_wait,
58
+ temp_page_load_timeout=temp_page_load_timeout,
59
+ temp_script_timeout=temp_script_timeout,
60
+ )
@@ -0,0 +1,105 @@
1
+ from osn_selenium.trio_threads_mixin import TrioThreadMixin
2
+ from typing import (
3
+ List,
4
+ Literal,
5
+ Optional,
6
+ Union
7
+ )
8
+ from osn_selenium.models import (
9
+ Position,
10
+ Rectangle,
11
+ Size
12
+ )
13
+ from osn_selenium.instances.trio_threads.switch_to import SwitchTo
14
+ from osn_selenium.instances.convert import (
15
+ get_trio_thread_instance_wrapper
16
+ )
17
+ from osn_selenium.webdrivers.unified.core.window import (
18
+ UnifiedCoreWindowMixin
19
+ )
20
+ from osn_selenium.abstract.webdriver.core.window import (
21
+ AbstractCoreWindowMixin
22
+ )
23
+
24
+
25
+ __all__ = ["CoreWindowMixin"]
26
+
27
+
28
+ class CoreWindowMixin(UnifiedCoreWindowMixin, TrioThreadMixin, AbstractCoreWindowMixin):
29
+ """
30
+ Mixin for window and tab management in Core WebDrivers.
31
+
32
+ Controls window dimensions, position, state (minimized/maximized), and
33
+ switching between active window handles or frames.
34
+ """
35
+
36
+ async def close(self) -> None:
37
+ await self.sync_to_trio(sync_function=self._close_impl)()
38
+
39
+ async def close_all_windows(self) -> None:
40
+ await self.sync_to_trio(sync_function=self._close_all_windows_impl)()
41
+
42
+ async def close_window(self, window: Optional[Union[str, int]] = None) -> None:
43
+ await self.sync_to_trio(sync_function=self._close_window_impl)(window=window)
44
+
45
+ async def current_window_handle(self) -> str:
46
+ return await self.sync_to_trio(sync_function=self._current_window_handle_impl)()
47
+
48
+ async def fullscreen_window(self) -> None:
49
+ await self.sync_to_trio(sync_function=self._fullscreen_window_impl)()
50
+
51
+ async def get_window_handle(self, window: Optional[Union[str, int]] = None) -> str:
52
+ return await self.sync_to_trio(sync_function=self._get_window_handle_impl)(window=window)
53
+
54
+ async def get_window_position(self, windowHandle: str = "current") -> Position:
55
+ position = await self.sync_to_trio(sync_function=self._get_window_position_impl)(windowHandle=windowHandle)
56
+ return Position.model_validate(position)
57
+
58
+ async def get_window_rect(self) -> Rectangle:
59
+ rectangle = await self.sync_to_trio(sync_function=self._get_window_rect_impl)()
60
+ return Rectangle.model_validate(rectangle)
61
+
62
+ async def get_window_size(self, windowHandle: str = "current") -> Size:
63
+ size = await self.sync_to_trio(sync_function=self._get_window_size_impl)(windowHandle=windowHandle)
64
+ return Size.model_validate(size)
65
+
66
+ async def maximize_window(self) -> None:
67
+ await self.sync_to_trio(sync_function=self._maximize_window_impl)()
68
+
69
+ async def minimize_window(self) -> None:
70
+ await self.sync_to_trio(sync_function=self._minimize_window_impl)()
71
+
72
+ async def orientation(self) -> Literal["LANDSCAPE", "PORTRAIT"]:
73
+ return await self.sync_to_trio(sync_function=self._orientation_get_impl)()
74
+
75
+ async def set_orientation(self, value: Literal["LANDSCAPE", "PORTRAIT"]) -> None:
76
+ await self.sync_to_trio(sync_function=self._orientation_set_impl)(value=value)
77
+
78
+ async def set_window_position(self, x: int, y: int, windowHandle: str = "current") -> Position:
79
+ position = await self.sync_to_trio(sync_function=self._set_window_position_impl)(x=x, y=y, windowHandle=windowHandle)
80
+ return Position.model_validate(position)
81
+
82
+ async def set_window_rect(
83
+ self,
84
+ x: Optional[int] = None,
85
+ y: Optional[int] = None,
86
+ width: Optional[int] = None,
87
+ height: Optional[int] = None,
88
+ ) -> Rectangle:
89
+ rectangle = await self.sync_to_trio(sync_function=self._set_window_rect_impl)(x=x, y=y, width=width, height=height)
90
+ return Rectangle.model_validate(rectangle)
91
+
92
+ async def set_window_size(self, width: int, height: int, windowHandle: str = "current") -> None:
93
+ await self.sync_to_trio(sync_function=self._set_window_size_impl)(width=width, height=height, windowHandle=windowHandle)
94
+
95
+ def switch_to(self) -> SwitchTo:
96
+ legacy = self._switch_to_impl()
97
+ return get_trio_thread_instance_wrapper(
98
+ wrapper_class=SwitchTo,
99
+ legacy_object=legacy,
100
+ lock=self._lock,
101
+ limiter=self._capacity_limiter,
102
+ )
103
+
104
+ async def window_handles(self) -> List[str]:
105
+ return await self.sync_to_trio(sync_function=self._window_handles_impl)()
@@ -0,0 +1,114 @@
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.edge import EdgeFlagsManager
10
+ from osn_selenium.flags.models.edge import EdgeFlags
11
+ from osn_selenium.dev_tools.settings import DevToolsSettings
12
+ from osn_selenium.webdrivers.trio_threads.blink import BlinkWebDriver
13
+ from osn_selenium.webdrivers.trio_threads.edge.base import EdgeBaseMixin
14
+ from osn_selenium.abstract.webdriver.edge import (
15
+ AbstractEdgeWebDriver
16
+ )
17
+ from osn_selenium.webdrivers.trio_threads.edge.settings import EdgeSettingsMixin
18
+ from osn_selenium.webdrivers.trio_threads.edge.lifecycle import EdgeLifecycleMixin
19
+
20
+
21
+ __all__ = ["EdgeWebDriver"]
22
+
23
+
24
+ class EdgeWebDriver(
25
+ EdgeBaseMixin,
26
+ EdgeLifecycleMixin,
27
+ EdgeSettingsMixin,
28
+ BlinkWebDriver,
29
+ AbstractEdgeWebDriver,
30
+ ):
31
+ """
32
+ Concrete Edge WebDriver implementation combining all functional mixins.
33
+
34
+ This class aggregates lifecycle management, element interaction, navigation,
35
+ and browser-specific features into a single usable driver instance.
36
+ """
37
+
38
+ def __init__(
39
+ self,
40
+ webdriver_path: str,
41
+ flags_manager_type: Type[EdgeFlagsManager] = EdgeFlagsManager,
42
+ use_browser_exe: bool = True,
43
+ browser_name_in_system: str = "Microsoft Edge",
44
+ browser_exe: Optional[PATH_TYPEHINT] = None,
45
+ flags: Optional[EdgeFlags] = None,
46
+ start_page_url: str = "about:blank",
47
+ implicitly_wait: int = 5,
48
+ page_load_timeout: int = 5,
49
+ script_timeout: int = 5,
50
+ window_rect: Optional[WindowRect] = None,
51
+ devtools_settings: Optional[DevToolsSettings] = None,
52
+ capacity_limiter: Optional[trio.CapacityLimiter] = None,
53
+ cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
54
+ ignore_cdp_version_package_missing: bool = True,
55
+ ):
56
+ """
57
+ Initializes the Trio-based Edge WebDriver with specified configuration.
58
+
59
+ Args:
60
+ webdriver_path (str): Path to the EdgeDriver executable.
61
+ flags_manager_type (Type[EdgeFlagsManager]): The class type used for managing Edge flags.
62
+ Defaults to EdgeFlagsManager.
63
+ use_browser_exe (bool): Whether to use a specific browser executable path or auto-detect.
64
+ Defaults to True.
65
+ browser_name_in_system (str): The name of the browser in the system registry or path.
66
+ Defaults to "Microsoft Edge".
67
+ browser_exe (Optional[PATH_TYPEHINT]): Explicit path to the Edge browser executable.
68
+ flags (Optional[EdgeFlags]): Initial set of flags.
69
+ start_page_url (str): The initial URL. Defaults to "about:blank".
70
+ implicitly_wait (int): Default implicit wait time.
71
+ page_load_timeout (int): Default page load timeout.
72
+ script_timeout (int): Default script timeout.
73
+ window_rect (Optional[WindowRect]): Initial window dimensions.
74
+ capacity_limiter (Optional[trio.CapacityLimiter]): Trio capacity limiter.
75
+ cdp_versioned_packages_paths (Optional[Mapping[int, PATH_TYPEHINT]]): Custom local paths for specific CDP versions packages.
76
+ ignore_cdp_version_package_missing (bool): Whether to ignore missing CDP package errors.
77
+ """
78
+
79
+ BlinkWebDriver.__init__(
80
+ self,
81
+ browser_exe=browser_exe,
82
+ browser_name_in_system=browser_name_in_system,
83
+ webdriver_path=webdriver_path,
84
+ use_browser_exe=use_browser_exe,
85
+ flags_manager_type=flags_manager_type,
86
+ flags=flags,
87
+ implicitly_wait=implicitly_wait,
88
+ page_load_timeout=page_load_timeout,
89
+ script_timeout=script_timeout,
90
+ window_rect=window_rect,
91
+ devtools_settings=devtools_settings,
92
+ capacity_limiter=capacity_limiter,
93
+ cdp_versioned_packages_paths=cdp_versioned_packages_paths,
94
+ ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
95
+ )
96
+
97
+ EdgeBaseMixin.__init__(
98
+ self,
99
+ browser_exe=browser_exe,
100
+ browser_name_in_system=browser_name_in_system,
101
+ use_browser_exe=use_browser_exe,
102
+ webdriver_path=webdriver_path,
103
+ architecture="trio_threads",
104
+ flags_manager_type=flags_manager_type,
105
+ flags=flags,
106
+ start_page_url=start_page_url,
107
+ implicitly_wait=implicitly_wait,
108
+ page_load_timeout=page_load_timeout,
109
+ script_timeout=script_timeout,
110
+ window_rect=window_rect,
111
+ capacity_limiter=capacity_limiter,
112
+ cdp_versioned_packages_paths=cdp_versioned_packages_paths,
113
+ ignore_cdp_version_package_missing=ignore_cdp_version_package_missing,
114
+ )