seleniumbase 4.54.0__tar.gz → 4.54.1__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.0/seleniumbase.egg-info → seleniumbase-4.54.1}/PKG-INFO +1 -1
  2. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/mcp_servers/server.py +174 -115
  3. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/__version__.py +1 -1
  4. {seleniumbase-4.54.0 → seleniumbase-4.54.1/seleniumbase.egg-info}/PKG-INFO +1 -1
  5. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/.gitignore +0 -0
  6. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/LICENSE +0 -0
  7. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/MANIFEST.in +0 -0
  8. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/README.md +0 -0
  9. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/install.sh +0 -0
  10. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/mcp_servers/__init__.py +0 -0
  11. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/pyproject.toml +0 -0
  12. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/pytest.ini +0 -0
  13. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/requirements.txt +0 -0
  14. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/sbase/__init__.py +0 -0
  15. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/sbase/__main__.py +0 -0
  16. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/sbase/steps.py +0 -0
  17. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/__init__.py +0 -0
  18. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/__main__.py +0 -0
  19. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/behave/__init__.py +0 -0
  20. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/behave/behave_helper.py +0 -0
  21. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/behave/behave_sb.py +0 -0
  22. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/behave/steps.py +0 -0
  23. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/common/__init__.py +0 -0
  24. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/common/decorators.py +0 -0
  25. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/common/encryption.py +0 -0
  26. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/common/exceptions.py +0 -0
  27. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/common/obfuscate.py +0 -0
  28. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/common/unobfuscate.py +0 -0
  29. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/config/__init__.py +0 -0
  30. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/config/ad_block_list.py +0 -0
  31. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/config/proxy_list.py +0 -0
  32. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/config/settings.py +0 -0
  33. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/console_scripts/__init__.py +0 -0
  34. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/console_scripts/logo_helper.py +0 -0
  35. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/console_scripts/rich_helper.py +0 -0
  36. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/console_scripts/run.py +0 -0
  37. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
  38. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
  39. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/console_scripts/sb_commander.py +0 -0
  40. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/console_scripts/sb_install.py +0 -0
  41. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
  42. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
  43. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
  44. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
  45. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
  46. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/console_scripts/sb_objectify.py +0 -0
  47. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/console_scripts/sb_print.py +0 -0
  48. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/console_scripts/sb_recorder.py +0 -0
  49. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/__init__.py +0 -0
  50. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/application_manager.py +0 -0
  51. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/browser_launcher.py +0 -0
  52. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/capabilities_parser.py +0 -0
  53. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/colored_traceback.py +0 -0
  54. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/create_db_tables.sql +0 -0
  55. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/detect_b_ver.py +0 -0
  56. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/download_helper.py +0 -0
  57. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/encoded_images.py +0 -0
  58. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/jqc_helper.py +0 -0
  59. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/log_helper.py +0 -0
  60. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/mysql.py +0 -0
  61. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/nest_asyncio.py +0 -0
  62. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/proxy_helper.py +0 -0
  63. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/recorder_helper.py +0 -0
  64. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/report_helper.py +0 -0
  65. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/s3_manager.py +0 -0
  66. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/sb_cdp.py +0 -0
  67. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/sb_driver.py +0 -0
  68. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/session_helper.py +0 -0
  69. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/settings_parser.py +0 -0
  70. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/style_sheet.py +0 -0
  71. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/testcase_manager.py +0 -0
  72. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/tour_helper.py +0 -0
  73. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/core/visual_helper.py +0 -0
  74. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/drivers/__init__.py +0 -0
  75. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/drivers/brave_drivers/__init__.py +0 -0
  76. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/drivers/cft_drivers/__init__.py +0 -0
  77. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/drivers/chromium_drivers/__init__.py +0 -0
  78. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/drivers/chs_drivers/__init__.py +0 -0
  79. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/drivers/comet_drivers/__init__.py +0 -0
  80. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/drivers/opera_drivers/__init__.py +0 -0
  81. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/extensions/__init__.py +0 -0
  82. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/extensions/ad_block.zip +0 -0
  83. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/extensions/disable_csp.zip +0 -0
  84. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/extensions/recorder.zip +0 -0
  85. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/extensions/sbase_ext.zip +0 -0
  86. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/fixtures/__init__.py +0 -0
  87. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/fixtures/base_case.py +0 -0
  88. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/fixtures/constants.py +0 -0
  89. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/fixtures/css_to_xpath.py +0 -0
  90. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/fixtures/errors.py +0 -0
  91. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/fixtures/js_utils.py +0 -0
  92. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/fixtures/page_actions.py +0 -0
  93. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/fixtures/page_utils.py +0 -0
  94. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/fixtures/shared_utils.py +0 -0
  95. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/fixtures/unittest_helper.py +0 -0
  96. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/fixtures/words.py +0 -0
  97. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/fixtures/xpath_to_css.py +0 -0
  98. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/js_code/__init__.py +0 -0
  99. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/js_code/active_css_js.py +0 -0
  100. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/js_code/live_js.py +0 -0
  101. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/js_code/recorder_js.py +0 -0
  102. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/masterqa/__init__.py +0 -0
  103. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/masterqa/master_qa.py +0 -0
  104. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/plugins/__init__.py +0 -0
  105. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/plugins/base_plugin.py +0 -0
  106. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/plugins/basic_test_info.py +0 -0
  107. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
  108. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/plugins/driver_manager.py +0 -0
  109. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/plugins/page_source.py +0 -0
  110. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/plugins/pytest_plugin.py +0 -0
  111. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
  112. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/plugins/sb_manager.py +0 -0
  113. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/plugins/screen_shots.py +0 -0
  114. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/plugins/selenium_plugin.py +0 -0
  115. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/resources/__init__.py +0 -0
  116. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/translate/__init__.py +0 -0
  117. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/translate/chinese.py +0 -0
  118. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/translate/dutch.py +0 -0
  119. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/translate/french.py +0 -0
  120. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/translate/italian.py +0 -0
  121. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/translate/japanese.py +0 -0
  122. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/translate/korean.py +0 -0
  123. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/translate/master_dict.py +0 -0
  124. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/translate/portuguese.py +0 -0
  125. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/translate/russian.py +0 -0
  126. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/translate/spanish.py +0 -0
  127. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/translate/translator.py +0 -0
  128. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/undetected/__init__.py +0 -0
  129. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/undetected/cdp.py +0 -0
  130. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/undetected/cdp_driver/__init__.py +0 -0
  131. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/undetected/cdp_driver/_contradict.py +0 -0
  132. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/undetected/cdp_driver/browser.py +0 -0
  133. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/undetected/cdp_driver/cdp_util.py +0 -0
  134. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/undetected/cdp_driver/config.py +0 -0
  135. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/undetected/cdp_driver/connection.py +0 -0
  136. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/undetected/cdp_driver/element.py +0 -0
  137. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/undetected/cdp_driver/tab.py +0 -0
  138. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/undetected/dprocess.py +0 -0
  139. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/undetected/options.py +0 -0
  140. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/undetected/patcher.py +0 -0
  141. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/undetected/reactor.py +0 -0
  142. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/undetected/webelement.py +0 -0
  143. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/utilities/__init__.py +0 -0
  144. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
  145. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
  146. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/utilities/selenium_grid/font_color +0 -0
  147. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
  148. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
  149. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
  150. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
  151. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
  152. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
  153. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
  154. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
  155. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
  156. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
  157. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase.egg-info/SOURCES.txt +0 -0
  158. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase.egg-info/dependency_links.txt +0 -0
  159. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase.egg-info/entry_points.txt +0 -0
  160. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase.egg-info/requires.txt +0 -0
  161. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/seleniumbase.egg-info/top_level.txt +0 -0
  162. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/setup.cfg +0 -0
  163. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/setup.py +0 -0
  164. {seleniumbase-4.54.0 → seleniumbase-4.54.1}/virtualenv_install.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.54.0
3
+ Version: 4.54.1
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
@@ -99,7 +99,7 @@ def handle_sb_errors(func):
99
99
  @mcp.tool()
100
100
  def start_browser(
101
101
  url: str | None = None,
102
- headless: bool | None = None,
102
+ headless: Literal[False, True, None] = None,
103
103
  use_chromium: bool = False,
104
104
  browser_executable_path: str | None = None,
105
105
  incognito: bool = False,
@@ -109,75 +109,67 @@ def start_browser(
109
109
  ) -> str:
110
110
  """Launch a persistent SeleniumBase Pure CDP Mode browser session.
111
111
 
112
- This must be called before browser interaction tools such as navigate,
112
+ Call this before using browser interaction tools such as navigate,
113
113
  get_content, click, type_text, or find_elements. The same browser
114
114
  session remains active across subsequent MCP tool calls until
115
115
  close_browser is called or the server process exits.
116
116
 
117
- Pure CDP Mode communicates directly with the browser through the Chrome
118
- DevTools Protocol rather than WebDriver. This provides SeleniumBase's
119
- CDP-based browser automation capabilities without using WebDriver as the
120
- browser-control layer.
117
+ Pure CDP Mode controls the browser through the Chrome DevTools Protocol
118
+ (CDP), not WebDriver.
121
119
 
122
120
  Args:
123
- url: Optional URL to open immediately after the browser launches.
124
- If omitted, the browser starts without navigating to a requested
125
- page.
121
+ url: Optional URL to navigate to during browser startup.
122
+ When provided, the tool waits for the browser launch/navigation
123
+ operation to complete before returning. If omitted, the browser
124
+ starts without navigating to a specified URL.
126
125
 
127
126
  headless: Controls whether the browser runs without a visible window.
128
- If True, always run headless. If False, always run headed.
129
- If omitted (None), the default depends on the operating system:
130
- Linux defaults to headless because MCP/server environments
131
- commonly do not have a graphical desktop, while Windows and macOS
132
- default to headed so that a visible browser window is available.
133
- Use True or False to explicitly override the OS-specific default
134
- on any operating system.
127
+ True forces headless mode; False forces headed mode. If None, this
128
+ tool defaults to headless on Linux and headed on Windows/macOS.
135
129
 
136
130
  use_chromium: Use Chromium instead of Google Chrome. This is useful
137
131
  when Google Chrome is not installed. SeleniumBase can manage the
138
132
  Chromium browser when this option is enabled.
139
133
 
140
- browser_executable_path: Explicit filesystem path to the browser
141
- executable when it is not installed in a standard location.
142
- Do not combine this with use_chromium=True.
134
+ browser_executable_path: Optional path to the browser executable.
135
+ Use this when the desired browser is installed at a non-standard
136
+ location. Mutually exclusive with use_chromium.
143
137
 
144
138
  incognito: Launch Chrome/Chromium in incognito mode.
145
139
 
146
- guest: Launch Chrome/Chromium in guest mode. Do not combine this with
147
- incognito=True.
140
+ guest: Launch Chrome/Chromium in guest mode.
141
+ Do not combine this with incognito=True.
148
142
 
149
143
  ad_block: Enable SeleniumBase's basic ad-blocking functionality.
150
144
 
151
- proxy: Optional proxy server. Examples include
152
- "SERVER:PORT" or "USER:PASS@SERVER:PORT".
145
+ proxy: Optional proxy server.
146
+ Examples include "SERVER:PORT" or "USER:PASS@SERVER:PORT".
153
147
 
154
148
  Returns:
155
- A confirmation message when the browser starts successfully, including
156
- the effective headless setting, or a descriptive error when browser
157
- startup fails.
149
+ A confirmation message when the browser starts successfully,
150
+ or a descriptive error if the browser startup fails.
151
+
152
+ Startup behavior:
153
+ If the initial launch fails, the tool automatically retries once.
158
154
 
159
155
  Lifecycle:
160
156
  Call start_browser once at the beginning of a browser automation
161
157
  workflow. Reusing the existing session preserves cookies, tabs,
162
158
  navigation history, localStorage/sessionStorage, and other browser
163
159
  state between tool calls. Call close_browser when finished.
160
+ If a browser session is already running, this tool does not launch
161
+ another browser and instead returns a message indicating that the
162
+ existing session is active.
164
163
 
165
164
  Environment requirements:
166
165
  The MCP runtime must have a compatible Chrome or Chromium browser
167
166
  available. If the browser executable cannot be discovered, use
168
167
  use_chromium=True or provide browser_executable_path explicitly.
169
-
170
- On Linux, the default is headless=True so the browser can run in
171
- typical server/container environments without a graphical desktop.
172
- Set headless=False when a graphical display is available and a visible
173
- browser is desired. On Windows and macOS, the default is
174
- headless=False. Set headless=True when running without a desktop or
175
- when a visible browser window is not desired.
176
168
  """
177
169
  global _sb
178
170
 
179
171
  if _sb is not None:
180
- return ("A browser session is already running.")
172
+ return "A browser session is already running."
181
173
 
182
174
  if incognito and guest:
183
175
  return "Error: incognito and guest cannot both be enabled."
@@ -864,26 +856,39 @@ def type_text(
864
856
  ] = "fill_input",
865
857
  timeout: float = 5,
866
858
  ) -> str:
867
- """Enter, append, directly set, or clear text or values on page elements.
868
-
869
- Use this for text entry and direct value changes on supported page
870
- elements, including inputs, textareas, contenteditable elements,
871
- and input sliders.
859
+ """Enter, append, directly set, or clear a value on a page element.
860
+
861
+ Use this tool to modify text/value fields such as inputs, textareas,
862
+ contenteditable elements, and supported input sliders. It changes the
863
+ target element's value or content; it does not submit a form or click
864
+ other elements.
865
+
866
+ Choose the mode based on the desired interaction:
867
+ - "fill_input": Normal user-like entry; clears the existing value first.
868
+ - "append": Preserves the existing value and adds text via keystrokes.
869
+ - "fast_type": Clears the existing value and types without typing pauses.
870
+ - "set_value": Sets the value directly without simulating key events;
871
+ prefer this for fast programmatic value changes when keyboard events
872
+ are not required.
873
+ - "clear_only": Clears the existing value; `text` is ignored.
874
+
875
+ The tool waits up to `timeout` seconds for the target element. If the
876
+ target cannot be used successfully, the underlying SeleniumBase error is
877
+ handled by `handle_sb_errors` rather than returning a success message.
872
878
 
873
879
  Args:
874
- selector: CSS selector or SeleniumBase selector identifying the target.
880
+ selector: CSS or SeleniumBase selector identifying the target element.
875
881
 
876
- text: Text to enter or set. Ignored when mode="clear_only".
882
+ text: Text/value to enter or set. Ignored for "clear_only".
877
883
 
878
- mode:
879
- - "fill_input": Clear the field and type text normally.
880
- - "append": Keep the existing value and add text as keystrokes.
881
- - "fast_type": Clear the field and type text without pauses.
882
- - "set_value": Set the value directly without simulating
883
- key events. Useful for fast form filling and input sliders.
884
- - "clear_only": Empty the field; `text` is ignored.
884
+ mode: Interaction mode. See the mode descriptions above.
885
885
 
886
886
  timeout: Maximum seconds to wait for the target element.
887
+ Must be appropriate for the page's expected load/interaction time.
888
+
889
+ Returns:
890
+ A confirmation message after the operation succeeds;
891
+ otherwise the error handler returns the resulting failure.
887
892
  """
888
893
  sb = _get_sb()
889
894
 
@@ -1008,23 +1013,27 @@ def wait_for(
1008
1013
  text: str | None = None,
1009
1014
  timeout: float = 5,
1010
1015
  ) -> str:
1011
- """Wait until an element or text reaches a requested state, or wait for
1012
- a specific amount of time to pass.
1016
+ """Wait for a page condition or for a specified duration.
1013
1017
 
1014
- If 'seconds_passed' is selected for `state`, then this tool ignores any
1015
- values set for 'selector' and 'text', and then waits for full `timeout`
1016
- seconds (blocking behavior).
1018
+ Use this for synchronization when a dynamic page may need time to reach
1019
+ a condition before the next automation step. The tool blocks until the
1020
+ condition is met or the timeout expires. It does not intentionally scroll,
1021
+ click, or otherwise modify the page while waiting.
1017
1022
 
1018
- When `text` is provided, `present` is treated the same as `visible`
1019
- (the tool waits until the text is visible), and `absent` is treated the
1020
- same as `not_visible` (the tool waits until the text is no longer visible).
1023
+ Use check_condition to inspect the current state without waiting.
1024
+ Use assert_condition to verify an expected condition rather than
1025
+ synchronize with a changing page.
1021
1026
 
1022
- Use this tool when the page is dynamic and an automation step must wait
1023
- for a condition before continuing.
1027
+ When the condition is not reached before `timeout`, the underlying
1028
+ SeleniumBase wait failure is handled by the tool's error handler rather
1029
+ than returning a success confirmation.
1024
1030
 
1025
- Unlike check_condition, this tool intentionally waits.
1026
- Unlike assert_condition, its purpose is synchronization
1027
- rather than validating a test expectation.
1031
+ If `state="seconds_passed"`, `selector` and `text` are ignored and the
1032
+ tool blocks for the full `timeout` seconds.
1033
+
1034
+ If `text` is supplied, `present`/`visible` wait for the text to appear,
1035
+ while `absent`/`not_visible` wait for the text to disappear.
1036
+ If no selector is supplied, text is searched within the page body.
1028
1037
 
1029
1038
  Args:
1030
1039
  state:
@@ -1032,25 +1041,27 @@ def wait_for(
1032
1041
  - "visible": Wait until the matching element is visible.
1033
1042
  - "not_visible": Wait until the matching element is not visible.
1034
1043
  - "absent": Wait until the matching element no longer exists.
1035
- - "seconds_passed": Wait until the `timeout` seconds have passed.
1044
+ - "seconds_passed": Wait for the full `timeout` duration.
1036
1045
 
1037
- selector: CSS selector or SeleniumBase selector for the element.
1038
- Required unless `text` is supplied or `seconds_passed` is set.
1046
+ selector: CSS or SeleniumBase selector for the element.
1047
+ Required unless `text` is supplied or `state="seconds_passed"`.
1039
1048
 
1040
- text: If supplied and is non-empty, a `state` of 'present' or 'visible'
1041
- both wait for the text to appear within the selector, and a `state`
1042
- of 'not_visible' or 'absent' both wait for the text to be absent
1043
- from the selector (or within "body" when selector is omitted).
1049
+ text: Optional text to wait for or wait to disappear.
1050
+ With text, `present` and `visible` are equivalent,
1051
+ as are `absent` and `not_visible`.
1044
1052
 
1045
- timeout: Maximum seconds to wait for the requested state to be true.
1053
+ timeout: Maximum seconds to wait for the condition;
1054
+ for `seconds_passed`, the exact duration to wait. Must be >= 0.
1046
1055
 
1047
1056
  Returns:
1048
- A confirmation message when the requested condition is reached.
1057
+ A success message when the requested condition is reached.
1058
+ If the condition times out or the underlying wait fails,
1059
+ the tool returns the error produced by its error handler.
1049
1060
 
1050
1061
  Tool selection:
1051
- - Check current state immediately -> use check_condition.
1052
- - Wait for a condition to become true -> use wait_for.
1053
- - Verify an expected value/condition -> use assert_condition.
1062
+ - Inspect current state immediately -> check_condition.
1063
+ - Wait for a state change -> wait_for.
1064
+ - Verify an expectation -> assert_condition.
1054
1065
  """
1055
1066
  sb = _get_sb()
1056
1067
 
@@ -1064,7 +1075,7 @@ def wait_for(
1064
1075
  return "Error: timeout must be >= 0."
1065
1076
 
1066
1077
  if state == "seconds_passed":
1067
- # This ignores any values that are set for 'selector' or 'text'.
1078
+ # This ignores any values that are set for `selector` or `text`.
1068
1079
  sb.sleep(timeout)
1069
1080
  return f"Waited for {timeout}s"
1070
1081
 
@@ -1112,47 +1123,58 @@ def assert_condition(
1112
1123
  exact: bool = False,
1113
1124
  timeout: float = 5,
1114
1125
  ) -> str:
1115
- """Verify an expected browser condition and fail when it is not met.
1116
-
1117
- Use this tool for explicit verification. Unlike check_condition,
1118
- which simply reports True or False on the current state,
1119
- assert_condition treats a failed expectation as an error.
1120
- The timeout applies only to element and text checks.
1121
- The title and URL checks are immediate.
1122
-
1123
- Args:
1124
- check:
1125
- - "element_present": Verify selector identifies a present element.
1126
- - "element_visible": Verify selector identifies a visible element.
1127
- - "text_visible": Verify expected text is visible within selector,
1128
- or within the whole HTML document when selector is omitted.
1129
- - "title": Verify the exact page title.
1130
- - "url": Verify the exact current URL.
1131
- - "url_contains": Verify that the current URL contains expected.
1126
+ """Verify a browser condition and report failure as an error.
1132
1127
 
1133
- selector: Element selector for element_present, element_visible, and
1134
- text_visible checks.
1128
+ Use this tool when an expected page state must be explicitly verified.
1129
+ It is a read-only verification operation: it does not click, type,
1130
+ navigate, scroll, or otherwise intentionally modify the page.
1135
1131
 
1136
- expected: Expected text/title/URL value for text_visible, title, url,
1137
- and url_contains.
1132
+ Element and text assertions may block while SeleniumBase waits for the
1133
+ condition, up to `timeout` seconds. Title and URL assertions are checked
1134
+ immediately and ignore `timeout`. A failed assertion or timeout is
1135
+ handled by `handle_sb_errors` and returned as a descriptive tool error;
1136
+ it is not reported as a successful result.
1138
1137
 
1139
- exact: For check="text_visible", require exact text
1140
- rather than a substring.
1138
+ Unlike check_condition, this tool does not merely return whether a
1139
+ condition is true: a failed expectation is an error.
1140
+ Unlike wait_for, its purpose is to verify an expectation, not merely
1141
+ synchronize with a changing page.
1141
1142
 
1142
- timeout: Maximum seconds to wait for element/text checks.
1143
- (Ignored for title and URL checks.)
1143
+ Args:
1144
+ check:
1145
+ - "element_present": Verify that the selector identifies a
1146
+ present element.
1147
+ - "element_visible": Verify that the selector identifies a
1148
+ visible element.
1149
+ - "text_visible": Verify that expected text is visible within
1150
+ selector, or within the whole HTML document if selector is
1151
+ omitted.
1152
+ - "title": Verify the exact current page title immediately.
1153
+ - "url": Verify the exact current URL immediately.
1154
+ - "url_contains": Verify that the current URL contains expected
1155
+ immediately.
1156
+
1157
+ selector: CSS or SeleniumBase selector for element and text checks.
1158
+ Required for element checks; optional for text_visible.
1159
+
1160
+ expected: Expected text, title, or URL value. Required for
1161
+ text_visible, title, url, and url_contains.
1162
+
1163
+ exact: For text_visible only, require an exact text match instead
1164
+ of a substring match.
1165
+
1166
+ timeout: Maximum seconds to wait for element/text assertions.
1167
+ Must be >= 0. Ignored for title and URL assertions.
1144
1168
 
1145
1169
  Returns:
1146
- A confirmation message when the expectation passes.
1147
-
1148
- Raises:
1149
- An assertion-related SeleniumBase exception when the expectation
1150
- fails; the MCP error wrapper converts it to a descriptive result.
1170
+ A confirmation message when the assertion passes. If the assertion
1171
+ fails or times out, the error handler returns the resulting error
1172
+ instead of a success message.
1151
1173
 
1152
1174
  Tool selection:
1153
- - Just inspect current state -> use check_condition.
1154
- - Wait for a condition to become true -> use wait_for.
1155
- - Verify that an expected condition is true -> use assert_condition.
1175
+ - Inspect a condition without failing -> check_condition.
1176
+ - Wait for a condition to become true -> wait_for.
1177
+ - Verify that an expected condition is true -> assert_condition.
1156
1178
  """
1157
1179
  sb = _get_sb()
1158
1180
 
@@ -1600,21 +1622,58 @@ def save_output(
1600
1622
  filename: str | None = None,
1601
1623
  folder: str | None = None,
1602
1624
  ) -> str:
1603
- """Save the current browser page as a screenshot, HTML file, or PDF.
1625
+ """Save the current browser page to a local filesystem file.
1626
+
1627
+ Use this tool when the browser workflow needs a persistent file artifact
1628
+ from the current page: a PNG screenshot, the current page source as HTML,
1629
+ or a PDF representation of the current page.
1630
+
1631
+ A browser session must already be running. This tool operates on the
1632
+ currently active browser tab and does not navigate, click, type, or
1633
+ otherwise modify the webpage.
1604
1634
 
1605
1635
  Args:
1606
1636
  format:
1607
- - "screenshot": Save a PNG screenshot.
1608
- - "html": Save the current page source as HTML.
1637
+ - "screenshot": Save a PNG screenshot of the current page.
1638
+ - "html": Save the current page source as an HTML file.
1609
1639
  - "pdf": Save the current page as a PDF.
1610
1640
 
1611
- filename: Output filename. Defaults to screenshot.png,
1612
- page_source.html, or page.pdf based on `format`.
1641
+ filename:
1642
+ Optional output filename. If omitted, defaults to:
1643
+ - "screenshot.png" for format="screenshot"
1644
+ - "page_source.html" for format="html"
1645
+ - "page.pdf" for format="pdf"
1646
+
1647
+ folder:
1648
+ Optional destination folder passed to SeleniumBase.
1649
+ If omitted, SeleniumBase uses its default output location.
1613
1650
 
1614
- folder: Optional destination folder.
1651
+ Side effects and filesystem behavior:
1652
+ This tool writes a file to the filesystem and may overwrite an
1653
+ existing file with the same output name. Only use trusted and
1654
+ authorized filesystem paths. The MCP process must have permission
1655
+ to write to the requested destination.
1615
1656
 
1616
- Existing files may be overwritten.
1617
- Use trusted, authorized paths for `filename` and `folder`.
1657
+ The tool does not upload, publish, or transmit the saved file by
1658
+ itself. The resulting file remains in the filesystem available to
1659
+ the MCP server process.
1660
+
1661
+ Error behavior:
1662
+ If the browser session is not running, the tool returns a lifecycle
1663
+ error. Filesystem, browser, or SeleniumBase failures are converted
1664
+ into descriptive MCP error results by the server's error handler.
1665
+
1666
+ When not to use:
1667
+ - Do not use this tool merely to read page text or HTML; use
1668
+ get_content instead.
1669
+ - Do not use this tool when you only need page metadata such as the
1670
+ URL or title; use get_page_info instead.
1671
+ - Do not use this tool to manipulate the page; use the appropriate
1672
+ interaction tool such as click, type_text, or select_option.
1673
+
1674
+ Returns:
1675
+ A confirmation message containing the requested output format and
1676
+ filename after the save operation succeeds.
1618
1677
  """
1619
1678
  sb = _get_sb()
1620
1679
 
@@ -1,2 +1,2 @@
1
1
  # seleniumbase package
2
- __version__ = "4.54.0"
2
+ __version__ = "4.54.1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: seleniumbase
3
- Version: 4.54.0
3
+ Version: 4.54.1
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes