seleniumbase 4.54.2__tar.gz → 4.54.3__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.
- {seleniumbase-4.54.2/seleniumbase.egg-info → seleniumbase-4.54.3}/PKG-INFO +1 -1
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/mcp_servers/server.py +56 -63
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/__version__.py +1 -1
- {seleniumbase-4.54.2 → seleniumbase-4.54.3/seleniumbase.egg-info}/PKG-INFO +1 -1
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/.gitignore +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/LICENSE +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/MANIFEST.in +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/README.md +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/install.sh +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/mcp_servers/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/pyproject.toml +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/pytest.ini +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/requirements.txt +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/sbase/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/sbase/__main__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/sbase/steps.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/__main__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/behave/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/behave/behave_helper.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/behave/behave_sb.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/behave/steps.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/common/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/common/decorators.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/common/encryption.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/common/exceptions.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/common/obfuscate.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/common/unobfuscate.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/config/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/config/ad_block_list.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/config/proxy_list.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/config/settings.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/console_scripts/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/console_scripts/logo_helper.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/console_scripts/rich_helper.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/console_scripts/run.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/console_scripts/sb_commander.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/console_scripts/sb_install.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/console_scripts/sb_objectify.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/console_scripts/sb_print.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/console_scripts/sb_recorder.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/application_manager.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/browser_launcher.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/capabilities_parser.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/colored_traceback.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/create_db_tables.sql +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/detect_b_ver.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/download_helper.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/encoded_images.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/jqc_helper.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/log_helper.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/mysql.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/nest_asyncio.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/proxy_helper.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/recorder_helper.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/report_helper.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/s3_manager.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/sb_cdp.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/sb_driver.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/session_helper.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/settings_parser.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/style_sheet.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/testcase_manager.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/tour_helper.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/core/visual_helper.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/drivers/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/drivers/brave_drivers/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/drivers/cft_drivers/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/drivers/chromium_drivers/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/drivers/chs_drivers/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/drivers/comet_drivers/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/drivers/opera_drivers/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/extensions/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/extensions/ad_block.zip +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/extensions/disable_csp.zip +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/extensions/recorder.zip +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/extensions/sbase_ext.zip +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/fixtures/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/fixtures/base_case.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/fixtures/constants.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/fixtures/css_to_xpath.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/fixtures/errors.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/fixtures/js_utils.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/fixtures/page_actions.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/fixtures/page_utils.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/fixtures/shared_utils.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/fixtures/unittest_helper.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/fixtures/words.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/fixtures/xpath_to_css.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/js_code/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/js_code/active_css_js.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/js_code/live_js.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/js_code/recorder_js.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/masterqa/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/masterqa/master_qa.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/plugins/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/plugins/base_plugin.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/plugins/basic_test_info.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/plugins/driver_manager.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/plugins/page_source.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/plugins/pytest_plugin.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/plugins/sb_manager.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/plugins/screen_shots.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/plugins/selenium_plugin.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/resources/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/translate/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/translate/chinese.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/translate/dutch.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/translate/french.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/translate/italian.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/translate/japanese.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/translate/korean.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/translate/master_dict.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/translate/portuguese.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/translate/russian.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/translate/spanish.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/translate/translator.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/cdp.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/cdp_driver/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/cdp_driver/_contradict.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/cdp_driver/browser.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/cdp_driver/cdp_util.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/cdp_driver/config.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/cdp_driver/connection.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/cdp_driver/element.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/cdp_driver/tab.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/dprocess.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/options.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/patcher.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/reactor.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/webelement.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_grid/font_color +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase.egg-info/SOURCES.txt +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase.egg-info/dependency_links.txt +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase.egg-info/entry_points.txt +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase.egg-info/requires.txt +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase.egg-info/top_level.txt +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/setup.cfg +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/setup.py +0 -0
- {seleniumbase-4.54.2 → seleniumbase-4.54.3}/virtualenv_install.sh +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: seleniumbase
|
|
3
|
-
Version: 4.54.
|
|
3
|
+
Version: 4.54.3
|
|
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
|
|
@@ -34,7 +34,8 @@ having to choose between multiple near-identical tools.
|
|
|
34
34
|
|
|
35
35
|
Tool-selection philosophy:
|
|
36
36
|
- Use 'start_browser'/'close_browser' for opening/quitting the web browser.
|
|
37
|
-
- Use '
|
|
37
|
+
- Use 'goto_url'/'manage_history' for browser navigation and history
|
|
38
|
+
inspection.
|
|
38
39
|
- Use 'get_page_info' for reading browser/page metadata such as URL/title.
|
|
39
40
|
- Use 'get_content'/'get_attributes' for reading text, HTML, or attributes.
|
|
40
41
|
- Use 'find_elements' for discovering and inspecting multiple matching
|
|
@@ -43,11 +44,12 @@ Tool-selection philosophy:
|
|
|
43
44
|
- Use 'wait_for' when the agent needs to wait for a condition to become true.
|
|
44
45
|
- Use 'assert_condition' when the agent needs to verify an expected condition
|
|
45
46
|
and treat failure as an assertion error.
|
|
46
|
-
- Use '
|
|
47
|
+
- Use 'click_element'/'type_text'/'select_option' for standard page
|
|
48
|
+
interactions.
|
|
47
49
|
- Use 'hover_action' for just a hover, with a click, or with a drag/drop.
|
|
48
|
-
- Use '
|
|
50
|
+
- Use 'focus_element' for element positioning and visual focus.
|
|
49
51
|
- Use 'solve_captcha' for clicking the checkbox of a CAPTCHA on the page.
|
|
50
|
-
- Use '
|
|
52
|
+
- Use 'save_page' for saving page output as a PNG, a PDF, or an HTML file.
|
|
51
53
|
"""
|
|
52
54
|
from __future__ import annotations
|
|
53
55
|
import atexit
|
|
@@ -109,8 +111,8 @@ def start_browser(
|
|
|
109
111
|
) -> str:
|
|
110
112
|
"""Launch a persistent SeleniumBase Pure CDP Mode browser session.
|
|
111
113
|
|
|
112
|
-
Call this before using browser interaction tools such as
|
|
113
|
-
get_content,
|
|
114
|
+
Call this before using browser interaction tools such as goto_url,
|
|
115
|
+
get_content, click_element, type_text, or find_elements. The same browser
|
|
114
116
|
session remains active across subsequent MCP tool calls until
|
|
115
117
|
close_browser is called or the server process exits.
|
|
116
118
|
|
|
@@ -336,7 +338,7 @@ def get_page_info() -> dict[str, Any]:
|
|
|
336
338
|
|
|
337
339
|
@mcp.tool()
|
|
338
340
|
@handle_sb_errors
|
|
339
|
-
def
|
|
341
|
+
def goto_url(url: str) -> str:
|
|
340
342
|
"""Navigate the current browser tab to a URL.
|
|
341
343
|
|
|
342
344
|
Use this when the browser needs to visit a new URL rather than move
|
|
@@ -358,7 +360,7 @@ def navigate(url: str) -> str:
|
|
|
358
360
|
A confirmation message containing the requested URL.
|
|
359
361
|
|
|
360
362
|
Tool selection:
|
|
361
|
-
- Go to a new URL -> use
|
|
363
|
+
- Go to a new URL -> use goto_url.
|
|
362
364
|
- Return to the previous page -> use manage_history(action="back").
|
|
363
365
|
- Go forward in history -> use manage_history(action="forward").
|
|
364
366
|
- Refresh the current page -> use manage_history(action="reload").
|
|
@@ -377,7 +379,7 @@ def manage_history(
|
|
|
377
379
|
|
|
378
380
|
Use 'back' or 'forward' for history navigation, 'reload' to refresh
|
|
379
381
|
while bypassing the cache, or 'list' to inspect history.
|
|
380
|
-
Use '
|
|
382
|
+
Use 'goto_url' for navigation to an arbitrary URL.
|
|
381
383
|
|
|
382
384
|
Args:
|
|
383
385
|
action:
|
|
@@ -473,7 +475,7 @@ def find_elements(
|
|
|
473
475
|
use find_elements.
|
|
474
476
|
- Need the visible text/HTML of a page or a single element ->
|
|
475
477
|
use get_content.
|
|
476
|
-
- Need to click one of several matches -> use
|
|
478
|
+
- Need to click one of several matches -> use click_element with nth.
|
|
477
479
|
- Need to know whether an element is present/visible ->
|
|
478
480
|
use check_condition.
|
|
479
481
|
|
|
@@ -524,6 +526,7 @@ def get_content(
|
|
|
524
526
|
|
|
525
527
|
Args:
|
|
526
528
|
selector: CSS selector or SeleniumBase-supported XPath selector.
|
|
529
|
+
Default: "body".
|
|
527
530
|
|
|
528
531
|
output_format:
|
|
529
532
|
- "text": Return visible text from the selected element.
|
|
@@ -532,18 +535,18 @@ def get_content(
|
|
|
532
535
|
selected element. Returned URLs are normalized to full URLs
|
|
533
536
|
with their protocol prefixes.
|
|
534
537
|
|
|
535
|
-
|
|
536
538
|
timeout: Maximum seconds to wait for the target element. Default: 5.
|
|
537
539
|
|
|
538
540
|
Tool selection:
|
|
539
541
|
- Need URL, title, origin, or User-Agent -> use get_page_info.
|
|
540
|
-
- Need visible text -> use
|
|
541
|
-
- Need page or element HTML -> use output_format="html".
|
|
542
|
-
- Need URLs from the page or an element -> use output_format="urls".
|
|
542
|
+
- Need visible text, html, or URLs on a page -> use get_content.
|
|
543
543
|
- Need structured information about matching elements ->
|
|
544
544
|
use find_elements.
|
|
545
545
|
- Need to check element presence/visibility -> use check_condition.
|
|
546
546
|
- Need to wait for content to appear -> use wait_for.
|
|
547
|
+
|
|
548
|
+
If there's no matching element found within the timeout,
|
|
549
|
+
then @handle_sb_errors returns details from the exception raised.
|
|
547
550
|
"""
|
|
548
551
|
sb = _get_sb()
|
|
549
552
|
|
|
@@ -583,9 +586,6 @@ def get_attributes(
|
|
|
583
586
|
|
|
584
587
|
timeout: Maximum seconds to wait for the target element. Default: 5.
|
|
585
588
|
|
|
586
|
-
Returns:
|
|
587
|
-
The requested attribute(s).
|
|
588
|
-
|
|
589
589
|
Tool selection:
|
|
590
590
|
- Need one or more HTML attribute values from a specific element ->
|
|
591
591
|
use this tool.
|
|
@@ -597,7 +597,7 @@ def get_attributes(
|
|
|
597
597
|
This is a read-only operation.
|
|
598
598
|
|
|
599
599
|
If there's no matching element found within the timeout,
|
|
600
|
-
then @handle_sb_errors
|
|
600
|
+
then @handle_sb_errors returns details from the exception raised.
|
|
601
601
|
"""
|
|
602
602
|
sb = _get_sb()
|
|
603
603
|
|
|
@@ -680,7 +680,7 @@ def check_condition(
|
|
|
680
680
|
|
|
681
681
|
@mcp.tool()
|
|
682
682
|
@handle_sb_errors
|
|
683
|
-
def
|
|
683
|
+
def click_element(
|
|
684
684
|
selector: str,
|
|
685
685
|
nth: int | None = None,
|
|
686
686
|
all_matches: bool = False,
|
|
@@ -733,11 +733,14 @@ def click(
|
|
|
733
733
|
indexed click. Default: True.
|
|
734
734
|
|
|
735
735
|
Examples:
|
|
736
|
-
- Click one element: `
|
|
737
|
-
- Click the 2nd matching element: `
|
|
738
|
-
- Click all visible matches:
|
|
739
|
-
|
|
740
|
-
- Click
|
|
736
|
+
- Click one element: `click_element("button.submit")`
|
|
737
|
+
- Click the 2nd matching element: `click_element("button", nth=2)`
|
|
738
|
+
- Click all visible matches:
|
|
739
|
+
`click_element(".dismiss", all_matches=True)`
|
|
740
|
+
- Click only if already visible:
|
|
741
|
+
`click_element("#menu", only_if_visible=True)`
|
|
742
|
+
- Click inside a container:
|
|
743
|
+
`click_element(".item", parent_selector="#result")`
|
|
741
744
|
"""
|
|
742
745
|
sb = _get_sb()
|
|
743
746
|
|
|
@@ -768,11 +771,7 @@ def click(
|
|
|
768
771
|
def hover_action(
|
|
769
772
|
selector1: str,
|
|
770
773
|
selector2: str | None = None,
|
|
771
|
-
action: Literal[
|
|
772
|
-
"none",
|
|
773
|
-
"click",
|
|
774
|
-
"drag_and_drop",
|
|
775
|
-
] = "none",
|
|
774
|
+
action: Literal["hover", "hover_and_click", "drag_and_drop"] = "hover",
|
|
776
775
|
) -> str:
|
|
777
776
|
"""Hover over an element, optionally click another, or drag-and-drop.
|
|
778
777
|
|
|
@@ -782,46 +781,39 @@ def hover_action(
|
|
|
782
781
|
Args:
|
|
783
782
|
selector1:
|
|
784
783
|
The primary element selector.
|
|
785
|
-
For action="
|
|
786
|
-
For action="
|
|
787
|
-
clicking selector2.
|
|
784
|
+
For action="hover", this is the element to hover over.
|
|
785
|
+
For action="hover_and_click", this is the element to hover over
|
|
786
|
+
before clicking selector2.
|
|
788
787
|
For action="drag_and_drop", this is the draggable source element.
|
|
789
788
|
|
|
790
789
|
selector2:
|
|
791
790
|
The secondary element selector.
|
|
792
|
-
Required for action="
|
|
793
|
-
revealed or targeted after hovering selector1.
|
|
791
|
+
Required for action="hover_and_click", where it identifies
|
|
792
|
+
the element revealed or targeted after hovering selector1.
|
|
794
793
|
Required for action="drag_and_drop", where it identifies the
|
|
795
794
|
destination/drop target.
|
|
796
|
-
Not used for action="
|
|
795
|
+
Not used for action="hover".
|
|
797
796
|
|
|
798
797
|
action:
|
|
799
|
-
- "
|
|
800
|
-
- "
|
|
798
|
+
- "hover": Hover over selector1 only.
|
|
799
|
+
- "hover_and_click": Hover over selector1, then click selector2.
|
|
801
800
|
- "drag_and_drop": Drag selector1 and drop it onto selector2.
|
|
802
801
|
|
|
803
802
|
Returns:
|
|
804
803
|
A confirmation message describing the performed operation.
|
|
805
804
|
|
|
806
805
|
Tool selection:
|
|
807
|
-
- Simple hover -> action="
|
|
808
|
-
- Hover over one element and
|
|
806
|
+
- Simple hover -> action="hover".
|
|
807
|
+
- Hover over one element and click another -> action="hover_and_click".
|
|
809
808
|
- Drag one element onto another -> action="drag_and_drop".
|
|
810
|
-
|
|
811
|
-
Notes:
|
|
812
|
-
For action="click", selector1 is the hover target and selector2 is
|
|
813
|
-
the click target.
|
|
814
|
-
|
|
815
|
-
For action="drag_and_drop", selector1 is the source and selector2
|
|
816
|
-
is the destination.
|
|
817
809
|
"""
|
|
818
810
|
sb = _get_sb()
|
|
819
811
|
|
|
820
|
-
if action == "
|
|
812
|
+
if action == "hover":
|
|
821
813
|
sb.hover_element(selector1)
|
|
822
814
|
return f"Hovered {selector1}"
|
|
823
815
|
|
|
824
|
-
if action == "
|
|
816
|
+
if action == "hover_and_click":
|
|
825
817
|
if selector2 is None:
|
|
826
818
|
return "Error: action='click' requires selector2."
|
|
827
819
|
sb.hover_and_click(selector1, selector2)
|
|
@@ -835,7 +827,7 @@ def hover_action(
|
|
|
835
827
|
|
|
836
828
|
return (
|
|
837
829
|
f"Error: unknown action '{action}'. "
|
|
838
|
-
"Use '
|
|
830
|
+
"Use 'hover', 'hover_and_click', or 'drag_and_drop'."
|
|
839
831
|
)
|
|
840
832
|
|
|
841
833
|
|
|
@@ -934,8 +926,8 @@ def select_option(
|
|
|
934
926
|
An error when the dropdown or requested option cannot be found.
|
|
935
927
|
|
|
936
928
|
This tool is for native <select> elements. For custom JavaScript
|
|
937
|
-
dropdowns made from div/button/list elements, use
|
|
938
|
-
element-interaction tools instead.
|
|
929
|
+
dropdowns made from div/button/list elements, use click_element
|
|
930
|
+
or other element-interaction tools instead.
|
|
939
931
|
"""
|
|
940
932
|
sb = _get_sb()
|
|
941
933
|
|
|
@@ -953,7 +945,7 @@ def select_option(
|
|
|
953
945
|
|
|
954
946
|
@mcp.tool()
|
|
955
947
|
@handle_sb_errors
|
|
956
|
-
def
|
|
948
|
+
def focus_element(
|
|
957
949
|
selector: str,
|
|
958
950
|
action: Literal[
|
|
959
951
|
"scroll_to_element",
|
|
@@ -965,7 +957,8 @@ def focus(
|
|
|
965
957
|
"""Scroll to, focus, or highlight an element.
|
|
966
958
|
|
|
967
959
|
This tool does not click, type, select, hover, or otherwise activate the
|
|
968
|
-
element. Use `
|
|
960
|
+
element. Use `click_element`, `type_text`, or `hover_action` for those
|
|
961
|
+
operations.
|
|
969
962
|
|
|
970
963
|
Args:
|
|
971
964
|
selector: CSS selector or SeleniumBase selector identifying the target.
|
|
@@ -980,7 +973,7 @@ def focus(
|
|
|
980
973
|
timeout: Maximum seconds to wait for the target element. Default: 5.
|
|
981
974
|
|
|
982
975
|
If there's no matching element found within the timeout,
|
|
983
|
-
then @handle_sb_errors
|
|
976
|
+
then @handle_sb_errors returns details from the exception raised.
|
|
984
977
|
"""
|
|
985
978
|
sb = _get_sb()
|
|
986
979
|
|
|
@@ -1379,7 +1372,7 @@ def manage_storage(
|
|
|
1379
1372
|
|
|
1380
1373
|
@mcp.tool()
|
|
1381
1374
|
@handle_sb_errors
|
|
1382
|
-
def
|
|
1375
|
+
def scroll_page(
|
|
1383
1376
|
direction: Literal["up", "down", "top", "bottom"] = "down",
|
|
1384
1377
|
amount: int = 25,
|
|
1385
1378
|
) -> str:
|
|
@@ -1399,8 +1392,8 @@ def scroll(
|
|
|
1399
1392
|
Values greater than 100 for `amount` are allowed.
|
|
1400
1393
|
For example, 200 means approximately two viewport heights.
|
|
1401
1394
|
|
|
1402
|
-
Use
|
|
1403
|
-
specific element rather than scroll the page by a relative amount.
|
|
1395
|
+
Use focus_element(action="scroll_to_element") when the goal is to reveal
|
|
1396
|
+
a specific element rather than scroll the page by a relative amount.
|
|
1404
1397
|
"""
|
|
1405
1398
|
sb = _get_sb()
|
|
1406
1399
|
|
|
@@ -1506,7 +1499,7 @@ def manage_tabs(
|
|
|
1506
1499
|
"""Manage browser tabs, including opening new ones.
|
|
1507
1500
|
|
|
1508
1501
|
Use this for listing, opening, switching, or closing tabs.
|
|
1509
|
-
Use `
|
|
1502
|
+
Use `goto_url` and `manage_history` for navigation within the active tab.
|
|
1510
1503
|
|
|
1511
1504
|
Args:
|
|
1512
1505
|
action:
|
|
@@ -1621,7 +1614,7 @@ def solve_captcha() -> str:
|
|
|
1621
1614
|
|
|
1622
1615
|
@mcp.tool()
|
|
1623
1616
|
@handle_sb_errors
|
|
1624
|
-
def
|
|
1617
|
+
def save_page(
|
|
1625
1618
|
format: Literal["screenshot", "html", "pdf"] = "screenshot",
|
|
1626
1619
|
filename: str | None = None,
|
|
1627
1620
|
folder: str | None = None,
|
|
@@ -1673,7 +1666,7 @@ def save_output(
|
|
|
1673
1666
|
- Do not use this tool when you only need page metadata such as the
|
|
1674
1667
|
URL or title; use get_page_info instead.
|
|
1675
1668
|
- Do not use this tool to manipulate the page; use the appropriate
|
|
1676
|
-
interaction tool such as
|
|
1669
|
+
interaction tool such as click_element, type_text, or select_option.
|
|
1677
1670
|
|
|
1678
1671
|
Returns:
|
|
1679
1672
|
A confirmation message containing the requested output format and
|
|
@@ -1713,9 +1706,9 @@ def run_javascript(expression: str) -> Any:
|
|
|
1713
1706
|
and other same-origin page resources available to JavaScript.
|
|
1714
1707
|
|
|
1715
1708
|
Tool selection:
|
|
1716
|
-
- Prefer
|
|
1717
|
-
|
|
1718
|
-
interactions.
|
|
1709
|
+
- Prefer click_element, type_text, select_option, hover_action,
|
|
1710
|
+
focus_element, scroll_page, and other higher-level tools for normal
|
|
1711
|
+
browser interactions.
|
|
1719
1712
|
- Prefer get_content, get_attributes, and find_elements for reading
|
|
1720
1713
|
page content or element information.
|
|
1721
1714
|
- Prefer manage_storage for ordinary localStorage/sessionStorage
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# seleniumbase package
|
|
2
|
-
__version__ = "4.54.
|
|
2
|
+
__version__ = "4.54.3"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: seleniumbase
|
|
3
|
-
Version: 4.54.
|
|
3
|
+
Version: 4.54.3
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/drivers/chromium_drivers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/cdp_driver/_contradict.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/undetected/cdp_driver/connection.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_grid/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_grid/grid_hub.py
RENAMED
|
File without changes
|
{seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_grid/grid_node.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat
RENAMED
|
File without changes
|
{seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh
RENAMED
|
File without changes
|
|
File without changes
|
{seleniumbase-4.54.2 → seleniumbase-4.54.3}/seleniumbase/utilities/selenium_ide/convert_ide.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|