seleniumbase 4.38.0__tar.gz → 4.38.2__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 (155) hide show
  1. {seleniumbase-4.38.0/seleniumbase.egg-info → seleniumbase-4.38.2}/PKG-INFO +6 -6
  2. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/requirements.txt +4 -4
  3. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/__version__.py +1 -1
  4. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/browser_launcher.py +31 -3
  5. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/proxy_helper.py +23 -4
  6. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/undetected/cdp_driver/cdp_util.py +7 -0
  7. {seleniumbase-4.38.0 → seleniumbase-4.38.2/seleniumbase.egg-info}/PKG-INFO +6 -6
  8. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase.egg-info/requires.txt +5 -5
  9. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/setup.py +5 -5
  10. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/.gitignore +0 -0
  11. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/LICENSE +0 -0
  12. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/MANIFEST.in +0 -0
  13. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/README.md +0 -0
  14. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/install.sh +0 -0
  15. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/pyproject.toml +0 -0
  16. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/pytest.ini +0 -0
  17. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/sbase/__init__.py +0 -0
  18. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/sbase/__main__.py +0 -0
  19. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/sbase/steps.py +0 -0
  20. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/__init__.py +0 -0
  21. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/__main__.py +0 -0
  22. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/behave/__init__.py +0 -0
  23. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/behave/behave_helper.py +0 -0
  24. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/behave/behave_sb.py +0 -0
  25. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/behave/steps.py +0 -0
  26. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/common/__init__.py +0 -0
  27. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/common/decorators.py +0 -0
  28. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/common/encryption.py +0 -0
  29. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/common/exceptions.py +0 -0
  30. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/common/obfuscate.py +0 -0
  31. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/common/unobfuscate.py +0 -0
  32. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/config/__init__.py +0 -0
  33. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/config/ad_block_list.py +0 -0
  34. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/config/proxy_list.py +0 -0
  35. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/config/settings.py +0 -0
  36. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/console_scripts/__init__.py +0 -0
  37. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/console_scripts/logo_helper.py +0 -0
  38. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/console_scripts/rich_helper.py +0 -0
  39. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/console_scripts/run.py +0 -0
  40. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
  41. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
  42. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/console_scripts/sb_commander.py +0 -0
  43. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/console_scripts/sb_install.py +0 -0
  44. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
  45. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
  46. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
  47. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
  48. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
  49. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/console_scripts/sb_objectify.py +0 -0
  50. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/console_scripts/sb_print.py +0 -0
  51. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/console_scripts/sb_recorder.py +0 -0
  52. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/__init__.py +0 -0
  53. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/application_manager.py +0 -0
  54. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/capabilities_parser.py +0 -0
  55. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/colored_traceback.py +0 -0
  56. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/create_db_tables.sql +0 -0
  57. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/detect_b_ver.py +0 -0
  58. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/download_helper.py +0 -0
  59. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/encoded_images.py +0 -0
  60. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/jqc_helper.py +0 -0
  61. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/log_helper.py +0 -0
  62. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/mysql.py +0 -0
  63. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/recorder_helper.py +0 -0
  64. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/report_helper.py +0 -0
  65. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/s3_manager.py +0 -0
  66. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/sb_cdp.py +0 -0
  67. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/sb_driver.py +0 -0
  68. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/session_helper.py +0 -0
  69. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/settings_parser.py +0 -0
  70. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/style_sheet.py +0 -0
  71. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/testcase_manager.py +0 -0
  72. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/tour_helper.py +0 -0
  73. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/core/visual_helper.py +0 -0
  74. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/drivers/__init__.py +0 -0
  75. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/extensions/__init__.py +0 -0
  76. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/extensions/ad_block.zip +0 -0
  77. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/extensions/disable_csp.zip +0 -0
  78. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/extensions/recorder.zip +0 -0
  79. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/extensions/sbase_ext.zip +0 -0
  80. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/fixtures/__init__.py +0 -0
  81. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/fixtures/base_case.py +0 -0
  82. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/fixtures/constants.py +0 -0
  83. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/fixtures/css_to_xpath.py +0 -0
  84. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/fixtures/errors.py +0 -0
  85. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/fixtures/js_utils.py +0 -0
  86. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/fixtures/page_actions.py +0 -0
  87. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/fixtures/page_utils.py +0 -0
  88. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/fixtures/shared_utils.py +0 -0
  89. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/fixtures/unittest_helper.py +0 -0
  90. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/fixtures/words.py +0 -0
  91. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/fixtures/xpath_to_css.py +0 -0
  92. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/js_code/__init__.py +0 -0
  93. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/js_code/active_css_js.py +0 -0
  94. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/js_code/live_js.py +0 -0
  95. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/js_code/recorder_js.py +0 -0
  96. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/masterqa/__init__.py +0 -0
  97. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/masterqa/master_qa.py +0 -0
  98. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/plugins/__init__.py +0 -0
  99. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/plugins/base_plugin.py +0 -0
  100. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/plugins/basic_test_info.py +0 -0
  101. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
  102. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/plugins/driver_manager.py +0 -0
  103. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/plugins/page_source.py +0 -0
  104. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/plugins/pytest_plugin.py +0 -0
  105. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
  106. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/plugins/sb_manager.py +0 -0
  107. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/plugins/screen_shots.py +0 -0
  108. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/plugins/selenium_plugin.py +0 -0
  109. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/resources/__init__.py +0 -0
  110. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/translate/__init__.py +0 -0
  111. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/translate/chinese.py +0 -0
  112. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/translate/dutch.py +0 -0
  113. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/translate/french.py +0 -0
  114. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/translate/italian.py +0 -0
  115. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/translate/japanese.py +0 -0
  116. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/translate/korean.py +0 -0
  117. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/translate/master_dict.py +0 -0
  118. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/translate/portuguese.py +0 -0
  119. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/translate/russian.py +0 -0
  120. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/translate/spanish.py +0 -0
  121. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/translate/translator.py +0 -0
  122. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/undetected/__init__.py +0 -0
  123. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/undetected/cdp.py +0 -0
  124. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/undetected/cdp_driver/__init__.py +0 -0
  125. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/undetected/cdp_driver/_contradict.py +0 -0
  126. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/undetected/cdp_driver/browser.py +0 -0
  127. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/undetected/cdp_driver/config.py +0 -0
  128. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/undetected/cdp_driver/connection.py +0 -0
  129. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/undetected/cdp_driver/element.py +0 -0
  130. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/undetected/cdp_driver/tab.py +0 -0
  131. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/undetected/dprocess.py +0 -0
  132. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/undetected/options.py +0 -0
  133. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/undetected/patcher.py +0 -0
  134. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/undetected/reactor.py +0 -0
  135. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/undetected/webelement.py +0 -0
  136. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/utilities/__init__.py +0 -0
  137. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
  138. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
  139. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/utilities/selenium_grid/font_color +0 -0
  140. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
  141. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
  142. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
  143. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
  144. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
  145. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
  146. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
  147. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
  148. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
  149. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
  150. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase.egg-info/SOURCES.txt +0 -0
  151. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase.egg-info/dependency_links.txt +0 -0
  152. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase.egg-info/entry_points.txt +0 -0
  153. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/seleniumbase.egg-info/top_level.txt +0 -0
  154. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/setup.cfg +0 -0
  155. {seleniumbase-4.38.0 → seleniumbase-4.38.2}/virtualenv_install.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.38.0
