seleniumbase 4.49.4__tar.gz → 4.49.6__tar.gz

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 (163) hide show
  1. {seleniumbase-4.49.4/seleniumbase.egg-info → seleniumbase-4.49.6}/PKG-INFO +23 -37
  2. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/README.md +15 -13
  3. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/requirements.txt +2 -2
  4. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/__init__.py +0 -3
  5. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/__version__.py +1 -1
  6. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/behave/behave_sb.py +0 -6
  7. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/browser_launcher.py +6 -79
  8. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/sb_driver.py +0 -23
  9. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/fixtures/base_case.py +3 -39
  10. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/fixtures/constants.py +1 -6
  11. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/plugins/driver_manager.py +0 -14
  12. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/plugins/pytest_plugin.py +59 -29
  13. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/plugins/sb_manager.py +0 -15
  14. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/plugins/selenium_plugin.py +0 -19
  15. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/undetected/__init__.py +2 -3
  16. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/undetected/cdp_driver/browser.py +2 -2
  17. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/undetected/cdp_driver/connection.py +6 -2
  18. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/undetected/patcher.py +2 -1
  19. {seleniumbase-4.49.4 → seleniumbase-4.49.6/seleniumbase.egg-info}/PKG-INFO +23 -37
  20. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase.egg-info/requires.txt +6 -26
  21. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/setup.py +7 -30
  22. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/.gitignore +0 -0
  23. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/LICENSE +0 -0
  24. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/MANIFEST.in +0 -0
  25. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/install.sh +0 -0
  26. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/pyproject.toml +0 -0
  27. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/pytest.ini +0 -0
  28. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/sbase/__init__.py +0 -0
  29. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/sbase/__main__.py +0 -0
  30. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/sbase/steps.py +0 -0
  31. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/__main__.py +0 -0
  32. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/behave/__init__.py +0 -0
  33. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/behave/behave_helper.py +0 -0
  34. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/behave/steps.py +0 -0
  35. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/common/__init__.py +0 -0
  36. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/common/decorators.py +0 -0
  37. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/common/encryption.py +0 -0
  38. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/common/exceptions.py +0 -0
  39. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/common/obfuscate.py +0 -0
  40. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/common/unobfuscate.py +0 -0
  41. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/config/__init__.py +0 -0
  42. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/config/ad_block_list.py +0 -0
  43. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/config/proxy_list.py +0 -0
  44. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/config/settings.py +0 -0
  45. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/console_scripts/__init__.py +0 -0
  46. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/console_scripts/logo_helper.py +0 -0
  47. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/console_scripts/rich_helper.py +0 -0
  48. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/console_scripts/run.py +0 -0
  49. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
  50. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
  51. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/console_scripts/sb_commander.py +0 -0
  52. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/console_scripts/sb_install.py +0 -0
  53. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
  54. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
  55. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
  56. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
  57. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
  58. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/console_scripts/sb_objectify.py +0 -0
  59. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/console_scripts/sb_print.py +0 -0
  60. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/console_scripts/sb_recorder.py +0 -0
  61. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/__init__.py +0 -0
  62. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/application_manager.py +0 -0
  63. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/capabilities_parser.py +0 -0
  64. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/colored_traceback.py +0 -0
  65. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/create_db_tables.sql +0 -0
  66. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/detect_b_ver.py +0 -0
  67. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/download_helper.py +0 -0
  68. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/encoded_images.py +0 -0
  69. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/jqc_helper.py +0 -0
  70. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/log_helper.py +0 -0
  71. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/mysql.py +0 -0
  72. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/nest_asyncio.py +0 -0
  73. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/proxy_helper.py +0 -0
  74. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/recorder_helper.py +0 -0
  75. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/report_helper.py +0 -0
  76. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/s3_manager.py +0 -0
  77. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/sb_cdp.py +0 -0
  78. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/session_helper.py +0 -0
  79. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/settings_parser.py +0 -0
  80. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/style_sheet.py +0 -0
  81. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/testcase_manager.py +0 -0
  82. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/tour_helper.py +0 -0
  83. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/core/visual_helper.py +0 -0
  84. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/drivers/__init__.py +0 -0
  85. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/drivers/atlas_drivers/__init__.py +0 -0
  86. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/drivers/brave_drivers/__init__.py +0 -0
  87. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/drivers/cft_drivers/__init__.py +0 -0
  88. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/drivers/chromium_drivers/__init__.py +0 -0
  89. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/drivers/chs_drivers/__init__.py +0 -0
  90. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/drivers/comet_drivers/__init__.py +0 -0
  91. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/drivers/opera_drivers/__init__.py +0 -0
  92. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/extensions/__init__.py +0 -0
  93. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/extensions/ad_block.zip +0 -0
  94. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/extensions/disable_csp.zip +0 -0
  95. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/extensions/recorder.zip +0 -0
  96. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/extensions/sbase_ext.zip +0 -0
  97. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/fixtures/__init__.py +0 -0
  98. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/fixtures/css_to_xpath.py +0 -0
  99. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/fixtures/errors.py +0 -0
  100. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/fixtures/js_utils.py +0 -0
  101. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/fixtures/page_actions.py +0 -0
  102. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/fixtures/page_utils.py +0 -0
  103. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/fixtures/shared_utils.py +0 -0
  104. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/fixtures/unittest_helper.py +0 -0
  105. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/fixtures/words.py +0 -0
  106. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/fixtures/xpath_to_css.py +0 -0
  107. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/js_code/__init__.py +0 -0
  108. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/js_code/active_css_js.py +0 -0
  109. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/js_code/live_js.py +0 -0
  110. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/js_code/recorder_js.py +0 -0
  111. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/masterqa/__init__.py +0 -0
  112. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/masterqa/master_qa.py +0 -0
  113. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/plugins/__init__.py +0 -0
  114. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/plugins/base_plugin.py +0 -0
  115. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/plugins/basic_test_info.py +0 -0
  116. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
  117. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/plugins/page_source.py +0 -0
  118. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
  119. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/plugins/screen_shots.py +0 -0
  120. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/resources/__init__.py +0 -0
  121. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/translate/__init__.py +0 -0
  122. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/translate/chinese.py +0 -0
  123. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/translate/dutch.py +0 -0
  124. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/translate/french.py +0 -0
  125. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/translate/italian.py +0 -0
  126. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/translate/japanese.py +0 -0
  127. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/translate/korean.py +0 -0
  128. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/translate/master_dict.py +0 -0
  129. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/translate/portuguese.py +0 -0
  130. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/translate/russian.py +0 -0
  131. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/translate/spanish.py +0 -0
  132. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/translate/translator.py +0 -0
  133. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/undetected/cdp.py +0 -0
  134. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/undetected/cdp_driver/__init__.py +0 -0
  135. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/undetected/cdp_driver/_contradict.py +0 -0
  136. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/undetected/cdp_driver/cdp_util.py +0 -0
  137. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/undetected/cdp_driver/config.py +0 -0
  138. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/undetected/cdp_driver/element.py +0 -0
  139. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/undetected/cdp_driver/tab.py +0 -0
  140. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/undetected/dprocess.py +0 -0
  141. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/undetected/options.py +0 -0
  142. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/undetected/reactor.py +0 -0
  143. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/undetected/webelement.py +0 -0
  144. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/utilities/__init__.py +0 -0
  145. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
  146. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
  147. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/utilities/selenium_grid/font_color +0 -0
  148. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
  149. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
  150. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
  151. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
  152. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
  153. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
  154. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
  155. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
  156. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
  157. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
  158. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase.egg-info/SOURCES.txt +0 -0
  159. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase.egg-info/dependency_links.txt +0 -0
  160. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase.egg-info/entry_points.txt +0 -0
  161. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/seleniumbase.egg-info/top_level.txt +0 -0
  162. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/setup.cfg +0 -0
  163. {seleniumbase-4.49.4 → seleniumbase-4.49.6}/virtualenv_install.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.49.4
