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,70 @@
1
+ from typing import (
2
+ Any,
3
+ List,
4
+ Optional,
5
+ Union
6
+ )
7
+ from osn_selenium.webdrivers._decorators import requires_driver
8
+ from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
9
+ from selenium.webdriver.common.virtual_authenticator import (
10
+ Credential,
11
+ VirtualAuthenticatorOptions
12
+ )
13
+
14
+
15
+ __all__ = ["UnifiedCoreAuthMixin"]
16
+
17
+
18
+ class UnifiedCoreAuthMixin(UnifiedCoreBaseMixin):
19
+ @requires_driver
20
+ def _add_credential_impl(self, credential: Credential) -> None:
21
+ self._driver_impl.add_credential(credential=credential)
22
+
23
+ @requires_driver
24
+ def _add_virtual_authenticator_impl(self, options: VirtualAuthenticatorOptions) -> None:
25
+ self._driver_impl.add_virtual_authenticator(options=options)
26
+
27
+ @requires_driver
28
+ def _fedcm_dialog_impl(
29
+ self,
30
+ timeout: int = 5,
31
+ poll_frequency: float = 0.5,
32
+ ignored_exceptions: Any = None,
33
+ ) -> Any:
34
+ return self._driver_impl.fedcm_dialog(
35
+ timeout=timeout,
36
+ poll_frequency=poll_frequency,
37
+ ignored_exceptions=ignored_exceptions,
38
+ )
39
+
40
+ @requires_driver
41
+ def _fedcm_impl(self) -> Any:
42
+ return self._driver_impl.fedcm
43
+
44
+ @requires_driver
45
+ def _get_credentials_impl(self) -> List[Credential]:
46
+ return self._driver_impl.get_credentials()
47
+
48
+ @requires_driver
49
+ def _remove_all_credentials_impl(self) -> None:
50
+ self._driver_impl.remove_all_credentials()
51
+
52
+ @requires_driver
53
+ def _remove_credential_impl(self, credential_id: Union[str, bytearray]) -> None:
54
+ self._driver_impl.remove_credential(credential_id=credential_id)
55
+
56
+ @requires_driver
57
+ def _remove_virtual_authenticator_impl(self) -> None:
58
+ self._driver_impl.remove_virtual_authenticator()
59
+
60
+ @requires_driver
61
+ def _set_user_verified_impl(self, verified: bool) -> None:
62
+ self._driver_impl.set_user_verified(verified=verified)
63
+
64
+ @requires_driver
65
+ def _supports_fedcm_impl(self) -> bool:
66
+ return self._driver_impl.supports_fedcm
67
+
68
+ @requires_driver
69
+ def _virtual_authenticator_id_impl(self) -> Optional[str]:
70
+ return self._driver_impl.virtual_authenticator_id
@@ -0,0 +1,139 @@
1
+ from osn_selenium._cdp_import import install_cdp_hook
2
+ from osn_selenium.models import WindowRect
3
+ from typing import (
4
+ Any,
5
+ Dict,
6
+ Mapping, Optional,
7
+ Type
8
+ )
9
+ from osn_selenium.flags.base import BrowserFlagsManager
10
+ from osn_selenium.flags.models.base import BrowserFlags
11
+ from selenium.webdriver.common.bidi.session import Session
12
+ from osn_selenium._typehints import (
13
+ ARCHITECTURES_TYPEHINT, PATH_TYPEHINT
14
+ )
15
+ from selenium.webdriver.remote.errorhandler import ErrorHandler
16
+ from osn_selenium.webdrivers._decorators import requires_driver
17
+ from selenium.webdriver.remote.locator_converter import LocatorConverter
18
+ from selenium.webdriver.remote.remote_connection import RemoteConnection
19
+ from osn_selenium.exceptions.webdriver import (
20
+ WebDriverNotStartedError
21
+ )
22
+ from selenium.webdriver.remote.webdriver import (
23
+ WebDriver as legacyWebDriver
24
+ )
25
+
26
+
27
+ __all__ = ["UnifiedCoreBaseMixin"]
28
+
29
+
30
+ class UnifiedCoreBaseMixin:
31
+ def __init__(
32
+ self,
33
+ webdriver_path: str,
34
+ architecture: ARCHITECTURES_TYPEHINT,
35
+ flags_manager_type: Type[BrowserFlagsManager] = BrowserFlagsManager,
36
+ flags: Optional[BrowserFlags] = None,
37
+ implicitly_wait: int = 5,
38
+ page_load_timeout: int = 5,
39
+ script_timeout: int = 5,
40
+ window_rect: Optional[WindowRect] = None,
41
+ cdp_versioned_packages_paths: Optional[Mapping[int, PATH_TYPEHINT]] = None,
42
+ ignore_cdp_version_package_missing: bool = True,
43
+ ) -> None:
44
+ self._window_rect = window_rect
45
+ self._webdriver_path = webdriver_path
46
+ self._webdriver_flags_manager = flags_manager_type()
47
+ self._driver: Optional[legacyWebDriver] = None
48
+ self._architecture = architecture
49
+ self._base_implicitly_wait = float(implicitly_wait)
50
+ self._base_page_load_timeout = float(page_load_timeout)
51
+ self._base_script_timeout = float(script_timeout)
52
+ self._is_active = False
53
+
54
+ if flags is not None:
55
+ self._webdriver_flags_manager.update_flags(flags)
56
+
57
+ if not getattr(self, "cdp_hook_installed", False):
58
+ install_cdp_hook(cdp_paths=cdp_versioned_packages_paths, ignore_package_missing=ignore_cdp_version_package_missing)
59
+ setattr(self, "cdp_hook_installed", True)
60
+
61
+ @property
62
+ def _architecture_impl(self) -> ARCHITECTURES_TYPEHINT:
63
+ return self._architecture
64
+
65
+ @requires_driver
66
+ def _capabilities_impl(self) -> Dict[str, Any]:
67
+ return self._driver_impl.capabilities
68
+
69
+ @requires_driver
70
+ def _caps_get_impl(self) -> Dict[str, Any]:
71
+ return self._driver_impl.caps
72
+
73
+ @requires_driver
74
+ def _caps_set_impl(self, value: Dict[str, Any]) -> None:
75
+ self._driver_impl.caps = value
76
+
77
+ @requires_driver
78
+ def _command_executor_get_impl(self) -> RemoteConnection:
79
+ return self._driver_impl.command_executor
80
+
81
+ @requires_driver
82
+ def _command_executor_set_impl(self, value: RemoteConnection) -> None:
83
+ self._driver_impl.command_executor = value
84
+
85
+ @property
86
+ def _driver_impl(self) -> Optional[legacyWebDriver]:
87
+ return self._driver
88
+
89
+ def _ensure_driver(self) -> None:
90
+ if self._driver is None:
91
+ raise WebDriverNotStartedError()
92
+
93
+ @requires_driver
94
+ def _error_handler_get_impl(self) -> ErrorHandler:
95
+ return self._driver_impl.error_handler
96
+
97
+ @requires_driver
98
+ def _error_handler_set_impl(self, value: ErrorHandler) -> None:
99
+ self._driver_impl.error_handler = value
100
+
101
+ @requires_driver
102
+ def _execute_impl(self, driver_command: str, params: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
103
+ return self._driver_impl.execute(driver_command=driver_command, params=params)
104
+
105
+ @property
106
+ def _is_active_impl(self) -> bool:
107
+ return self._is_active
108
+
109
+ @requires_driver
110
+ def _locator_converter_get_impl(self) -> LocatorConverter:
111
+ return self._driver_impl.locator_converter
112
+
113
+ @requires_driver
114
+ def _locator_converter_set_impl(self, value: LocatorConverter) -> None:
115
+ self._driver_impl.locator_converter = value
116
+
117
+ @requires_driver
118
+ def _name_impl(self) -> str:
119
+ return self._driver_impl.name
120
+
121
+ @requires_driver
122
+ def _pinned_scripts_get_impl(self) -> Dict[str, Any]:
123
+ return self._driver_impl.pinned_scripts
124
+
125
+ @requires_driver
126
+ def _pinned_scripts_set_impl(self, value: Dict[str, Any]) -> None:
127
+ self._driver_impl.pinned_scripts = value
128
+
129
+ @requires_driver
130
+ def _session_id_get_impl(self) -> Optional[str]:
131
+ return self._driver_impl.session_id
132
+
133
+ @requires_driver
134
+ def _session_id_set_impl(self, value: Optional[str]) -> None:
135
+ self._driver_impl.session_id = value
136
+
137
+ @requires_driver
138
+ def _session_impl(self) -> Session:
139
+ return self._driver_impl._session
@@ -0,0 +1,32 @@
1
+ from typing import Any, Optional
2
+ from osn_selenium.webdrivers._decorators import requires_driver
3
+ from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
4
+
5
+
6
+ __all__ = ["UnifiedCoreCaptureMixin"]
7
+
8
+
9
+ class UnifiedCoreCaptureMixin(UnifiedCoreBaseMixin):
10
+ @requires_driver
11
+ def _get_screenshot_as_base64_impl(self) -> str:
12
+ return self._driver_impl.get_screenshot_as_base64()
13
+
14
+ @requires_driver
15
+ def _get_screenshot_as_file_impl(self, filename: str) -> bool:
16
+ return self._driver_impl.get_screenshot_as_file(filename=filename)
17
+
18
+ @requires_driver
19
+ def _get_screenshot_as_png_impl(self) -> bytes:
20
+ return self._driver_impl.get_screenshot_as_png()
21
+
22
+ @requires_driver
23
+ def _page_source_impl(self) -> str:
24
+ return self._driver_impl.page_source
25
+
26
+ @requires_driver
27
+ def _print_page_impl(self, print_options: Optional[Any] = None) -> str:
28
+ return self._driver_impl.print_page(print_options=print_options)
29
+
30
+ @requires_driver
31
+ def _save_screenshot_impl(self, filename: str) -> bool:
32
+ return self._driver_impl.save_screenshot(filename=filename)
@@ -0,0 +1,32 @@
1
+ from typing import Any
2
+ from osn_selenium.webdrivers._decorators import requires_driver
3
+ from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
4
+
5
+
6
+ __all__ = ["UnifiedCoreComponentsMixin"]
7
+
8
+
9
+ class UnifiedCoreComponentsMixin(UnifiedCoreBaseMixin):
10
+ @requires_driver
11
+ def _browser_impl(self) -> Any:
12
+ return self._driver_impl.browser
13
+
14
+ @requires_driver
15
+ def _browsing_context_impl(self) -> Any:
16
+ return self._driver_impl.browsing_context
17
+
18
+ @requires_driver
19
+ def _dialog_impl(self) -> Any:
20
+ return self._driver_impl.dialog
21
+
22
+ @requires_driver
23
+ def _mobile_impl(self) -> Any:
24
+ return self._driver_impl.mobile
25
+
26
+ @requires_driver
27
+ def _permissions_impl(self) -> Any:
28
+ return self._driver_impl.permissions
29
+
30
+ @requires_driver
31
+ def _webextension_impl(self) -> Any:
32
+ return self._driver_impl.webextension
@@ -0,0 +1,35 @@
1
+ from contextlib import asynccontextmanager
2
+ from typing import (
3
+ Any,
4
+ AsyncGenerator,
5
+ Dict,
6
+ Tuple
7
+ )
8
+ from osn_selenium.webdrivers._decorators import requires_driver
9
+ from osn_selenium.webdrivers._args_helpers import build_cdp_kwargs
10
+ from selenium.webdriver.remote.bidi_connection import BidiConnection
11
+ from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
12
+ from selenium.webdriver.remote.websocket_connection import WebSocketConnection
13
+
14
+
15
+ __all__ = ["UnifiedCoreDevToolsMixin"]
16
+
17
+
18
+ class UnifiedCoreDevToolsMixin(UnifiedCoreBaseMixin):
19
+ @asynccontextmanager
20
+ @requires_driver
21
+ async def _bidi_connection_impl(self) -> AsyncGenerator[BidiConnection, Any]:
22
+ async with self._driver_impl.bidi_connection() as bidi_connection:
23
+ yield bidi_connection
24
+
25
+ @requires_driver
26
+ def _execute_cdp_cmd_impl(self, cmd: str, cmd_args: Dict[str, Any]) -> Any:
27
+ return self._driver_impl.execute_cdp_cmd(cmd=cmd, cmd_args=build_cdp_kwargs(**cmd_args))
28
+
29
+ @requires_driver
30
+ def _network_impl(self) -> Any:
31
+ return self._driver_impl.network
32
+
33
+ @requires_driver
34
+ def _start_devtools_impl(self) -> Tuple[Any, WebSocketConnection]:
35
+ return self._driver_impl.start_devtools()
@@ -0,0 +1,24 @@
1
+ from typing import List, Optional
2
+ from selenium.webdriver.common.by import By
3
+ from osn_selenium.webdrivers._decorators import requires_driver
4
+ from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
5
+ from selenium.webdriver.remote.webelement import (
6
+ WebElement as legacyWebElement
7
+ )
8
+
9
+
10
+ __all__ = ["UnifiedCoreElementMixin"]
11
+
12
+
13
+ class UnifiedCoreElementMixin(UnifiedCoreBaseMixin):
14
+ @requires_driver
15
+ def _create_web_element_impl(self, element_id: str) -> legacyWebElement:
16
+ return self._driver_impl.create_web_element(element_id=element_id)
17
+
18
+ @requires_driver
19
+ def _find_element_impl(self, by: str = By.ID, value: Optional[str] = None) -> legacyWebElement:
20
+ return self._driver_impl.find_element(by=by, value=value)
21
+
22
+ @requires_driver
23
+ def _find_elements_impl(self, by: str = By.ID, value: Optional[str] = None) -> List[legacyWebElement]:
24
+ return self._driver_impl.find_elements(by=by, value=value)
@@ -0,0 +1,35 @@
1
+ from contextlib import contextmanager
2
+ from typing import Any, Generator, List
3
+ from osn_selenium.webdrivers._decorators import requires_driver
4
+ from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
5
+
6
+
7
+ __all__ = ["UnifiedCoreFileMixin"]
8
+
9
+
10
+ class UnifiedCoreFileMixin(UnifiedCoreBaseMixin):
11
+ @requires_driver
12
+ def _delete_downloadable_files_impl(self) -> None:
13
+ self._driver_impl.delete_downloadable_files()
14
+
15
+ @requires_driver
16
+ def _download_file_impl(self, file_name: str, target_directory: str) -> None:
17
+ self._driver_impl.download_file(file_name=file_name, target_directory=target_directory)
18
+
19
+ @contextmanager
20
+ @requires_driver
21
+ def _file_detector_context_impl(self, file_detector_class: Any, *args: Any, **kwargs: Any) -> Generator[None, Any, None]:
22
+ with self._driver_impl.file_detector_context(file_detector_class, *args, **kwargs) as file_detector:
23
+ yield file_detector
24
+
25
+ @requires_driver
26
+ def _file_detector_get_impl(self) -> Any:
27
+ return self._driver_impl.file_detector
28
+
29
+ @requires_driver
30
+ def _file_detector_set_impl(self, value: Any) -> None:
31
+ self._driver_impl.file_detector = value
32
+
33
+ @requires_driver
34
+ def _get_downloadable_files_impl(self) -> List[str]:
35
+ return self._driver_impl.get_downloadable_files()
@@ -0,0 +1,84 @@
1
+ from osn_selenium.models import WindowRect
2
+ from typing import (
3
+ Any,
4
+ Dict,
5
+ Optional,
6
+ Union
7
+ )
8
+ from osn_selenium.flags.models.base import BrowserFlags
9
+ from osn_selenium.webdrivers._decorators import requires_driver
10
+ from selenium.webdriver.remote.remote_connection import RemoteConnection
11
+ from osn_selenium.exceptions.logic import (
12
+ AbstractImplementationError
13
+ )
14
+ from selenium.webdriver.remote.webdriver import (
15
+ WebDriver as legacyWebDriver
16
+ )
17
+ from osn_selenium.webdrivers.unified.core.settings import (
18
+ UnifiedCoreSettingsMixin
19
+ )
20
+ from osn_selenium.webdrivers.unified.core.timeouts import (
21
+ UnifiedCoreTimeoutsMixin
22
+ )
23
+
24
+
25
+ __all__ = ["UnifiedCoreLifecycleMixin"]
26
+
27
+
28
+ class UnifiedCoreLifecycleMixin(UnifiedCoreSettingsMixin, UnifiedCoreTimeoutsMixin):
29
+ def _remote_connect_driver_impl(self, command_executor: Union[str, RemoteConnection]) -> None:
30
+ self._driver = legacyWebDriver(
31
+ command_executor=command_executor,
32
+ options=self._webdriver_flags_manager.options,
33
+ )
34
+
35
+ self._set_driver_timeouts_impl(
36
+ page_load_timeout=self._base_page_load_timeout,
37
+ implicit_wait_timeout=self._base_implicitly_wait,
38
+ script_timeout=self._base_script_timeout,
39
+ )
40
+
41
+ self._is_active = True
42
+
43
+ def _create_driver_impl(self) -> None:
44
+ raise AbstractImplementationError(method_name="_create_driver_impl", class_name=self.__class__.__name__)
45
+
46
+ def _start_webdriver_impl(
47
+ self,
48
+ flags: Optional[BrowserFlags] = None,
49
+ window_rect: Optional[WindowRect] = None,
50
+ ) -> None:
51
+ if self._driver_impl is None:
52
+ self._update_settings_impl(flags=flags, window_rect=window_rect)
53
+ self._create_driver_impl()
54
+
55
+ @requires_driver
56
+ def _quit_impl(self) -> None:
57
+ self._driver_impl.quit()
58
+
59
+ def _close_webdriver_impl(self) -> None:
60
+ if self._driver_impl is not None:
61
+ self._quit_impl()
62
+
63
+ self._driver = None
64
+ self._is_active = False
65
+
66
+ def _restart_webdriver_impl(
67
+ self,
68
+ flags: Optional[BrowserFlags] = None,
69
+ window_rect: Optional[WindowRect] = None,
70
+ ) -> None:
71
+ self._close_webdriver_impl()
72
+ self._start_webdriver_impl(flags=flags, window_rect=window_rect)
73
+
74
+ @requires_driver
75
+ def _start_client_impl(self) -> None:
76
+ self._driver_impl.start_client()
77
+
78
+ @requires_driver
79
+ def _start_session_impl(self, capabilities: Dict[str, Any]) -> None:
80
+ self._driver_impl.start_session(capabilities=capabilities)
81
+
82
+ @requires_driver
83
+ def _stop_client_impl(self) -> None:
84
+ self._driver_impl.stop_client()
@@ -0,0 +1,31 @@
1
+ from osn_selenium.webdrivers._decorators import requires_driver
2
+ from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
3
+
4
+
5
+ __all__ = ["UnifiedCoreNavigationMixin"]
6
+
7
+
8
+ class UnifiedCoreNavigationMixin(UnifiedCoreBaseMixin):
9
+ @requires_driver
10
+ def _back_impl(self) -> None:
11
+ self._driver_impl.back()
12
+
13
+ @requires_driver
14
+ def _current_url_impl(self) -> str:
15
+ return self._driver_impl.current_url
16
+
17
+ @requires_driver
18
+ def _forward_impl(self) -> None:
19
+ self._driver_impl.forward()
20
+
21
+ @requires_driver
22
+ def _get_impl(self, url: str) -> None:
23
+ self._driver_impl.get(url=url)
24
+
25
+ @requires_driver
26
+ def _refresh_impl(self) -> None:
27
+ self._driver_impl.refresh()
28
+
29
+ @requires_driver
30
+ def _title_impl(self) -> str:
31
+ return self._driver_impl.title
@@ -0,0 +1,32 @@
1
+ from typing import Any, List, Optional
2
+ from osn_selenium.webdrivers._decorators import requires_driver
3
+ from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
4
+
5
+
6
+ __all__ = ["UnifiedCoreScriptMixin"]
7
+
8
+
9
+ class UnifiedCoreScriptMixin(UnifiedCoreBaseMixin):
10
+ @requires_driver
11
+ def _execute_async_script_impl(self, script: str, *args: Any) -> Any:
12
+ return self._driver_impl.execute_async_script(script, *args)
13
+
14
+ @requires_driver
15
+ def _execute_script_impl(self, script: str, *args: Any) -> Any:
16
+ return self._driver_impl.execute_script(script, *args)
17
+
18
+ @requires_driver
19
+ def _get_pinned_scripts_impl(self) -> List[str]:
20
+ return self._driver_impl.get_pinned_scripts()
21
+
22
+ @requires_driver
23
+ def _pin_script_impl(self, script: str, script_key: Optional[Any] = None) -> Any:
24
+ return self._driver_impl.pin_script(script=script, script_key=script_key)
25
+
26
+ @requires_driver
27
+ def _script_impl(self) -> Any:
28
+ return self._driver_impl.script
29
+
30
+ @requires_driver
31
+ def _unpin_impl(self, script_key: Any) -> None:
32
+ self._driver_impl.unpin(script_key=script_key)
@@ -0,0 +1,44 @@
1
+ from typing import Optional
2
+ from osn_selenium.models import WindowRect
3
+ from osn_selenium.flags.models.base import BrowserFlags
4
+ from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
5
+ from osn_selenium.exceptions.webdriver import (
6
+ WebDriverAlreadyRunningError
7
+ )
8
+
9
+
10
+ __all__ = ["UnifiedCoreSettingsMixin"]
11
+
12
+
13
+ class UnifiedCoreSettingsMixin(UnifiedCoreBaseMixin):
14
+ def _reset_settings_impl(
15
+ self,
16
+ flags: Optional[BrowserFlags] = None,
17
+ window_rect: Optional[WindowRect] = None,
18
+ ) -> None:
19
+ if not self._is_active_impl:
20
+ if window_rect is None:
21
+ window_rect = WindowRect()
22
+
23
+ if flags is not None:
24
+ self._webdriver_flags_manager.set_flags(flags=flags)
25
+ else:
26
+ self._webdriver_flags_manager.clear_flags()
27
+
28
+ self._window_rect = window_rect
29
+ else:
30
+ raise WebDriverAlreadyRunningError()
31
+
32
+ def _update_settings_impl(
33
+ self,
34
+ flags: Optional[BrowserFlags] = None,
35
+ window_rect: Optional[WindowRect] = None,
36
+ ) -> None:
37
+ if not self._is_active_impl:
38
+ if flags is not None:
39
+ self._webdriver_flags_manager.update_flags(flags=flags)
40
+
41
+ if window_rect is not None:
42
+ self._window_rect = window_rect
43
+ else:
44
+ raise WebDriverAlreadyRunningError()
@@ -0,0 +1,37 @@
1
+ from typing import (
2
+ Any,
3
+ Dict,
4
+ List,
5
+ Optional
6
+ )
7
+ from osn_selenium.webdrivers._decorators import requires_driver
8
+ from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
9
+
10
+
11
+ __all__ = ["UnifiedCoreStorageMixin"]
12
+
13
+
14
+ class UnifiedCoreStorageMixin(UnifiedCoreBaseMixin):
15
+ @requires_driver
16
+ def _add_cookie_impl(self, cookie_dict: Dict[str, Any]) -> None:
17
+ self._driver_impl.add_cookie(cookie_dict=cookie_dict)
18
+
19
+ @requires_driver
20
+ def _delete_all_cookies_impl(self) -> None:
21
+ self._driver_impl.delete_all_cookies()
22
+
23
+ @requires_driver
24
+ def _delete_cookie_impl(self, name: str) -> None:
25
+ self._driver_impl.delete_cookie(name=name)
26
+
27
+ @requires_driver
28
+ def _get_cookie_impl(self, name: str) -> Optional[Dict[str, Any]]:
29
+ return self._driver_impl.get_cookie(name=name)
30
+
31
+ @requires_driver
32
+ def _get_cookies_impl(self) -> List[Dict[str, Any]]:
33
+ return self._driver_impl.get_cookies()
34
+
35
+ @requires_driver
36
+ def _storage_impl(self) -> Any:
37
+ return self._driver_impl.storage
@@ -0,0 +1,56 @@
1
+ from typing import Optional
2
+ from selenium.webdriver.common.timeouts import Timeouts
3
+ from osn_selenium.webdrivers._decorators import requires_driver
4
+ from osn_selenium.webdrivers.unified.core.base import UnifiedCoreBaseMixin
5
+
6
+
7
+ __all__ = ["UnifiedCoreTimeoutsMixin"]
8
+
9
+
10
+ class UnifiedCoreTimeoutsMixin(UnifiedCoreBaseMixin):
11
+ @requires_driver
12
+ def _get_timeouts_impl(self) -> Timeouts:
13
+ return self._driver_impl.timeouts
14
+
15
+ @requires_driver
16
+ def _implicitly_wait_impl(self, time_to_wait: float) -> None:
17
+ self._driver_impl.implicitly_wait(time_to_wait=time_to_wait)
18
+
19
+ @requires_driver
20
+ def _set_page_load_timeout_impl(self, time_to_wait: float) -> None:
21
+ self._driver_impl.set_page_load_timeout(time_to_wait=time_to_wait)
22
+
23
+ @requires_driver
24
+ def _set_script_timeout_impl(self, time_to_wait: float) -> None:
25
+ self._driver_impl.set_script_timeout(time_to_wait=time_to_wait)
26
+
27
+ @requires_driver
28
+ def _set_timeouts_impl(self, timeouts: Timeouts) -> None:
29
+ self._driver_impl.timeouts = timeouts
30
+
31
+ @requires_driver
32
+ def _set_driver_timeouts_impl(
33
+ self,
34
+ page_load_timeout: float,
35
+ implicit_wait_timeout: float,
36
+ script_timeout: float,
37
+ ) -> None:
38
+ self._driver_impl.set_page_load_timeout(page_load_timeout)
39
+ self._driver_impl.implicitly_wait(implicit_wait_timeout)
40
+ self._driver_impl.set_script_timeout(script_timeout)
41
+
42
+ def _update_times_impl(
43
+ self,
44
+ temp_implicitly_wait: Optional[float] = None,
45
+ temp_page_load_timeout: Optional[float] = None,
46
+ temp_script_timeout: Optional[float] = None,
47
+ ) -> None:
48
+ implicitly_wait = temp_implicitly_wait if temp_implicitly_wait is not None else self._base_implicitly_wait
49
+ page_load_timeout = temp_page_load_timeout if temp_page_load_timeout is not None else self._base_page_load_timeout
50
+ script_timeout = temp_script_timeout if temp_script_timeout is not None else self._base_script_timeout
51
+
52
+ self._set_driver_timeouts_impl(
53
+ page_load_timeout=page_load_timeout,
54
+ implicit_wait_timeout=implicitly_wait,
55
+ script_timeout=script_timeout,
56
+ )