seleniumbase 4.42.4__tar.gz → 4.42.5__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.42.4/seleniumbase.egg-info → seleniumbase-4.42.5}/PKG-INFO +4 -3
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/requirements.txt +3 -2
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/__version__.py +1 -1
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/browser_launcher.py +6 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/sb_cdp.py +99 -1
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/fixtures/base_case.py +8 -2
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/fixtures/js_utils.py +12 -3
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/cdp_util.py +2 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/config.py +1 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5/seleniumbase.egg-info}/PKG-INFO +4 -3
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase.egg-info/requires.txt +3 -2
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/setup.py +3 -2
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/.gitignore +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/LICENSE +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/MANIFEST.in +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/README.md +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/install.sh +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/pyproject.toml +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/pytest.ini +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/sbase/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/sbase/__main__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/sbase/steps.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/__main__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/behave/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/behave/behave_helper.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/behave/behave_sb.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/behave/steps.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/common/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/common/decorators.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/common/encryption.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/common/exceptions.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/common/obfuscate.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/common/unobfuscate.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/config/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/config/ad_block_list.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/config/proxy_list.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/config/settings.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/console_scripts/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/console_scripts/logo_helper.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/console_scripts/rich_helper.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/console_scripts/run.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_commander.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_install.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_objectify.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_print.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/console_scripts/sb_recorder.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/application_manager.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/capabilities_parser.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/colored_traceback.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/create_db_tables.sql +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/detect_b_ver.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/download_helper.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/encoded_images.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/jqc_helper.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/log_helper.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/mysql.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/proxy_helper.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/recorder_helper.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/report_helper.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/s3_manager.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/sb_driver.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/session_helper.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/settings_parser.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/style_sheet.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/testcase_manager.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/tour_helper.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/core/visual_helper.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/drivers/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/drivers/cft_drivers/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/drivers/chs_drivers/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/extensions/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/extensions/ad_block.zip +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/extensions/disable_csp.zip +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/extensions/recorder.zip +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/extensions/sbase_ext.zip +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/fixtures/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/fixtures/constants.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/fixtures/css_to_xpath.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/fixtures/errors.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/fixtures/page_actions.py +1 -1
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/fixtures/page_utils.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/fixtures/shared_utils.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/fixtures/unittest_helper.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/fixtures/words.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/fixtures/xpath_to_css.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/js_code/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/js_code/active_css_js.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/js_code/live_js.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/js_code/recorder_js.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/masterqa/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/masterqa/master_qa.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/plugins/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/plugins/base_plugin.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/plugins/basic_test_info.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/plugins/driver_manager.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/plugins/page_source.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/plugins/pytest_plugin.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/plugins/sb_manager.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/plugins/screen_shots.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/plugins/selenium_plugin.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/resources/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/translate/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/translate/chinese.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/translate/dutch.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/translate/french.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/translate/italian.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/translate/japanese.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/translate/korean.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/translate/master_dict.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/translate/portuguese.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/translate/russian.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/translate/spanish.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/translate/translator.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/undetected/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/_contradict.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/browser.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/connection.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/element.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/tab.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/undetected/dprocess.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/undetected/options.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/undetected/patcher.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/undetected/reactor.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/undetected/webelement.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/font_color +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase.egg-info/SOURCES.txt +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase.egg-info/dependency_links.txt +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase.egg-info/entry_points.txt +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase.egg-info/top_level.txt +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/setup.cfg +0 -0
- {seleniumbase-4.42.4 → seleniumbase-4.42.5}/virtualenv_install.sh +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.42.
|
3
|
+
Version: 4.42.5
|
4
4
|
Summary: A complete web automation framework for end-to-end testing.
|
5
5
|
Home-page: https://github.com/seleniumbase/SeleniumBase
|
6
6
|
Author: Michael Mintz
|
@@ -75,7 +75,7 @@ Requires-Dist: filelock~=3.16.1; python_version < "3.9"
|
|
75
75
|
Requires-Dist: filelock~=3.19.1; python_version >= "3.9" and python_version < "3.10"
|
76
76
|
Requires-Dist: filelock>=3.20.0; python_version >= "3.10"
|
77
77
|
Requires-Dist: fasteners>=0.20
|
78
|
-
Requires-Dist: mycdp>=1.2.
|
78
|
+
Requires-Dist: mycdp>=1.2.1
|
79
79
|
Requires-Dist: pynose>=1.5.5
|
80
80
|
Requires-Dist: platformdirs~=4.3.6; python_version < "3.9"
|
81
81
|
Requires-Dist: platformdirs~=4.4.0; python_version >= "3.9" and python_version < "3.10"
|
@@ -127,7 +127,8 @@ Requires-Dist: pytest-html==4.0.2
|
|
127
127
|
Requires-Dist: pytest-metadata==3.1.1
|
128
128
|
Requires-Dist: pytest-ordering==0.6
|
129
129
|
Requires-Dist: pytest-rerunfailures==14.0; python_version < "3.9"
|
130
|
-
Requires-Dist: pytest-rerunfailures==16.0.1; python_version >= "3.9"
|
130
|
+
Requires-Dist: pytest-rerunfailures==16.0.1; python_version >= "3.9" and python_version < "3.10"
|
131
|
+
Requires-Dist: pytest-rerunfailures==16.1; python_version >= "3.10"
|
131
132
|
Requires-Dist: pytest-xdist==3.6.1; python_version < "3.9"
|
132
133
|
Requires-Dist: pytest-xdist==3.8.0; python_version >= "3.9"
|
133
134
|
Requires-Dist: parameterized==0.9.0
|
@@ -14,7 +14,7 @@ filelock~=3.16.1;python_version<"3.9"
|
|
14
14
|
filelock~=3.19.1;python_version>="3.9" and python_version<"3.10"
|
15
15
|
filelock>=3.20.0;python_version>="3.10"
|
16
16
|
fasteners>=0.20
|
17
|
-
mycdp>=1.2.
|
17
|
+
mycdp>=1.2.1
|
18
18
|
pynose>=1.5.5
|
19
19
|
platformdirs~=4.3.6;python_version<"3.9"
|
20
20
|
platformdirs~=4.4.0;python_version>="3.9" and python_version<"3.10"
|
@@ -66,7 +66,8 @@ pytest-html==4.0.2
|
|
66
66
|
pytest-metadata==3.1.1
|
67
67
|
pytest-ordering==0.6
|
68
68
|
pytest-rerunfailures==14.0;python_version<"3.9"
|
69
|
-
pytest-rerunfailures==16.0.1;python_version>="3.9"
|
69
|
+
pytest-rerunfailures==16.0.1;python_version>="3.9" and python_version<"3.10"
|
70
|
+
pytest-rerunfailures==16.1;python_version>="3.10"
|
70
71
|
pytest-xdist==3.6.1;python_version<"3.9"
|
71
72
|
pytest-xdist==3.8.0;python_version>="3.9"
|
72
73
|
parameterized==0.9.0
|
@@ -1,2 +1,2 @@
|
|
1
1
|
# seleniumbase package
|
2
|
-
__version__ = "4.42.
|
2
|
+
__version__ = "4.42.5"
|
@@ -756,12 +756,16 @@ def uc_open_with_cdp_mode(driver, url=None, **kwargs):
|
|
756
756
|
cdp.set_value = CDPM.set_value
|
757
757
|
cdp.submit = CDPM.submit
|
758
758
|
cdp.evaluate = CDPM.evaluate
|
759
|
+
cdp.execute_script = CDPM.execute_script
|
759
760
|
cdp.js_dumps = CDPM.js_dumps
|
760
761
|
cdp.maximize = CDPM.maximize
|
761
762
|
cdp.minimize = CDPM.minimize
|
762
763
|
cdp.medimize = CDPM.medimize
|
763
764
|
cdp.set_window_rect = CDPM.set_window_rect
|
764
765
|
cdp.reset_window_size = CDPM.reset_window_size
|
766
|
+
cdp.activate_messenger = CDPM.activate_messenger
|
767
|
+
cdp.set_messenger_theme = CDPM.set_messenger_theme
|
768
|
+
cdp.post_message = CDPM.post_message
|
765
769
|
cdp.set_locale = CDPM.set_locale
|
766
770
|
cdp.set_local_storage_item = CDPM.set_local_storage_item
|
767
771
|
cdp.set_session_storage_item = CDPM.set_session_storage_item
|
@@ -877,6 +881,8 @@ def uc_open_with_cdp_mode(driver, url=None, **kwargs):
|
|
877
881
|
cdp.scroll_to_bottom = CDPM.scroll_to_bottom
|
878
882
|
cdp.scroll_up = CDPM.scroll_up
|
879
883
|
cdp.scroll_down = CDPM.scroll_down
|
884
|
+
cdp.save_page_source = CDPM.save_page_source
|
885
|
+
cdp.save_as_html = CDPM.save_as_html
|
880
886
|
cdp.save_screenshot = CDPM.save_screenshot
|
881
887
|
cdp.print_to_pdf = CDPM.print_to_pdf
|
882
888
|
cdp.save_as_pdf = CDPM.save_as_pdf
|
@@ -1024,6 +1024,9 @@ class CDPMethods():
|
|
1024
1024
|
).strip()
|
1025
1025
|
return self.loop.run_until_complete(self.page.evaluate(expression))
|
1026
1026
|
|
1027
|
+
def execute_script(self, expression):
|
1028
|
+
return self.evaluate(expression)
|
1029
|
+
|
1027
1030
|
def js_dumps(self, obj_name):
|
1028
1031
|
"""Similar to evaluate(), but for dictionary results."""
|
1029
1032
|
if obj_name.startswith("return "):
|
@@ -1407,6 +1410,64 @@ class CDPMethods():
|
|
1407
1410
|
mfa_code = self.get_mfa_code(totp_key)
|
1408
1411
|
self.type(selector, mfa_code + "\n", timeout=timeout)
|
1409
1412
|
|
1413
|
+
def activate_messenger(self):
|
1414
|
+
js_utils.activate_messenger(self)
|
1415
|
+
self.__add_light_pause()
|
1416
|
+
|
1417
|
+
def set_messenger_theme(
|
1418
|
+
self, theme="default", location="default", max_messages="default"
|
1419
|
+
):
|
1420
|
+
"""Sets a theme for posting messages.
|
1421
|
+
Themes: ["flat", "future", "block", "air", "ice"]
|
1422
|
+
Locations: ["top_left", "top_center", "top_right",
|
1423
|
+
"bottom_left", "bottom_center", "bottom_right"]
|
1424
|
+
max_messages: The limit of concurrent messages to display."""
|
1425
|
+
if not theme:
|
1426
|
+
theme = "default" # "flat"
|
1427
|
+
if not location:
|
1428
|
+
location = "default" # "bottom_right"
|
1429
|
+
if not max_messages:
|
1430
|
+
max_messages = "default" # "8"
|
1431
|
+
else:
|
1432
|
+
max_messages = str(max_messages) # Value must be in string format
|
1433
|
+
js_utils.set_messenger_theme(
|
1434
|
+
self,
|
1435
|
+
theme=theme,
|
1436
|
+
location=location,
|
1437
|
+
max_messages=max_messages,
|
1438
|
+
)
|
1439
|
+
self.__add_light_pause()
|
1440
|
+
|
1441
|
+
def post_message(self, message, duration=None, pause=True, style="info"):
|
1442
|
+
"""Post a message on the screen with Messenger.
|
1443
|
+
Arguments:
|
1444
|
+
message: The message to display.
|
1445
|
+
duration: The time until the message vanishes. (Default: 2.55s)
|
1446
|
+
pause: If True, the program waits until the message completes.
|
1447
|
+
style: "info", "success", or "error"."""
|
1448
|
+
driver = self.driver
|
1449
|
+
if hasattr(driver, "cdp_base"):
|
1450
|
+
driver = driver.cdp_base
|
1451
|
+
if style not in ["info", "success", "error"]:
|
1452
|
+
style = "info"
|
1453
|
+
if not duration:
|
1454
|
+
duration = settings.DEFAULT_MESSAGE_DURATION
|
1455
|
+
if (
|
1456
|
+
(
|
1457
|
+
driver.config.headless
|
1458
|
+
or (hasattr(sb_config, "xvfb") and sb_config.xvfb)
|
1459
|
+
)
|
1460
|
+
and float(duration) > 0.75
|
1461
|
+
):
|
1462
|
+
duration = 0.75
|
1463
|
+
try:
|
1464
|
+
js_utils.post_message(self, message, duration, style=style)
|
1465
|
+
except Exception:
|
1466
|
+
print(" * %s message: %s" % (style.upper(), message))
|
1467
|
+
if pause:
|
1468
|
+
duration = float(duration) + 0.15
|
1469
|
+
time.sleep(float(duration))
|
1470
|
+
|
1410
1471
|
def set_locale(self, locale):
|
1411
1472
|
"""(Settings will take effect on the next page load)"""
|
1412
1473
|
self.loop.run_until_complete(self.page.set_locale(locale))
|
@@ -1510,7 +1571,10 @@ class CDPMethods():
|
|
1510
1571
|
except Exception:
|
1511
1572
|
if (
|
1512
1573
|
shared_utils.is_linux()
|
1513
|
-
and (
|
1574
|
+
and (
|
1575
|
+
not sb_config.headed
|
1576
|
+
or (hasattr(sb_config, "xvfb") and sb_config.xvfb)
|
1577
|
+
)
|
1514
1578
|
and not driver.config.headless
|
1515
1579
|
and (
|
1516
1580
|
not hasattr(sb_config, "_virtual_display")
|
@@ -2611,6 +2675,40 @@ class CDPMethods():
|
|
2611
2675
|
self.loop.run_until_complete(self.page.scroll_down(amount))
|
2612
2676
|
self.loop.run_until_complete(self.page.wait())
|
2613
2677
|
|
2678
|
+
def save_page_source(self, name, folder=None):
|
2679
|
+
import codecs
|
2680
|
+
from seleniumbase.core import log_helper
|
2681
|
+
if not name.endswith(".html"):
|
2682
|
+
name = name + ".html"
|
2683
|
+
if folder:
|
2684
|
+
abs_path = os.path.abspath(".")
|
2685
|
+
file_path = os.path.join(abs_path, folder)
|
2686
|
+
if not os.path.exists(file_path):
|
2687
|
+
os.makedirs(file_path)
|
2688
|
+
html_file_path = os.path.join(file_path, name)
|
2689
|
+
else:
|
2690
|
+
html_file_path = name
|
2691
|
+
page_source = self.get_page_source()
|
2692
|
+
last_page = self.get_current_url()
|
2693
|
+
meta_charset = '<meta charset="utf-8">'
|
2694
|
+
rendered_source = ""
|
2695
|
+
if "://" in last_page:
|
2696
|
+
base_href_html = log_helper.get_base_href_html(last_page)
|
2697
|
+
if ' charset="' not in page_source:
|
2698
|
+
rendered_source = "%s\n%s\n%s" % (
|
2699
|
+
base_href_html, meta_charset, page_source
|
2700
|
+
)
|
2701
|
+
else:
|
2702
|
+
rendered_source = "%s\n%s" % (base_href_html, page_source)
|
2703
|
+
else:
|
2704
|
+
rendered_source = page_source
|
2705
|
+
html_file = codecs.open(html_file_path, "w+", "utf-8")
|
2706
|
+
html_file.write(rendered_source)
|
2707
|
+
html_file.close()
|
2708
|
+
|
2709
|
+
def save_as_html(self, *args, **kwargs):
|
2710
|
+
self.save_page_source(*args, **kwargs)
|
2711
|
+
|
2614
2712
|
def save_screenshot(self, name, folder=None, selector=None):
|
2615
2713
|
filename = name
|
2616
2714
|
if folder:
|
@@ -9205,6 +9205,10 @@ class BaseCase(unittest.TestCase):
|
|
9205
9205
|
"""Same as self.switch_to_newest_window()"""
|
9206
9206
|
self.switch_to_newest_window()
|
9207
9207
|
|
9208
|
+
def save_as_html(self, name, folder=None):
|
9209
|
+
"""Same as self.save_page_source()"""
|
9210
|
+
self.save_page_source(name, folder=folder)
|
9211
|
+
|
9208
9212
|
def input(
|
9209
9213
|
self, selector, text, by="css selector", timeout=None, retry=False
|
9210
9214
|
):
|
@@ -9654,9 +9658,11 @@ class BaseCase(unittest.TestCase):
|
|
9654
9658
|
|
9655
9659
|
def activate_messenger(self):
|
9656
9660
|
self.__check_scope()
|
9657
|
-
self.
|
9661
|
+
if not self.__is_cdp_swap_needed():
|
9662
|
+
self._check_browser()
|
9658
9663
|
js_utils.activate_messenger(self.driver)
|
9659
|
-
self.
|
9664
|
+
if not self.__is_cdp_swap_needed():
|
9665
|
+
self.wait_for_ready_state_complete()
|
9660
9666
|
|
9661
9667
|
def set_messenger_theme(
|
9662
9668
|
self, theme="default", location="default", max_messages="default"
|
@@ -29,6 +29,8 @@ def wait_for_ready_state_complete(driver, timeout=settings.LARGE_TIMEOUT):
|
|
29
29
|
If the timeout is exceeded, the test will still continue
|
30
30
|
because readyState == "interactive" may be good enough.
|
31
31
|
(Previously, tests would fail immediately if exceeding the timeout.)"""
|
32
|
+
if hasattr(driver, "_swap_driver"):
|
33
|
+
return
|
32
34
|
if hasattr(settings, "SKIP_JS_WAITS") and settings.SKIP_JS_WAITS:
|
33
35
|
return
|
34
36
|
start_ms = time.time() * 1000.0
|
@@ -54,8 +56,12 @@ def wait_for_ready_state_complete(driver, timeout=settings.LARGE_TIMEOUT):
|
|
54
56
|
|
55
57
|
|
56
58
|
def execute_async_script(driver, script, timeout=settings.LARGE_TIMEOUT):
|
57
|
-
driver
|
58
|
-
|
59
|
+
if hasattr(driver, "set_script_timeout"):
|
60
|
+
driver.set_script_timeout(timeout)
|
61
|
+
if hasattr(driver, "execute_async_script"):
|
62
|
+
return driver.execute_async_script(script)
|
63
|
+
else:
|
64
|
+
return None
|
59
65
|
|
60
66
|
|
61
67
|
def wait_for_angularjs(driver, timeout=settings.LARGE_TIMEOUT, **kwargs):
|
@@ -937,7 +943,10 @@ def post_message(driver, message, msg_dur=None, style="info"):
|
|
937
943
|
execute_script(driver, messenger_script)
|
938
944
|
except TypeError as e:
|
939
945
|
if (
|
940
|
-
|
946
|
+
(
|
947
|
+
shared_utils.is_cdp_swap_needed(driver)
|
948
|
+
or hasattr(driver, "_swap_driver")
|
949
|
+
)
|
941
950
|
and "cannot unpack non-iterable" in str(e)
|
942
951
|
):
|
943
952
|
pass
|
@@ -202,6 +202,7 @@ class Config:
|
|
202
202
|
"InsecureDownloadWarnings,DownloadBubble,DownloadBubbleV2,"
|
203
203
|
"OptimizationTargetPrediction,OptimizationGuideModelDownloading,"
|
204
204
|
"SidePanelPinning,UserAgentClientHint,PrivacySandboxSettings4,"
|
205
|
+
"OptimizationHintsFetching,InterestFeedContentSuggestions,"
|
205
206
|
"DisableLoadExtensionCommandLineSwitch"
|
206
207
|
]
|
207
208
|
if self.proxy:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.42.
|
3
|
+
Version: 4.42.5
|
4
4
|
Summary: A complete web automation framework for end-to-end testing.
|
5
5
|
Home-page: https://github.com/seleniumbase/SeleniumBase
|
6
6
|
Author: Michael Mintz
|
@@ -75,7 +75,7 @@ Requires-Dist: filelock~=3.16.1; python_version < "3.9"
|
|
75
75
|
Requires-Dist: filelock~=3.19.1; python_version >= "3.9" and python_version < "3.10"
|
76
76
|
Requires-Dist: filelock>=3.20.0; python_version >= "3.10"
|
77
77
|
Requires-Dist: fasteners>=0.20
|
78
|
-
Requires-Dist: mycdp>=1.2.
|
78
|
+
Requires-Dist: mycdp>=1.2.1
|
79
79
|
Requires-Dist: pynose>=1.5.5
|
80
80
|
Requires-Dist: platformdirs~=4.3.6; python_version < "3.9"
|
81
81
|
Requires-Dist: platformdirs~=4.4.0; python_version >= "3.9" and python_version < "3.10"
|
@@ -127,7 +127,8 @@ Requires-Dist: pytest-html==4.0.2
|
|
127
127
|
Requires-Dist: pytest-metadata==3.1.1
|
128
128
|
Requires-Dist: pytest-ordering==0.6
|
129
129
|
Requires-Dist: pytest-rerunfailures==14.0; python_version < "3.9"
|
130
|
-
Requires-Dist: pytest-rerunfailures==16.0.1; python_version >= "3.9"
|
130
|
+
Requires-Dist: pytest-rerunfailures==16.0.1; python_version >= "3.9" and python_version < "3.10"
|
131
|
+
Requires-Dist: pytest-rerunfailures==16.1; python_version >= "3.10"
|
131
132
|
Requires-Dist: pytest-xdist==3.6.1; python_version < "3.9"
|
132
133
|
Requires-Dist: pytest-xdist==3.8.0; python_version >= "3.9"
|
133
134
|
Requires-Dist: parameterized==0.9.0
|
@@ -3,7 +3,7 @@ wheel>=0.45.1
|
|
3
3
|
certifi>=2025.10.5
|
4
4
|
exceptiongroup>=1.3.0
|
5
5
|
fasteners>=0.20
|
6
|
-
mycdp>=1.2.
|
6
|
+
mycdp>=1.2.1
|
7
7
|
pynose>=1.5.5
|
8
8
|
sbvirtualdisplay>=1.4.0
|
9
9
|
Jinja2>=3.1.6
|
@@ -73,6 +73,7 @@ filelock>=3.20.0
|
|
73
73
|
platformdirs>=4.5.0
|
74
74
|
urllib3<2.6.0,>=1.26.20
|
75
75
|
selenium==4.36.0
|
76
|
+
pytest-rerunfailures==16.1
|
76
77
|
markdown-it-py==4.0.0
|
77
78
|
|
78
79
|
[:python_version >= "3.9"]
|
@@ -87,7 +88,6 @@ websocket-client~=1.9.0
|
|
87
88
|
cssselect==1.3.0
|
88
89
|
pluggy==1.6.0
|
89
90
|
pytest==8.4.2
|
90
|
-
pytest-rerunfailures==16.0.1
|
91
91
|
pytest-xdist==3.8.0
|
92
92
|
soupsieve~=2.8
|
93
93
|
|
@@ -95,6 +95,7 @@ soupsieve~=2.8
|
|
95
95
|
filelock~=3.19.1
|
96
96
|
platformdirs~=4.4.0
|
97
97
|
selenium==4.32.0
|
98
|
+
pytest-rerunfailures==16.0.1
|
98
99
|
|
99
100
|
[allure]
|
100
101
|
allure-pytest>=2.13.5
|
@@ -161,7 +161,7 @@ setup(
|
|
161
161
|
'filelock~=3.19.1;python_version>="3.9" and python_version<"3.10"',
|
162
162
|
'filelock>=3.20.0;python_version>="3.10"',
|
163
163
|
'fasteners>=0.20',
|
164
|
-
"mycdp>=1.2.
|
164
|
+
"mycdp>=1.2.1",
|
165
165
|
"pynose>=1.5.5",
|
166
166
|
'platformdirs~=4.3.6;python_version<"3.9"',
|
167
167
|
'platformdirs~=4.4.0;python_version>="3.9" and python_version<"3.10"',
|
@@ -213,7 +213,8 @@ setup(
|
|
213
213
|
'pytest-metadata==3.1.1',
|
214
214
|
"pytest-ordering==0.6",
|
215
215
|
'pytest-rerunfailures==14.0;python_version<"3.9"',
|
216
|
-
'pytest-rerunfailures==16.0.1;python_version>="3.9"',
|
216
|
+
'pytest-rerunfailures==16.0.1;python_version>="3.9" and python_version<"3.10"', # noqa
|
217
|
+
'pytest-rerunfailures==16.1;python_version>="3.10"',
|
217
218
|
'pytest-xdist==3.6.1;python_version<"3.9"',
|
218
219
|
'pytest-xdist==3.8.0;python_version>="3.9"',
|
219
220
|
'parameterized==0.9.0',
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1528,10 +1528,10 @@ def save_page_source(driver, name, folder=None):
|
|
1528
1528
|
page_source = driver.cdp.get_page_source()
|
1529
1529
|
else:
|
1530
1530
|
page_source = driver.page_source
|
1531
|
-
html_file = codecs.open(html_file_path, "w+", "utf-8")
|
1532
1531
|
rendered_source = log_helper.get_html_source_with_base_href(
|
1533
1532
|
driver, page_source
|
1534
1533
|
)
|
1534
|
+
html_file = codecs.open(html_file_path, "w+", "utf-8")
|
1535
1535
|
html_file.write(rendered_source)
|
1536
1536
|
html_file.close()
|
1537
1537
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.42.4 → seleniumbase-4.42.5}/seleniumbase/undetected/cdp_driver/_contradict.py
RENAMED
File without changes
|
File without changes
|
{seleniumbase-4.42.4 → seleniumbase-4.42.5}/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.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/grid_hub.py
RENAMED
File without changes
|
{seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/grid_node.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat
RENAMED
File without changes
|
{seleniumbase-4.42.4 → seleniumbase-4.42.5}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh
RENAMED
File without changes
|
File without changes
|
{seleniumbase-4.42.4 → seleniumbase-4.42.5}/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
|