3
+ Version: 4.49.6
4
4
  Summary: A framework for stealthy Chromium automation with CDP Mode. Includes CAPTCHA-bypass, E2E Testing, and a Playwright integration.
5
5
  Home-page: https://github.com/seleniumbase/SeleniumBase
6
6
  Author: Michael Mintz
@@ -39,6 +39,7 @@ Classifier: Programming Language :: Python :: 3.11
39
39
  Classifier: Programming Language :: Python :: 3.12
40
40
  Classifier: Programming Language :: Python :: 3.13
41
41
  Classifier: Programming Language :: Python :: 3.14
42
+ Classifier: Programming Language :: Python :: 3.15
42
43
  Classifier: Topic :: Internet
43
44
  Classifier: Topic :: Internet :: WWW/HTTP :: Browsers
44
45
  Classifier: Topic :: Scientific/Engineering
@@ -70,7 +71,7 @@ Requires-Dist: exceptiongroup>=1.3.1
70
71
  Requires-Dist: websockets~=15.0.1; python_version < "3.10"
71
72
  Requires-Dist: websockets>=16.0; python_version >= "3.10"
72
73
  Requires-Dist: filelock~=3.19.1; python_version < "3.10"
73
- Requires-Dist: filelock>=3.29.0; python_version >= "3.10"
74
+ Requires-Dist: filelock>=3.29.1; python_version >= "3.10"
74
75
  Requires-Dist: fasteners>=0.20
75
76
  Requires-Dist: mycdp>=1.3.7
76
77
  Requires-Dist: pynose>=1.5.5
@@ -90,7 +91,7 @@ Requires-Dist: pygments>=2.20.0
90
91
  Requires-Dist: pyreadline3>=3.5.4; platform_system == "Windows"
91
92
  Requires-Dist: tabcompleter>=1.4.1
92
93
  Requires-Dist: pdbp>=1.8.2
93
- Requires-Dist: idna>=3.17
94
+ Requires-Dist: idna>=3.18
94
95
  Requires-Dist: charset-normalizer<4,>=3.4.7
95
96
  Requires-Dist: urllib3<2,>=1.26.20; python_version < "3.10"
96
97
  Requires-Dist: urllib3<3,>=2.7.0; python_version >= "3.10"
@@ -135,9 +136,9 @@ Requires-Dist: markdown-it-py==4.2.0; python_version >= "3.10"
135
136
  Requires-Dist: mdurl==0.1.2
136
137
  Requires-Dist: rich<16,>=15.0.0
137
138
  Provides-Extra: allure
138
- Requires-Dist: allure-pytest>=2.13.5; extra == "allure"
139
- Requires-Dist: allure-python-commons>=2.13.5; extra == "allure"
140
- Requires-Dist: allure-behave>=2.13.5; extra == "allure"
139
+ Requires-Dist: allure-pytest>=2.16.0; extra == "allure"
140
+ Requires-Dist: allure-python-commons>=2.16.0; extra == "allure"
141
+ Requires-Dist: allure-behave>=2.16.0; extra == "allure"
141
142
  Provides-Extra: coverage
142
143
  Requires-Dist: coverage>=7.10.7; python_version < "3.10" and extra == "coverage"
143
144
  Requires-Dist: coverage>=7.14.1; python_version >= "3.10" and extra == "coverage"
@@ -147,9 +148,6 @@ Requires-Dist: flake8==7.3.0; extra == "flake8"
147
148
  Requires-Dist: mccabe==0.7.0; extra == "flake8"
148
149
  Requires-Dist: pyflakes==3.4.0; extra == "flake8"
149
150
  Requires-Dist: pycodestyle==2.14.0; extra == "flake8"
150
- Provides-Extra: ipdb
151
- Requires-Dist: ipdb==0.13.13; extra == "ipdb"
152
- Requires-Dist: ipython==7.34.0; extra == "ipdb"
153
151
  Provides-Extra: mss
154
152
  Requires-Dist: mss==10.2.0; extra == "mss"
155
153
  Provides-Extra: pdfminer
@@ -163,7 +161,7 @@ Provides-Extra: pillow
163
161
  Requires-Dist: Pillow>=11.3.0; python_version < "3.10" and extra == "pillow"
164
162
  Requires-Dist: Pillow>=12.2.0; python_version >= "3.10" and extra == "pillow"
165
163
  Provides-Extra: pip-system-certs
166
- Requires-Dist: pip-system-certs==4.0; platform_system == "Windows" and extra == "pip-system-certs"
164
+ Requires-Dist: pip-system-certs>=4.0; platform_system == "Windows" and extra == "pip-system-certs"
167
165
  Provides-Extra: proxy
168
166
  Requires-Dist: proxy.py==2.4.3; extra == "proxy"
169
167
  Provides-Extra: playwright
@@ -172,20 +170,6 @@ Requires-Dist: greenlet>=3.2.5; python_version < "3.10" and extra == "playwright
172
170
  Requires-Dist: greenlet>=3.5.1; python_version >= "3.10" and extra == "playwright"
173
171
  Provides-Extra: pyautogui
174
172
  Requires-Dist: PyAutoGUI>=0.9.54; platform_system != "Linux" and extra == "pyautogui"
175
- Provides-Extra: selenium-stealth
176
- Requires-Dist: selenium-stealth==1.0.6; extra == "selenium-stealth"
177
- Provides-Extra: selenium-wire
178
- Requires-Dist: selenium-wire==5.1.0; extra == "selenium-wire"
179
- Requires-Dist: pyOpenSSL>=24.2.1; extra == "selenium-wire"
180
- Requires-Dist: pyparsing>=3.1.4; extra == "selenium-wire"
181
- Requires-Dist: Brotli==1.1.0; extra == "selenium-wire"
182
- Requires-Dist: blinker==1.7.0; extra == "selenium-wire"
183
- Requires-Dist: h2==4.1.0; extra == "selenium-wire"
184
- Requires-Dist: hpack==4.0.0; extra == "selenium-wire"
185
- Requires-Dist: hyperframe==6.0.1; extra == "selenium-wire"
186
- Requires-Dist: kaitaistruct==0.10; extra == "selenium-wire"
187
- Requires-Dist: pyasn1==0.6.1; extra == "selenium-wire"
188
- Requires-Dist: zstandard>=0.23.0; extra == "selenium-wire"
189
173
  Dynamic: author
190
174
  Dynamic: author-email
191
175
  Dynamic: classifier
@@ -274,8 +258,8 @@ sb.quit()
274
258
  ```
275
259
 
276
260
  <p align="center">
277
- <img src="https://seleniumbase.github.io/cdn/img/results_normal.jpg" width="578" alt="BrowserScan Test Results: Normal">
278
- <br><em>(All BrowserScan bot-detection checks were passed successfully.)</em></br>
261
+ <img src="https://seleniumbase.github.io/cdn/img/results_normal.jpg" width="588" alt="BrowserScan Test Results: Normal">
262
+ <br><em>(All BrowserScan bot-detection tests passed successfully.)</em></br>
279
263
  </p>
280
264
 
281
265
  <b>🎭 Here's an example script that uses <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/playwright/ReadMe.md"><span translate="no">Stealthy Playwright Mode</span></a>:</b><br />(Playwright connects to a stealthy SeleniumBase browser session.)
@@ -284,21 +268,24 @@ sb.quit()
284
268
  from playwright.sync_api import sync_playwright
285
269
  from seleniumbase import sb_cdp
286
270
 
287
- sb = sb_cdp.Chrome()
271
+ sb = sb_cdp.Chrome(guest=True)
288
272
  endpoint_url = sb.get_endpoint_url()
289
273
 
290
274
  with sync_playwright() as p:
291
275
  browser = p.chromium.connect_over_cdp(endpoint_url)
292
276
  page = browser.contexts[0].pages[0]
293
- page.goto("https://browserscan.net/bot-detection")
294
-
295
- sb.sleep(3)
296
- sb.quit()
277
+ page.goto("https://bot.sannysoft.com/")
278
+ page.wait_for_timeout(500)
297
279
  ```
298
280
 
281
+ <p align="center">
282
+ <img src="https://seleniumbase.github.io/other/sannysoft_success.jpg" width="470" alt="All Sannysoft tests passed successfully">
283
+ <br><em>(All Sannysoft bot-detection tests passed successfully.)</em></br>
284
+ </p>
285
+
299
286
  --------
300
287
 
301
- <b>**📝** The Browserscan example can be expanded into a <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_cdp_browserscan.py">test demo</a>:</b><br />(Assertions added and a few elements highlighted with JavaScript)
288
+ <b>**📝** The Browserscan example can be expanded into a <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_cdp_browserscan.py">test demo</a>:</b><br />(Assertions added and elements highlighted with JavaScript.)
302
289
 
303
290
  ```python
304
291
  from seleniumbase import sb_cdp
@@ -706,10 +693,10 @@ pip install -e .
706
693
  <summary> ▶️ Here's sample output from a chromedriver download. (<b>click to expand</b>)</summary>
707
694
 
708
695
  ```zsh
709
- *** chromedriver to download = 148.0.7778.178 (Latest Stable)
696
+ *** chromedriver to download = 149.0.7827.54 (Latest Stable)
710
697
 
711
698
  Downloading chromedriver-mac-arm64.zip from:
712
- https://storage.googleapis.com/chrome-for-testing-public/148.0.7778.178/mac-arm64/chromedriver-mac-arm64.zip ...
699
+ https://storage.googleapis.com/chrome-for-testing-public/149.0.7827.54/mac-arm64/chromedriver-mac-arm64.zip ...
713
700
  Download Complete!
714
701
 
715
702
  Extracting ['chromedriver'] from chromedriver-mac-arm64.zip ...
@@ -719,8 +706,8 @@ The file [chromedriver] was saved to:
719
706
  ~/github/SeleniumBase/seleniumbase/drivers/
720
707
  chromedriver
721
708
 
722
- Making [chromedriver 148.0.7778.178] executable ...
723
- [chromedriver 148.0.7778.178] is now ready for use!
709
+ Making [chromedriver 149.0.7827.54] executable ...
710
+ [chromedriver 149.0.7827.54] is now ready for use!
724
711
  ```
725
712
 
726
713
  </details>
@@ -1052,7 +1039,6 @@ pytest test_coffee_cart.py --trace
1052
1039
  --screenshot # (Save a screenshot at the end of each test.)
1053
1040
  --no-screenshot # (No screenshots saved unless tests directly ask it.)
1054
1041
  --visual-baseline # (Set the visual baseline for Visual/Layout tests.)
1055
- --wire # (Use selenium-wire's webdriver for replacing selenium webdriver.)
1056
1042
  --external-pdf # (Set Chromium "plugins.always_open_pdf_externally":True.)
1057
1043
  --timeout-multiplier=MULTIPLIER # (Multiplies the default timeout values.)
1058
1044
  --list-fail-page # (After each failing test, list the URL of the failure.)
@@ -72,8 +72,8 @@ sb.quit()
72
72
  ```
73
73
 
74
74
  <p align="center">
75
- <img src="https://seleniumbase.github.io/cdn/img/results_normal.jpg" width="578" alt="BrowserScan Test Results: Normal">
76
- <br><em>(All BrowserScan bot-detection checks were passed successfully.)</em></br>
75
+ <img src="https://seleniumbase.github.io/cdn/img/results_normal.jpg" width="588" alt="BrowserScan Test Results: Normal">
76
+ <br><em>(All BrowserScan bot-detection tests passed successfully.)</em></br>
77
77
  </p>
78
78
 
79
79
  <b>🎭 Here's an example script that uses <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/playwright/ReadMe.md"><span translate="no">Stealthy Playwright Mode</span></a>:</b><br />(Playwright connects to a stealthy SeleniumBase browser session.)
@@ -82,21 +82,24 @@ sb.quit()
82
82
  from playwright.sync_api import sync_playwright
83
83
  from seleniumbase import sb_cdp
84
84
 
85
- sb = sb_cdp.Chrome()
85
+ sb = sb_cdp.Chrome(guest=True)
86
86
  endpoint_url = sb.get_endpoint_url()
87
87
 
88
88
  with sync_playwright() as p:
89
89
  browser = p.chromium.connect_over_cdp(endpoint_url)
90
90
  page = browser.contexts[0].pages[0]
91
- page.goto("https://browserscan.net/bot-detection")
92
-
93
- sb.sleep(3)
94
- sb.quit()
91
+ page.goto("https://bot.sannysoft.com/")
92
+ page.wait_for_timeout(500)
95
93
  ```
96
94
 
95
+ <p align="center">
96
+ <img src="https://seleniumbase.github.io/other/sannysoft_success.jpg" width="470" alt="All Sannysoft tests passed successfully">
97
+ <br><em>(All Sannysoft bot-detection tests passed successfully.)</em></br>
98
+ </p>
99
+
97
100
  --------
98
101
 
99
- <b>**📝** The Browserscan example can be expanded into a <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_cdp_browserscan.py">test demo</a>:</b><br />(Assertions added and a few elements highlighted with JavaScript)
102
+ <b>**📝** The Browserscan example can be expanded into a <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_cdp_browserscan.py">test demo</a>:</b><br />(Assertions added and elements highlighted with JavaScript.)
100
103
 
101
104
  ```python
102
105
  from seleniumbase import sb_cdp
@@ -504,10 +507,10 @@ pip install -e .
504
507
  <summary> ▶️ Here's sample output from a chromedriver download. (<b>click to expand</b>)</summary>
505
508
 
506
509
  ```zsh
507
- *** chromedriver to download = 148.0.7778.178 (Latest Stable)
510
+ *** chromedriver to download = 149.0.7827.54 (Latest Stable)
508
511
 
509
512
  Downloading chromedriver-mac-arm64.zip from:
510
- https://storage.googleapis.com/chrome-for-testing-public/148.0.7778.178/mac-arm64/chromedriver-mac-arm64.zip ...
513
+ https://storage.googleapis.com/chrome-for-testing-public/149.0.7827.54/mac-arm64/chromedriver-mac-arm64.zip ...
511
514
  Download Complete!
512
515
 
513
516
  Extracting ['chromedriver'] from chromedriver-mac-arm64.zip ...
@@ -517,8 +520,8 @@ The file [chromedriver] was saved to:
517
520
  ~/github/SeleniumBase/seleniumbase/drivers/
518
521
  chromedriver
519
522
 
520
- Making [chromedriver 148.0.7778.178] executable ...
521
- [chromedriver 148.0.7778.178] is now ready for use!
523
+ Making [chromedriver 149.0.7827.54] executable ...
524
+ [chromedriver 149.0.7827.54] is now ready for use!
522
525
  ```
523
526
 
524
527
  </details>
@@ -850,7 +853,6 @@ pytest test_coffee_cart.py --trace
850
853
  --screenshot # (Save a screenshot at the end of each test.)
851
854
  --no-screenshot # (No screenshots saved unless tests directly ask it.)
852
855
  --visual-baseline # (Set the visual baseline for Visual/Layout tests.)
853
- --wire # (Use selenium-wire's webdriver for replacing selenium webdriver.)
854
856
  --external-pdf # (Set Chromium "plugins.always_open_pdf_externally":True.)
855
857
  --timeout-multiplier=MULTIPLIER # (Multiplies the default timeout values.)
856
858
  --list-fail-page # (After each failing test, list the URL of the failure.)
@@ -10,7 +10,7 @@ exceptiongroup>=1.3.1
10
10
  websockets~=15.0.1;python_version<"3.10"
11
11
  websockets>=16.0;python_version>="3.10"
12
12
  filelock~=3.19.1;python_version<"3.10"
13
- filelock>=3.29.0;python_version>="3.10"
13
+ filelock>=3.29.1;python_version>="3.10"
14
14
  fasteners>=0.20
15
15
  mycdp>=1.3.7
16
16
  pynose>=1.5.5
@@ -30,7 +30,7 @@ pygments>=2.20.0
30
30
  pyreadline3>=3.5.4;platform_system=="Windows"
31
31
  tabcompleter>=1.4.1
32
32
  pdbp>=1.8.2
33
- idna>=3.17
33
+ idna>=3.18
34
34
  charset-normalizer>=3.4.7,<4
35
35
  urllib3>=1.26.20,<2;python_version<"3.10"
36
36
  urllib3>=2.7.0,<3;python_version>="3.10"
@@ -3,7 +3,6 @@ import os
3
3
  import pdb
4
4
  import sys
5
5
  from contextlib import suppress
6
- from selenium import webdriver
7
6
  from seleniumbase.__version__ import __version__
8
7
  from seleniumbase.common import decorators # noqa
9
8
  from seleniumbase.common import encryption # noqa
@@ -45,13 +44,11 @@ if sys.version_info[0] < 3 and "pdbp" in locals():
45
44
  pdb.DefaultConfig.sticky_by_default = True
46
45
  colored_traceback.add_hook()
47
46
  os.environ["SE_AVOID_STATS"] = "true" # Disable Selenium Manager stats
48
- webdriver.TouchActions = None # Lifeline for past selenium-wire versions
49
47
  if sys.version_info >= (3, 10):
50
48
  collections.Callable = collections.abc.Callable # Lifeline for nosetests
51
49
  del collections # Undo "import collections" / Simplify "dir(seleniumbase)"
52
50
  del os # Undo "import os" / Simplify "dir(seleniumbase)"
53
51
  del sys # Undo "import sys" / Simplify "dir(seleniumbase)"
54
- del webdriver # Undo "import webdriver" / Simplify "dir(seleniumbase)"
55
52
 
56
53
  version_list = [int(i) for i in __version__.split(".") if i.isdigit()]
57
54
  version_tuple = tuple(version_list)
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.49.4"
2
+ __version__ = "4.49.6"
@@ -101,7 +101,6 @@ behave -D agent="User Agent String" -D demo
101
101
  -D screenshot (Save a screenshot at the end of each test.)
102
102
  -D no-screenshot (No screenshots saved unless tests directly ask it.)
103
103
  -D visual-baseline (Set the visual baseline for Visual/Layout tests.)
104
- -D wire (Use selenium-wire's webdriver for replacing selenium webdriver.)
105
104
  -D external-pdf (Set Chromium "plugins.always_open_pdf_externally":True.)
106
105
  -D timeout-multiplier=MULTIPLIER (Multiplies the default timeout values.)
107
106
  """
@@ -204,7 +203,6 @@ def get_configured_sb(context):
204
203
  sb._crumbs = False
205
204
  sb._disable_beforeunload = False
206
205
  sb.visual_baseline = False
207
- sb.use_wire = False
208
206
  sb.window_position = None
209
207
  sb.window_size = None
210
208
  sb.maximize_option = False
@@ -645,10 +643,6 @@ def get_configured_sb(context):
645
643
  if low_key in ["visual-baseline", "visual_baseline"]:
646
644
  sb.visual_baseline = True
647
645
  continue
648
- # Handle: -D wire
649
- if low_key == "wire":
650
- sb.use_wire = True
651
- continue
652
646
  # Handle: -D window-position=X,Y / window_position=X,Y
653
647
  if low_key in ["window-position", "window_position"]:
654
648
  window_position = userdata[key]
@@ -312,8 +312,6 @@ def extend_driver(
312
312
  driver.execute_cdp_cmd(
313
313
  "Page.addScriptToEvaluateOnNewDocument", {"source": recorder_code}
314
314
  )
315
- if hasattr(driver, "proxy"):
316
- driver.set_wire_proxy = DM.set_wire_proxy
317
315
  completed_loads = []
318
316
  for ext_dir in sb_config._ext_dirs:
319
317
  if ext_dir not in completed_loads:
@@ -645,14 +643,12 @@ def uc_open_with_cdp_mode(driver, url=None, **kwargs):
645
643
  import asyncio
646
644
  from seleniumbase.undetected.cdp_driver import cdp_util
647
645
 
648
- current_url = None
646
+ time.sleep(0.012)
649
647
  try:
650
- current_url = driver.current_url
648
+ driver.disconnect()
651
649
  except Exception:
652
- driver.connect()
653
- current_url = driver.current_url
654
- url_protocol = current_url.split(":")[0]
655
- driver.disconnect()
650
+ time.sleep(0.012)
651
+ driver.disconnect()
656
652
 
657
653
  cdp_details = driver._get_cdp_details()
658
654
  cdp_host = cdp_details[1].split("://")[1].split(":")[0]
@@ -2334,7 +2330,6 @@ def _set_chrome_options(
2334
2330
  binary_location,
2335
2331
  driver_version,
2336
2332
  page_load_strategy,
2337
- use_wire,
2338
2333
  external_pdf,
2339
2334
  servername,
2340
2335
  mobile_emulator,
@@ -3071,7 +3066,6 @@ def get_driver(
3071
3066
  binary_location=None,
3072
3067
  driver_version=None,
3073
3068
  page_load_strategy=None,
3074
- use_wire=False,
3075
3069
  external_pdf=False,
3076
3070
  test_id=None,
3077
3071
  mobile_emulator=False,
@@ -3551,7 +3545,6 @@ def get_driver(
3551
3545
  binary_location,
3552
3546
  driver_version,
3553
3547
  page_load_strategy,
3554
- use_wire,
3555
3548
  external_pdf,
3556
3549
  test_id,
3557
3550
  mobile_emulator,
@@ -3610,7 +3603,6 @@ def get_driver(
3610
3603
  binary_location,
3611
3604
  driver_version,
3612
3605
  page_load_strategy,
3613
- use_wire,
3614
3606
  external_pdf,
3615
3607
  mobile_emulator,
3616
3608
  device_width,
@@ -3673,7 +3665,6 @@ def get_remote_driver(
3673
3665
  binary_location,
3674
3666
  driver_version,
3675
3667
  page_load_strategy,
3676
- use_wire,
3677
3668
  external_pdf,
3678
3669
  test_id,
3679
3670
  mobile_emulator,
@@ -3681,35 +3672,6 @@ def get_remote_driver(
3681
3672
  device_height,
3682
3673
  device_pixel_ratio,
3683
3674
  ):
3684
- if use_wire:
3685
- pip_find_lock = fasteners.InterProcessLock(
3686
- constants.PipInstall.FINDLOCK
3687
- )
3688
- with pip_find_lock: # Prevent issues with multiple processes
3689
- with suppress(Exception):
3690
- shared_utils.make_writable(constants.PipInstall.FINDLOCK)
3691
- try:
3692
- from seleniumwire import webdriver
3693
- import blinker
3694
- with suppress(Exception):
3695
- use_blinker_ver = constants.SeleniumWire.BLINKER_VER
3696
- if blinker.__version__ != use_blinker_ver:
3697
- shared_utils.pip_install(
3698
- "blinker", version=use_blinker_ver
3699
- )
3700
- del blinker
3701
- except Exception:
3702
- shared_utils.pip_install(
3703
- "blinker", version=constants.SeleniumWire.BLINKER_VER
3704
- )
3705
- shared_utils.pip_install(
3706
- "selenium-wire", version=constants.SeleniumWire.VER
3707
- )
3708
- from seleniumwire import webdriver
3709
- warnings.simplefilter("ignore", category=DeprecationWarning)
3710
- else:
3711
- from selenium import webdriver
3712
-
3713
3675
  # Construct the address for connecting to a Selenium Grid
3714
3676
  if servername.startswith("https://"):
3715
3677
  protocol = "https"
@@ -3810,7 +3772,6 @@ def get_remote_driver(
3810
3772
  binary_location,
3811
3773
  driver_version,
3812
3774
  page_load_strategy,
3813
- use_wire,
3814
3775
  external_pdf,
3815
3776
  servername,
3816
3777
  mobile_emulator,
@@ -3987,7 +3948,6 @@ def get_remote_driver(
3987
3948
  binary_location,
3988
3949
  driver_version,
3989
3950
  page_load_strategy,
3990
- use_wire,
3991
3951
  external_pdf,
3992
3952
  servername,
3993
3953
  mobile_emulator,
@@ -4111,7 +4071,6 @@ def get_local_driver(
4111
4071
  binary_location,
4112
4072
  driver_version,
4113
4073
  page_load_strategy,
4114
- use_wire,
4115
4074
  external_pdf,
4116
4075
  mobile_emulator,
4117
4076
  device_width,
@@ -4170,35 +4129,6 @@ def get_local_driver(
4170
4129
  local_uc_driver = driver_dir + "/uc_driver.exe"
4171
4130
  b_path = binary_location
4172
4131
  use_uc = is_using_uc(undetectable, browser_name)
4173
- if use_wire:
4174
- pip_find_lock = fasteners.InterProcessLock(
4175
- constants.PipInstall.FINDLOCK
4176
- )
4177
- with pip_find_lock: # Prevent issues with multiple processes
4178
- with suppress(Exception):
4179
- shared_utils.make_writable(constants.PipInstall.FINDLOCK)
4180
- try:
4181
- from seleniumwire import webdriver
4182
- import blinker
4183
- with suppress(Exception):
4184
- use_blinker_ver = constants.SeleniumWire.BLINKER_VER
4185
- if blinker.__version__ != use_blinker_ver:
4186
- shared_utils.pip_install(
4187
- "blinker", version=use_blinker_ver
4188
- )
4189
- del blinker
4190
- except Exception:
4191
- shared_utils.pip_install(
4192
- "blinker", version=constants.SeleniumWire.BLINKER_VER
4193
- )
4194
- shared_utils.pip_install(
4195
- "selenium-wire", version=constants.SeleniumWire.VER
4196
- )
4197
- from seleniumwire import webdriver
4198
- warnings.simplefilter("ignore", category=DeprecationWarning)
4199
- else:
4200
- from selenium import webdriver
4201
-
4202
4132
  if browser_name == constants.Browser.FIREFOX:
4203
4133
  firefox_options = _set_firefox_options(
4204
4134
  downloads_path,
@@ -5064,7 +4994,6 @@ def get_local_driver(
5064
4994
  binary_location,
5065
4995
  driver_version,
5066
4996
  page_load_strategy,
5067
- use_wire,
5068
4997
  external_pdf,
5069
4998
  servername,
5070
4999
  mobile_emulator,
@@ -5124,7 +5053,7 @@ def get_local_driver(
5124
5053
  and major_chrome_version
5125
5054
  and int(major_chrome_version) >= 117
5126
5055
  and not use_uc
5127
- and not (remote_debug or devtools or use_wire)
5056
+ and not (remote_debug or devtools)
5128
5057
  and not (proxy_string or multi_proxy or proxy_pac_url)
5129
5058
  and (not chromium_arg or "debug" not in chromium_arg)
5130
5059
  and (not servername or servername == "localhost")
@@ -5632,7 +5561,6 @@ def get_local_driver(
5632
5561
  binary_location,
5633
5562
  driver_version,
5634
5563
  page_load_strategy,
5635
- use_wire,
5636
5564
  external_pdf,
5637
5565
  servername,
5638
5566
  mobile_emulator,
@@ -5888,7 +5816,6 @@ def get_local_driver(
5888
5816
  binary_location,
5889
5817
  driver_version,
5890
5818
  page_load_strategy,
5891
- use_wire,
5892
5819
  external_pdf,
5893
5820
  servername,
5894
5821
  mobile_emulator,
@@ -6213,7 +6140,7 @@ def get_local_driver(
6213
6140
  elif extension_zip or extension_dir:
6214
6141
  print("\nUnable to load extension while starting Chrome!\n")
6215
6142
  raise
6216
- elif headless or headless2 or IS_LINUX or proxy_string or use_wire:
6143
+ elif headless or headless2 or IS_LINUX or proxy_string:
6217
6144
  raise
6218
6145
  # Try running without any options (bare bones Chrome launch)
6219
6146
  if local_chromedriver and os.path.exists(local_chromedriver):
@@ -409,26 +409,3 @@ class DriverMethods(WebDriver):
409
409
  width = settings.CHROME_START_WIDTH
410
410
  height = settings.CHROME_START_HEIGHT
411
411
  self.driver.set_window_rect(x, y, width, height)
412
-
413
- def set_wire_proxy(self, string):
414
- """Set a proxy server for selenium-wire mode ("--wire")
415
- Examples: (ONLY avilable if using selenium-wire mode!)
416
- driver.set_wire_proxy("SERVER:PORT")
417
- driver.set_wire_proxy("socks5://SERVER:PORT")
418
- driver.set_wire_proxy("USERNAME:PASSWORD@SERVER:PORT")
419
- """
420
- the_http = "http"
421
- the_https = "https"
422
- if string.startswith("socks4://"):
423
- the_http = "socks4"
424
- the_https = "socks4"
425
- elif string.startswith("socks5://"):
426
- the_http = "socks5"
427
- the_https = "socks5"
428
- string = string.split("//")[-1]
429
- if hasattr(self.driver, "proxy"):
430
- self.driver.proxy = {
431
- "http": "%s://%s" % (the_http, string),
432
- "https": "%s://%s" % (the_https, string),
433
- "no_proxy": "localhost,127.0.0.1",
434
- }
@@ -4115,7 +4115,6 @@ class BaseCase(unittest.TestCase):
4115
4115
  binary_location=None,
4116
4116
  driver_version=None,
4117
4117
  page_load_strategy=None,
4118
- use_wire=None,
4119
4118
  external_pdf=None,
4120
4119
  is_mobile=None,
4121
4120
  d_width=None,
@@ -4177,7 +4176,6 @@ class BaseCase(unittest.TestCase):
4177
4176
  binary_location - the path of the browser binary to use (Chromium)
4178
4177
  driver_version - the chromedriver or uc_driver version to force
4179
4178
  page_load_strategy - the option to change pageLoadStrategy (Chrome)
4180
- use_wire - Use selenium-wire webdriver instead of the selenium one
4181
4179
  external_pdf - "plugins.always_open_pdf_externally": True. (Chrome)
4182
4180
  is_mobile - the option to use the mobile emulator (Chrome-only)
4183
4181
  d_width - the device width of the mobile emulator (Chrome-only)
@@ -4210,7 +4208,7 @@ class BaseCase(unittest.TestCase):
4210
4208
  " for examples!)"
4211
4209
  % (browserstack_ref, sauce_labs_ref)
4212
4210
  )
4213
- shortcuts = ["dark", "guest", "locale", "mobile", "pls", "uc", "wire"]
4211
+ shortcuts = ["dark", "guest", "locale", "mobile", "pls", "uc"]
4214
4212
  if kwargs:
4215
4213
  for key in kwargs.keys():
4216
4214
  if key not in shortcuts:
@@ -4326,10 +4324,6 @@ class BaseCase(unittest.TestCase):
4326
4324
  page_load_strategy = self.page_load_strategy
4327
4325
  if "pls" in kwargs and not page_load_strategy:
4328
4326
  page_load_strategy = kwargs["pls"]
4329
- if use_wire is None:
4330
- use_wire = self.use_wire
4331
- if "wire" in kwargs and not use_wire:
4332
- use_wire = kwargs["wire"]
4333
4327
  if external_pdf is None:
4334
4328
  external_pdf = self.external_pdf
4335
4329
  test_id = self.__get_test_id()
@@ -4408,7 +4402,6 @@ class BaseCase(unittest.TestCase):
4408
4402
  binary_location=binary_location,
4409
4403
  driver_version=driver_version,
4410
4404
  page_load_strategy=page_load_strategy,
4411
- use_wire=use_wire,
4412
4405
  external_pdf=external_pdf,
4413
4406
  test_id=test_id,
4414
4407
  mobile_emulator=is_mobile,
@@ -5074,6 +5067,8 @@ class BaseCase(unittest.TestCase):
5074
5067
  """Activate CDP Mode with the URL and kwargs."""
5075
5068
  if getattr(self.driver, "_is_using_uc", None):
5076
5069
  if self.__is_cdp_swap_needed():
5070
+ if url:
5071
+ self.cdp.open(url, **kwargs)
5077
5072
  return # CDP Mode is already active
5078
5073
  if not self.is_connected():
5079
5074
  self.driver.connect()
@@ -9380,35 +9375,6 @@ class BaseCase(unittest.TestCase):
9380
9375
 
9381
9376
  ############
9382
9377
 
9383
- # Methods ONLY for the selenium-wire integration ("--wire")
9384
-
9385
- def set_wire_proxy(self, string):
9386
- """Set a proxy server for selenium-wire mode ("--wire")
9387
- NOTE: This method ONLY works while using "--wire" mode!
9388
- Examples:
9389
- self.set_wire_proxy("SERVER:PORT")
9390
- self.set_wire_proxy("socks5://SERVER:PORT")
9391
- self.set_wire_proxy("USERNAME:PASSWORD@SERVER:PORT") """
9392
- if not string:
9393
- self.driver.proxy = {}
9394
- return
9395
- the_http = "http"
9396
- the_https = "https"
9397
- if string.startswith("socks4://"):
9398
- the_http = "socks4"
9399
- the_https = "socks4"
9400
- elif string.startswith("socks5://"):
9401
- the_http = "socks5"
9402
- the_https = "socks5"
9403
- string = string.split("//")[-1]
9404
- self.driver.proxy = {
9405
- "http": "%s://%s" % (the_http, string),
9406
- "https": "%s://%s" % (the_https, string),
9407
- "no_proxy": "localhost,127.0.0.1",
9408
- }
9409
-
9410
- ############
9411
-
9412
9378
  # Duplicates (Avoids name confusion when migrating from other frameworks.)
9413
9379
 
9414
9380
  def open_url(self, url):
@@ -15553,7 +15519,6 @@ class BaseCase(unittest.TestCase):
15553
15519
  self.binary_location = sb_config.binary_location
15554
15520
  self.driver_version = sb_config.driver_version
15555
15521
  self.page_load_strategy = sb_config.page_load_strategy
15556
- self.use_wire = sb_config.use_wire
15557
15522
  self.external_pdf = sb_config.external_pdf
15558
15523
  self._final_debug = sb_config.final_debug
15559
15524
  self.window_position = sb_config.window_position
@@ -15937,7 +15902,6 @@ class BaseCase(unittest.TestCase):
15937
15902
  binary_location=self.binary_location,
15938
15903
  driver_version=self.driver_version,
15939
15904
  page_load_strategy=self.page_load_strategy,
15940
- use_wire=self.use_wire,
15941
15905
  external_pdf=self.external_pdf,
15942
15906
  is_mobile=self.mobile_emulator,
15943
15907
  d_width=self.__device_width,
@@ -145,6 +145,7 @@ class Report:
145
145
  if not hasattr(encoded_images, "REPORT_FAVICON"):
146
146
  encoded_images.REPORT_FAVICON = encoded_images.get_report_favicon()
147
147
  return encoded_images.REPORT_FAVICON
148
+ LOCKFILE = Files.DOWNLOADS_FOLDER + "/htmlreport.lock"
148
149
 
149
150
 
150
151
  class SideBySide:
@@ -346,12 +347,6 @@ class ProxyPy:
346
347
  VER = "2.4.3"
347
348
 
348
349
 
349
- class SeleniumWire:
350
- # The version installed if selenium-wire is not installed
351
- VER = "5.1.0"
352
- BLINKER_VER = "1.7.0" # The "blinker" dependency version
353
-
354
-
355
350
  class PyAutoGUI:
356
351
  # The version installed if PyAutoGUI is not installed
357
352
  VER = "0.9.54"