seleniumbase 4.51.2__tar.gz → 4.51.4__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 (162) hide show
  1. {seleniumbase-4.51.2/seleniumbase.egg-info → seleniumbase-4.51.4}/PKG-INFO +6 -5
  2. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/requirements.txt +5 -4
  3. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/__version__.py +1 -1
  4. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/browser_launcher.py +2 -6
  5. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/sb_cdp.py +31 -16
  6. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/fixtures/base_case.py +5 -3
  7. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/undetected/cdp_driver/config.py +1 -1
  8. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/undetected/cdp_driver/element.py +1 -1
  9. {seleniumbase-4.51.2 → seleniumbase-4.51.4/seleniumbase.egg-info}/PKG-INFO +6 -5
  10. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase.egg-info/requires.txt +5 -4
  11. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/setup.py +5 -4
  12. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/.gitignore +0 -0
  13. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/LICENSE +0 -0
  14. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/MANIFEST.in +0 -0
  15. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/README.md +0 -0
  16. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/install.sh +0 -0
  17. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/pyproject.toml +0 -0
  18. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/pytest.ini +0 -0
  19. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/sbase/__init__.py +0 -0
  20. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/sbase/__main__.py +0 -0
  21. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/sbase/steps.py +0 -0
  22. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/__init__.py +0 -0
  23. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/__main__.py +0 -0
  24. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/behave/__init__.py +0 -0
  25. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/behave/behave_helper.py +0 -0
  26. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/behave/behave_sb.py +0 -0
  27. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/behave/steps.py +0 -0
  28. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/common/__init__.py +0 -0
  29. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/common/decorators.py +0 -0
  30. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/common/encryption.py +0 -0
  31. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/common/exceptions.py +0 -0
  32. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/common/obfuscate.py +0 -0
  33. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/common/unobfuscate.py +0 -0
  34. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/config/__init__.py +0 -0
  35. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/config/ad_block_list.py +0 -0
  36. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/config/proxy_list.py +0 -0
  37. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/config/settings.py +0 -0
  38. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/console_scripts/__init__.py +0 -0
  39. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/console_scripts/logo_helper.py +0 -0
  40. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/console_scripts/rich_helper.py +0 -0
  41. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/console_scripts/run.py +0 -0
  42. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
  43. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
  44. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/console_scripts/sb_commander.py +0 -0
  45. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/console_scripts/sb_install.py +0 -0
  46. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
  47. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
  48. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
  49. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
  50. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
  51. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/console_scripts/sb_objectify.py +0 -0
  52. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/console_scripts/sb_print.py +0 -0
  53. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/console_scripts/sb_recorder.py +0 -0
  54. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/__init__.py +0 -0
  55. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/application_manager.py +0 -0
  56. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/capabilities_parser.py +0 -0
  57. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/colored_traceback.py +0 -0
  58. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/create_db_tables.sql +0 -0
  59. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/detect_b_ver.py +0 -0
  60. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/download_helper.py +0 -0
  61. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/encoded_images.py +0 -0
  62. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/jqc_helper.py +0 -0
  63. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/log_helper.py +0 -0
  64. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/mysql.py +0 -0
  65. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/nest_asyncio.py +0 -0
  66. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/proxy_helper.py +0 -0
  67. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/recorder_helper.py +0 -0
  68. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/report_helper.py +0 -0
  69. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/s3_manager.py +0 -0
  70. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/sb_driver.py +0 -0
  71. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/session_helper.py +0 -0
  72. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/settings_parser.py +0 -0
  73. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/style_sheet.py +0 -0
  74. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/testcase_manager.py +0 -0
  75. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/tour_helper.py +0 -0
  76. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/core/visual_helper.py +0 -0
  77. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/drivers/__init__.py +0 -0
  78. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/drivers/brave_drivers/__init__.py +0 -0
  79. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/drivers/cft_drivers/__init__.py +0 -0
  80. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/drivers/chromium_drivers/__init__.py +0 -0
  81. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/drivers/chs_drivers/__init__.py +0 -0
  82. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/drivers/comet_drivers/__init__.py +0 -0
  83. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/drivers/opera_drivers/__init__.py +0 -0
  84. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/extensions/__init__.py +0 -0
  85. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/extensions/ad_block.zip +0 -0
  86. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/extensions/disable_csp.zip +0 -0
  87. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/extensions/recorder.zip +0 -0
  88. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/extensions/sbase_ext.zip +0 -0
  89. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/fixtures/__init__.py +0 -0
  90. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/fixtures/constants.py +0 -0
  91. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/fixtures/css_to_xpath.py +0 -0
  92. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/fixtures/errors.py +0 -0
  93. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/fixtures/js_utils.py +0 -0
  94. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/fixtures/page_actions.py +0 -0
  95. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/fixtures/page_utils.py +0 -0
  96. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/fixtures/shared_utils.py +0 -0
  97. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/fixtures/unittest_helper.py +0 -0
  98. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/fixtures/words.py +0 -0
  99. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/fixtures/xpath_to_css.py +0 -0
  100. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/js_code/__init__.py +0 -0
  101. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/js_code/active_css_js.py +0 -0
  102. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/js_code/live_js.py +0 -0
  103. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/js_code/recorder_js.py +0 -0
  104. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/masterqa/__init__.py +0 -0
  105. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/masterqa/master_qa.py +0 -0
  106. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/plugins/__init__.py +0 -0
  107. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/plugins/base_plugin.py +0 -0
  108. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/plugins/basic_test_info.py +0 -0
  109. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
  110. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/plugins/driver_manager.py +0 -0
  111. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/plugins/page_source.py +0 -0
  112. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/plugins/pytest_plugin.py +0 -0
  113. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
  114. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/plugins/sb_manager.py +0 -0
  115. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/plugins/screen_shots.py +0 -0
  116. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/plugins/selenium_plugin.py +0 -0
  117. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/resources/__init__.py +0 -0
  118. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/translate/__init__.py +0 -0
  119. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/translate/chinese.py +0 -0
  120. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/translate/dutch.py +0 -0
  121. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/translate/french.py +0 -0
  122. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/translate/italian.py +0 -0
  123. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/translate/japanese.py +0 -0
  124. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/translate/korean.py +0 -0
  125. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/translate/master_dict.py +0 -0
  126. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/translate/portuguese.py +0 -0
  127. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/translate/russian.py +0 -0
  128. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/translate/spanish.py +0 -0
  129. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/translate/translator.py +0 -0
  130. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/undetected/__init__.py +0 -0
  131. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/undetected/cdp.py +0 -0
  132. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/undetected/cdp_driver/__init__.py +0 -0
  133. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/undetected/cdp_driver/_contradict.py +0 -0
  134. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/undetected/cdp_driver/browser.py +0 -0
  135. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/undetected/cdp_driver/cdp_util.py +0 -0
  136. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/undetected/cdp_driver/connection.py +0 -0
  137. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/undetected/cdp_driver/tab.py +0 -0
  138. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/undetected/dprocess.py +0 -0
  139. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/undetected/options.py +0 -0
  140. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/undetected/patcher.py +0 -0
  141. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/undetected/reactor.py +0 -0
  142. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/undetected/webelement.py +0 -0
  143. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/utilities/__init__.py +0 -0
  144. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
  145. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
  146. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/utilities/selenium_grid/font_color +0 -0
  147. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
  148. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
  149. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
  150. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
  151. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
  152. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
  153. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
  154. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
  155. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
  156. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
  157. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase.egg-info/SOURCES.txt +0 -0
  158. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase.egg-info/dependency_links.txt +0 -0
  159. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase.egg-info/entry_points.txt +0 -0
  160. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/seleniumbase.egg-info/top_level.txt +0 -0
  161. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/setup.cfg +0 -0
  162. {seleniumbase-4.51.2 → seleniumbase-4.51.4}/virtualenv_install.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.51.2
3
+ Version: 4.51.4
4
4
  Summary: SeleniumBase is a framework for web crawling, scraping, and testing. Supports pytest. CDP Mode adds stealth. Includes many tools.
5
5
  Home-page: https://github.com/seleniumbase/SeleniumBase
6
6
  Author: Michael Mintz
@@ -69,14 +69,14 @@ Requires-Dist: attrs>=26.1.0
69
69
  Requires-Dist: certifi>=2026.6.17
70
70
  Requires-Dist: exceptiongroup>=1.3.1
71
71
  Requires-Dist: websockets~=15.0.1; python_version < "3.10"
72
- Requires-Dist: websockets>=16.1; python_version >= "3.10"
72
+ Requires-Dist: websockets>=16.1.1; python_version >= "3.10"
73
73
  Requires-Dist: filelock~=3.19.1; python_version < "3.10"
74
- Requires-Dist: filelock>=3.30.3; python_version >= "3.10"
74
+ Requires-Dist: filelock>=3.31.1; python_version >= "3.10"
75
75
  Requires-Dist: fasteners>=0.20
76
76
  Requires-Dist: mycdp>=1.4.0
77
77
  Requires-Dist: pynose>=1.5.5
78
78
  Requires-Dist: platformdirs~=4.4.0; python_version < "3.10"
79
- Requires-Dist: platformdirs>=4.10.0; python_version >= "3.10"
79
+ Requires-Dist: platformdirs>=4.10.1; python_version >= "3.10"
80
80
  Requires-Dist: typing-extensions>=4.16.0
81
81
  Requires-Dist: sbvirtualdisplay>=1.4.0
82
82
  Requires-Dist: MarkupSafe>=3.0.3
@@ -127,7 +127,8 @@ Requires-Dist: pytest-rerunfailures==16.4; python_version >= "3.11"
127
127
  Requires-Dist: pytest-xdist==3.8.0
128
128
  Requires-Dist: parameterized==0.9.0
129
129
  Requires-Dist: behave==1.2.6
130
- Requires-Dist: soupsieve~=2.8.4
130
+ Requires-Dist: soupsieve~=2.8.4; python_version < "3.10"
131
+ Requires-Dist: soupsieve~=2.9.0; python_version >= "3.10"
131
132
  Requires-Dist: beautifulsoup4~=4.15.0
132
133
  Requires-Dist: pyotp~=2.10.0
133
134
  Requires-Dist: python-xlib==0.33; platform_system == "Linux"
@@ -8,14 +8,14 @@ attrs>=26.1.0
8
8
  certifi>=2026.6.17
9
9
  exceptiongroup>=1.3.1
10
10
  websockets~=15.0.1;python_version<"3.10"
11
- websockets>=16.1;python_version>="3.10"
11
+ websockets>=16.1.1;python_version>="3.10"
12
12
  filelock~=3.19.1;python_version<"3.10"
13
- filelock>=3.30.3;python_version>="3.10"
13
+ filelock>=3.31.1;python_version>="3.10"
14
14
  fasteners>=0.20
15
15
  mycdp>=1.4.0
16
16
  pynose>=1.5.5
17
17
  platformdirs~=4.4.0;python_version<"3.10"
18
- platformdirs>=4.10.0;python_version>="3.10"
18
+ platformdirs>=4.10.1;python_version>="3.10"
19
19
  typing-extensions>=4.16.0
20
20
  sbvirtualdisplay>=1.4.0
21
21
  MarkupSafe>=3.0.3
@@ -66,7 +66,8 @@ pytest-rerunfailures==16.4;python_version>="3.11"
66
66
  pytest-xdist==3.8.0
67
67
  parameterized==0.9.0
68
68
  behave==1.2.6
69
- soupsieve~=2.8.4
69
+ soupsieve~=2.8.4;python_version<"3.10"
70
+ soupsieve~=2.9.0;python_version>="3.10"
70
71
  beautifulsoup4~=4.15.0
71
72
  pyotp~=2.10.0
72
73
  python-xlib==0.33;platform_system=="Linux"
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.51.2"
2
+ __version__ = "4.51.4"
@@ -2800,9 +2800,7 @@ def _set_chrome_options(
2800
2800
  included_disabled_features.append("SidePanelPinning")
2801
2801
  included_disabled_features.append("UserAgentClientHint")
2802
2802
  included_disabled_features.append("DisableLoadExtensionCommandLineSwitch")
2803
- included_disabled_features.append("Bluetooth")
2804
- included_disabled_features.append("WebBluetooth")
2805
- included_disabled_features.append("UnifiedWebBluetooth")
2803
+ included_disabled_features.append("NetworkPrediction")
2806
2804
  included_disabled_features.append("WebAuthentication")
2807
2805
  included_disabled_features.append("PasskeyAuth")
2808
2806
  included_disabled_features.append("MediaRouter")
@@ -4833,9 +4831,7 @@ def get_local_driver(
4833
4831
  included_disabled_features.append(
4834
4832
  "DisableLoadExtensionCommandLineSwitch"
4835
4833
  )
4836
- included_disabled_features.append("Bluetooth")
4837
- included_disabled_features.append("WebBluetooth")
4838
- included_disabled_features.append("UnifiedWebBluetooth")
4834
+ included_disabled_features.append("NetworkPrediction")
4839
4835
  included_disabled_features.append("WebAuthentication")
4840
4836
  included_disabled_features.append("PasskeyAuth")
4841
4837
  included_disabled_features.append("msAutofillEdgeCoupons")
@@ -876,17 +876,22 @@ class CDPMethods():
876
876
  self.__slow_mode_pause_if_set()
877
877
  element = self.find_element(selector, timeout=timeout)
878
878
  tag_name = element.tag_name
879
- current_url = self.get_current_url()
880
-
881
879
  if tag_name:
882
880
  tag_name = tag_name.lower().strip()
883
881
  if (
884
882
  tag_name in [
885
- "a", "button", "canvas", "div", "input", "li", "span", "label"
883
+ "a",
884
+ "button",
885
+ "canvas",
886
+ "div",
887
+ "input",
888
+ "label",
889
+ "li",
890
+ "path",
891
+ "span",
892
+ "svg",
886
893
  ]
887
894
  and "contains(" not in selector
888
- and "://google" not in current_url
889
- and "://www.google" not in current_url
890
895
  ):
891
896
  if scroll:
892
897
  element.scroll_into_view()
@@ -900,9 +905,10 @@ class CDPMethods():
900
905
  element.scroll_into_view()
901
906
  else:
902
907
  try:
903
- self.js_scroll_into_view(selector)
904
- except Exception:
905
908
  element.scroll_into_view()
909
+ except Exception:
910
+ with suppress(Exception):
911
+ self.js_scroll_into_view(selector)
906
912
  element.click() # Standard CDP click
907
913
  self.__slow_mode_pause_if_set()
908
914
  self.loop.run_until_complete(self.page.wait(0.2))
@@ -1047,11 +1053,14 @@ class CDPMethods():
1047
1053
  if pause and isinstance(pause, (int, float)):
1048
1054
  time.sleep(pause)
1049
1055
 
1050
- def highlight(self, selector):
1056
+ def highlight(self, selector, scroll=True, timeout=None):
1051
1057
  """Highlight an element with multi-colors."""
1058
+ if not timeout:
1059
+ timeout = settings.SMALL_TIMEOUT
1052
1060
  selector = self.__convert_to_css_if_xpath(selector)
1053
- element = self.find_element(selector)
1054
- element.scroll_into_view()
1061
+ element = self.find_element(selector, timeout=timeout)
1062
+ if scroll:
1063
+ element.scroll_into_view()
1055
1064
  x_offset = self.__get_x_scroll_offset()
1056
1065
  y_offset = self.__get_y_scroll_offset()
1057
1066
  element.flash(0.46, "44CC88", x_offset, y_offset)
@@ -1063,8 +1072,10 @@ class CDPMethods():
1063
1072
  element.flash(0.30, "44CC88", x_offset, y_offset)
1064
1073
  time.sleep(0.30)
1065
1074
 
1066
- def focus(self, selector):
1067
- element = self.find_element(selector)
1075
+ def focus(self, selector, timeout=None):
1076
+ if not timeout:
1077
+ timeout = settings.SMALL_TIMEOUT
1078
+ element = self.find_element(selector, timeout=timeout)
1068
1079
  element.scroll_into_view()
1069
1080
  element.focus()
1070
1081
 
@@ -1431,8 +1442,10 @@ class CDPMethods():
1431
1442
  def get_window(self):
1432
1443
  return self.loop.run_until_complete(self.page.get_window())
1433
1444
 
1434
- def get_text(self, selector="body"):
1435
- return self.find_element(selector).text_all
1445
+ def get_text(self, selector="body", timeout=None):
1446
+ if not timeout:
1447
+ timeout = settings.SMALL_TIMEOUT
1448
+ return self.find_element(selector, timeout=timeout).text_all
1436
1449
 
1437
1450
  def get_title(self):
1438
1451
  """Returns the title of the current web page."""
@@ -1710,10 +1723,12 @@ class CDPMethods():
1710
1723
  If the attribute doesn't exist: Returns None."""
1711
1724
  return self.find_element(selector).get_attribute(attribute)
1712
1725
 
1713
- def get_element_html(self, selector):
1726
+ def get_element_html(self, selector, timeout=None):
1714
1727
  """Find an element and return the outerHTML."""
1728
+ if not timeout:
1729
+ timeout = settings.SMALL_TIMEOUT
1715
1730
  selector = self.__convert_to_css_if_xpath(selector)
1716
- self.find_element(selector)
1731
+ self.find_element(selector, timeout=timeout)
1717
1732
  self.__add_light_pause()
1718
1733
  return self.loop.run_until_complete(
1719
1734
  self.page.evaluate(
@@ -1264,7 +1264,7 @@ class BaseCase(unittest.TestCase):
1264
1264
  timeout = self.__get_new_timeout(timeout)
1265
1265
  selector, by = self.__recalculate_selector(selector, by)
1266
1266
  if self.__is_cdp_swap_needed():
1267
- self.cdp.focus(selector)
1267
+ self.cdp.focus(selector, scroll=True, timeout=timeout)
1268
1268
  return
1269
1269
  element = self.wait_for_element_present(
1270
1270
  selector, by=by, timeout=timeout
@@ -1902,7 +1902,7 @@ class BaseCase(unittest.TestCase):
1902
1902
  timeout = self.__get_new_timeout(timeout)
1903
1903
  selector, by = self.__recalculate_selector(selector, by)
1904
1904
  if self.__is_cdp_swap_needed():
1905
- return self.cdp.get_text(selector)
1905
+ return self.cdp.get_text(selector, timeout=timeout)
1906
1906
  if self.__is_shadow_selector(selector):
1907
1907
  return self.__get_shadow_text(selector, timeout)
1908
1908
  self.wait_for_ready_state_complete()
@@ -6749,7 +6749,9 @@ class BaseCase(unittest.TestCase):
6749
6749
  if self.__is_cdp_swap_needed():
6750
6750
  if page_utils.is_xpath_selector(selector):
6751
6751
  if "contains(" in selector:
6752
- self.cdp.highlight(selector)
6752
+ self.cdp.highlight(
6753
+ selector, scroll=scroll, timeout=timeout
6754
+ )
6753
6755
  return
6754
6756
  else:
6755
6757
  self._check_browser()
@@ -324,7 +324,7 @@ class Config:
324
324
  "OptimizationTargetPrediction,OptimizationGuideModelDownloading,"
325
325
  "SidePanelPinning,UserAgentClientHint,PrivacySandboxSettings4,"
326
326
  "OptimizationHintsFetching,InterestFeedContentSuggestions,"
327
- "Bluetooth,WebBluetooth,UnifiedWebBluetooth,ComponentUpdater,"
327
+ "ComponentUpdater,NetworkPrediction,"
328
328
  "DisableLoadExtensionCommandLineSwitch,WebAuthentication,"
329
329
  "OmniboxUIFeedback,OmniboxPopupShortcut,PasskeyAuth,"
330
330
  "MediaRouter,DialMediaRouteProvider,WebRtcHideLocalIpsWithMdns"
@@ -389,7 +389,7 @@ class Element:
389
389
  object_id=self._remote_object.object_id,
390
390
  arguments=arguments,
391
391
  await_promise=True,
392
- user_gesture=True,
392
+ user_gesture=False,
393
393
  return_by_value=True,
394
394
  )
395
395
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.51.2
3
+ Version: 4.51.4
4
4
  Summary: SeleniumBase is a framework for web crawling, scraping, and testing. Supports pytest. CDP Mode adds stealth. Includes many tools.
5
5
  Home-page: https://github.com/seleniumbase/SeleniumBase
6
6
  Author: Michael Mintz
@@ -69,14 +69,14 @@ Requires-Dist: attrs>=26.1.0
69
69
  Requires-Dist: certifi>=2026.6.17
70
70
  Requires-Dist: exceptiongroup>=1.3.1
71
71
  Requires-Dist: websockets~=15.0.1; python_version < "3.10"
72
- Requires-Dist: websockets>=16.1; python_version >= "3.10"
72
+ Requires-Dist: websockets>=16.1.1; python_version >= "3.10"
73
73
  Requires-Dist: filelock~=3.19.1; python_version < "3.10"
74
- Requires-Dist: filelock>=3.30.3; python_version >= "3.10"
74
+ Requires-Dist: filelock>=3.31.1; python_version >= "3.10"
75
75
  Requires-Dist: fasteners>=0.20
76
76
  Requires-Dist: mycdp>=1.4.0
77
77
  Requires-Dist: pynose>=1.5.5
78
78
  Requires-Dist: platformdirs~=4.4.0; python_version < "3.10"
79
- Requires-Dist: platformdirs>=4.10.0; python_version >= "3.10"
79
+ Requires-Dist: platformdirs>=4.10.1; python_version >= "3.10"
80
80
  Requires-Dist: typing-extensions>=4.16.0
81
81
  Requires-Dist: sbvirtualdisplay>=1.4.0
82
82
  Requires-Dist: MarkupSafe>=3.0.3
@@ -127,7 +127,8 @@ Requires-Dist: pytest-rerunfailures==16.4; python_version >= "3.11"
127
127
  Requires-Dist: pytest-xdist==3.8.0
128
128
  Requires-Dist: parameterized==0.9.0
129
129
  Requires-Dist: behave==1.2.6
130
- Requires-Dist: soupsieve~=2.8.4
130
+ Requires-Dist: soupsieve~=2.8.4; python_version < "3.10"
131
+ Requires-Dist: soupsieve~=2.9.0; python_version >= "3.10"
131
132
  Requires-Dist: beautifulsoup4~=4.15.0
132
133
  Requires-Dist: pyotp~=2.10.0
133
134
  Requires-Dist: python-xlib==0.33; platform_system == "Linux"
@@ -34,7 +34,6 @@ pytest-ordering==0.6
34
34
  pytest-xdist==3.8.0
35
35
  parameterized==0.9.0
36
36
  behave==1.2.6
37
- soupsieve~=2.8.4
38
37
  beautifulsoup4~=4.15.0
39
38
  pyotp~=2.10.0
40
39
  mdurl==0.1.2
@@ -62,6 +61,7 @@ cssselect==1.3.0
62
61
  execnet==2.1.1
63
62
  iniconfig==2.1.0
64
63
  pytest-rerunfailures==16.0.1
64
+ soupsieve~=2.8.4
65
65
  markdown-it-py==3.0.0
66
66
 
67
67
  [:python_version < "3.11"]
@@ -73,9 +73,9 @@ pytest-rerunfailures==16.3
73
73
  [:python_version >= "3.10"]
74
74
  pip>=26.1.2
75
75
  setuptools>=83.0.0
76
- websockets>=16.1
77
- filelock>=3.30.3
78
- platformdirs>=4.10.0
76
+ websockets>=16.1.1
77
+ filelock>=3.31.1
78
+ platformdirs>=4.10.1
79
79
  urllib3<3,>=2.7.0
80
80
  requests~=2.34.2
81
81
  trio<1,>=0.33.0
@@ -84,6 +84,7 @@ selenium==4.46.0
84
84
  cssselect<2,>=1.4.0
85
85
  execnet==2.1.2
86
86
  iniconfig==2.3.0
87
+ soupsieve~=2.9.0
87
88
  markdown-it-py==4.2.0
88
89
 
89
90
  [:python_version >= "3.11"]
@@ -172,14 +172,14 @@ setup(
172
172
  'certifi>=2026.6.17',
173
173
  'exceptiongroup>=1.3.1',
174
174
  'websockets~=15.0.1;python_version<"3.10"',
175
- 'websockets>=16.1;python_version>="3.10"',
175
+ 'websockets>=16.1.1;python_version>="3.10"',
176
176
  'filelock~=3.19.1;python_version<"3.10"',
177
- 'filelock>=3.30.3;python_version>="3.10"',
177
+ 'filelock>=3.31.1;python_version>="3.10"',
178
178
  'fasteners>=0.20',
179
179
  'mycdp>=1.4.0',
180
180
  'pynose>=1.5.5',
181
181
  'platformdirs~=4.4.0;python_version<"3.10"',
182
- 'platformdirs>=4.10.0;python_version>="3.10"',
182
+ 'platformdirs>=4.10.1;python_version>="3.10"',
183
183
  'typing-extensions>=4.16.0',
184
184
  'sbvirtualdisplay>=1.4.0',
185
185
  'MarkupSafe>=3.0.3',
@@ -230,7 +230,8 @@ setup(
230
230
  'pytest-xdist==3.8.0',
231
231
  'parameterized==0.9.0',
232
232
  'behave==1.2.6', # Newer ones had issues
233
- 'soupsieve~=2.8.4',
233
+ 'soupsieve~=2.8.4;python_version<"3.10"',
234
+ 'soupsieve~=2.9.0;python_version>="3.10"',
234
235
  'beautifulsoup4~=4.15.0',
235
236
  'pyotp~=2.10.0',
236
237
  'python-xlib==0.33;platform_system=="Linux"',
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes