seleniumbase 4.54.8__tar.gz → 4.54.9__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 (164) hide show
  1. {seleniumbase-4.54.8/seleniumbase.egg-info → seleniumbase-4.54.9}/PKG-INFO +4 -4
  2. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/mcp_servers/server.py +29 -30
  3. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/requirements.txt +3 -3
  4. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/__version__.py +1 -1
  5. {seleniumbase-4.54.8 → seleniumbase-4.54.9/seleniumbase.egg-info}/PKG-INFO +4 -4
  6. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase.egg-info/requires.txt +3 -3
  7. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/setup.py +3 -3
  8. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/.gitignore +0 -0
  9. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/LICENSE +0 -0
  10. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/MANIFEST.in +0 -0
  11. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/README.md +0 -0
  12. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/install.sh +0 -0
  13. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/mcp_servers/__init__.py +0 -0
  14. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/pyproject.toml +0 -0
  15. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/pytest.ini +0 -0
  16. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/sbase/__init__.py +0 -0
  17. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/sbase/__main__.py +0 -0
  18. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/sbase/steps.py +0 -0
  19. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/__init__.py +0 -0
  20. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/__main__.py +0 -0
  21. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/behave/__init__.py +0 -0
  22. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/behave/behave_helper.py +0 -0
  23. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/behave/behave_sb.py +0 -0
  24. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/behave/steps.py +0 -0
  25. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/common/__init__.py +0 -0
  26. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/common/decorators.py +0 -0
  27. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/common/encryption.py +0 -0
  28. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/common/exceptions.py +0 -0
  29. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/common/obfuscate.py +0 -0
  30. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/common/unobfuscate.py +0 -0
  31. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/config/__init__.py +0 -0
  32. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/config/ad_block_list.py +0 -0
  33. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/config/proxy_list.py +0 -0
  34. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/config/settings.py +0 -0
  35. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/__init__.py +0 -0
  36. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/logo_helper.py +0 -0
  37. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/rich_helper.py +0 -0
  38. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/run.py +0 -0
  39. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
  40. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
  41. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_commander.py +0 -0
  42. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_install.py +0 -0
  43. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
  44. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
  45. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
  46. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
  47. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
  48. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_objectify.py +0 -0
  49. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_print.py +0 -0
  50. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_recorder.py +0 -0
  51. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/__init__.py +0 -0
  52. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/application_manager.py +0 -0
  53. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/browser_launcher.py +0 -0
  54. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/capabilities_parser.py +0 -0
  55. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/colored_traceback.py +0 -0
  56. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/create_db_tables.sql +0 -0
  57. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/detect_b_ver.py +0 -0
  58. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/download_helper.py +0 -0
  59. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/encoded_images.py +0 -0
  60. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/jqc_helper.py +0 -0
  61. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/log_helper.py +0 -0
  62. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/mysql.py +0 -0
  63. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/nest_asyncio.py +0 -0
  64. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/proxy_helper.py +0 -0
  65. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/recorder_helper.py +0 -0
  66. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/report_helper.py +0 -0
  67. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/s3_manager.py +0 -0
  68. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/sb_cdp.py +0 -0
  69. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/sb_driver.py +0 -0
  70. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/session_helper.py +0 -0
  71. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/settings_parser.py +0 -0
  72. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/style_sheet.py +0 -0
  73. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/testcase_manager.py +0 -0
  74. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/tour_helper.py +0 -0
  75. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/visual_helper.py +0 -0
  76. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/drivers/__init__.py +0 -0
  77. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/drivers/brave_drivers/__init__.py +0 -0
  78. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/drivers/cft_drivers/__init__.py +0 -0
  79. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/drivers/chromium_drivers/__init__.py +0 -0
  80. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/drivers/chs_drivers/__init__.py +0 -0
  81. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/drivers/comet_drivers/__init__.py +0 -0
  82. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/drivers/opera_drivers/__init__.py +0 -0
  83. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/extensions/__init__.py +0 -0
  84. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/extensions/ad_block.zip +0 -0
  85. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/extensions/disable_csp.zip +0 -0
  86. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/extensions/recorder.zip +0 -0
  87. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/extensions/sbase_ext.zip +0 -0
  88. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/__init__.py +0 -0
  89. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/base_case.py +0 -0
  90. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/constants.py +0 -0
  91. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/css_to_xpath.py +0 -0
  92. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/errors.py +0 -0
  93. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/js_utils.py +0 -0
  94. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/page_actions.py +0 -0
  95. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/page_utils.py +0 -0
  96. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/shared_utils.py +0 -0
  97. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/unittest_helper.py +0 -0
  98. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/words.py +0 -0
  99. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/xpath_to_css.py +0 -0
  100. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/js_code/__init__.py +0 -0
  101. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/js_code/active_css_js.py +0 -0
  102. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/js_code/live_js.py +0 -0
  103. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/js_code/recorder_js.py +0 -0
  104. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/masterqa/__init__.py +0 -0
  105. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/masterqa/master_qa.py +0 -0
  106. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/__init__.py +0 -0
  107. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/base_plugin.py +0 -0
  108. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/basic_test_info.py +0 -0
  109. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
  110. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/driver_manager.py +0 -0
  111. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/page_source.py +0 -0
  112. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/pytest_plugin.py +0 -0
  113. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
  114. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/sb_manager.py +0 -0
  115. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/screen_shots.py +0 -0
  116. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/selenium_plugin.py +0 -0
  117. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/resources/__init__.py +0 -0
  118. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/__init__.py +0 -0
  119. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/chinese.py +0 -0
  120. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/dutch.py +0 -0
  121. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/french.py +0 -0
  122. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/italian.py +0 -0
  123. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/japanese.py +0 -0
  124. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/korean.py +0 -0
  125. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/master_dict.py +0 -0
  126. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/portuguese.py +0 -0
  127. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/russian.py +0 -0
  128. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/spanish.py +0 -0
  129. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/translator.py +0 -0
  130. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/__init__.py +0 -0
  131. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp.py +0 -0
  132. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/__init__.py +0 -0
  133. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/_contradict.py +0 -0
  134. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/browser.py +0 -0
  135. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/cdp_util.py +0 -0
  136. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/config.py +0 -0
  137. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/connection.py +0 -0
  138. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/element.py +0 -0
  139. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/tab.py +0 -0
  140. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/dprocess.py +0 -0
  141. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/options.py +0 -0
  142. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/patcher.py +0 -0
  143. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/reactor.py +0 -0
  144. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/webelement.py +0 -0
  145. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/__init__.py +0 -0
  146. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
  147. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
  148. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/font_color +0 -0
  149. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
  150. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
  151. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
  152. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
  153. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
  154. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
  155. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
  156. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
  157. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
  158. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
  159. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase.egg-info/SOURCES.txt +0 -0
  160. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase.egg-info/dependency_links.txt +0 -0
  161. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase.egg-info/entry_points.txt +0 -0
  162. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase.egg-info/top_level.txt +0 -0
  163. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/setup.cfg +0 -0
  164. {seleniumbase-4.54.8 → seleniumbase-4.54.9}/virtualenv_install.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.54.8
3
+ Version: 4.54.9
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
@@ -67,7 +67,7 @@ Requires-Dist: certifi>=2026.7.22
67
67
  Requires-Dist: exceptiongroup>=1.3.1
68
68
  Requires-Dist: websockets~=16.1.1; python_version == "3.10"
69
69
  Requires-Dist: websockets>=16.1.1; python_version >= "3.11"
70
- Requires-Dist: filelock>=3.32.7
70
+ Requires-Dist: filelock>=4.0.0
71
71
  Requires-Dist: fasteners>=0.20
72
72
  Requires-Dist: mycdp>=1.4.0
73
73
  Requires-Dist: pynose>=1.5.5
@@ -86,7 +86,7 @@ Requires-Dist: pygments>=2.20.1
86
86
  Requires-Dist: pyreadline3>=3.5.4; platform_system == "Windows"
87
87
  Requires-Dist: tabcompleter>=1.4.1
88
88
  Requires-Dist: pdbp>=1.8.3
89
- Requires-Dist: idna>=3.19
89
+ Requires-Dist: idna>=3.20
90
90
  Requires-Dist: charset-normalizer<4,>=3.5.1
91
91
  Requires-Dist: urllib3<3,>=2.8.0
92
92
  Requires-Dist: requests~=2.34.2
@@ -109,7 +109,7 @@ Requires-Dist: pytest-html==4.0.2
109
109
  Requires-Dist: pytest-metadata==3.1.1
110
110
  Requires-Dist: pytest-ordering==0.6
111
111
  Requires-Dist: pytest-rerunfailures==16.3; python_version == "3.10"
112
- Requires-Dist: pytest-rerunfailures==16.6.1; python_version >= "3.11"
112
+ Requires-Dist: pytest-rerunfailures==16.7; python_version >= "3.11"
113
113
  Requires-Dist: pytest-xdist==3.8.0
114
114
  Requires-Dist: parameterized==0.9.0
115
115
  Requires-Dist: behave==1.2.6
@@ -652,6 +652,7 @@ def get_attributes(
652
652
 
653
653
  Args:
654
654
  selector: CSS selector or SeleniumBase-supported XPath selector.
655
+ If multiple elements match, then only the first one is used.
655
656
 
656
657
  attribute: Specific HTML attribute to retrieve. When omitted, returns
657
658
  all HTML attributes of the matching element as a dictionary.
@@ -1057,6 +1058,8 @@ def select_option(
1057
1058
  ) -> str:
1058
1059
  """Select an option from an HTML <select> dropdown.
1059
1060
 
1061
+ Changing a dropdown selection can trigger additional events on a page.
1062
+
1060
1063
  Args:
1061
1064
  dropdown_selector: CSS selector identifying the <select> element.
1062
1065
 
@@ -1445,8 +1448,11 @@ def manage_cookies(
1445
1448
  Notes:
1446
1449
  Loading saved cookies does not guarantee restoration of a login.
1447
1450
  Cookies may be expired, invalidated, domain/path restricted, or
1448
- dependent on other browser state. Navigate to the relevant site when
1449
- necessary so the browser has the appropriate origin for the cookies.
1451
+ dependent on other browser state.
1452
+
1453
+ When not to use:
1454
+ - Do not use this tool to load cookies if the cookie origin does
1455
+ not match the origin of the current page.
1450
1456
  """
1451
1457
  sb = _get_sb()
1452
1458
 
@@ -1800,45 +1806,38 @@ def manage_tabs(
1800
1806
  annotations=ToolAnnotations(
1801
1807
  read_only_hint=False,
1802
1808
  destructive_hint=False,
1803
- idempotent_hint=False, # A 2nd attempt on an already-handled or
1804
- # rotated CAPTCHA widget isn't guaranteed to be a no-op.
1809
+ idempotent_hint=False, # Re-attempting an already-handled or
1810
+ # rotated CAPTCHA is not a no-op.
1805
1811
  open_world_hint=True, # Interacts with a 3rd-party CAPTCHA widget.
1806
1812
  ),
1807
1813
  )
1808
1814
  @handle_sb_errors
1809
1815
  def solve_captcha() -> str:
1810
- """Perform a SeleniumBase CDP-based CAPTCHA interaction, such as clicking
1811
- a CAPTCHA checkbox, or performing a drag/drop action on a slider CAPTCHA.
1816
+ """Attempts a SeleniumBase CDP interaction (click or drag/drop) to solve
1817
+ detectable CAPTCHAs on the current page.
1812
1818
 
1813
- Supported CAPTCHAs include: Cloudflare Turnstile, reCAPTCHA, hCaptcha,
1814
- DataDome Slider, and FriendlyCaptcha.
1819
+ Supported CAPTCHAs:
1820
+ - CF Turnstile, reCAPTCHA, hCaptcha, DataDome Slider, FriendlyCaptcha
1815
1821
 
1816
- This tool automatically detects the location of CAPTCHA checkboxes
1817
- for the click action. If none of the supported CAPTCHAs are detected
1818
- on the current page, then no click action is attempted.
1822
+ Tool workflow:
1823
+ 1. Inspect page structure (e.g., via `get_content`) to verify that a
1824
+ CAPTCHA is present.
1825
+ 2. Call `solve_captcha` if there's a CAPTCHA. (No-op if no CAPTCHA.)
1826
+ 3. Verify success via `get_page_info`, `get_content`, or `manage_cookies`.
1819
1827
 
1820
- The tool does not guarantee that the CAPTCHA gets solved. Some CAPTCHA
1821
- controls are embedded inside shadow DOM or otherwise do not expose an
1822
- easy success signal. A successful attempt may result in changes to page
1823
- state or browser cookies.
1828
+ Notes:
1829
+ This tool does not guarantee that the CAPTCHA gets solved.
1830
+ A successful attempt may result in changes to page state and cookies.
1824
1831
 
1825
- Tool workflow:
1826
- 1. Inspect the webpage with get_content when you need to
1827
- determine whether CAPTCHA-related controls are present.
1828
- 2. Call 'solve_captcha' to attempt the CAPTCHA interaction.
1829
- 3. Use 'get_page_info', 'get_content', 'check_if_condition', or
1830
- 'manage_cookies' to inspect the resulting page/session state
1831
- to determine whether the interaction appears to have succeeded.
1832
+ Tool Selection:
1833
+ - Use `solve_captcha` specifically for automated CAPTCHA widget
1834
+ interactions.
1835
+ - Use `click_element` for standard visible elements.
1836
+ - Use `hover_action` (action="hover_and_click") to reveal and
1837
+ click targets.
1832
1838
 
1833
1839
  Returns:
1834
- A message indicating that the CAPTCHA interaction was attempted.
1835
-
1836
- Tool selection:
1837
- - Need to interact with one of the supported CAPTCHAs ->
1838
- use solve_captcha.
1839
- - Need to hover an element in order to click another ->
1840
- use hover_action with action="hover_and_click".
1841
- - Need to click a specific visible element -> use click_element.
1840
+ A confirmation message indicating that the attempt was initiated.
1842
1841
  """
1843
1842
  sb = _get_sb()
1844
1843
  sb.solve_captcha()
@@ -7,7 +7,7 @@ certifi>=2026.7.22
7
7
  exceptiongroup>=1.3.1
8
8
  websockets~=16.1.1;python_version=="3.10"
9
9
  websockets>=16.1.1;python_version>="3.11"
10
- filelock>=3.32.7
10
+ filelock>=4.0.0
11
11
  fasteners>=0.20
12
12
  mycdp>=1.4.0
13
13
  pynose>=1.5.5
@@ -26,7 +26,7 @@ pygments>=2.20.1
26
26
  pyreadline3>=3.5.4;platform_system=="Windows"
27
27
  tabcompleter>=1.4.1
28
28
  pdbp>=1.8.3
29
- idna>=3.19
29
+ idna>=3.20
30
30
  charset-normalizer>=3.5.1,<4
31
31
  urllib3>=2.8.0,<3
32
32
  requests~=2.34.2
@@ -49,7 +49,7 @@ pytest-html==4.0.2
49
49
  pytest-metadata==3.1.1
50
50
  pytest-ordering==0.6
51
51
  pytest-rerunfailures==16.3;python_version=="3.10"
52
- pytest-rerunfailures==16.6.1;python_version>="3.11"
52
+ pytest-rerunfailures==16.7;python_version>="3.11"
53
53
  pytest-xdist==3.8.0
54
54
  parameterized==0.9.0
55
55
  behave==1.2.6
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.54.8"
2
+ __version__ = "4.54.9"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.54.8
3
+ Version: 4.54.9
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
@@ -67,7 +67,7 @@ Requires-Dist: certifi>=2026.7.22
67
67
  Requires-Dist: exceptiongroup>=1.3.1
68
68
  Requires-Dist: websockets~=16.1.1; python_version == "3.10"
69
69
  Requires-Dist: websockets>=16.1.1; python_version >= "3.11"
70
- Requires-Dist: filelock>=3.32.7
70
+ Requires-Dist: filelock>=4.0.0
71
71
  Requires-Dist: fasteners>=0.20
72
72
  Requires-Dist: mycdp>=1.4.0
73
73
  Requires-Dist: pynose>=1.5.5
@@ -86,7 +86,7 @@ Requires-Dist: pygments>=2.20.1
86
86
  Requires-Dist: pyreadline3>=3.5.4; platform_system == "Windows"
87
87
  Requires-Dist: tabcompleter>=1.4.1
88
88
  Requires-Dist: pdbp>=1.8.3
89
- Requires-Dist: idna>=3.19
89
+ Requires-Dist: idna>=3.20
90
90
  Requires-Dist: charset-normalizer<4,>=3.5.1
91
91
  Requires-Dist: urllib3<3,>=2.8.0
92
92
  Requires-Dist: requests~=2.34.2
@@ -109,7 +109,7 @@ Requires-Dist: pytest-html==4.0.2
109
109
  Requires-Dist: pytest-metadata==3.1.1
110
110
  Requires-Dist: pytest-ordering==0.6
111
111
  Requires-Dist: pytest-rerunfailures==16.3; python_version == "3.10"
112
- Requires-Dist: pytest-rerunfailures==16.6.1; python_version >= "3.11"
112
+ Requires-Dist: pytest-rerunfailures==16.7; python_version >= "3.11"
113
113
  Requires-Dist: pytest-xdist==3.8.0
114
114
  Requires-Dist: parameterized==0.9.0
115
115
  Requires-Dist: behave==1.2.6
@@ -5,7 +5,7 @@ wheel>=0.48.0
5
5
  attrs>=26.1.0
6
6
  certifi>=2026.7.22
7
7
  exceptiongroup>=1.3.1
8
- filelock>=3.32.7
8
+ filelock>=4.0.0
9
9
  fasteners>=0.20
10
10
  mycdp>=1.4.0
11
11
  pynose>=1.5.5
@@ -23,7 +23,7 @@ pyyaml>=6.0.3
23
23
  pygments>=2.20.1
24
24
  tabcompleter>=1.4.1
25
25
  pdbp>=1.8.3
26
- idna>=3.19
26
+ idna>=3.20
27
27
  charset-normalizer<4,>=3.5.1
28
28
  urllib3<3,>=2.8.0
29
29
  requests~=2.34.2
@@ -70,7 +70,7 @@ pytest-rerunfailures==16.3
70
70
  [:python_version >= "3.11"]
71
71
  websockets>=16.1.1
72
72
  pytest==9.1.1
73
- pytest-rerunfailures==16.6.1
73
+ pytest-rerunfailures==16.7
74
74
 
75
75
  [allure]
76
76
  allure-pytest>=2.16.0
@@ -173,7 +173,7 @@ setup(
173
173
  'exceptiongroup>=1.3.1',
174
174
  'websockets~=16.1.1;python_version=="3.10"',
175
175
  'websockets>=16.1.1;python_version>="3.11"',
176
- 'filelock>=3.32.7',
176
+ 'filelock>=4.0.0',
177
177
  'fasteners>=0.20',
178
178
  'mycdp>=1.4.0',
179
179
  'pynose>=1.5.5',
@@ -192,7 +192,7 @@ setup(
192
192
  'pyreadline3>=3.5.4;platform_system=="Windows"',
193
193
  'tabcompleter>=1.4.1',
194
194
  'pdbp>=1.8.3',
195
- 'idna>=3.19',
195
+ 'idna>=3.20',
196
196
  'charset-normalizer>=3.5.1,<4',
197
197
  'urllib3>=2.8.0,<3',
198
198
  'requests~=2.34.2',
@@ -215,7 +215,7 @@ setup(
215
215
  'pytest-metadata==3.1.1',
216
216
  'pytest-ordering==0.6',
217
217
  'pytest-rerunfailures==16.3;python_version=="3.10"',
218
- 'pytest-rerunfailures==16.6.1;python_version>="3.11"',
218
+ 'pytest-rerunfailures==16.7;python_version>="3.11"',
219
219
  'pytest-xdist==3.8.0',
220
220
  'parameterized==0.9.0',
221
221
  'behave==1.2.6', # Newer ones had issues
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes