seleniumbase 4.45.0__tar.gz → 4.45.2__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.45.0/seleniumbase.egg-info → seleniumbase-4.45.2}/PKG-INFO +14 -16
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/README.md +12 -14
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/requirements.txt +1 -1
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/__version__.py +1 -1
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/browser_launcher.py +8 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/sb_cdp.py +9 -3
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/fixtures/base_case.py +9 -9
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/cdp_driver/browser.py +12 -7
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/cdp_driver/cdp_util.py +0 -12
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/cdp_driver/config.py +1 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/cdp_driver/connection.py +12 -12
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/cdp_driver/tab.py +4 -1
- {seleniumbase-4.45.0 → seleniumbase-4.45.2/seleniumbase.egg-info}/PKG-INFO +14 -16
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase.egg-info/requires.txt +1 -1
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/setup.py +1 -1
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/.gitignore +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/LICENSE +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/MANIFEST.in +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/install.sh +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/pyproject.toml +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/pytest.ini +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/sbase/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/sbase/__main__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/sbase/steps.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/__main__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/behave/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/behave/behave_helper.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/behave/behave_sb.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/behave/steps.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/common/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/common/decorators.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/common/encryption.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/common/exceptions.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/common/obfuscate.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/common/unobfuscate.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/config/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/config/ad_block_list.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/config/proxy_list.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/config/settings.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/console_scripts/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/console_scripts/logo_helper.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/console_scripts/rich_helper.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/console_scripts/run.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/console_scripts/sb_commander.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/console_scripts/sb_install.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/console_scripts/sb_objectify.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/console_scripts/sb_print.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/console_scripts/sb_recorder.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/application_manager.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/capabilities_parser.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/colored_traceback.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/create_db_tables.sql +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/detect_b_ver.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/download_helper.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/encoded_images.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/jqc_helper.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/log_helper.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/mysql.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/proxy_helper.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/recorder_helper.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/report_helper.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/s3_manager.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/sb_driver.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/session_helper.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/settings_parser.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/style_sheet.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/testcase_manager.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/tour_helper.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/core/visual_helper.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/drivers/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/drivers/atlas_drivers/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/drivers/brave_drivers/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/drivers/cft_drivers/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/drivers/chs_drivers/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/drivers/comet_drivers/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/drivers/opera_drivers/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/extensions/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/extensions/ad_block.zip +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/extensions/disable_csp.zip +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/extensions/recorder.zip +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/extensions/sbase_ext.zip +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/fixtures/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/fixtures/constants.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/fixtures/css_to_xpath.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/fixtures/errors.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/fixtures/js_utils.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/fixtures/page_actions.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/fixtures/page_utils.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/fixtures/shared_utils.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/fixtures/unittest_helper.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/fixtures/words.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/fixtures/xpath_to_css.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/js_code/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/js_code/active_css_js.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/js_code/live_js.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/js_code/recorder_js.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/masterqa/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/masterqa/master_qa.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/plugins/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/plugins/base_plugin.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/plugins/basic_test_info.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/plugins/driver_manager.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/plugins/page_source.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/plugins/pytest_plugin.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/plugins/sb_manager.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/plugins/screen_shots.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/plugins/selenium_plugin.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/resources/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/translate/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/translate/chinese.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/translate/dutch.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/translate/french.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/translate/italian.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/translate/japanese.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/translate/korean.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/translate/master_dict.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/translate/portuguese.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/translate/russian.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/translate/spanish.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/translate/translator.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/cdp.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/cdp_driver/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/cdp_driver/_contradict.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/cdp_driver/element.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/dprocess.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/options.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/patcher.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/reactor.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/webelement.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_grid/font_color +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase.egg-info/SOURCES.txt +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase.egg-info/dependency_links.txt +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase.egg-info/entry_points.txt +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase.egg-info/top_level.txt +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/setup.cfg +0 -0
- {seleniumbase-4.45.0 → seleniumbase-4.45.2}/virtualenv_install.sh +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: seleniumbase
|
|
3
|
-
Version: 4.45.
|
|
3
|
+
Version: 4.45.2
|
|
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
|
|
@@ -137,7 +137,7 @@ Requires-Dist: allure-python-commons>=2.13.5; extra == "allure"
|
|
|
137
137
|
Requires-Dist: allure-behave>=2.13.5; extra == "allure"
|
|
138
138
|
Provides-Extra: coverage
|
|
139
139
|
Requires-Dist: coverage>=7.10.7; python_version < "3.10" and extra == "coverage"
|
|
140
|
-
Requires-Dist: coverage>=7.
|
|
140
|
+
Requires-Dist: coverage>=7.13.0; python_version >= "3.10" and extra == "coverage"
|
|
141
141
|
Requires-Dist: pytest-cov>=7.0.0; extra == "coverage"
|
|
142
142
|
Provides-Extra: flake8
|
|
143
143
|
Requires-Dist: flake8==7.3.0; extra == "flake8"
|
|
@@ -218,36 +218,34 @@ Dynamic: summary
|
|
|
218
218
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/features_list.md">🏰 Features</a> |
|
|
219
219
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/customizing_test_runs.md">🎛️ Options</a> |
|
|
220
220
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/ReadMe.md">📚 Examples</a> |
|
|
221
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/console_scripts/ReadMe.md"
|
|
221
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/console_scripts/ReadMe.md">🪄 Scripts</a> |
|
|
222
222
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/mobile_testing.md">📱 Mobile</a>
|
|
223
223
|
<br />
|
|
224
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/method_summary.md">📘
|
|
225
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md"> 🔠
|
|
224
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/method_summary.md">📘 The API</a> |
|
|
225
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md"> 🔠 SyntaxFormats</a> |
|
|
226
226
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/recorder_mode.md">🔴 Recorder</a> |
|
|
227
227
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/example_logs/ReadMe.md">📊 Dashboard</a> |
|
|
228
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/locale_codes.md">🗾
|
|
229
|
-
<a href="https://seleniumbase.io/devices/?url=seleniumbase.com">💻 Farm</a>
|
|
228
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/locale_codes.md">🗾 Locale</a>
|
|
230
229
|
<br />
|
|
231
230
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/commander.md">🎖️ GUI</a> |
|
|
232
231
|
<a href="https://seleniumbase.io/demo_page">📰 TestPage</a> |
|
|
233
232
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/uc_mode.md">👤 UC Mode</a> |
|
|
234
233
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md">🐙 CDP Mode</a> |
|
|
235
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/chart_maker/ReadMe.md">📶 Charts</a>
|
|
236
|
-
<a href="https://
|
|
234
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/chart_maker/ReadMe.md">📶 Charts</a> |
|
|
235
|
+
<a href="https://seleniumbase.io/devices/?url=seleniumbase.com">🖥️ Farm</a>
|
|
237
236
|
<br />
|
|
238
237
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/how_it_works.md">👁️ How</a> |
|
|
239
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples/migration/raw_selenium">🚝
|
|
240
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/
|
|
241
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/
|
|
242
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/master_qa/ReadMe.md">🧬 Hybrid</a> |
|
|
238
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples/migration/raw_selenium">🚝 Migration</a> |
|
|
239
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/playwright/ReadMe.md">🎭 Stealthy Playwright</a> |
|
|
240
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/master_qa/ReadMe.md">🛂 MasterQA</a> |
|
|
243
241
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/tour_examples/ReadMe.md">🚎 Tours</a>
|
|
244
242
|
<br />
|
|
245
243
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/integrations/github/workflows/ReadMe.md">🤖 CI/CD</a> |
|
|
246
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/js_package_manager.md"
|
|
244
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/js_package_manager.md">❇️ JSMgr</a> |
|
|
247
245
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/translations.md">🌏 Translator</a> |
|
|
248
246
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/presenter/ReadMe.md">🎞️ Presenter</a> |
|
|
249
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/
|
|
250
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/
|
|
247
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/visual_testing/ReadMe.md">🖼️ Visual</a> |
|
|
248
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/case_plans.md">🗂️ CPlans</a>
|
|
251
249
|
<br />
|
|
252
250
|
</p>
|
|
253
251
|
|
|
@@ -21,36 +21,34 @@
|
|
|
21
21
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/features_list.md">🏰 Features</a> |
|
|
22
22
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/customizing_test_runs.md">🎛️ Options</a> |
|
|
23
23
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/ReadMe.md">📚 Examples</a> |
|
|
24
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/console_scripts/ReadMe.md"
|
|
24
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/console_scripts/ReadMe.md">🪄 Scripts</a> |
|
|
25
25
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/mobile_testing.md">📱 Mobile</a>
|
|
26
26
|
<br />
|
|
27
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/method_summary.md">📘
|
|
28
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md"> 🔠
|
|
27
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/method_summary.md">📘 The API</a> |
|
|
28
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md"> 🔠 SyntaxFormats</a> |
|
|
29
29
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/recorder_mode.md">🔴 Recorder</a> |
|
|
30
30
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/example_logs/ReadMe.md">📊 Dashboard</a> |
|
|
31
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/locale_codes.md">🗾
|
|
32
|
-
<a href="https://seleniumbase.io/devices/?url=seleniumbase.com">💻 Farm</a>
|
|
31
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/locale_codes.md">🗾 Locale</a>
|
|
33
32
|
<br />
|
|
34
33
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/commander.md">🎖️ GUI</a> |
|
|
35
34
|
<a href="https://seleniumbase.io/demo_page">📰 TestPage</a> |
|
|
36
35
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/uc_mode.md">👤 UC Mode</a> |
|
|
37
36
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md">🐙 CDP Mode</a> |
|
|
38
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/chart_maker/ReadMe.md">📶 Charts</a>
|
|
39
|
-
<a href="https://
|
|
37
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/chart_maker/ReadMe.md">📶 Charts</a> |
|
|
38
|
+
<a href="https://seleniumbase.io/devices/?url=seleniumbase.com">🖥️ Farm</a>
|
|
40
39
|
<br />
|
|
41
40
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/how_it_works.md">👁️ How</a> |
|
|
42
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples/migration/raw_selenium">🚝
|
|
43
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/
|
|
44
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/
|
|
45
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/master_qa/ReadMe.md">🧬 Hybrid</a> |
|
|
41
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples/migration/raw_selenium">🚝 Migration</a> |
|
|
42
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/playwright/ReadMe.md">🎭 Stealthy Playwright</a> |
|
|
43
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/master_qa/ReadMe.md">🛂 MasterQA</a> |
|
|
46
44
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/tour_examples/ReadMe.md">🚎 Tours</a>
|
|
47
45
|
<br />
|
|
48
46
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/integrations/github/workflows/ReadMe.md">🤖 CI/CD</a> |
|
|
49
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/js_package_manager.md"
|
|
47
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/js_package_manager.md">❇️ JSMgr</a> |
|
|
50
48
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/translations.md">🌏 Translator</a> |
|
|
51
49
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/presenter/ReadMe.md">🎞️ Presenter</a> |
|
|
52
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/
|
|
53
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/
|
|
50
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/visual_testing/ReadMe.md">🖼️ Visual</a> |
|
|
51
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/case_plans.md">🗂️ CPlans</a>
|
|
54
52
|
<br />
|
|
55
53
|
</p>
|
|
56
54
|
|
|
@@ -76,7 +76,7 @@ rich>=14.2.0,<15
|
|
|
76
76
|
# ("pip install -r requirements.txt" also installs this, but "pip install -e ." won't.)
|
|
77
77
|
|
|
78
78
|
coverage>=7.10.7;python_version<"3.10"
|
|
79
|
-
coverage>=7.
|
|
79
|
+
coverage>=7.13.0;python_version>="3.10"
|
|
80
80
|
pytest-cov>=7.0.0
|
|
81
81
|
flake8==7.3.0
|
|
82
82
|
mccabe==0.7.0
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# seleniumbase package
|
|
2
|
-
__version__ = "4.45.
|
|
2
|
+
__version__ = "4.45.2"
|
|
@@ -2769,6 +2769,9 @@ def _set_chrome_options(
|
|
|
2769
2769
|
included_disabled_features.append("SidePanelPinning")
|
|
2770
2770
|
included_disabled_features.append("UserAgentClientHint")
|
|
2771
2771
|
included_disabled_features.append("DisableLoadExtensionCommandLineSwitch")
|
|
2772
|
+
included_disabled_features.append("Bluetooth")
|
|
2773
|
+
included_disabled_features.append("WebBluetooth")
|
|
2774
|
+
included_disabled_features.append("UnifiedWebBluetooth")
|
|
2772
2775
|
included_disabled_features.append("WebAuthentication")
|
|
2773
2776
|
included_disabled_features.append("PasskeyAuth")
|
|
2774
2777
|
for item in extra_disabled_features:
|
|
@@ -4782,6 +4785,11 @@ def get_local_driver(
|
|
|
4782
4785
|
included_disabled_features.append(
|
|
4783
4786
|
"DisableLoadExtensionCommandLineSwitch"
|
|
4784
4787
|
)
|
|
4788
|
+
included_disabled_features.append("Bluetooth")
|
|
4789
|
+
included_disabled_features.append("WebBluetooth")
|
|
4790
|
+
included_disabled_features.append("UnifiedWebBluetooth")
|
|
4791
|
+
included_disabled_features.append("WebAuthentication")
|
|
4792
|
+
included_disabled_features.append("PasskeyAuth")
|
|
4785
4793
|
for item in extra_disabled_features:
|
|
4786
4794
|
if item not in included_disabled_features:
|
|
4787
4795
|
included_disabled_features.append(item)
|
|
@@ -184,9 +184,13 @@ class CDPMethods():
|
|
|
184
184
|
and also applies nest-asyncio for nested event loops so
|
|
185
185
|
that SeleniumBase methods can be called from Playwright
|
|
186
186
|
without encountering event loop error messages such as:
|
|
187
|
-
Cannot run the event loop while another loop is running.
|
|
187
|
+
Cannot run the event loop while another loop is running.
|
|
188
|
+
Also sets an environment variable to hide this warning:
|
|
189
|
+
Deprecation: "url.parse() behavior is not standardized".
|
|
190
|
+
(github.com/microsoft/playwright-python/issues/3016)"""
|
|
188
191
|
import nest_asyncio
|
|
189
192
|
nest_asyncio.apply()
|
|
193
|
+
os.environ["NODE_NO_WARNINGS"] = "1"
|
|
190
194
|
driver = self.driver
|
|
191
195
|
if hasattr(driver, "cdp_base"):
|
|
192
196
|
driver = driver.cdp_base
|
|
@@ -1182,13 +1186,15 @@ class CDPMethods():
|
|
|
1182
1186
|
def switch_to_newest_window(self):
|
|
1183
1187
|
self.switch_to_tab(-1)
|
|
1184
1188
|
|
|
1185
|
-
def open_new_tab(self, url=None, switch_to=True):
|
|
1189
|
+
def open_new_tab(self, url=None, switch_to=True, **kwargs):
|
|
1186
1190
|
driver = self.driver
|
|
1187
1191
|
if not isinstance(url, str):
|
|
1188
1192
|
url = "about:blank"
|
|
1189
1193
|
if hasattr(driver, "cdp_base"):
|
|
1190
1194
|
try:
|
|
1191
|
-
self.loop.run_until_complete(
|
|
1195
|
+
self.loop.run_until_complete(
|
|
1196
|
+
self.page.get(url, new_tab=True, **kwargs)
|
|
1197
|
+
)
|
|
1192
1198
|
except Exception:
|
|
1193
1199
|
original_targets = self.loop.run_until_complete(
|
|
1194
1200
|
self.page.send(mycdp.target.get_targets())
|
|
@@ -221,11 +221,11 @@ class BaseCase(unittest.TestCase):
|
|
|
221
221
|
[sys.executable, "-m", "pytest", file, "-s", *all_args]
|
|
222
222
|
)
|
|
223
223
|
|
|
224
|
-
def open(self, url):
|
|
224
|
+
def open(self, url, **kwargs):
|
|
225
225
|
"""Navigates the current browser window to the specified page."""
|
|
226
226
|
self.__check_scope()
|
|
227
227
|
if self.__is_cdp_swap_needed():
|
|
228
|
-
self.cdp.open(url)
|
|
228
|
+
self.cdp.open(url, **kwargs)
|
|
229
229
|
return
|
|
230
230
|
elif (
|
|
231
231
|
getattr(self.driver, "_is_using_uc", None)
|
|
@@ -235,14 +235,14 @@ class BaseCase(unittest.TestCase):
|
|
|
235
235
|
# Auth in UC Mode requires CDP Mode
|
|
236
236
|
# (and now we're always forcing it)
|
|
237
237
|
logging.info("open() in UC Mode now always activates CDP Mode.")
|
|
238
|
-
self.activate_cdp_mode(url)
|
|
238
|
+
self.activate_cdp_mode(url, **kwargs)
|
|
239
239
|
return
|
|
240
240
|
elif (
|
|
241
241
|
getattr(self.driver, "_is_using_uc", None)
|
|
242
242
|
and getattr(self.driver, "_is_using_cdp", None)
|
|
243
243
|
):
|
|
244
244
|
self.disconnect()
|
|
245
|
-
self.cdp.open(url)
|
|
245
|
+
self.cdp.open(url, **kwargs)
|
|
246
246
|
return
|
|
247
247
|
self._check_browser()
|
|
248
248
|
if self.__needs_minimum_wait():
|
|
@@ -3960,7 +3960,7 @@ class BaseCase(unittest.TestCase):
|
|
|
3960
3960
|
Reverts self.set_content_to_frame()."""
|
|
3961
3961
|
self.set_content_to_default(nested=True)
|
|
3962
3962
|
|
|
3963
|
-
def open_new_window(self, switch_to=True):
|
|
3963
|
+
def open_new_window(self, switch_to=True, **kwargs):
|
|
3964
3964
|
"""Opens a new browser tab/window and switches to it by default."""
|
|
3965
3965
|
url = None
|
|
3966
3966
|
if self.__looks_like_a_page_url(str(switch_to)):
|
|
@@ -3969,14 +3969,14 @@ class BaseCase(unittest.TestCase):
|
|
|
3969
3969
|
url = switch_to
|
|
3970
3970
|
switch_to = True
|
|
3971
3971
|
if self.__is_cdp_swap_needed():
|
|
3972
|
-
self.cdp.open_new_tab(url=url, switch_to=switch_to)
|
|
3972
|
+
self.cdp.open_new_tab(url=url, switch_to=switch_to, **kwargs)
|
|
3973
3973
|
return
|
|
3974
3974
|
elif (
|
|
3975
3975
|
getattr(self.driver, "_is_using_uc", None)
|
|
3976
3976
|
and getattr(self.driver, "_is_using_cdp", None)
|
|
3977
3977
|
):
|
|
3978
3978
|
self.disconnect()
|
|
3979
|
-
self.cdp.open_new_tab(url=url, switch_to=switch_to)
|
|
3979
|
+
self.cdp.open_new_tab(url=url, switch_to=switch_to, **kwargs)
|
|
3980
3980
|
return
|
|
3981
3981
|
self.wait_for_ready_state_complete()
|
|
3982
3982
|
if switch_to:
|
|
@@ -9264,9 +9264,9 @@ class BaseCase(unittest.TestCase):
|
|
|
9264
9264
|
"""Same as self.refresh_page()"""
|
|
9265
9265
|
self.refresh_page()
|
|
9266
9266
|
|
|
9267
|
-
def open_new_tab(self, switch_to=True):
|
|
9267
|
+
def open_new_tab(self, switch_to=True, **kwargs):
|
|
9268
9268
|
"""Same as self.open_new_window()"""
|
|
9269
|
-
self.open_new_window(switch_to=switch_to)
|
|
9269
|
+
self.open_new_window(switch_to=switch_to, **kwargs)
|
|
9270
9270
|
|
|
9271
9271
|
def switch_to_tab(self, tab, timeout=None):
|
|
9272
9272
|
"""Same as self.switch_to_window()
|
|
@@ -333,11 +333,16 @@ class Browser:
|
|
|
333
333
|
)
|
|
334
334
|
connection.browser = self
|
|
335
335
|
else:
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
336
|
+
try:
|
|
337
|
+
# Most recently opened tab
|
|
338
|
+
connection = self.targets[-1]
|
|
339
|
+
await connection.sleep(0.005)
|
|
340
|
+
except Exception:
|
|
341
|
+
# First tab from browser.tabs
|
|
342
|
+
connection: tab.Tab = next(
|
|
343
|
+
filter(lambda item: item.type_ == "page", self.targets)
|
|
344
|
+
)
|
|
345
|
+
await connection.sleep(0.005)
|
|
341
346
|
_cdp_timezone = None
|
|
342
347
|
_cdp_user_agent = ""
|
|
343
348
|
_cdp_locale = None
|
|
@@ -628,7 +633,7 @@ class Browser:
|
|
|
628
633
|
""" % (dashes, message, dashes)
|
|
629
634
|
)
|
|
630
635
|
self.connection = Connection(
|
|
631
|
-
self.info.webSocketDebuggerUrl,
|
|
636
|
+
self.info.webSocketDebuggerUrl, browser=self
|
|
632
637
|
)
|
|
633
638
|
if self.config.autodiscover_targets:
|
|
634
639
|
logger.info("Enabling autodiscover targets")
|
|
@@ -802,7 +807,7 @@ class Browser:
|
|
|
802
807
|
f"/{t.target_id}"
|
|
803
808
|
),
|
|
804
809
|
target=t,
|
|
805
|
-
|
|
810
|
+
browser=self,
|
|
806
811
|
)
|
|
807
812
|
)
|
|
808
813
|
await asyncio.sleep(0)
|
|
@@ -719,18 +719,6 @@ def start_sync(*args, **kwargs) -> Browser:
|
|
|
719
719
|
loop = kwargs["loop"]
|
|
720
720
|
else:
|
|
721
721
|
loop = asyncio.new_event_loop()
|
|
722
|
-
if "user_data_dir" in kwargs and kwargs["user_data_dir"]:
|
|
723
|
-
headless = False
|
|
724
|
-
if "headless" in kwargs:
|
|
725
|
-
headless = kwargs["headless"]
|
|
726
|
-
decoy_args = kwargs
|
|
727
|
-
decoy_args["headless"] = True
|
|
728
|
-
driver = loop.run_until_complete(start(**decoy_args))
|
|
729
|
-
kwargs["headless"] = headless
|
|
730
|
-
kwargs["user_data_dir"] = driver.config.user_data_dir
|
|
731
|
-
time.sleep(0.2)
|
|
732
|
-
driver.stop() # Due to Chrome-130, must stop & start
|
|
733
|
-
time.sleep(0.1)
|
|
734
722
|
return loop.run_until_complete(start(*args, **kwargs))
|
|
735
723
|
|
|
736
724
|
|
|
@@ -206,6 +206,7 @@ class Config:
|
|
|
206
206
|
"OptimizationTargetPrediction,OptimizationGuideModelDownloading,"
|
|
207
207
|
"SidePanelPinning,UserAgentClientHint,PrivacySandboxSettings4,"
|
|
208
208
|
"OptimizationHintsFetching,InterestFeedContentSuggestions,"
|
|
209
|
+
"Bluetooth,WebBluetooth,UnifiedWebBluetooth,"
|
|
209
210
|
"DisableLoadExtensionCommandLineSwitch,"
|
|
210
211
|
"WebAuthentication,PasskeyAuth"
|
|
211
212
|
]
|
{seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/cdp_driver/connection.py
RENAMED
|
@@ -184,13 +184,13 @@ class Connection(metaclass=CantTouchThis):
|
|
|
184
184
|
self,
|
|
185
185
|
websocket_url=None,
|
|
186
186
|
target=None,
|
|
187
|
-
|
|
187
|
+
browser=None,
|
|
188
188
|
**kwargs,
|
|
189
189
|
):
|
|
190
190
|
super().__init__()
|
|
191
191
|
self._target = target
|
|
192
192
|
self.__count__ = itertools.count(0)
|
|
193
|
-
self.
|
|
193
|
+
self.browser = browser
|
|
194
194
|
self.websocket_url: str = websocket_url
|
|
195
195
|
self.websocket = None
|
|
196
196
|
self.mapper = {}
|
|
@@ -426,8 +426,8 @@ class Connection(metaclass=CantTouchThis):
|
|
|
426
426
|
await self.aopen()
|
|
427
427
|
if not self.websocket or self.websocket.state is State.CLOSED:
|
|
428
428
|
return
|
|
429
|
-
if self.
|
|
430
|
-
browser = self.
|
|
429
|
+
if self.browser:
|
|
430
|
+
browser = self.browser
|
|
431
431
|
if browser.config:
|
|
432
432
|
if browser.config.expert:
|
|
433
433
|
await self._prepare_expert()
|
|
@@ -610,11 +610,11 @@ class Listener:
|
|
|
610
610
|
# Probably an event
|
|
611
611
|
try:
|
|
612
612
|
event = cdp.util.parse_json_event(message)
|
|
613
|
-
event_tx = EventTransaction(event)
|
|
614
|
-
if not self.connection.mapper:
|
|
615
|
-
|
|
616
|
-
event_tx.id = next(self.connection.__count__)
|
|
617
|
-
self.connection.mapper[event_tx.id] = event_tx
|
|
613
|
+
# event_tx = EventTransaction(event)
|
|
614
|
+
# if not self.connection.mapper:
|
|
615
|
+
# self.connection.__count__ = itertools.count(0)
|
|
616
|
+
# event_tx.id = next(self.connection.__count__)
|
|
617
|
+
# self.connection.mapper[event_tx.id] = event_tx
|
|
618
618
|
except Exception as e:
|
|
619
619
|
logger.info(
|
|
620
620
|
"%s: %s during parsing of json from event : %s"
|
|
@@ -639,12 +639,12 @@ class Listener:
|
|
|
639
639
|
or inspect.iscoroutine(callback)
|
|
640
640
|
):
|
|
641
641
|
try:
|
|
642
|
-
|
|
642
|
+
asyncio.create_task(callback(event, self))
|
|
643
643
|
except TypeError:
|
|
644
|
-
|
|
644
|
+
asyncio.create_task(callback(event))
|
|
645
645
|
else:
|
|
646
646
|
try:
|
|
647
|
-
callback(event, self
|
|
647
|
+
callback(event, self)
|
|
648
648
|
except TypeError:
|
|
649
649
|
callback(event)
|
|
650
650
|
except Exception as e:
|
|
@@ -371,7 +371,7 @@ class Tab(Connection):
|
|
|
371
371
|
return self
|
|
372
372
|
else:
|
|
373
373
|
return await self.browser.get(
|
|
374
|
-
url, new_tab, new_window, **kwargs
|
|
374
|
+
url, new_tab=False, new_window=False, **kwargs
|
|
375
375
|
)
|
|
376
376
|
|
|
377
377
|
async def open(self, url="about:blank"):
|
|
@@ -1458,6 +1458,9 @@ class Tab(Connection):
|
|
|
1458
1458
|
async def get_title(self):
|
|
1459
1459
|
return await self.evaluate("document.title")
|
|
1460
1460
|
|
|
1461
|
+
async def get_current_url(self):
|
|
1462
|
+
return await self.evaluate("window.location.href")
|
|
1463
|
+
|
|
1461
1464
|
async def send_keys(self, selector, text, timeout=5):
|
|
1462
1465
|
element = await self.find(selector, timeout=timeout)
|
|
1463
1466
|
await element.send_keys_async(text)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: seleniumbase
|
|
3
|
-
Version: 4.45.
|
|
3
|
+
Version: 4.45.2
|
|
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
|
|
@@ -137,7 +137,7 @@ Requires-Dist: allure-python-commons>=2.13.5; extra == "allure"
|
|
|
137
137
|
Requires-Dist: allure-behave>=2.13.5; extra == "allure"
|
|
138
138
|
Provides-Extra: coverage
|
|
139
139
|
Requires-Dist: coverage>=7.10.7; python_version < "3.10" and extra == "coverage"
|
|
140
|
-
Requires-Dist: coverage>=7.
|
|
140
|
+
Requires-Dist: coverage>=7.13.0; python_version >= "3.10" and extra == "coverage"
|
|
141
141
|
Requires-Dist: pytest-cov>=7.0.0; extra == "coverage"
|
|
142
142
|
Provides-Extra: flake8
|
|
143
143
|
Requires-Dist: flake8==7.3.0; extra == "flake8"
|
|
@@ -218,36 +218,34 @@ Dynamic: summary
|
|
|
218
218
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/features_list.md">🏰 Features</a> |
|
|
219
219
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/customizing_test_runs.md">🎛️ Options</a> |
|
|
220
220
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/ReadMe.md">📚 Examples</a> |
|
|
221
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/console_scripts/ReadMe.md"
|
|
221
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/seleniumbase/console_scripts/ReadMe.md">🪄 Scripts</a> |
|
|
222
222
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/mobile_testing.md">📱 Mobile</a>
|
|
223
223
|
<br />
|
|
224
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/method_summary.md">📘
|
|
225
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md"> 🔠
|
|
224
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/method_summary.md">📘 The API</a> |
|
|
225
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/syntax_formats.md"> 🔠 SyntaxFormats</a> |
|
|
226
226
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/recorder_mode.md">🔴 Recorder</a> |
|
|
227
227
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/example_logs/ReadMe.md">📊 Dashboard</a> |
|
|
228
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/locale_codes.md">🗾
|
|
229
|
-
<a href="https://seleniumbase.io/devices/?url=seleniumbase.com">💻 Farm</a>
|
|
228
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/locale_codes.md">🗾 Locale</a>
|
|
230
229
|
<br />
|
|
231
230
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/commander.md">🎖️ GUI</a> |
|
|
232
231
|
<a href="https://seleniumbase.io/demo_page">📰 TestPage</a> |
|
|
233
232
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/uc_mode.md">👤 UC Mode</a> |
|
|
234
233
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md">🐙 CDP Mode</a> |
|
|
235
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/chart_maker/ReadMe.md">📶 Charts</a>
|
|
236
|
-
<a href="https://
|
|
234
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/chart_maker/ReadMe.md">📶 Charts</a> |
|
|
235
|
+
<a href="https://seleniumbase.io/devices/?url=seleniumbase.com">🖥️ Farm</a>
|
|
237
236
|
<br />
|
|
238
237
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/how_it_works.md">👁️ How</a> |
|
|
239
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples/migration/raw_selenium">🚝
|
|
240
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/
|
|
241
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/
|
|
242
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/master_qa/ReadMe.md">🧬 Hybrid</a> |
|
|
238
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/tree/master/examples/migration/raw_selenium">🚝 Migration</a> |
|
|
239
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/playwright/ReadMe.md">🎭 Stealthy Playwright</a> |
|
|
240
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/master_qa/ReadMe.md">🛂 MasterQA</a> |
|
|
243
241
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/tour_examples/ReadMe.md">🚎 Tours</a>
|
|
244
242
|
<br />
|
|
245
243
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/integrations/github/workflows/ReadMe.md">🤖 CI/CD</a> |
|
|
246
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/js_package_manager.md"
|
|
244
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/js_package_manager.md">❇️ JSMgr</a> |
|
|
247
245
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/translations.md">🌏 Translator</a> |
|
|
248
246
|
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/presenter/ReadMe.md">🎞️ Presenter</a> |
|
|
249
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/
|
|
250
|
-
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/
|
|
247
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/visual_testing/ReadMe.md">🖼️ Visual</a> |
|
|
248
|
+
<a href="https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/case_plans.md">🗂️ CPlans</a>
|
|
251
249
|
<br />
|
|
252
250
|
</p>
|
|
253
251
|
|
|
@@ -233,7 +233,7 @@ setup(
|
|
|
233
233
|
# Usage: coverage run -m pytest; coverage html; coverage report
|
|
234
234
|
"coverage": [
|
|
235
235
|
'coverage>=7.10.7;python_version<"3.10"',
|
|
236
|
-
'coverage>=7.
|
|
236
|
+
'coverage>=7.13.0;python_version>="3.10"',
|
|
237
237
|
'pytest-cov>=7.0.0',
|
|
238
238
|
],
|
|
239
239
|
# pip install -e .[flake8]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.45.0 → seleniumbase-4.45.2}/seleniumbase/undetected/cdp_driver/_contradict.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.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_grid/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_grid/grid_hub.py
RENAMED
|
File without changes
|
{seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_grid/grid_node.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat
RENAMED
|
File without changes
|
{seleniumbase-4.45.0 → seleniumbase-4.45.2}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh
RENAMED
|
File without changes
|
|
File without changes
|
{seleniumbase-4.45.0 → seleniumbase-4.45.2}/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
|