3
+ Version: 4.38.2
4
4
  Summary: A complete web automation framework for end-to-end testing.
5
5
  Home-page: https://github.com/seleniumbase/SeleniumBase
6
6
  Author: Michael Mintz
@@ -63,11 +63,11 @@ Requires-Dist: pip>=25.0.1; python_version < "3.9"
63
63
  Requires-Dist: pip>=25.1.1; python_version >= "3.9"
64
64
  Requires-Dist: packaging>=25.0
65
65
  Requires-Dist: setuptools~=70.2; python_version < "3.10"
66
- Requires-Dist: setuptools>=80.1.0; python_version >= "3.10"
66
+ Requires-Dist: setuptools>=80.4.0; python_version >= "3.10"
67
67
  Requires-Dist: wheel>=0.45.1
68
68
  Requires-Dist: attrs>=25.3.0
69
69
  Requires-Dist: certifi>=2025.4.26
70
- Requires-Dist: exceptiongroup>=1.2.2
70
+ Requires-Dist: exceptiongroup>=1.3.0
71
71
  Requires-Dist: websockets~=13.1; python_version < "3.9"
72
72
  Requires-Dist: websockets>=15.0.1; python_version >= "3.9"
73
73
  Requires-Dist: filelock~=3.16.1; python_version < "3.9"
@@ -76,7 +76,7 @@ Requires-Dist: fasteners>=0.19
76
76
  Requires-Dist: mycdp>=1.2.0
77
77
  Requires-Dist: pynose>=1.5.4
78
78
  Requires-Dist: platformdirs>=4.3.6; python_version < "3.9"
79
- Requires-Dist: platformdirs>=4.3.7; python_version >= "3.9"
79
+ Requires-Dist: platformdirs>=4.3.8; python_version >= "3.9"
80
80
  Requires-Dist: typing-extensions>=4.13.2
81
81
  Requires-Dist: sbvirtualdisplay>=1.4.0
82
82
  Requires-Dist: MarkupSafe==2.1.5; python_version < "3.9"
@@ -118,7 +118,7 @@ Requires-Dist: pytest-html==4.0.2
118
118
  Requires-Dist: pytest-metadata==3.1.1
119
119
  Requires-Dist: pytest-ordering==0.6
120
120
  Requires-Dist: pytest-rerunfailures==14.0; python_version < "3.9"
121
- Requires-Dist: pytest-rerunfailures==15.0; python_version >= "3.9"
121
+ Requires-Dist: pytest-rerunfailures==15.1; python_version >= "3.9"
122
122
  Requires-Dist: pytest-xdist==3.6.1
123
123
  Requires-Dist: parameterized==0.9.0
124
124
  Requires-Dist: behave==1.2.6
@@ -154,7 +154,7 @@ Requires-Dist: mss==9.0.2; python_version < "3.9" and extra == "mss"
154
154
  Requires-Dist: mss==10.0.0; python_version >= "3.9" and extra == "mss"
155
155
  Provides-Extra: pdfminer
156
156
  Requires-Dist: pdfminer.six==20250324; python_version < "3.9" and extra == "pdfminer"
157
- Requires-Dist: pdfminer.six==20250416; python_version >= "3.9" and extra == "pdfminer"
157
+ Requires-Dist: pdfminer.six==20250506; python_version >= "3.9" and extra == "pdfminer"
158
158
  Requires-Dist: cryptography==39.0.2; python_version < "3.9" and extra == "pdfminer"
159
159
  Requires-Dist: cryptography==44.0.3; python_version >= "3.9" and extra == "pdfminer"
160
160
  Requires-Dist: cffi==1.17.1; extra == "pdfminer"
@@ -2,11 +2,11 @@ pip>=25.0.1;python_version<"3.9"
2
2
  pip>=25.1.1;python_version>="3.9"
3
3
  packaging>=25.0
4
4
  setuptools~=70.2;python_version<"3.10"
5
- setuptools>=80.1.0;python_version>="3.10"
5
+ setuptools>=80.4.0;python_version>="3.10"
6
6
  wheel>=0.45.1
7
7
  attrs>=25.3.0
8
8
  certifi>=2025.4.26
9
- exceptiongroup>=1.2.2
9
+ exceptiongroup>=1.3.0
10
10
  websockets~=13.1;python_version<"3.9"
11
11
  websockets>=15.0.1;python_version>="3.9"
12
12
  filelock~=3.16.1;python_version<"3.9"
@@ -15,7 +15,7 @@ fasteners>=0.19
15
15
  mycdp>=1.2.0
16
16
  pynose>=1.5.4
17
17
  platformdirs>=4.3.6;python_version<"3.9"
18
- platformdirs>=4.3.7;python_version>="3.9"
18
+ platformdirs>=4.3.8;python_version>="3.9"
19
19
  typing-extensions>=4.13.2
20
20
  sbvirtualdisplay>=1.4.0
21
21
  MarkupSafe==2.1.5;python_version<"3.9"
@@ -57,7 +57,7 @@ pytest-html==4.0.2
57
57
  pytest-metadata==3.1.1
58
58
  pytest-ordering==0.6
59
59
  pytest-rerunfailures==14.0;python_version<"3.9"
60
- pytest-rerunfailures==15.0;python_version>="3.9"
60
+ pytest-rerunfailures==15.1;python_version>="3.9"
61
61
  pytest-xdist==3.6.1
62
62
  parameterized==0.9.0
63
63
  behave==1.2.6
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.38.0"
2
+ __version__ = "4.38.2"
@@ -1921,6 +1921,7 @@ def _add_chrome_proxy_extension(
1921
1921
  proxy_string,
1922
1922
  proxy_user,
1923
1923
  proxy_pass,
1924
+ proxy_scheme,
1924
1925
  proxy_bypass_list=None,
1925
1926
  zip_it=True,
1926
1927
  multi_proxy=False,
@@ -1939,7 +1940,11 @@ def _add_chrome_proxy_extension(
1939
1940
  proxy_zip_lock = fasteners.InterProcessLock(PROXY_ZIP_LOCK)
1940
1941
  with proxy_zip_lock:
1941
1942
  proxy_helper.create_proxy_ext(
1942
- proxy_string, proxy_user, proxy_pass, bypass_list
1943
+ proxy_string,
1944
+ proxy_user,
1945
+ proxy_pass,
1946
+ proxy_scheme,
1947
+ bypass_list,
1943
1948
  )
1944
1949
  proxy_zip = proxy_helper.PROXY_ZIP_PATH
1945
1950
  chrome_options.add_extension(proxy_zip)
@@ -1950,6 +1955,7 @@ def _add_chrome_proxy_extension(
1950
1955
  proxy_string,
1951
1956
  proxy_user,
1952
1957
  proxy_pass,
1958
+ proxy_scheme,
1953
1959
  bypass_list,
1954
1960
  zip_it=False,
1955
1961
  )
@@ -1968,7 +1974,11 @@ def _add_chrome_proxy_extension(
1968
1974
  _set_proxy_filenames()
1969
1975
  if not os.path.exists(proxy_helper.PROXY_ZIP_PATH):
1970
1976
  proxy_helper.create_proxy_ext(
1971
- proxy_string, proxy_user, proxy_pass, bypass_list
1977
+ proxy_string,
1978
+ proxy_user,
1979
+ proxy_pass,
1980
+ proxy_scheme,
1981
+ bypass_list,
1972
1982
  )
1973
1983
  proxy_zip = proxy_helper.PROXY_ZIP_PATH
1974
1984
  chrome_options.add_extension(proxy_zip)
@@ -1984,6 +1994,7 @@ def _add_chrome_proxy_extension(
1984
1994
  proxy_string,
1985
1995
  proxy_user,
1986
1996
  proxy_pass,
1997
+ proxy_scheme,
1987
1998
  bypass_list,
1988
1999
  zip_it=False,
1989
2000
  )
@@ -2058,6 +2069,7 @@ def _set_chrome_options(
2058
2069
  proxy_auth,
2059
2070
  proxy_user,
2060
2071
  proxy_pass,
2072
+ proxy_scheme,
2061
2073
  proxy_bypass_list,
2062
2074
  proxy_pac_url,
2063
2075
  multi_proxy,
@@ -2362,6 +2374,7 @@ def _set_chrome_options(
2362
2374
  proxy_string,
2363
2375
  proxy_user,
2364
2376
  proxy_pass,
2377
+ proxy_scheme,
2365
2378
  proxy_bypass_list,
2366
2379
  zip_it,
2367
2380
  multi_proxy,
@@ -2381,6 +2394,7 @@ def _set_chrome_options(
2381
2394
  None,
2382
2395
  proxy_user,
2383
2396
  proxy_pass,
2397
+ proxy_scheme,
2384
2398
  proxy_bypass_list,
2385
2399
  zip_it,
2386
2400
  multi_proxy,
@@ -2992,6 +3006,7 @@ def get_driver(
2992
3006
  proxy_auth = False
2993
3007
  proxy_user = None
2994
3008
  proxy_pass = None
3009
+ proxy_scheme = "http"
2995
3010
  if proxy_string:
2996
3011
  username_and_password = None
2997
3012
  if "@" in proxy_string:
@@ -3015,7 +3030,9 @@ def get_driver(
3015
3030
  "that has authentication! (If using a proxy server "
3016
3031
  "without auth, Chrome, Edge, or Firefox may be used.)"
3017
3032
  )
3018
- proxy_string = proxy_helper.validate_proxy_string(proxy_string)
3033
+ proxy_string, proxy_scheme = proxy_helper.validate_proxy_string(
3034
+ proxy_string, keep_scheme=True
3035
+ )
3019
3036
  if proxy_string and proxy_user and proxy_pass:
3020
3037
  proxy_auth = True
3021
3038
  elif proxy_pac_url:
@@ -3104,6 +3121,7 @@ def get_driver(
3104
3121
  proxy_auth,
3105
3122
  proxy_user,
3106
3123
  proxy_pass,
3124
+ proxy_scheme,
3107
3125
  proxy_bypass_list,
3108
3126
  proxy_pac_url,
3109
3127
  multi_proxy,
@@ -3164,6 +3182,7 @@ def get_driver(
3164
3182
  proxy_auth,
3165
3183
  proxy_user,
3166
3184
  proxy_pass,
3185
+ proxy_scheme,
3167
3186
  proxy_bypass_list,
3168
3187
  proxy_pac_url,
3169
3188
  multi_proxy,
@@ -3224,6 +3243,7 @@ def get_remote_driver(
3224
3243
  proxy_auth,
3225
3244
  proxy_user,
3226
3245
  proxy_pass,
3246
+ proxy_scheme,
3227
3247
  proxy_bypass_list,
3228
3248
  proxy_pac_url,
3229
3249
  multi_proxy,
@@ -3364,6 +3384,7 @@ def get_remote_driver(
3364
3384
  proxy_auth,
3365
3385
  proxy_user,
3366
3386
  proxy_pass,
3387
+ proxy_scheme,
3367
3388
  proxy_bypass_list,
3368
3389
  proxy_pac_url,
3369
3390
  multi_proxy,
@@ -3540,6 +3561,7 @@ def get_remote_driver(
3540
3561
  proxy_auth,
3541
3562
  proxy_user,
3542
3563
  proxy_pass,
3564
+ proxy_scheme,
3543
3565
  proxy_bypass_list,
3544
3566
  proxy_pac_url,
3545
3567
  multi_proxy,
@@ -3661,6 +3683,7 @@ def get_local_driver(
3661
3683
  proxy_auth,
3662
3684
  proxy_user,
3663
3685
  proxy_pass,
3686
+ proxy_scheme,
3664
3687
  proxy_bypass_list,
3665
3688
  proxy_pac_url,
3666
3689
  multi_proxy,
@@ -4325,6 +4348,7 @@ def get_local_driver(
4325
4348
  proxy_string,
4326
4349
  proxy_user,
4327
4350
  proxy_pass,
4351
+ proxy_scheme,
4328
4352
  proxy_bypass_list,
4329
4353
  zip_it=True,
4330
4354
  multi_proxy=multi_proxy,
@@ -4341,6 +4365,7 @@ def get_local_driver(
4341
4365
  None,
4342
4366
  proxy_user,
4343
4367
  proxy_pass,
4368
+ proxy_scheme,
4344
4369
  proxy_bypass_list,
4345
4370
  zip_it=True,
4346
4371
  multi_proxy=multi_proxy,
@@ -4531,6 +4556,7 @@ def get_local_driver(
4531
4556
  proxy_auth,
4532
4557
  proxy_user,
4533
4558
  proxy_pass,
4559
+ proxy_scheme,
4534
4560
  proxy_bypass_list,
4535
4561
  proxy_pac_url,
4536
4562
  multi_proxy,
@@ -5069,6 +5095,7 @@ def get_local_driver(
5069
5095
  None, # proxy_auth
5070
5096
  None, # proxy_user
5071
5097
  None, # proxy_pass
5098
+ None, # proxy_scheme
5072
5099
  None, # proxy_bypass_list
5073
5100
  None, # proxy_pac_url
5074
5101
  None, # multi_proxy
@@ -5322,6 +5349,7 @@ def get_local_driver(
5322
5349
  None, # proxy_auth
5323
5350
  None, # proxy_user
5324
5351
  None, # proxy_pass
5352
+ None, # proxy_scheme
5325
5353
  None, # proxy_bypass_list
5326
5354
  None, # proxy_pac_url
5327
5355
  None, # multi_proxy
@@ -17,7 +17,12 @@ PROXY_DIR_LOCK = os.path.join(DOWNLOADS_DIR, "proxy_dir.lock")
17
17
 
18
18
 
19
19
  def create_proxy_ext(
20
- proxy_string, proxy_user, proxy_pass, bypass_list=None, zip_it=True
20
+ proxy_string,
21
+ proxy_user,
22
+ proxy_pass,
23
+ proxy_scheme="http",
24
+ bypass_list=None,
25
+ zip_it=True,
21
26
  ):
22
27
  """Implementation of https://stackoverflow.com/a/35293284 for
23
28
  https://stackoverflow.com/questions/12848327/
@@ -40,7 +45,7 @@ def create_proxy_ext(
40
45
  """ mode: "fixed_servers",\n"""
41
46
  """ rules: {\n"""
42
47
  """ singleProxy: {\n"""
43
- """ scheme: "http",\n"""
48
+ """ scheme: "%s",\n"""
44
49
  """ host: "%s",\n"""
45
50
  """ port: parseInt("%s")\n"""
46
51
  """ },\n"""
@@ -63,7 +68,12 @@ def create_proxy_ext(
63
68
  """ {urls: ["<all_urls>"]},\n"""
64
69
  """ ['blocking']\n"""
65
70
  """);""" % (
66
- proxy_host, proxy_port, bypass_list, proxy_user, proxy_pass
71
+ proxy_scheme,
72
+ proxy_host,
73
+ proxy_port,
74
+ bypass_list,
75
+ proxy_user,
76
+ proxy_pass,
67
77
  )
68
78
  )
69
79
  else:
@@ -157,11 +167,18 @@ def remove_proxy_zip_if_present():
157
167
  os.remove(PROXY_ZIP_LOCK)
158
168
 
159
169
 
160
- def validate_proxy_string(proxy_string):
170
+ def validate_proxy_string(proxy_string, keep_scheme=False):
161
171
  if proxy_string in proxy_list.PROXY_LIST.keys():
162
172
  proxy_string = proxy_list.PROXY_LIST[proxy_string]
163
173
  if not proxy_string:
164
174
  return None
175
+ proxy_scheme = "http"
176
+ if proxy_string.startswith("https://"):
177
+ proxy_scheme = "https"
178
+ elif proxy_string.startswith("socks4://"):
179
+ proxy_scheme = "socks4"
180
+ elif proxy_string.startswith("socks5://"):
181
+ proxy_scheme = "socks5"
165
182
  valid = False
166
183
  val_ip = re.match(
167
184
  r"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d+$", proxy_string
@@ -198,6 +215,8 @@ def validate_proxy_string(proxy_string):
198
215
  if not valid:
199
216
  __display_proxy_warning(proxy_string)
200
217
  proxy_string = None
218
+ if keep_scheme:
219
+ return (proxy_string, proxy_scheme)
201
220
  return proxy_string
202
221
 
203
222
 
@@ -191,6 +191,7 @@ def __add_chrome_proxy_extension(
191
191
  proxy_string,
192
192
  proxy_user,
193
193
  proxy_pass,
194
+ proxy_scheme="http",
194
195
  proxy_bypass_list=None,
195
196
  multi_proxy=False,
196
197
  ):
@@ -210,6 +211,7 @@ def __add_chrome_proxy_extension(
210
211
  proxy_string,
211
212
  proxy_user,
212
213
  proxy_pass,
214
+ proxy_scheme,
213
215
  bypass_list,
214
216
  zip_it=False,
215
217
  )
@@ -230,6 +232,7 @@ def __add_chrome_proxy_extension(
230
232
  proxy_string,
231
233
  proxy_user,
232
234
  proxy_pass,
235
+ proxy_scheme,
233
236
  bypass_list,
234
237
  zip_it=False,
235
238
  )
@@ -312,11 +315,15 @@ async def start(
312
315
  proxy_user = user_with_pass.split(":")[0]
313
316
  proxy_pass = user_with_pass.split(":")[1]
314
317
  proxy_string = proxy.split("@")[1]
318
+ proxy_string, proxy_scheme = proxy_helper.validate_proxy_string(
319
+ proxy_string, keep_scheme=True
320
+ )
315
321
  extension_dir = __add_chrome_proxy_extension(
316
322
  extension_dir,
317
323
  proxy_string,
318
324
  proxy_user,
319
325
  proxy_pass,
326
+ proxy_scheme,
320
327
  )
321
328
  if ad_block:
322
329
  incognito = False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.38.0
3
+ Version: 4.38.2
4
4
  Summary: A complete web automation framework for end-to-end testing.
5
5
  Home-page: https://github.com/seleniumbase/SeleniumBase
6
6
  Author: Michael Mintz
@@ -63,11 +63,11 @@ Requires-Dist: pip>=25.0.1; python_version < "3.9"
63
63
  Requires-Dist: pip>=25.1.1; python_version >= "3.9"
64
64
  Requires-Dist: packaging>=25.0
65
65
  Requires-Dist: setuptools~=70.2; python_version < "3.10"
66
- Requires-Dist: setuptools>=80.1.0; python_version >= "3.10"
66
+ Requires-Dist: setuptools>=80.4.0; python_version >= "3.10"
67
67
  Requires-Dist: wheel>=0.45.1
68
68
  Requires-Dist: attrs>=25.3.0
69
69
  Requires-Dist: certifi>=2025.4.26
70
- Requires-Dist: exceptiongroup>=1.2.2
70
+ Requires-Dist: exceptiongroup>=1.3.0
71
71
  Requires-Dist: websockets~=13.1; python_version < "3.9"
72
72
  Requires-Dist: websockets>=15.0.1; python_version >= "3.9"
73
73
  Requires-Dist: filelock~=3.16.1; python_version < "3.9"
@@ -76,7 +76,7 @@ Requires-Dist: fasteners>=0.19
76
76
  Requires-Dist: mycdp>=1.2.0
77
77
  Requires-Dist: pynose>=1.5.4
78
78
  Requires-Dist: platformdirs>=4.3.6; python_version < "3.9"
79
- Requires-Dist: platformdirs>=4.3.7; python_version >= "3.9"
79
+ Requires-Dist: platformdirs>=4.3.8; python_version >= "3.9"
80
80
  Requires-Dist: typing-extensions>=4.13.2
81
81
  Requires-Dist: sbvirtualdisplay>=1.4.0
82
82
  Requires-Dist: MarkupSafe==2.1.5; python_version < "3.9"
@@ -118,7 +118,7 @@ Requires-Dist: pytest-html==4.0.2
118
118
  Requires-Dist: pytest-metadata==3.1.1
119
119
  Requires-Dist: pytest-ordering==0.6
120
120
  Requires-Dist: pytest-rerunfailures==14.0; python_version < "3.9"
121
- Requires-Dist: pytest-rerunfailures==15.0; python_version >= "3.9"
121
+ Requires-Dist: pytest-rerunfailures==15.1; python_version >= "3.9"
122
122
  Requires-Dist: pytest-xdist==3.6.1
123
123
  Requires-Dist: parameterized==0.9.0
124
124
  Requires-Dist: behave==1.2.6
@@ -154,7 +154,7 @@ Requires-Dist: mss==9.0.2; python_version < "3.9" and extra == "mss"
154
154
  Requires-Dist: mss==10.0.0; python_version >= "3.9" and extra == "mss"
155
155
  Provides-Extra: pdfminer
156
156
  Requires-Dist: pdfminer.six==20250324; python_version < "3.9" and extra == "pdfminer"
157
- Requires-Dist: pdfminer.six==20250416; python_version >= "3.9" and extra == "pdfminer"
157
+ Requires-Dist: pdfminer.six==20250506; python_version >= "3.9" and extra == "pdfminer"
158
158
  Requires-Dist: cryptography==39.0.2; python_version < "3.9" and extra == "pdfminer"
159
159
  Requires-Dist: cryptography==44.0.3; python_version >= "3.9" and extra == "pdfminer"
160
160
  Requires-Dist: cffi==1.17.1; extra == "pdfminer"
@@ -2,7 +2,7 @@ packaging>=25.0
2
2
  wheel>=0.45.1
3
3
  attrs>=25.3.0
4
4
  certifi>=2025.4.26
5
- exceptiongroup>=1.2.2
5
+ exceptiongroup>=1.3.0
6
6
  fasteners>=0.19
7
7
  mycdp>=1.2.0
8
8
  pynose>=1.5.4
@@ -67,19 +67,19 @@ cssselect==1.2.0
67
67
  pytest-rerunfailures==14.0
68
68
 
69
69
  [:python_version >= "3.10"]
70
- setuptools>=80.1.0
70
+ setuptools>=80.4.0
71
71
  urllib3<2.5.0,>=1.26.20
72
72
 
73
73
  [:python_version >= "3.9"]
74
74
  pip>=25.1.1
75
75
  websockets>=15.0.1
76
76
  filelock>=3.18.0
77
- platformdirs>=4.3.7
77
+ platformdirs>=4.3.8
78
78
  MarkupSafe>=3.0.2
79
79
  trio==0.30.0
80
80
  selenium==4.32.0
81
81
  cssselect==1.3.0
82
- pytest-rerunfailures==15.0
82
+ pytest-rerunfailures==15.1
83
83
 
84
84
  [allure]
85
85
  allure-pytest>=2.13.5
@@ -130,7 +130,7 @@ pdfminer.six==20250324
130
130
  cryptography==39.0.2
131
131
 
132
132
  [pdfminer:python_version >= "3.9"]
133
- pdfminer.six==20250416
133
+ pdfminer.six==20250506
134
134
  cryptography==44.0.3
135
135
 
136
136
  [pillow]
@@ -151,11 +151,11 @@ setup(
151
151
  'pip>=25.1.1;python_version>="3.9"',
152
152
  'packaging>=25.0',
153
153
  'setuptools~=70.2;python_version<"3.10"', # Newer ones had issues
154
- 'setuptools>=80.1.0;python_version>="3.10"',
154
+ 'setuptools>=80.4.0;python_version>="3.10"',
155
155
  'wheel>=0.45.1',
156
156
  'attrs>=25.3.0',
157
157
  "certifi>=2025.4.26",
158
- "exceptiongroup>=1.2.2",
158
+ "exceptiongroup>=1.3.0",
159
159
  'websockets~=13.1;python_version<"3.9"',
160
160
  'websockets>=15.0.1;python_version>="3.9"',
161
161
  'filelock~=3.16.1;python_version<"3.9"',
@@ -164,7 +164,7 @@ setup(
164
164
  "mycdp>=1.2.0",
165
165
  "pynose>=1.5.4",
166
166
  'platformdirs>=4.3.6;python_version<"3.9"',
167
- 'platformdirs>=4.3.7;python_version>="3.9"',
167
+ 'platformdirs>=4.3.8;python_version>="3.9"',
168
168
  'typing-extensions>=4.13.2',
169
169
  "sbvirtualdisplay>=1.4.0",
170
170
  'MarkupSafe==2.1.5;python_version<"3.9"',
@@ -206,7 +206,7 @@ setup(
206
206
  'pytest-metadata==3.1.1',
207
207
  "pytest-ordering==0.6",
208
208
  'pytest-rerunfailures==14.0;python_version<"3.9"',
209
- 'pytest-rerunfailures==15.0;python_version>="3.9"',
209
+ 'pytest-rerunfailures==15.1;python_version>="3.9"',
210
210
  'pytest-xdist==3.6.1',
211
211
  'parameterized==0.9.0',
212
212
  "behave==1.2.6",
@@ -262,7 +262,7 @@ setup(
262
262
  # (An optional library for parsing PDF files.)
263
263
  "pdfminer": [
264
264
  'pdfminer.six==20250324;python_version<"3.9"',
265
- 'pdfminer.six==20250416;python_version>="3.9"',
265
+ 'pdfminer.six==20250506;python_version>="3.9"',
266
266
  'cryptography==39.0.2;python_version<"3.9"',
267
267
  'cryptography==44.0.3;python_version>="3.9"',
268
268
  'cffi==1.17.1',
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes