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