seleniumbase 4.35.6__tar.gz → 4.36.0__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.35.6/seleniumbase.egg-info → seleniumbase-4.36.0}/PKG-INFO +16 -14
  2. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/README.md +2 -3
  3. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/requirements.txt +11 -9
  4. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/__version__.py +1 -1
  5. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/browser_launcher.py +11 -0
  6. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/sb_cdp.py +34 -0
  7. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/fixtures/base_case.py +13 -0
  8. {seleniumbase-4.35.6 → seleniumbase-4.36.0/seleniumbase.egg-info}/PKG-INFO +16 -14
  9. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase.egg-info/requires.txt +11 -9
  10. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/setup.py +11 -9
  11. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/.gitignore +0 -0
  12. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/LICENSE +0 -0
  13. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/MANIFEST.in +0 -0
  14. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/install.sh +0 -0
  15. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/pyproject.toml +0 -0
  16. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/pytest.ini +0 -0
  17. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/sbase/__init__.py +0 -0
  18. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/sbase/__main__.py +0 -0
  19. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/sbase/steps.py +0 -0
  20. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/__init__.py +0 -0
  21. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/__main__.py +0 -0
  22. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/behave/__init__.py +0 -0
  23. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/behave/behave_helper.py +0 -0
  24. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/behave/behave_sb.py +0 -0
  25. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/behave/steps.py +0 -0
  26. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/common/__init__.py +0 -0
  27. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/common/decorators.py +0 -0
  28. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/common/encryption.py +0 -0
  29. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/common/exceptions.py +0 -0
  30. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/common/obfuscate.py +0 -0
  31. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/common/unobfuscate.py +0 -0
  32. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/config/__init__.py +0 -0
  33. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/config/ad_block_list.py +0 -0
  34. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/config/proxy_list.py +0 -0
  35. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/config/settings.py +0 -0
  36. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/console_scripts/__init__.py +0 -0
  37. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/console_scripts/logo_helper.py +0 -0
  38. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/console_scripts/rich_helper.py +0 -0
  39. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/console_scripts/run.py +0 -0
  40. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
  41. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
  42. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/console_scripts/sb_commander.py +0 -0
  43. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/console_scripts/sb_install.py +0 -0
  44. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
  45. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
  46. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
  47. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
  48. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
  49. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/console_scripts/sb_objectify.py +0 -0
  50. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/console_scripts/sb_print.py +0 -0
  51. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/console_scripts/sb_recorder.py +0 -0
  52. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/__init__.py +0 -0
  53. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/application_manager.py +0 -0
  54. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/capabilities_parser.py +0 -0
  55. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/colored_traceback.py +0 -0
  56. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/create_db_tables.sql +0 -0
  57. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/detect_b_ver.py +0 -0
  58. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/download_helper.py +0 -0
  59. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/encoded_images.py +0 -0
  60. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/jqc_helper.py +0 -0
  61. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/log_helper.py +0 -0
  62. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/mysql.py +0 -0
  63. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/proxy_helper.py +0 -0
  64. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/recorder_helper.py +0 -0
  65. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/report_helper.py +0 -0
  66. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/s3_manager.py +0 -0
  67. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/sb_driver.py +0 -0
  68. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/session_helper.py +0 -0
  69. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/settings_parser.py +0 -0
  70. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/style_sheet.py +0 -0
  71. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/testcase_manager.py +0 -0
  72. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/tour_helper.py +0 -0
  73. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/core/visual_helper.py +0 -0
  74. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/drivers/__init__.py +0 -0
  75. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/extensions/__init__.py +0 -0
  76. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/extensions/ad_block.zip +0 -0
  77. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/extensions/disable_csp.zip +0 -0
  78. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/extensions/recorder.zip +0 -0
  79. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/extensions/sbase_ext.zip +0 -0
  80. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/fixtures/__init__.py +0 -0
  81. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/fixtures/constants.py +0 -0
  82. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/fixtures/css_to_xpath.py +0 -0
  83. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/fixtures/errors.py +0 -0
  84. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/fixtures/js_utils.py +0 -0
  85. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/fixtures/page_actions.py +0 -0
  86. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/fixtures/page_utils.py +0 -0
  87. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/fixtures/shared_utils.py +0 -0
  88. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/fixtures/unittest_helper.py +0 -0
  89. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/fixtures/words.py +0 -0
  90. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/fixtures/xpath_to_css.py +0 -0
  91. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/js_code/__init__.py +0 -0
  92. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/js_code/active_css_js.py +0 -0
  93. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/js_code/live_js.py +0 -0
  94. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/js_code/recorder_js.py +0 -0
  95. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/masterqa/__init__.py +0 -0
  96. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/masterqa/master_qa.py +0 -0
  97. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/plugins/__init__.py +0 -0
  98. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/plugins/base_plugin.py +0 -0
  99. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/plugins/basic_test_info.py +0 -0
  100. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
  101. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/plugins/driver_manager.py +0 -0
  102. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/plugins/page_source.py +0 -0
  103. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/plugins/pytest_plugin.py +0 -0
  104. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
  105. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/plugins/sb_manager.py +0 -0
  106. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/plugins/screen_shots.py +0 -0
  107. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/plugins/selenium_plugin.py +0 -0
  108. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/resources/__init__.py +0 -0
  109. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/translate/__init__.py +0 -0
  110. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/translate/chinese.py +0 -0
  111. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/translate/dutch.py +0 -0
  112. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/translate/french.py +0 -0
  113. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/translate/italian.py +0 -0
  114. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/translate/japanese.py +0 -0
  115. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/translate/korean.py +0 -0
  116. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/translate/master_dict.py +0 -0
  117. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/translate/portuguese.py +0 -0
  118. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/translate/russian.py +0 -0
  119. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/translate/spanish.py +0 -0
  120. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/translate/translator.py +0 -0
  121. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/undetected/__init__.py +0 -0
  122. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/undetected/cdp.py +0 -0
  123. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/undetected/cdp_driver/__init__.py +0 -0
  124. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/undetected/cdp_driver/_contradict.py +0 -0
  125. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/undetected/cdp_driver/browser.py +0 -0
  126. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/undetected/cdp_driver/cdp_util.py +0 -0
  127. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/undetected/cdp_driver/config.py +0 -0
  128. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/undetected/cdp_driver/connection.py +0 -0
  129. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/undetected/cdp_driver/element.py +0 -0
  130. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/undetected/cdp_driver/tab.py +0 -0
  131. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/undetected/dprocess.py +0 -0
  132. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/undetected/options.py +0 -0
  133. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/undetected/patcher.py +0 -0
  134. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/undetected/reactor.py +0 -0
  135. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/undetected/webelement.py +0 -0
  136. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/utilities/__init__.py +0 -0
  137. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
  138. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
  139. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/utilities/selenium_grid/font_color +0 -0
  140. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
  141. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
  142. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
  143. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
  144. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
  145. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
  146. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
  147. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
  148. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
  149. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
  150. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase.egg-info/SOURCES.txt +0 -0
  151. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase.egg-info/dependency_links.txt +0 -0
  152. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase.egg-info/entry_points.txt +0 -0
  153. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/seleniumbase.egg-info/top_level.txt +0 -0
  154. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/setup.cfg +0 -0
  155. {seleniumbase-4.35.6 → seleniumbase-4.36.0}/virtualenv_install.sh +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.35.6
3
+ Version: 4.36.0
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
@@ -62,19 +62,20 @@ License-File: LICENSE
62
62
  Requires-Dist: pip>=25.0.1
63
63
  Requires-Dist: packaging>=24.2
64
64
  Requires-Dist: setuptools~=70.2; python_version < "3.10"
65
- Requires-Dist: setuptools>=75.8.2; python_version >= "3.10"
65
+ Requires-Dist: setuptools>=77.0.3; python_version >= "3.10"
66
66
  Requires-Dist: wheel>=0.45.1
67
- Requires-Dist: attrs>=25.1.0
67
+ Requires-Dist: attrs>=25.3.0
68
68
  Requires-Dist: certifi>=2025.1.31
69
69
  Requires-Dist: exceptiongroup>=1.2.2
70
70
  Requires-Dist: websockets~=13.1; python_version < "3.9"
71
71
  Requires-Dist: websockets>=15.0.1; python_version >= "3.9"
72
72
  Requires-Dist: filelock~=3.16.1; python_version < "3.9"
73
- Requires-Dist: filelock>=3.17.0; python_version >= "3.9"
73
+ Requires-Dist: filelock>=3.18.0; python_version >= "3.9"
74
74
  Requires-Dist: fasteners>=0.19
75
- Requires-Dist: mycdp>=1.1.0
75
+ Requires-Dist: mycdp>=1.1.1
76
76
  Requires-Dist: pynose>=1.5.4
77
- Requires-Dist: platformdirs>=4.3.6
77
+ Requires-Dist: platformdirs>=4.3.6; python_version < "3.9"
78
+ Requires-Dist: platformdirs>=4.3.7; python_version >= "3.9"
78
79
  Requires-Dist: typing-extensions>=4.12.2
79
80
  Requires-Dist: sbvirtualdisplay>=1.4.0
80
81
  Requires-Dist: MarkupSafe==2.1.5; python_version < "3.9"
@@ -104,11 +105,12 @@ Requires-Dist: trio-websocket==0.12.2
104
105
  Requires-Dist: wsproto==1.2.0
105
106
  Requires-Dist: websocket-client==1.8.0
106
107
  Requires-Dist: selenium==4.27.1; python_version < "3.9"
107
- Requires-Dist: selenium==4.29.0; python_version >= "3.9"
108
- Requires-Dist: cssselect==1.2.0
108
+ Requires-Dist: selenium==4.30.0; python_version >= "3.9"
109
+ Requires-Dist: cssselect==1.2.0; python_version < "3.9"
110
+ Requires-Dist: cssselect==1.3.0; python_version >= "3.9"
109
111
  Requires-Dist: sortedcontainers==2.4.0
110
112
  Requires-Dist: execnet==2.1.1
111
- Requires-Dist: iniconfig==2.0.0
113
+ Requires-Dist: iniconfig==2.1.0
112
114
  Requires-Dist: pluggy==1.5.0
113
115
  Requires-Dist: pytest==8.3.5
114
116
  Requires-Dist: pytest-html==4.0.2
@@ -132,7 +134,7 @@ Requires-Dist: allure-python-commons>=2.13.5; extra == "allure"
132
134
  Requires-Dist: allure-behave>=2.13.5; extra == "allure"
133
135
  Provides-Extra: coverage
134
136
  Requires-Dist: coverage>=7.6.1; python_version < "3.9" and extra == "coverage"
135
- Requires-Dist: coverage>=7.6.12; python_version >= "3.9" and extra == "coverage"
137
+ Requires-Dist: coverage>=7.7.1; python_version >= "3.9" and extra == "coverage"
136
138
  Requires-Dist: pytest-cov>=5.0.0; python_version < "3.9" and extra == "coverage"
137
139
  Requires-Dist: pytest-cov>=6.0.0; python_version >= "3.9" and extra == "coverage"
138
140
  Provides-Extra: flake8
@@ -185,6 +187,7 @@ Dynamic: classifier
185
187
  Dynamic: home-page
186
188
  Dynamic: keywords
187
189
  Dynamic: license
190
+ Dynamic: license-file
188
191
  Dynamic: maintainer
189
192
  Dynamic: platform
190
193
  Dynamic: provides-extra
@@ -205,7 +208,6 @@ Dynamic: summary
205
208
 
206
209
  <p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="350" /></a></p>
207
210
 
208
-
209
211
  <p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Testing / Scraping / Stealth</b></p>
210
212
 
211
213
  <p align="center"><a href="https://pypi.python.org/pypi/seleniumbase" target="_blank"><img src="https://img.shields.io/pypi/v/seleniumbase.svg?color=3399EE" alt="PyPI version" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/releases" target="_blank"><img src="https://img.shields.io/github/v/release/seleniumbase/SeleniumBase.svg?color=22AAEE" alt="GitHub version" /></a> <a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/actions" target="_blank"><img src="https://github.com/seleniumbase/SeleniumBase/workflows/CI%20build/badge.svg" alt="SeleniumBase GitHub Actions" /></a> <a href="https://discord.gg/EdhQTn3EyE" target="_blank"><img src="https://img.shields.io/badge/join-discord-infomational" alt="Join the SeleniumBase chat on Discord"/></a></p>
@@ -275,7 +277,7 @@ with SB(test=True, uc=True) as sb:
275
277
 
276
278
  > `python raw_google.py`
277
279
 
278
- <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py"><img src="https://seleniumbase.github.io/cdn/gif/google_search.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="420" /></a>
280
+ <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py"><img src="https://seleniumbase.github.io/cdn/gif/google_search.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="480" /></a>
279
281
 
280
282
  --------
281
283
 
@@ -1587,5 +1589,5 @@ pytest --reruns=1 --reruns-delay=1
1587
1589
  <div><a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-22BBCC.svg" title="SeleniumBase" /></a></div>
1588
1590
  <div><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg" alt="Tested with SeleniumBase" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/stargazers"><img src="https://img.shields.io/github/stars/seleniumbase/seleniumbase.svg?color=19A57B" title="Stargazers" /></a></div>
1589
1591
  <div><a href="https://hellogithub.com/repository/c6be2d0f1969448697683d11a4ff915e" target="_blank"><img src="https://abroad.hellogithub.com/v1/widgets/recommend.svg?rid=c6be2d0f1969448697683d11a4ff915e&claim_uid=xcrm4p9j3d6JCO5&theme=small" alt="Featured|HelloGitHub" /></a> <a href="https://discord.gg/EdhQTn3EyE" target="_blank"><img src="https://img.shields.io/badge/join-discord-infomational" alt="Join the SeleniumBase chat on Discord"/></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></div>
1590
- <div><a href="https://pepy.tech/project/seleniumbase" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a> <img src="https://views.whatilearened.today/views/github/seleniumbase/SeleniumBase.svg" width="98px" height="20px" alt="Views" /></div>
1592
+ <div><a href="https://pepy.tech/projects/seleniumbase?timeRange=threeMonths&category=version&includeCIDownloads=true&granularity=daily&viewType=line&versions=*" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a> <img src="https://views.whatilearened.today/views/github/seleniumbase/SeleniumBase.svg" width="98px" height="20px" alt="Views" /></div>
1591
1593
  <div align="left"></div>
@@ -11,7 +11,6 @@
11
11
 
12
12
  <p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="350" /></a></p>
13
13
 
14
-
15
14
  <p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Testing / Scraping / Stealth</b></p>
16
15
 
17
16
  <p align="center"><a href="https://pypi.python.org/pypi/seleniumbase" target="_blank"><img src="https://img.shields.io/pypi/v/seleniumbase.svg?color=3399EE" alt="PyPI version" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/releases" target="_blank"><img src="https://img.shields.io/github/v/release/seleniumbase/SeleniumBase.svg?color=22AAEE" alt="GitHub version" /></a> <a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/actions" target="_blank"><img src="https://github.com/seleniumbase/SeleniumBase/workflows/CI%20build/badge.svg" alt="SeleniumBase GitHub Actions" /></a> <a href="https://discord.gg/EdhQTn3EyE" target="_blank"><img src="https://img.shields.io/badge/join-discord-infomational" alt="Join the SeleniumBase chat on Discord"/></a></p>
@@ -81,7 +80,7 @@ with SB(test=True, uc=True) as sb:
81
80
 
82
81
  > `python raw_google.py`
83
82
 
84
- <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py"><img src="https://seleniumbase.github.io/cdn/gif/google_search.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="420" /></a>
83
+ <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py"><img src="https://seleniumbase.github.io/cdn/gif/google_search.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="480" /></a>
85
84
 
86
85
  --------
87
86
 
@@ -1393,5 +1392,5 @@ pytest --reruns=1 --reruns-delay=1
1393
1392
  <div><a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-22BBCC.svg" title="SeleniumBase" /></a></div>
1394
1393
  <div><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg" alt="Tested with SeleniumBase" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/stargazers"><img src="https://img.shields.io/github/stars/seleniumbase/seleniumbase.svg?color=19A57B" title="Stargazers" /></a></div>
1395
1394
  <div><a href="https://hellogithub.com/repository/c6be2d0f1969448697683d11a4ff915e" target="_blank"><img src="https://abroad.hellogithub.com/v1/widgets/recommend.svg?rid=c6be2d0f1969448697683d11a4ff915e&claim_uid=xcrm4p9j3d6JCO5&theme=small" alt="Featured|HelloGitHub" /></a> <a href="https://discord.gg/EdhQTn3EyE" target="_blank"><img src="https://img.shields.io/badge/join-discord-infomational" alt="Join the SeleniumBase chat on Discord"/></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></div>
1396
- <div><a href="https://pepy.tech/project/seleniumbase" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a> <img src="https://views.whatilearened.today/views/github/seleniumbase/SeleniumBase.svg" width="98px" height="20px" alt="Views" /></div>
1395
+ <div><a href="https://pepy.tech/projects/seleniumbase?timeRange=threeMonths&category=version&includeCIDownloads=true&granularity=daily&viewType=line&versions=*" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a> <img src="https://views.whatilearened.today/views/github/seleniumbase/SeleniumBase.svg" width="98px" height="20px" alt="Views" /></div>
1397
1396
  <div align="left"></div>
@@ -1,19 +1,20 @@
1
1
  pip>=25.0.1
2
2
  packaging>=24.2
3
3
  setuptools~=70.2;python_version<"3.10"
4
- setuptools>=75.8.2;python_version>="3.10"
4
+ setuptools>=77.0.3;python_version>="3.10"
5
5
  wheel>=0.45.1
6
- attrs>=25.1.0
6
+ attrs>=25.3.0
7
7
  certifi>=2025.1.31
8
8
  exceptiongroup>=1.2.2
9
9
  websockets~=13.1;python_version<"3.9"
10
10
  websockets>=15.0.1;python_version>="3.9"
11
11
  filelock~=3.16.1;python_version<"3.9"
12
- filelock>=3.17.0;python_version>="3.9"
12
+ filelock>=3.18.0;python_version>="3.9"
13
13
  fasteners>=0.19
14
- mycdp>=1.1.0
14
+ mycdp>=1.1.1
15
15
  pynose>=1.5.4
16
- platformdirs>=4.3.6
16
+ platformdirs>=4.3.6;python_version<"3.9"
17
+ platformdirs>=4.3.7;python_version>="3.9"
17
18
  typing-extensions>=4.12.2
18
19
  sbvirtualdisplay>=1.4.0
19
20
  MarkupSafe==2.1.5;python_version<"3.9"
@@ -43,11 +44,12 @@ trio-websocket==0.12.2
43
44
  wsproto==1.2.0
44
45
  websocket-client==1.8.0
45
46
  selenium==4.27.1;python_version<"3.9"
46
- selenium==4.29.0;python_version>="3.9"
47
- cssselect==1.2.0
47
+ selenium==4.30.0;python_version>="3.9"
48
+ cssselect==1.2.0;python_version<"3.9"
49
+ cssselect==1.3.0;python_version>="3.9"
48
50
  sortedcontainers==2.4.0
49
51
  execnet==2.1.1
50
- iniconfig==2.0.0
52
+ iniconfig==2.1.0
51
53
  pluggy==1.5.0
52
54
  pytest==8.3.5
53
55
  pytest-html==4.0.2
@@ -70,7 +72,7 @@ rich==13.9.4
70
72
  # ("pip install -r requirements.txt" also installs this, but "pip install -e ." won't.)
71
73
 
72
74
  coverage>=7.6.1;python_version<"3.9"
73
- coverage>=7.6.12;python_version>="3.9"
75
+ coverage>=7.7.1;python_version>="3.9"
74
76
  pytest-cov>=5.0.0;python_version<"3.9"
75
77
  pytest-cov>=6.0.0;python_version>="3.9"
76
78
  flake8==5.0.4;python_version<"3.9"
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.35.6"
2
+ __version__ = "4.36.0"
@@ -662,6 +662,7 @@ def uc_open_with_cdp_mode(driver, url=None):
662
662
  cdp.press_keys = CDPM.press_keys
663
663
  cdp.type = CDPM.type
664
664
  cdp.set_value = CDPM.set_value
665
+ cdp.submit = CDPM.submit
665
666
  cdp.evaluate = CDPM.evaluate
666
667
  cdp.js_dumps = CDPM.js_dumps
667
668
  cdp.maximize = CDPM.maximize
@@ -670,6 +671,8 @@ def uc_open_with_cdp_mode(driver, url=None):
670
671
  cdp.set_window_rect = CDPM.set_window_rect
671
672
  cdp.reset_window_size = CDPM.reset_window_size
672
673
  cdp.set_locale = CDPM.set_locale
674
+ cdp.set_local_storage_item = CDPM.set_local_storage_item
675
+ cdp.set_session_storage_item = CDPM.set_session_storage_item
673
676
  cdp.set_attributes = CDPM.set_attributes
674
677
  cdp.gui_press_key = CDPM.gui_press_key
675
678
  cdp.gui_press_keys = CDPM.gui_press_keys
@@ -705,6 +708,8 @@ def uc_open_with_cdp_mode(driver, url=None):
705
708
  cdp.get_user_agent = CDPM.get_user_agent
706
709
  cdp.get_cookie_string = CDPM.get_cookie_string
707
710
  cdp.get_locale_code = CDPM.get_locale_code
711
+ cdp.get_local_storage_item = CDPM.get_local_storage_item
712
+ cdp.get_session_storage_item = CDPM.get_session_storage_item
708
713
  cdp.get_text = CDPM.get_text
709
714
  cdp.get_title = CDPM.get_title
710
715
  cdp.get_page_title = CDPM.get_title
@@ -1297,6 +1302,8 @@ def _uc_gui_click_captcha(
1297
1302
  frame = "body > div#check > div:not([class])"
1298
1303
  elif driver.is_element_present(".cf-turnstile-wrapper"):
1299
1304
  frame = ".cf-turnstile-wrapper"
1305
+ elif driver.is_element_present('[class="cf-turnstile"]'):
1306
+ frame = '[class="cf-turnstile"]'
1300
1307
  elif driver.is_element_present(
1301
1308
  '[data-callback="onCaptchaSuccess"]'
1302
1309
  ):
@@ -1612,6 +1619,10 @@ def _uc_gui_handle_captcha_(driver, frame="iframe", ctype=None):
1612
1619
  )
1613
1620
  ):
1614
1621
  frame = "body > div#check > div:not([class])"
1622
+ elif driver.is_element_present(".cf-turnstile-wrapper"):
1623
+ frame = ".cf-turnstile-wrapper"
1624
+ elif driver.is_element_present('[class="cf-turnstile"]'):
1625
+ frame = '[class="cf-turnstile"]'
1615
1626
  else:
1616
1627
  return
1617
1628
  else:
@@ -955,6 +955,20 @@ class CDPMethods():
955
955
  self.__slow_mode_pause_if_set()
956
956
  self.loop.run_until_complete(self.page.sleep(0.025))
957
957
 
958
+ def submit(self, selector):
959
+ submit_script = (
960
+ """elm = document.querySelector('%s');
961
+ const event = new KeyboardEvent("keydown", {
962
+ key: "Enter",
963
+ keyCode: 13,
964
+ code: "Enter",
965
+ which: 13,
966
+ bubbles: true
967
+ });
968
+ elm.dispatchEvent(event);""" % selector
969
+ )
970
+ self.loop.run_until_complete(self.page.evaluate(submit_script))
971
+
958
972
  def evaluate(self, expression):
959
973
  """Run a JavaScript expression and return the result."""
960
974
  expression = expression.strip()
@@ -1115,6 +1129,16 @@ class CDPMethods():
1115
1129
  self.page.evaluate("navigator.language || navigator.languages[0]")
1116
1130
  )
1117
1131
 
1132
+ def get_local_storage_item(self, key):
1133
+ js_code = """localStorage.getItem('%s');""" % key
1134
+ with suppress(Exception):
1135
+ return self.loop.run_until_complete(self.page.evaluate(js_code))
1136
+
1137
+ def get_session_storage_item(self, key):
1138
+ js_code = """sessionStorage.getItem('%s');""" % key
1139
+ with suppress(Exception):
1140
+ return self.loop.run_until_complete(self.page.evaluate(js_code))
1141
+
1118
1142
  def get_screen_rect(self):
1119
1143
  coordinates = self.loop.run_until_complete(
1120
1144
  self.page.js_dumps("window.screen")
@@ -1302,6 +1326,16 @@ class CDPMethods():
1302
1326
  """(Settings will take effect on the next page load)"""
1303
1327
  self.loop.run_until_complete(self.page.set_locale(locale))
1304
1328
 
1329
+ def set_local_storage_item(self, key, value):
1330
+ js_code = """localStorage.setItem('%s','%s');""" % (key, value)
1331
+ with suppress(Exception):
1332
+ self.loop.run_until_complete(self.page.evaluate(js_code))
1333
+
1334
+ def set_session_storage_item(self, key, value):
1335
+ js_code = """sessionStorage.setItem('%s','%s');""" % (key, value)
1336
+ with suppress(Exception):
1337
+ self.loop.run_until_complete(self.page.evaluate(js_code))
1338
+
1305
1339
  def set_attributes(self, selector, attribute, value):
1306
1340
  """This method uses JavaScript to set/update a common attribute.
1307
1341
  All matching selectors from querySelectorAll() are used.
@@ -1164,6 +1164,9 @@ class BaseCase(unittest.TestCase):
1164
1164
  """Alternative to self.driver.find_element_by_*(SELECTOR).submit()"""
1165
1165
  self.__check_scope()
1166
1166
  selector, by = self.__recalculate_selector(selector, by)
1167
+ if self.__is_cdp_swap_needed():
1168
+ self.cdp.submit(selector)
1169
+ return
1167
1170
  element = self.wait_for_element_clickable(
1168
1171
  selector, by=by, timeout=settings.SMALL_TIMEOUT
1169
1172
  )
@@ -8800,6 +8803,9 @@ class BaseCase(unittest.TestCase):
8800
8803
  self.__check_scope()
8801
8804
  if not self.__is_valid_storage_url():
8802
8805
  raise WebDriverException("Local Storage is not available here!")
8806
+ if self.__is_cdp_swap_needed():
8807
+ self.cdp.set_local_storage_item(key, value)
8808
+ return
8803
8809
  self.execute_script(
8804
8810
  "window.localStorage.setItem('{}', '{}');".format(key, value)
8805
8811
  )
@@ -8808,6 +8814,8 @@ class BaseCase(unittest.TestCase):
8808
8814
  self.__check_scope()
8809
8815
  if not self.__is_valid_storage_url():
8810
8816
  raise WebDriverException("Local Storage is not available here!")
8817
+ if self.__is_cdp_swap_needed():
8818
+ return self.cdp.get_local_storage_item(key)
8811
8819
  return self.execute_script(
8812
8820
  "return window.localStorage.getItem('{}');".format(key)
8813
8821
  )
@@ -8859,6 +8867,9 @@ class BaseCase(unittest.TestCase):
8859
8867
  self.__check_scope()
8860
8868
  if not self.__is_valid_storage_url():
8861
8869
  raise WebDriverException("Session Storage is not available here!")
8870
+ if self.__is_cdp_swap_needed():
8871
+ self.cdp.set_session_storage_item(key, value)
8872
+ return
8862
8873
  self.execute_script(
8863
8874
  "window.sessionStorage.setItem('{}', '{}');".format(key, value)
8864
8875
  )
@@ -8867,6 +8878,8 @@ class BaseCase(unittest.TestCase):
8867
8878
  self.__check_scope()
8868
8879
  if not self.__is_valid_storage_url():
8869
8880
  raise WebDriverException("Session Storage is not available here!")
8881
+ if self.__is_cdp_swap_needed():
8882
+ return self.cdp.get_session_storage_item(key)
8870
8883
  return self.execute_script(
8871
8884
  "return window.sessionStorage.getItem('{}');".format(key)
8872
8885
  )
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.35.6
3
+ Version: 4.36.0
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
@@ -62,19 +62,20 @@ License-File: LICENSE
62
62
  Requires-Dist: pip>=25.0.1
63
63
  Requires-Dist: packaging>=24.2
64
64
  Requires-Dist: setuptools~=70.2; python_version < "3.10"
65
- Requires-Dist: setuptools>=75.8.2; python_version >= "3.10"
65
+ Requires-Dist: setuptools>=77.0.3; python_version >= "3.10"
66
66
  Requires-Dist: wheel>=0.45.1
67
- Requires-Dist: attrs>=25.1.0
67
+ Requires-Dist: attrs>=25.3.0
68
68
  Requires-Dist: certifi>=2025.1.31
69
69
  Requires-Dist: exceptiongroup>=1.2.2
70
70
  Requires-Dist: websockets~=13.1; python_version < "3.9"
71
71
  Requires-Dist: websockets>=15.0.1; python_version >= "3.9"
72
72
  Requires-Dist: filelock~=3.16.1; python_version < "3.9"
73
- Requires-Dist: filelock>=3.17.0; python_version >= "3.9"
73
+ Requires-Dist: filelock>=3.18.0; python_version >= "3.9"
74
74
  Requires-Dist: fasteners>=0.19
75
- Requires-Dist: mycdp>=1.1.0
75
+ Requires-Dist: mycdp>=1.1.1
76
76
  Requires-Dist: pynose>=1.5.4
77
- Requires-Dist: platformdirs>=4.3.6
77
+ Requires-Dist: platformdirs>=4.3.6; python_version < "3.9"
78
+ Requires-Dist: platformdirs>=4.3.7; python_version >= "3.9"
78
79
  Requires-Dist: typing-extensions>=4.12.2
79
80
  Requires-Dist: sbvirtualdisplay>=1.4.0
80
81
  Requires-Dist: MarkupSafe==2.1.5; python_version < "3.9"
@@ -104,11 +105,12 @@ Requires-Dist: trio-websocket==0.12.2
104
105
  Requires-Dist: wsproto==1.2.0
105
106
  Requires-Dist: websocket-client==1.8.0
106
107
  Requires-Dist: selenium==4.27.1; python_version < "3.9"
107
- Requires-Dist: selenium==4.29.0; python_version >= "3.9"
108
- Requires-Dist: cssselect==1.2.0
108
+ Requires-Dist: selenium==4.30.0; python_version >= "3.9"
109
+ Requires-Dist: cssselect==1.2.0; python_version < "3.9"
110
+ Requires-Dist: cssselect==1.3.0; python_version >= "3.9"
109
111
  Requires-Dist: sortedcontainers==2.4.0
110
112
  Requires-Dist: execnet==2.1.1
111
- Requires-Dist: iniconfig==2.0.0
113
+ Requires-Dist: iniconfig==2.1.0
112
114
  Requires-Dist: pluggy==1.5.0
113
115
  Requires-Dist: pytest==8.3.5
114
116
  Requires-Dist: pytest-html==4.0.2
@@ -132,7 +134,7 @@ Requires-Dist: allure-python-commons>=2.13.5; extra == "allure"
132
134
  Requires-Dist: allure-behave>=2.13.5; extra == "allure"
133
135
  Provides-Extra: coverage
134
136
  Requires-Dist: coverage>=7.6.1; python_version < "3.9" and extra == "coverage"
135
- Requires-Dist: coverage>=7.6.12; python_version >= "3.9" and extra == "coverage"
137
+ Requires-Dist: coverage>=7.7.1; python_version >= "3.9" and extra == "coverage"
136
138
  Requires-Dist: pytest-cov>=5.0.0; python_version < "3.9" and extra == "coverage"
137
139
  Requires-Dist: pytest-cov>=6.0.0; python_version >= "3.9" and extra == "coverage"
138
140
  Provides-Extra: flake8
@@ -185,6 +187,7 @@ Dynamic: classifier
185
187
  Dynamic: home-page
186
188
  Dynamic: keywords
187
189
  Dynamic: license
190
+ Dynamic: license-file
188
191
  Dynamic: maintainer
189
192
  Dynamic: platform
190
193
  Dynamic: provides-extra
@@ -205,7 +208,6 @@ Dynamic: summary
205
208
 
206
209
  <p align="center"><a href="https://github.com/seleniumbase/SeleniumBase/"><img src="https://seleniumbase.github.io/cdn/img/super_logo_sb3.png" alt="SeleniumBase" title="SeleniumBase" width="350" /></a></p>
207
210
 
208
-
209
211
  <p align="center" class="hero__title"><b>All-in-one Browser Automation Framework:<br />Web Crawling / Testing / Scraping / Stealth</b></p>
210
212
 
211
213
  <p align="center"><a href="https://pypi.python.org/pypi/seleniumbase" target="_blank"><img src="https://img.shields.io/pypi/v/seleniumbase.svg?color=3399EE" alt="PyPI version" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/releases" target="_blank"><img src="https://img.shields.io/github/v/release/seleniumbase/SeleniumBase.svg?color=22AAEE" alt="GitHub version" /></a> <a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/actions" target="_blank"><img src="https://github.com/seleniumbase/SeleniumBase/workflows/CI%20build/badge.svg" alt="SeleniumBase GitHub Actions" /></a> <a href="https://discord.gg/EdhQTn3EyE" target="_blank"><img src="https://img.shields.io/badge/join-discord-infomational" alt="Join the SeleniumBase chat on Discord"/></a></p>
@@ -275,7 +277,7 @@ with SB(test=True, uc=True) as sb:
275
277
 
276
278
  > `python raw_google.py`
277
279
 
278
- <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py"><img src="https://seleniumbase.github.io/cdn/gif/google_search.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="420" /></a>
280
+ <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py"><img src="https://seleniumbase.github.io/cdn/gif/google_search.gif" alt="SeleniumBase Test" title="SeleniumBase Test" width="480" /></a>
279
281
 
280
282
  --------
281
283
 
@@ -1587,5 +1589,5 @@ pytest --reruns=1 --reruns-delay=1
1587
1589
  <div><a href="https://seleniumbase.io"><img src="https://img.shields.io/badge/docs-seleniumbase.io-11BBAA.svg" alt="SeleniumBase Docs" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-22BBCC.svg" title="SeleniumBase" /></a></div>
1588
1590
  <div><a href="https://github.com/seleniumbase/SeleniumBase"><img src="https://img.shields.io/badge/tested%20with-SeleniumBase-04C38E.svg" alt="Tested with SeleniumBase" /></a> <a href="https://github.com/seleniumbase/SeleniumBase/stargazers"><img src="https://img.shields.io/github/stars/seleniumbase/seleniumbase.svg?color=19A57B" title="Stargazers" /></a></div>
1589
1591
  <div><a href="https://hellogithub.com/repository/c6be2d0f1969448697683d11a4ff915e" target="_blank"><img src="https://abroad.hellogithub.com/v1/widgets/recommend.svg?rid=c6be2d0f1969448697683d11a4ff915e&claim_uid=xcrm4p9j3d6JCO5&theme=small" alt="Featured|HelloGitHub" /></a> <a href="https://discord.gg/EdhQTn3EyE" target="_blank"><img src="https://img.shields.io/badge/join-discord-infomational" alt="Join the SeleniumBase chat on Discord"/></a> <a href="https://gitter.im/seleniumbase/SeleniumBase" target="_blank"><img src="https://img.shields.io/gitter/room/seleniumbase/SeleniumBase.svg" alt="Gitter chat"/></a></div>
1590
- <div><a href="https://pepy.tech/project/seleniumbase" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a> <img src="https://views.whatilearened.today/views/github/seleniumbase/SeleniumBase.svg" width="98px" height="20px" alt="Views" /></div>
1592
+ <div><a href="https://pepy.tech/projects/seleniumbase?timeRange=threeMonths&category=version&includeCIDownloads=true&granularity=daily&viewType=line&versions=*" target="_blank"><img src="https://static.pepy.tech/badge/seleniumbase" alt="SeleniumBase PyPI downloads" /></a> <img src="https://views.whatilearened.today/views/github/seleniumbase/SeleniumBase.svg" width="98px" height="20px" alt="Views" /></div>
1591
1593
  <div align="left"></div>
@@ -1,13 +1,12 @@
1
1
  pip>=25.0.1
2
2
  packaging>=24.2
3
3
  wheel>=0.45.1
4
- attrs>=25.1.0
4
+ attrs>=25.3.0
5
5
  certifi>=2025.1.31
6
6
  exceptiongroup>=1.2.2
7
7
  fasteners>=0.19
8
- mycdp>=1.1.0
8
+ mycdp>=1.1.1
9
9
  pynose>=1.5.4
10
- platformdirs>=4.3.6
11
10
  typing-extensions>=4.12.2
12
11
  sbvirtualdisplay>=1.4.0
13
12
  Jinja2>=3.1.6
@@ -29,10 +28,9 @@ outcome==1.3.0.post0
29
28
  trio-websocket==0.12.2
30
29
  wsproto==1.2.0
31
30
  websocket-client==1.8.0
32
- cssselect==1.2.0
33
31
  sortedcontainers==2.4.0
34
32
  execnet==2.1.1
35
- iniconfig==2.0.0
33
+ iniconfig==2.1.0
36
34
  pluggy==1.5.0
37
35
  pytest==8.3.5
38
36
  pytest-html==4.0.2
@@ -61,21 +59,25 @@ urllib3<2,>=1.26.20
61
59
  [:python_version < "3.9"]
62
60
  websockets~=13.1
63
61
  filelock~=3.16.1
62
+ platformdirs>=4.3.6
64
63
  MarkupSafe==2.1.5
65
64
  trio==0.27.0
66
65
  selenium==4.27.1
66
+ cssselect==1.2.0
67
67
  pytest-rerunfailures==14.0
68
68
 
69
69
  [:python_version >= "3.10"]
70
- setuptools>=75.8.2
70
+ setuptools>=77.0.3
71
71
  urllib3<2.4.0,>=1.26.20
72
72
 
73
73
  [:python_version >= "3.9"]
74
74
  websockets>=15.0.1
75
- filelock>=3.17.0
75
+ filelock>=3.18.0
76
+ platformdirs>=4.3.7
76
77
  MarkupSafe>=3.0.2
77
78
  trio==0.29.0
78
- selenium==4.29.0
79
+ selenium==4.30.0
80
+ cssselect==1.3.0
79
81
  pytest-rerunfailures==15.0
80
82
 
81
83
  [allure]
@@ -90,7 +92,7 @@ coverage>=7.6.1
90
92
  pytest-cov>=5.0.0
91
93
 
92
94
  [coverage:python_version >= "3.9"]
93
- coverage>=7.6.12
95
+ coverage>=7.7.1
94
96
  pytest-cov>=6.0.0
95
97
 
96
98
  [flake8]
@@ -150,19 +150,20 @@ setup(
150
150
  'pip>=25.0.1',
151
151
  'packaging>=24.2',
152
152
  'setuptools~=70.2;python_version<"3.10"', # Newer ones had issues
153
- 'setuptools>=75.8.2;python_version>="3.10"',
153
+ 'setuptools>=77.0.3;python_version>="3.10"',
154
154
  'wheel>=0.45.1',
155
- 'attrs>=25.1.0',
155
+ 'attrs>=25.3.0',
156
156
  "certifi>=2025.1.31",
157
157
  "exceptiongroup>=1.2.2",
158
158
  'websockets~=13.1;python_version<"3.9"',
159
159
  'websockets>=15.0.1;python_version>="3.9"',
160
160
  'filelock~=3.16.1;python_version<"3.9"',
161
- 'filelock>=3.17.0;python_version>="3.9"',
161
+ 'filelock>=3.18.0;python_version>="3.9"',
162
162
  'fasteners>=0.19',
163
- "mycdp>=1.1.0",
163
+ "mycdp>=1.1.1",
164
164
  "pynose>=1.5.4",
165
- 'platformdirs>=4.3.6',
165
+ 'platformdirs>=4.3.6;python_version<"3.9"',
166
+ 'platformdirs>=4.3.7;python_version>="3.9"',
166
167
  'typing-extensions>=4.12.2',
167
168
  "sbvirtualdisplay>=1.4.0",
168
169
  'MarkupSafe==2.1.5;python_version<"3.9"',
@@ -192,11 +193,12 @@ setup(
192
193
  'wsproto==1.2.0',
193
194
  'websocket-client==1.8.0',
194
195
  'selenium==4.27.1;python_version<"3.9"',
195
- 'selenium==4.29.0;python_version>="3.9"',
196
- 'cssselect==1.2.0',
196
+ 'selenium==4.30.0;python_version>="3.9"',
197
+ 'cssselect==1.2.0;python_version<"3.9"',
198
+ 'cssselect==1.3.0;python_version>="3.9"',
197
199
  "sortedcontainers==2.4.0",
198
200
  'execnet==2.1.1',
199
- 'iniconfig==2.0.0',
201
+ 'iniconfig==2.1.0',
200
202
  'pluggy==1.5.0',
201
203
  'pytest==8.3.5',
202
204
  "pytest-html==4.0.2", # Newer ones had issues
@@ -228,7 +230,7 @@ setup(
228
230
  # Usage: coverage run -m pytest; coverage html; coverage report
229
231
  "coverage": [
230
232
  'coverage>=7.6.1;python_version<"3.9"',
231
- 'coverage>=7.6.12;python_version>="3.9"',
233
+ 'coverage>=7.7.1;python_version>="3.9"',
232
234
  'pytest-cov>=5.0.0;python_version<"3.9"',
233
235
  'pytest-cov>=6.0.0;python_version>="3.9"',
234
236
  ],
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes