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.
- {seleniumbase-4.54.8/seleniumbase.egg-info → seleniumbase-4.54.9}/PKG-INFO +4 -4
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/mcp_servers/server.py +29 -30
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/requirements.txt +3 -3
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/__version__.py +1 -1
- {seleniumbase-4.54.8 → seleniumbase-4.54.9/seleniumbase.egg-info}/PKG-INFO +4 -4
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase.egg-info/requires.txt +3 -3
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/setup.py +3 -3
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/.gitignore +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/LICENSE +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/MANIFEST.in +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/README.md +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/install.sh +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/mcp_servers/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/pyproject.toml +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/pytest.ini +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/sbase/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/sbase/__main__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/sbase/steps.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/__main__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/behave/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/behave/behave_helper.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/behave/behave_sb.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/behave/steps.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/common/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/common/decorators.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/common/encryption.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/common/exceptions.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/common/obfuscate.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/common/unobfuscate.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/config/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/config/ad_block_list.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/config/proxy_list.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/config/settings.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/logo_helper.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/rich_helper.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/run.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_commander.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_install.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_objectify.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_print.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/console_scripts/sb_recorder.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/application_manager.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/browser_launcher.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/capabilities_parser.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/colored_traceback.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/create_db_tables.sql +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/detect_b_ver.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/download_helper.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/encoded_images.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/jqc_helper.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/log_helper.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/mysql.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/nest_asyncio.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/proxy_helper.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/recorder_helper.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/report_helper.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/s3_manager.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/sb_cdp.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/sb_driver.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/session_helper.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/settings_parser.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/style_sheet.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/testcase_manager.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/tour_helper.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/core/visual_helper.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/drivers/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/drivers/brave_drivers/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/drivers/cft_drivers/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/drivers/chromium_drivers/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/drivers/chs_drivers/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/drivers/comet_drivers/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/drivers/opera_drivers/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/extensions/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/extensions/ad_block.zip +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/extensions/disable_csp.zip +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/extensions/recorder.zip +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/extensions/sbase_ext.zip +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/base_case.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/constants.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/css_to_xpath.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/errors.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/js_utils.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/page_actions.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/page_utils.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/shared_utils.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/unittest_helper.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/words.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/fixtures/xpath_to_css.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/js_code/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/js_code/active_css_js.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/js_code/live_js.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/js_code/recorder_js.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/masterqa/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/masterqa/master_qa.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/base_plugin.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/basic_test_info.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/driver_manager.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/page_source.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/pytest_plugin.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/sb_manager.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/screen_shots.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/plugins/selenium_plugin.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/resources/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/chinese.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/dutch.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/french.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/italian.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/japanese.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/korean.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/master_dict.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/portuguese.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/russian.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/spanish.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/translate/translator.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/_contradict.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/browser.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/cdp_util.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/config.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/connection.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/element.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/tab.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/dprocess.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/options.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/patcher.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/reactor.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/undetected/webelement.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/font_color +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase.egg-info/SOURCES.txt +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase.egg-info/dependency_links.txt +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase.egg-info/entry_points.txt +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase.egg-info/top_level.txt +0 -0
- {seleniumbase-4.54.8 → seleniumbase-4.54.9}/setup.cfg +0 -0
- {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.
|
|
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>=
|
|
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.
|
|
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.
|
|
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.
|
|
1449
|
-
|
|
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, #
|
|
1804
|
-
# rotated CAPTCHA
|
|
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
|
-
"""
|
|
1811
|
-
|
|
1816
|
+
"""Attempts a SeleniumBase CDP interaction (click or drag/drop) to solve
|
|
1817
|
+
detectable CAPTCHAs on the current page.
|
|
1812
1818
|
|
|
1813
|
-
Supported CAPTCHAs
|
|
1814
|
-
DataDome Slider,
|
|
1819
|
+
Supported CAPTCHAs:
|
|
1820
|
+
- CF Turnstile, reCAPTCHA, hCaptcha, DataDome Slider, FriendlyCaptcha
|
|
1815
1821
|
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
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
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
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
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
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
|
|
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>=
|
|
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.
|
|
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.
|
|
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.
|
|
2
|
+
__version__ = "4.54.9"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: seleniumbase
|
|
3
|
-
Version: 4.54.
|
|
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>=
|
|
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.
|
|
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.
|
|
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>=
|
|
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.
|
|
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.
|
|
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>=
|
|
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.
|
|
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.
|
|
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
|
|
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.8 → seleniumbase-4.54.9}/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.8 → seleniumbase-4.54.9}/seleniumbase/undetected/cdp_driver/_contradict.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{seleniumbase-4.54.8 → seleniumbase-4.54.9}/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.8 → seleniumbase-4.54.9}/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.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/grid_hub.py
RENAMED
|
File without changes
|
{seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/grid_node.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat
RENAMED
|
File without changes
|
{seleniumbase-4.54.8 → seleniumbase-4.54.9}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh
RENAMED
|
File without changes
|
|
File without changes
|
{seleniumbase-4.54.8 → seleniumbase-4.54.9}/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
|