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
@@ -1,211 +0,0 @@
1
- import pathlib
2
- from osn_selenium.types import WindowRect
3
- from osn_selenium.webdrivers.types import _any_flags_mapping
4
- from osn_selenium.webdrivers.Yandex.flags import YandexFlagsManager
5
- from typing import (
6
- Optional,
7
- Protocol,
8
- TYPE_CHECKING,
9
- Union,
10
- runtime_checkable
11
- )
12
- from osn_selenium.webdrivers.Chrome.protocols import (
13
- TrioChromeWebDriverWrapperProtocol
14
- )
15
-
16
-
17
- if TYPE_CHECKING:
18
- from osn_selenium.webdrivers.Yandex.webdriver import YandexWebDriver, YandexFlags
19
-
20
-
21
- @runtime_checkable
22
- class TrioYandexWebDriverWrapperProtocol(TrioChromeWebDriverWrapperProtocol, Protocol):
23
- """
24
- Wraps YandexWebDriver methods for asynchronous execution using Trio.
25
-
26
- This class acts as a proxy to a `BrowserWebDriver` instance. It intercepts
27
- method calls and executes them in a separate thread using `trio.to_thread.run_sync`,
28
- allowing synchronous WebDriver operations to be called from asynchronous Trio code
29
- without blocking the event loop. Properties and non-callable attributes are accessed directly.
30
-
31
- Attributes:
32
- _webdriver (BrowserWebDriver): The underlying synchronous BrowserWebDriver instance.
33
- _excluding_functions (list[str]): A list of attribute names on the wrapped object
34
- that should *not* be accessible through this wrapper,
35
- typically because they are irrelevant or dangerous
36
- in an async context handled by the wrapper.
37
- """
38
-
39
- _webdriver: "YandexWebDriver"
40
- _webdriver_flags_manager: "YandexFlagsManager"
41
-
42
- def reset_settings(
43
- self,
44
- flags: Optional[Union["YandexFlags", _any_flags_mapping]] = None,
45
- browser_exe: Optional[Union[str, pathlib.Path]] = None,
46
- browser_name_in_system: Optional[str] = None,
47
- use_browser_exe: Optional[bool] = None,
48
- start_page_url: str = "",
49
- window_rect: Optional[WindowRect] = None,
50
- trio_tokens_limit: Union[int, float] = 40,
51
- ):
52
- """
53
- Resets various configurable browser settings to their specified or default values.
54
-
55
- This method allows for reconfiguring the WebDriver's operational parameters,
56
- such as browser flags, executable path, start URL, window dimensions, and
57
- concurrency limits. It is crucial that the browser session is *not* active
58
- when this method is called; otherwise, a warning will be issued, and no changes
59
- will be applied.
60
-
61
- Args:
62
- flags (Optional[Union[YandexFlags, Mapping[str, Any]]]): New browser flags to apply.
63
- If provided, existing flags are cleared and replaced with these.
64
- If `None`, all custom flags are cleared, and the browser will start with default flags.
65
- browser_exe (Optional[Union[str, pathlib.Path]]): The explicit path to the browser executable.
66
- If provided, this path will be used. If `None`, the executable path managed by the
67
- flags manager will be cleared, and then potentially re-detected based on
68
- `use_browser_exe` and `browser_name_in_system`.
69
- browser_name_in_system (Optional[str]): The common name of the browser (e.g., "Chrome", "Edge").
70
- Used in conjunction with `use_browser_exe` to automatically detect the browser executable path.
71
- This parameter only takes effect if `use_browser_exe` is explicitly `True` or `False`.
72
- If `None`, no automatic detection based on name will occur through this method call.
73
- use_browser_exe (Optional[bool]): Controls the automatic detection of the browser executable.
74
- If `True` (and `browser_name_in_system` is provided), the browser executable path
75
- will be automatically detected if `browser_exe` is `None`.
76
- If `False` (and `browser_name_in_system` is provided), any existing `browser_exe`
77
- path in the flags manager will be cleared.
78
- If `None`, the current `use_browser_exe` state is maintained for the `_detect_browser_exe` logic.
79
- start_page_url (str): The URL that the browser will attempt to navigate to
80
- immediately after starting. Defaults to an empty string.
81
- window_rect (Optional[WindowRect]): The initial window size and position settings.
82
- If `None`, it defaults to a new `WindowRect()` instance, effectively resetting
83
- to the browser's default window behavior.
84
- trio_tokens_limit (Union[int, float]): The maximum number of concurrent synchronous
85
- WebDriver operations allowed by the Trio capacity limiter. Defaults to 40.
86
- """
87
-
88
- ...
89
-
90
- def restart_webdriver(
91
- self,
92
- flags: Optional[Union["YandexFlags", _any_flags_mapping]] = None,
93
- browser_exe: Optional[Union[str, pathlib.Path]] = None,
94
- browser_name_in_system: Optional[str] = None,
95
- use_browser_exe: Optional[bool] = None,
96
- start_page_url: Optional[str] = None,
97
- window_rect: Optional[WindowRect] = None,
98
- trio_tokens_limit: Optional[Union[int, float]] = None,
99
- ):
100
- """
101
- Restarts the WebDriver and browser session gracefully.
102
-
103
- Performs a clean restart by first closing the existing WebDriver session and browser
104
- (using `close_webdriver`), and then initiating a new session (using `start_webdriver`)
105
- with potentially updated settings. If settings arguments are provided, they override
106
- the existing settings for the new session; otherwise, the current settings are used.
107
-
108
- Args:
109
- flags (Optional[Union[YandexFlags, Mapping[str, Any]]]): Override flags for the new session.
110
- If provided, these flags will be applied. If `None`, current settings are used.
111
- browser_exe (Optional[Union[str, pathlib.Path]]): Override browser executable for the new session.
112
- If provided, this path will be used. If `None`, current settings are used.
113
- browser_name_in_system (Optional[str]): Override browser name for auto-detection for the new session.
114
- Only takes effect if `use_browser_exe` is also provided. If `None`, current settings are used.
115
- use_browser_exe (Optional[bool]): Override auto-detection behavior for the new session.
116
- If provided, this boolean determines if the browser executable is auto-detected.
117
- If `None`, current settings are used.
118
- start_page_url (Optional[str]): Override start page URL for the new session.
119
- If provided, this URL will be used. If `None`, current setting is used.
120
- window_rect (Optional[WindowRect]): Override window rectangle for the new session.
121
- If provided, these dimensions will be used. If `None`, current settings are used.
122
- trio_tokens_limit (Optional[Union[int, float]]): Override Trio token limit for the new session.
123
- If provided, this limit will be used. If `None`, current setting is used.
124
- """
125
-
126
- ...
127
-
128
- def start_webdriver(
129
- self,
130
- flags: Optional[Union["YandexFlags", _any_flags_mapping]] = None,
131
- browser_exe: Optional[Union[str, pathlib.Path]] = None,
132
- browser_name_in_system: Optional[str] = None,
133
- use_browser_exe: Optional[bool] = None,
134
- start_page_url: Optional[str] = None,
135
- window_rect: Optional[WindowRect] = None,
136
- trio_tokens_limit: Optional[Union[int, float]] = None,
137
- ):
138
- """
139
- Starts the WebDriver service and the browser session.
140
-
141
- Initializes and starts the WebDriver instance and the associated browser process.
142
- It first updates settings based on provided parameters (if the driver is not already running),
143
- checks if a browser process needs to be started, starts it if necessary using Popen,
144
- waits for it to become active, and then creates the WebDriver client instance (`self.driver`).
145
-
146
- Args:
147
- flags (Optional[Union[YandexFlags, Mapping[str, Any]]]): Override flags for this start.
148
- If provided, these flags will be applied. If `None`, current settings are used.
149
- browser_exe (Optional[Union[str, pathlib.Path]]): Override browser executable path for this start.
150
- If provided, this path will be used. If `None`, current settings are used.
151
- browser_name_in_system (Optional[str]): Override browser name for auto-detection for this start.
152
- Only takes effect if `use_browser_exe` is also provided. If `None`, current settings are used.
153
- use_browser_exe (Optional[bool]): Override auto-detection behavior for this start.
154
- If provided, this boolean determines if the browser executable is auto-detected.
155
- If `None`, current settings are used.
156
- start_page_url (Optional[str]): Override start page URL for this start.
157
- If provided, this URL will be used. If `None`, current setting is used.
158
- window_rect (Optional[WindowRect]): Override window rectangle for this start.
159
- If provided, these dimensions will be used. If `None`, current settings are used.
160
- trio_tokens_limit (Optional[Union[int, float]]): Override Trio token limit for this start.
161
- If provided, this limit will be used. If `None`, current setting is used.
162
- """
163
-
164
- ...
165
-
166
- def update_settings(
167
- self,
168
- flags: Optional[Union["YandexFlags", _any_flags_mapping]] = None,
169
- browser_exe: Optional[Union[str, pathlib.Path]] = None,
170
- browser_name_in_system: Optional[str] = None,
171
- use_browser_exe: Optional[bool] = None,
172
- start_page_url: Optional[str] = None,
173
- window_rect: Optional[WindowRect] = None,
174
- trio_tokens_limit: Optional[Union[int, float]] = None,
175
- ):
176
- """
177
- Updates various browser settings selectively without resetting others.
178
-
179
- This method allows for dynamic updating of browser settings. Only the settings
180
- for which a non-None value is provided will be updated. Settings passed as `None`
181
- will retain their current values. This method can be called whether the browser
182
- is active or not, but some changes might only take effect after the browser is
183
- restarted.
184
-
185
- Args:
186
- flags (Optional[Union[YandexFlags, Mapping[str, Any]]]): New browser flags to update.
187
- If provided, these flags will be merged with or overwrite existing flags
188
- within the flags manager. If `None`, existing flags remain unchanged.
189
- browser_exe (Optional[Union[str, pathlib.Path]]): The new path to the browser executable.
190
- If provided, this path will be set in the flags manager. If `None`, the
191
- current browser executable path remains unchanged.
192
- browser_name_in_system (Optional[str]): The common name of the browser (e.g., "Chrome", "Edge").
193
- Used in conjunction with `use_browser_exe` to automatically detect the browser executable path.
194
- This parameter only takes effect if `use_browser_exe` is explicitly provided.
195
- If `None`, no automatic detection based on name will occur through this method call.
196
- use_browser_exe (Optional[bool]): Controls the automatic detection of the browser executable.
197
- If `True` (and `browser_name_in_system` is provided), the browser executable path
198
- will be automatically detected if `browser_exe` is `None`.
199
- If `False` (and `browser_name_in_system` is provided), any existing `browser_exe`
200
- path in the flags manager will be cleared.
201
- If `None`, the current `use_browser_exe` state is maintained for the `_detect_browser_exe` logic.
202
- start_page_url (Optional[str]): The new URL that the browser will attempt to navigate to
203
- immediately after starting. If `None`, the current start page URL remains unchanged.
204
- window_rect (Optional[WindowRect]): The new window size and position settings.
205
- If `None`, the current window rectangle settings remain unchanged.
206
- trio_tokens_limit (Optional[Union[int, float]]): The new maximum number of concurrent
207
- asynchronous operations allowed by the Trio capacity limiter. If `None`, the
208
- current limit remains unchanged.
209
- """
210
-
211
- ...
@@ -1,350 +0,0 @@
1
- import pathlib
2
- from selenium import webdriver
3
- from osn_selenium.types import WindowRect
4
- from typing import (
5
- Optional,
6
- Type,
7
- Union,
8
- cast
9
- )
10
- from osn_selenium.dev_tools.manager import DevToolsSettings
11
- from osn_selenium.webdrivers.types import _any_flags_mapping
12
- from osn_selenium.captcha_workers import (
13
- CaptchaWorkerSettings
14
- )
15
- from osn_selenium.webdrivers.Chrome.webdriver import ChromeWebDriver
16
- from osn_selenium.webdrivers.Yandex.flags import (
17
- YandexFlags,
18
- YandexFlagsManager
19
- )
20
- from osn_selenium.webdrivers.BaseDriver.trio_wrapper import (
21
- TrioBrowserWebDriverWrapper
22
- )
23
- from osn_selenium.webdrivers.Yandex.protocols import (
24
- TrioYandexWebDriverWrapperProtocol
25
- )
26
-
27
-
28
- class YandexWebDriver(ChromeWebDriver):
29
- """
30
- Manages a Yandex Browser session using Selenium WebDriver.
31
-
32
- This class specializes ChromeWebDriver for Yandex Browser. It sets up and manages
33
- the lifecycle of a Yandex Browser instance controlled by Selenium WebDriver,
34
- including starting the browser with specific options, handling sessions, and managing browser processes.
35
- Yandex Browser is based on Chromium, so it uses ChromeOptions and ChromeDriver.
36
-
37
- Attributes:
38
- _window_rect (Optional[WindowRect]): The window size and position settings.
39
- _js_scripts (dict[str, str]): A dictionary of pre-loaded JavaScript scripts.
40
- _webdriver_path (str): The file path to the WebDriver executable.
41
- _webdriver_flags_manager (YandexFlagsManager): The manager for browser flags and options.
42
- _driver (Optional[webdriver.Chrome]): The active Selenium WebDriver instance.
43
- _base_implicitly_wait (int): The default implicit wait time in seconds.
44
- _base_page_load_timeout (int): The default page load timeout in seconds.
45
- _base_script_timeout (int): The default script timeout in seconds.
46
- _captcha_workers (list[CaptchaWorkerSettings]): A list of configured captcha worker settings.
47
- _is_active (bool): A flag indicating if the browser process is active.
48
- trio_capacity_limiter (trio.CapacityLimiter): A capacity limiter for controlling concurrent async operations.
49
- dev_tools (DevTools): An interface for interacting with the browser's DevTools protocol.
50
- _console_encoding (str): The encoding of the system console.
51
- _ip_pattern (re.Pattern): A compiled regex pattern to match IP addresses and ports.
52
- """
53
-
54
- def __init__(
55
- self,
56
- webdriver_path: str,
57
- flags_manager_type: Type[YandexFlagsManager] = YandexFlagsManager,
58
- use_browser_exe: bool = True,
59
- browser_name_in_system: str = "Yandex",
60
- browser_exe: Optional[Union[str, pathlib.Path]] = None,
61
- flags: Optional[YandexFlags] = None,
62
- start_page_url: str = "https://www.yandex.com",
63
- implicitly_wait: int = 5,
64
- page_load_timeout: int = 5,
65
- script_timeout: int = 5,
66
- window_rect: Optional[WindowRect] = None,
67
- trio_tokens_limit: Union[int, float] = 40,
68
- captcha_workers: Optional[list[CaptchaWorkerSettings]] = None,
69
- devtools_settings: Optional[DevToolsSettings] = None,
70
- ):
71
- """
72
- Initializes a YandexWebDriver instance.
73
-
74
- This constructor prepares the Yandex Browser for automation by setting up
75
- its executable path, WebDriver path, browser flags, and other operational
76
- settings. It leverages the `BlinkWebDriver` base class for common Chromium-based
77
- browser functionalities.
78
-
79
- Args:
80
- webdriver_path (str): The file path to the ChromeDriver executable.
81
- flags_manager_type (Type[YandexFlagsManager]): The type of flags manager
82
- to use for configuring Yandex Browser-specific command-line arguments.
83
- Defaults to `YandexFlagsManager`.
84
- use_browser_exe (bool): If True, the browser executable path will be
85
- automatically determined based on `browser_name_in_system` if `browser_exe`
86
- is not explicitly provided. If False, `browser_exe` must be None.
87
- Defaults to True.
88
- browser_name_in_system (str): The common name of the Yandex Browser
89
- executable in the system (e.g., "Yandex"). Used to auto-detect `browser_exe`.
90
- Defaults to "Yandex".
91
- browser_exe (Optional[Union[str, pathlib.Path]]): The explicit path to the
92
- Yandex Browser executable. If `use_browser_exe` is True and this is None,
93
- it will attempt to find the browser automatically. If `use_browser_exe`
94
- is False, this must be None.
95
- flags (Optional[YandexFlags]): An object containing specific flags or options
96
- to pass to the Yandex Browser process.
97
- start_page_url (str): The URL to load when the browser session starts.
98
- Defaults to "https://www.yandex.com".
99
- implicitly_wait (int): The default implicit wait time in seconds for the WebDriver.
100
- Defaults to 5 seconds.
101
- page_load_timeout (int): The default timeout in seconds for page loading.
102
- Defaults to 5 seconds.
103
- script_timeout (int): The default timeout in seconds for asynchronous JavaScript execution.
104
- Defaults to 5 seconds.
105
- window_rect (Optional[WindowRect]): An object specifying the initial window
106
- position and size.
107
- trio_tokens_limit (Union[int, float]): The maximum number of concurrent
108
- asynchronous operations allowed by the Trio capacity limiter. Defaults to 40.
109
- captcha_workers (Optional[Sequence[CaptchaWorkerSettings]]): A sequence of
110
- settings for captcha detection and solving functions.
111
- devtools_settings (Optional[DevToolsSettings]): Settings for configuring the
112
- Chrome DevTools Protocol (CDP) interface.
113
- """
114
-
115
- super().__init__(
116
- webdriver_path=webdriver_path,
117
- flags_manager_type=flags_manager_type,
118
- use_browser_exe=use_browser_exe,
119
- browser_name_in_system=browser_name_in_system,
120
- browser_exe=browser_exe,
121
- flags=flags,
122
- start_page_url=start_page_url,
123
- implicitly_wait=implicitly_wait,
124
- page_load_timeout=page_load_timeout,
125
- script_timeout=script_timeout,
126
- window_rect=window_rect,
127
- trio_tokens_limit=trio_tokens_limit,
128
- captcha_workers=captcha_workers,
129
- devtools_settings=devtools_settings,
130
- )
131
-
132
- def reset_settings(
133
- self,
134
- flags: Optional[Union[YandexFlags, _any_flags_mapping]] = None,
135
- browser_exe: Optional[Union[str, pathlib.Path]] = None,
136
- browser_name_in_system: Optional[str] = None,
137
- use_browser_exe: Optional[bool] = None,
138
- start_page_url: str = "",
139
- window_rect: Optional[WindowRect] = None,
140
- trio_tokens_limit: Union[int, float] = 40,
141
- ):
142
- """
143
- Resets various configurable browser settings to their specified or default values.
144
-
145
- This method allows for reconfiguring the WebDriver's operational parameters,
146
- such as browser flags, executable path, start URL, window dimensions, and
147
- concurrency limits. It is crucial that the browser session is *not* active
148
- when this method is called; otherwise, a warning will be issued, and no changes
149
- will be applied.
150
-
151
- Args:
152
- flags (Optional[Union[YandexFlags, Mapping[str, Any]]]): New browser flags to apply.
153
- If provided, existing flags are cleared and replaced with these.
154
- If `None`, all custom flags are cleared, and the browser will start with default flags.
155
- browser_exe (Optional[Union[str, pathlib.Path]]): The explicit path to the browser executable.
156
- If provided, this path will be used. If `None`, the executable path managed by the
157
- flags manager will be cleared, and then potentially re-detected based on
158
- `use_browser_exe` and `browser_name_in_system`.
159
- browser_name_in_system (Optional[str]): The common name of the browser (e.g., "Chrome", "Edge").
160
- Used in conjunction with `use_browser_exe` to automatically detect the browser executable path.
161
- This parameter only takes effect if `use_browser_exe` is explicitly `True` or `False`.
162
- If `None`, no automatic detection based on name will occur through this method call.
163
- use_browser_exe (Optional[bool]): Controls the automatic detection of the browser executable.
164
- If `True` (and `browser_name_in_system` is provided), the browser executable path
165
- will be automatically detected if `browser_exe` is `None`.
166
- If `False` (and `browser_name_in_system` is provided), any existing `browser_exe`
167
- path in the flags manager will be cleared.
168
- If `None`, the current `use_browser_exe` state is maintained for the `_detect_browser_exe` logic.
169
- start_page_url (str): The URL that the browser will attempt to navigate to
170
- immediately after starting. Defaults to an empty string.
171
- window_rect (Optional[WindowRect]): The initial window size and position settings.
172
- If `None`, it defaults to a new `WindowRect()` instance, effectively resetting
173
- to the browser's default window behavior.
174
- trio_tokens_limit (Union[int, float]): The maximum number of concurrent synchronous
175
- WebDriver operations allowed by the Trio capacity limiter. Defaults to 40.
176
- """
177
-
178
- super().reset_settings(
179
- flags=flags,
180
- browser_exe=browser_exe,
181
- browser_name_in_system=browser_name_in_system,
182
- use_browser_exe=use_browser_exe,
183
- start_page_url=start_page_url,
184
- window_rect=window_rect,
185
- trio_tokens_limit=trio_tokens_limit,
186
- )
187
-
188
- def restart_webdriver(
189
- self,
190
- flags: Optional[Union[YandexFlags, _any_flags_mapping]] = None,
191
- browser_exe: Optional[Union[str, pathlib.Path]] = None,
192
- browser_name_in_system: Optional[str] = None,
193
- use_browser_exe: Optional[bool] = None,
194
- start_page_url: Optional[str] = None,
195
- window_rect: Optional[WindowRect] = None,
196
- trio_tokens_limit: Optional[Union[int, float]] = None,
197
- ):
198
- """
199
- Restarts the WebDriver and browser session gracefully.
200
-
201
- Performs a clean restart by first closing the existing WebDriver session and browser
202
- (using `close_webdriver`), and then initiating a new session (using `start_webdriver`)
203
- with potentially updated settings. If settings arguments are provided, they override
204
- the existing settings for the new session; otherwise, the current settings are used.
205
-
206
- Args:
207
- flags (Optional[Union[YandexFlags, Mapping[str, Any]]]): Override flags for the new session.
208
- If provided, these flags will be applied. If `None`, current settings are used.
209
- browser_exe (Optional[Union[str, pathlib.Path]]): Override browser executable for the new session.
210
- If provided, this path will be used. If `None`, current settings are used.
211
- browser_name_in_system (Optional[str]): Override browser name for auto-detection for the new session.
212
- Only takes effect if `use_browser_exe` is also provided. If `None`, current settings are used.
213
- use_browser_exe (Optional[bool]): Override auto-detection behavior for the new session.
214
- If provided, this boolean determines if the browser executable is auto-detected.
215
- If `None`, current settings are used.
216
- start_page_url (Optional[str]): Override start page URL for the new session.
217
- If provided, this URL will be used. If `None`, current setting is used.
218
- window_rect (Optional[WindowRect]): Override window rectangle for the new session.
219
- If provided, these dimensions will be used. If `None`, current settings are used.
220
- trio_tokens_limit (Optional[Union[int, float]]): Override Trio token limit for the new session.
221
- If provided, this limit will be used. If `None`, current setting is used.
222
- """
223
-
224
- super().restart_webdriver(
225
- flags=flags,
226
- browser_exe=browser_exe,
227
- browser_name_in_system=browser_name_in_system,
228
- use_browser_exe=use_browser_exe,
229
- start_page_url=start_page_url,
230
- window_rect=window_rect,
231
- trio_tokens_limit=trio_tokens_limit,
232
- )
233
-
234
- def start_webdriver(
235
- self,
236
- flags: Optional[Union[YandexFlags, _any_flags_mapping]] = None,
237
- browser_exe: Optional[Union[str, pathlib.Path]] = None,
238
- browser_name_in_system: Optional[str] = None,
239
- use_browser_exe: Optional[bool] = None,
240
- start_page_url: Optional[str] = None,
241
- window_rect: Optional[WindowRect] = None,
242
- trio_tokens_limit: Optional[Union[int, float]] = None,
243
- ):
244
- """
245
- Starts the WebDriver service and the browser session.
246
-
247
- Initializes and starts the WebDriver instance and the associated browser process.
248
- It first updates settings based on provided parameters (if the driver is not already running),
249
- checks if a browser process needs to be started, starts it if necessary using Popen,
250
- waits for it to become active, and then creates the WebDriver client instance (`self.driver`).
251
-
252
- Args:
253
- flags (Optional[Union[YandexFlags, Mapping[str, Any]]]): Override flags for this start.
254
- If provided, these flags will be applied. If `None`, current settings are used.
255
- browser_exe (Optional[Union[str, pathlib.Path]]): Override browser executable path for this start.
256
- If provided, this path will be used. If `None`, current settings are used.
257
- browser_name_in_system (Optional[str]): Override browser name for auto-detection for this start.
258
- Only takes effect if `use_browser_exe` is also provided. If `None`, current settings are used.
259
- use_browser_exe (Optional[bool]): Override auto-detection behavior for this start.
260
- If provided, this boolean determines if the browser executable is auto-detected.
261
- If `None`, current settings are used.
262
- start_page_url (Optional[str]): Override start page URL for this start.
263
- If provided, this URL will be used. If `None`, current setting is used.
264
- window_rect (Optional[WindowRect]): Override window rectangle for this start.
265
- If provided, these dimensions will be used. If `None`, current settings are used.
266
- trio_tokens_limit (Optional[Union[int, float]]): Override Trio token limit for this start.
267
- If provided, this limit will be used. If `None`, current setting is used.
268
- """
269
-
270
- super().start_webdriver(
271
- flags=flags,
272
- browser_exe=browser_exe,
273
- browser_name_in_system=browser_name_in_system,
274
- use_browser_exe=use_browser_exe,
275
- start_page_url=start_page_url,
276
- window_rect=window_rect,
277
- trio_tokens_limit=trio_tokens_limit,
278
- )
279
-
280
- def to_wrapper(self) -> TrioYandexWebDriverWrapperProtocol:
281
- """
282
- Creates a TrioBrowserWebDriverWrapper instance for asynchronous operations with Trio.
283
-
284
- Wraps the ...WebDriver instance in a TrioBrowserWebDriverWrapper, which allows for running WebDriver
285
- commands in a non-blocking manner within a Trio asynchronous context. This is essential for
286
- integrating Selenium WebDriver with asynchronous frameworks like Trio.
287
-
288
- Returns:
289
- TrioYandexWebDriverWrapperProtocol: A TrioBrowserWebDriverWrapper instance wrapping this BrowserWebDriver.
290
- """
291
-
292
- return cast(
293
- TrioYandexWebDriverWrapperProtocol,
294
- TrioBrowserWebDriverWrapper(_webdriver=self)
295
- )
296
-
297
- def update_settings(
298
- self,
299
- flags: Optional[Union[YandexFlags, _any_flags_mapping]] = None,
300
- browser_exe: Optional[Union[str, pathlib.Path]] = None,
301
- browser_name_in_system: Optional[str] = None,
302
- use_browser_exe: Optional[bool] = None,
303
- start_page_url: Optional[str] = None,
304
- window_rect: Optional[WindowRect] = None,
305
- trio_tokens_limit: Optional[Union[int, float]] = None,
306
- ):
307
- """
308
- Updates various browser settings selectively without resetting others.
309
-
310
- This method allows for dynamic updating of browser settings. Only the settings
311
- for which a non-None value is provided will be updated. Settings passed as `None`
312
- will retain their current values. This method can be called whether the browser
313
- is active or not, but some changes might only take effect after the browser is
314
- restarted.
315
-
316
- Args:
317
- flags (Optional[Union[YandexFlags, Mapping[str, Any]]]): New browser flags to update.
318
- If provided, these flags will be merged with or overwrite existing flags
319
- within the flags manager. If `None`, existing flags remain unchanged.
320
- browser_exe (Optional[Union[str, pathlib.Path]]): The new path to the browser executable.
321
- If provided, this path will be set in the flags manager. If `None`, the
322
- current browser executable path remains unchanged.
323
- browser_name_in_system (Optional[str]): The common name of the browser (e.g., "Chrome", "Edge").
324
- Used in conjunction with `use_browser_exe` to automatically detect the browser executable path.
325
- This parameter only takes effect if `use_browser_exe` is explicitly provided.
326
- If `None`, no automatic detection based on name will occur through this method call.
327
- use_browser_exe (Optional[bool]): Controls the automatic detection of the browser executable.
328
- If `True` (and `browser_name_in_system` is provided), the browser executable path
329
- will be automatically detected if `browser_exe` is `None`.
330
- If `False` (and `browser_name_in_system` is provided), any existing `browser_exe`
331
- path in the flags manager will be cleared.
332
- If `None`, the current `use_browser_exe` state is maintained for the `_detect_browser_exe` logic.
333
- start_page_url (Optional[str]): The new URL that the browser will attempt to navigate to
334
- immediately after starting. If `None`, the current start page URL remains unchanged.
335
- window_rect (Optional[WindowRect]): The new window size and position settings.
336
- If `None`, the current window rectangle settings remain unchanged.
337
- trio_tokens_limit (Optional[Union[int, float]]): The new maximum number of concurrent
338
- asynchronous operations allowed by the Trio capacity limiter. If `None`, the
339
- current limit remains unchanged.
340
- """
341
-
342
- super().update_settings(
343
- flags=flags,
344
- browser_exe=browser_exe,
345
- browser_name_in_system=browser_name_in_system,
346
- use_browser_exe=use_browser_exe,
347
- start_page_url=start_page_url,
348
- window_rect=window_rect,
349
- trio_tokens_limit=trio_tokens_limit,
350
- )