seleniumbase 4.41.9__tar.gz → 4.41.11__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.41.9/seleniumbase.egg-info → seleniumbase-4.41.11}/PKG-INFO +6 -5
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/README.md +1 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/requirements.txt +3 -3
- seleniumbase-4.41.11/seleniumbase/__version__.py +2 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/browser_launcher.py +51 -9
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/sb_cdp.py +44 -27
- {seleniumbase-4.41.9 → seleniumbase-4.41.11/seleniumbase.egg-info}/PKG-INFO +6 -5
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase.egg-info/requires.txt +4 -4
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/setup.py +4 -4
- seleniumbase-4.41.9/seleniumbase/__version__.py +0 -2
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/.gitignore +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/LICENSE +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/MANIFEST.in +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/install.sh +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/pyproject.toml +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/pytest.ini +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/sbase/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/sbase/__main__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/sbase/steps.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/__main__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/behave/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/behave/behave_helper.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/behave/behave_sb.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/behave/steps.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/common/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/common/decorators.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/common/encryption.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/common/exceptions.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/common/obfuscate.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/common/unobfuscate.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/config/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/config/ad_block_list.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/config/proxy_list.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/config/settings.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/console_scripts/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/console_scripts/logo_helper.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/console_scripts/rich_helper.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/console_scripts/run.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/console_scripts/sb_commander.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/console_scripts/sb_install.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/console_scripts/sb_objectify.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/console_scripts/sb_print.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/console_scripts/sb_recorder.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/application_manager.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/capabilities_parser.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/colored_traceback.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/create_db_tables.sql +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/detect_b_ver.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/download_helper.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/encoded_images.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/jqc_helper.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/log_helper.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/mysql.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/proxy_helper.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/recorder_helper.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/report_helper.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/s3_manager.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/sb_driver.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/session_helper.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/settings_parser.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/style_sheet.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/testcase_manager.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/tour_helper.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/core/visual_helper.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/drivers/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/drivers/cft_drivers/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/drivers/chs_drivers/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/extensions/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/extensions/ad_block.zip +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/extensions/disable_csp.zip +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/extensions/recorder.zip +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/extensions/sbase_ext.zip +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/fixtures/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/fixtures/base_case.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/fixtures/constants.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/fixtures/css_to_xpath.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/fixtures/errors.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/fixtures/js_utils.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/fixtures/page_actions.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/fixtures/page_utils.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/fixtures/shared_utils.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/fixtures/unittest_helper.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/fixtures/words.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/fixtures/xpath_to_css.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/js_code/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/js_code/active_css_js.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/js_code/live_js.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/js_code/recorder_js.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/masterqa/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/masterqa/master_qa.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/plugins/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/plugins/base_plugin.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/plugins/basic_test_info.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/plugins/driver_manager.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/plugins/page_source.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/plugins/pytest_plugin.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/plugins/sb_manager.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/plugins/screen_shots.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/plugins/selenium_plugin.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/resources/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/translate/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/translate/chinese.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/translate/dutch.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/translate/french.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/translate/italian.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/translate/japanese.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/translate/korean.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/translate/master_dict.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/translate/portuguese.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/translate/russian.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/translate/spanish.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/translate/translator.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/undetected/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/undetected/cdp.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/undetected/cdp_driver/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/undetected/cdp_driver/_contradict.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/undetected/cdp_driver/browser.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/undetected/cdp_driver/cdp_util.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/undetected/cdp_driver/config.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/undetected/cdp_driver/connection.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/undetected/cdp_driver/element.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/undetected/cdp_driver/tab.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/undetected/dprocess.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/undetected/options.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/undetected/patcher.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/undetected/reactor.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/undetected/webelement.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/font_color +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase.egg-info/SOURCES.txt +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase.egg-info/dependency_links.txt +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase.egg-info/entry_points.txt +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase.egg-info/top_level.txt +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/setup.cfg +0 -0
- {seleniumbase-4.41.9 → seleniumbase-4.41.11}/virtualenv_install.sh +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.41.
|
3
|
+
Version: 4.41.11
|
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
|
@@ -81,13 +81,13 @@ Requires-Dist: platformdirs>=4.4.0; python_version >= "3.9"
|
|
81
81
|
Requires-Dist: typing-extensions>=4.13.2
|
82
82
|
Requires-Dist: sbvirtualdisplay>=1.4.0
|
83
83
|
Requires-Dist: MarkupSafe==2.1.5; python_version < "3.9"
|
84
|
-
Requires-Dist: MarkupSafe>=3.0.
|
84
|
+
Requires-Dist: MarkupSafe>=3.0.3; python_version >= "3.9"
|
85
85
|
Requires-Dist: Jinja2>=3.1.6
|
86
86
|
Requires-Dist: six>=1.17.0
|
87
87
|
Requires-Dist: parse>=1.20.2
|
88
88
|
Requires-Dist: parse-type>=0.6.6
|
89
89
|
Requires-Dist: colorama>=0.4.6
|
90
|
-
Requires-Dist: pyyaml>=6.0.
|
90
|
+
Requires-Dist: pyyaml>=6.0.3
|
91
91
|
Requires-Dist: pygments>=2.19.2
|
92
92
|
Requires-Dist: pyreadline3>=3.5.3; platform_system == "Windows"
|
93
93
|
Requires-Dist: tabcompleter>=1.4.0
|
@@ -130,7 +130,7 @@ Requires-Dist: parameterized==0.9.0
|
|
130
130
|
Requires-Dist: behave==1.2.6
|
131
131
|
Requires-Dist: soupsieve==2.7; python_version < "3.9"
|
132
132
|
Requires-Dist: soupsieve~=2.8; python_version >= "3.9"
|
133
|
-
Requires-Dist: beautifulsoup4~=4.
|
133
|
+
Requires-Dist: beautifulsoup4~=4.14.2
|
134
134
|
Requires-Dist: pyotp==2.9.0
|
135
135
|
Requires-Dist: python-xlib==0.33; platform_system == "Linux"
|
136
136
|
Requires-Dist: markdown-it-py==3.0.0; python_version < "3.10"
|
@@ -164,7 +164,7 @@ Provides-Extra: pdfminer
|
|
164
164
|
Requires-Dist: pdfminer.six==20250324; python_version < "3.9" and extra == "pdfminer"
|
165
165
|
Requires-Dist: pdfminer.six==20250506; python_version >= "3.9" and extra == "pdfminer"
|
166
166
|
Requires-Dist: cryptography==39.0.2; python_version < "3.9" and extra == "pdfminer"
|
167
|
-
Requires-Dist: cryptography==46.0.
|
167
|
+
Requires-Dist: cryptography==46.0.2; python_version >= "3.9" and extra == "pdfminer"
|
168
168
|
Requires-Dist: cffi==1.17.1; python_version < "3.9" and extra == "pdfminer"
|
169
169
|
Requires-Dist: cffi==2.0.0; python_version >= "3.9" and extra == "pdfminer"
|
170
170
|
Requires-Dist: pycparser==2.22; python_version < "3.9" and extra == "pdfminer"
|
@@ -309,6 +309,7 @@ with SB(uc=True, test=True, locale="en") as sb:
|
|
309
309
|
sb.activate_cdp_mode(url)
|
310
310
|
sb.sleep(2.2)
|
311
311
|
sb.uc_gui_click_captcha()
|
312
|
+
# (The rest is for testing and demo purposes)
|
312
313
|
sb.assert_text("Username", '[for="user_login"]', timeout=3)
|
313
314
|
sb.assert_element('label[for="user_login"]')
|
314
315
|
sb.highlight('button:contains("Sign in")')
|
@@ -99,6 +99,7 @@ with SB(uc=True, test=True, locale="en") as sb:
|
|
99
99
|
sb.activate_cdp_mode(url)
|
100
100
|
sb.sleep(2.2)
|
101
101
|
sb.uc_gui_click_captcha()
|
102
|
+
# (The rest is for testing and demo purposes)
|
102
103
|
sb.assert_text("Username", '[for="user_login"]', timeout=3)
|
103
104
|
sb.assert_element('label[for="user_login"]')
|
104
105
|
sb.highlight('button:contains("Sign in")')
|
@@ -19,13 +19,13 @@ platformdirs>=4.4.0;python_version>="3.9"
|
|
19
19
|
typing-extensions>=4.13.2
|
20
20
|
sbvirtualdisplay>=1.4.0
|
21
21
|
MarkupSafe==2.1.5;python_version<"3.9"
|
22
|
-
MarkupSafe>=3.0.
|
22
|
+
MarkupSafe>=3.0.3;python_version>="3.9"
|
23
23
|
Jinja2>=3.1.6
|
24
24
|
six>=1.17.0
|
25
25
|
parse>=1.20.2
|
26
26
|
parse-type>=0.6.6
|
27
27
|
colorama>=0.4.6
|
28
|
-
pyyaml>=6.0.
|
28
|
+
pyyaml>=6.0.3
|
29
29
|
pygments>=2.19.2
|
30
30
|
pyreadline3>=3.5.3;platform_system=="Windows"
|
31
31
|
tabcompleter>=1.4.0
|
@@ -68,7 +68,7 @@ parameterized==0.9.0
|
|
68
68
|
behave==1.2.6
|
69
69
|
soupsieve==2.7;python_version<"3.9"
|
70
70
|
soupsieve~=2.8;python_version>="3.9"
|
71
|
-
beautifulsoup4~=4.
|
71
|
+
beautifulsoup4~=4.14.2
|
72
72
|
pyotp==2.9.0
|
73
73
|
python-xlib==0.33;platform_system=="Linux"
|
74
74
|
markdown-it-py==3.0.0;python_version<"3.10"
|
@@ -835,6 +835,7 @@ def uc_open_with_cdp_mode(driver, url=None, **kwargs):
|
|
835
835
|
cdp.wait_for_text = CDPM.wait_for_text
|
836
836
|
cdp.wait_for_text_not_visible = CDPM.wait_for_text_not_visible
|
837
837
|
cdp.wait_for_element_visible = CDPM.wait_for_element_visible
|
838
|
+
cdp.wait_for_element = CDPM.wait_for_element
|
838
839
|
cdp.wait_for_element_not_visible = CDPM.wait_for_element_not_visible
|
839
840
|
cdp.wait_for_element_absent = CDPM.wait_for_element_absent
|
840
841
|
cdp.wait_for_any_of_elements_visible = (
|
@@ -1249,6 +1250,8 @@ def _uc_gui_click_captcha(
|
|
1249
1250
|
ctype=None,
|
1250
1251
|
):
|
1251
1252
|
cdp_mode_on_at_start = __is_cdp_swap_needed(driver)
|
1253
|
+
if cdp_mode_on_at_start and (not ctype or ctype == "cf_t"):
|
1254
|
+
return driver.cdp.gui_click_captcha()
|
1252
1255
|
_on_a_captcha_page = None
|
1253
1256
|
if ctype == "cf_t":
|
1254
1257
|
if not _on_a_cf_turnstile_page(driver):
|
@@ -1363,14 +1366,16 @@ def _uc_gui_click_captcha(
|
|
1363
1366
|
frame = '[style="display: grid;"] div div'
|
1364
1367
|
elif (
|
1365
1368
|
driver.is_element_present('[name*="cf-turnstile-"]')
|
1366
|
-
and driver.is_element_present(
|
1369
|
+
and driver.is_element_present(
|
1370
|
+
".spacer + div div:not([class])"
|
1371
|
+
)
|
1367
1372
|
):
|
1368
|
-
frame = '
|
1373
|
+
frame = '.spacer + div div:not([class])'
|
1369
1374
|
elif (
|
1370
1375
|
driver.is_element_present('[name*="cf-turnstile-"]')
|
1371
|
-
and driver.is_element_present("
|
1376
|
+
and driver.is_element_present(".spacer div:not([class])")
|
1372
1377
|
):
|
1373
|
-
frame = "
|
1378
|
+
frame = ".spacer div:not([class])"
|
1374
1379
|
elif (
|
1375
1380
|
driver.is_element_present('script[src*="challenges.c"]')
|
1376
1381
|
and driver.is_element_present(
|
@@ -1382,6 +1387,10 @@ def _uc_gui_click_captcha(
|
|
1382
1387
|
"div#turnstile-widget div:not([class])"
|
1383
1388
|
):
|
1384
1389
|
frame = "div#turnstile-widget div:not([class])"
|
1390
|
+
elif driver.is_element_present(
|
1391
|
+
"ngx-turnstile div:not([class])"
|
1392
|
+
):
|
1393
|
+
frame = "ngx-turnstile div:not([class])"
|
1385
1394
|
elif driver.is_element_present(
|
1386
1395
|
'form div:not([class]):has(input[name*="cf-turn"])'
|
1387
1396
|
):
|
@@ -1402,6 +1411,14 @@ def _uc_gui_click_captcha(
|
|
1402
1411
|
frame = ".cf-turnstile-wrapper"
|
1403
1412
|
elif driver.is_element_present('[class="cf-turnstile"]'):
|
1404
1413
|
frame = '[class="cf-turnstile"]'
|
1414
|
+
elif driver.is_element_present(
|
1415
|
+
'[id*="turnstile"] div:not([class])'
|
1416
|
+
):
|
1417
|
+
frame = '[id*="turnstile"] div:not([class])'
|
1418
|
+
elif driver.is_element_present(
|
1419
|
+
'[class*="turnstile"] div:not([class])'
|
1420
|
+
):
|
1421
|
+
frame = '[class*="turnstile"] div:not([class])'
|
1405
1422
|
elif driver.is_element_present(
|
1406
1423
|
'[data-callback="onCaptchaSuccess"]'
|
1407
1424
|
):
|
@@ -1453,9 +1470,11 @@ def _uc_gui_click_captcha(
|
|
1453
1470
|
else:
|
1454
1471
|
driver.execute_script(script)
|
1455
1472
|
elif (
|
1456
|
-
driver.is_element_present(
|
1457
|
-
|
1458
|
-
|
1473
|
+
driver.is_element_present(
|
1474
|
+
'form [id*="turnstile"] div:not([class])'
|
1475
|
+
)
|
1476
|
+
or driver.is_element_present(
|
1477
|
+
'form [class*="turnstile"] div:not([class])'
|
1459
1478
|
)
|
1460
1479
|
):
|
1461
1480
|
script = (
|
@@ -1463,12 +1482,35 @@ def _uc_gui_click_captcha(
|
|
1463
1482
|
'form [id*="turnstile"]');
|
1464
1483
|
var index = 0, length = $elements.length;
|
1465
1484
|
for(; index < length; index++){
|
1485
|
+
$elements[index].setAttribute('align', 'left');}
|
1486
|
+
var $elements = document.querySelectorAll(
|
1487
|
+
'form [class*="turnstile"]');
|
1488
|
+
var index = 0, length = $elements.length;
|
1489
|
+
for(; index < length; index++){
|
1466
1490
|
$elements[index].setAttribute('align', 'left');}"""
|
1467
1491
|
)
|
1468
1492
|
if __is_cdp_swap_needed(driver):
|
1469
1493
|
driver.cdp.evaluate(script)
|
1470
1494
|
else:
|
1471
1495
|
driver.execute_script(script)
|
1496
|
+
elif (
|
1497
|
+
driver.is_element_present(
|
1498
|
+
'[style*="text-align: center;"] div:not([class])'
|
1499
|
+
)
|
1500
|
+
):
|
1501
|
+
script = (
|
1502
|
+
"""var $elements = document.querySelectorAll(
|
1503
|
+
'[style*="text-align: center;"]');
|
1504
|
+
var index = 0, length = $elements.length;
|
1505
|
+
for(; index < length; index++){
|
1506
|
+
the_style = $elements[index].getAttribute('style');
|
1507
|
+
new_style = the_style.replaceAll('center', 'left');
|
1508
|
+
$elements[index].setAttribute('style', new_style);}"""
|
1509
|
+
)
|
1510
|
+
if __is_cdp_swap_needed(driver):
|
1511
|
+
driver.cdp.evaluate(script)
|
1512
|
+
else:
|
1513
|
+
driver.execute_script(script)
|
1472
1514
|
if not is_in_frame or needs_switch:
|
1473
1515
|
# Currently not in frame (or nested frame outside CF one)
|
1474
1516
|
try:
|
@@ -1688,9 +1730,9 @@ def _uc_gui_handle_captcha_(driver, frame="iframe", ctype=None):
|
|
1688
1730
|
frame = '[data-callback="onCaptchaSuccess"]'
|
1689
1731
|
elif (
|
1690
1732
|
driver.is_element_present('[name*="cf-turnstile-"]')
|
1691
|
-
and driver.is_element_present("
|
1733
|
+
and driver.is_element_present(".spacer div:not([class])")
|
1692
1734
|
):
|
1693
|
-
frame = "
|
1735
|
+
frame = ".spacer div:not([class])"
|
1694
1736
|
elif (
|
1695
1737
|
driver.is_element_present('script[src*="challenges.c"]')
|
1696
1738
|
and driver.is_element_present(
|
@@ -301,28 +301,7 @@ class CDPMethods():
|
|
301
301
|
self.__add_light_pause()
|
302
302
|
selector = self.__convert_to_css_if_xpath(selector)
|
303
303
|
if (":contains(" in selector):
|
304
|
-
|
305
|
-
text = selector.split(":contains(")[1].split(")")[0][1:-1]
|
306
|
-
with suppress(Exception):
|
307
|
-
new_timeout = timeout
|
308
|
-
if new_timeout < 1:
|
309
|
-
new_timeout = 1
|
310
|
-
self.loop.run_until_complete(
|
311
|
-
self.page.select(tag_name, timeout=new_timeout)
|
312
|
-
)
|
313
|
-
self.loop.run_until_complete(
|
314
|
-
self.page.find(text, timeout=new_timeout)
|
315
|
-
)
|
316
|
-
elements = self.find_elements_by_text(text, tag_name=tag_name)
|
317
|
-
if not elements:
|
318
|
-
plural = "s"
|
319
|
-
if timeout == 1:
|
320
|
-
plural = ""
|
321
|
-
msg = "\n Element {%s} was not found after %s second%s!"
|
322
|
-
message = msg % (selector, timeout, plural)
|
323
|
-
raise Exception(message)
|
324
|
-
element = self.__add_sync_methods(elements[0])
|
325
|
-
return element
|
304
|
+
return self.find_element(selector, timeout=timeout)
|
326
305
|
failure = False
|
327
306
|
try:
|
328
307
|
element = self.loop.run_until_complete(
|
@@ -1708,9 +1687,9 @@ class CDPMethods():
|
|
1708
1687
|
selector = '[class*=spacer] + div div'
|
1709
1688
|
elif (
|
1710
1689
|
self.is_element_present('[name*="cf-turnstile-"]')
|
1711
|
-
and self.is_element_present("
|
1690
|
+
and self.is_element_present(".spacer div:not([class])")
|
1712
1691
|
):
|
1713
|
-
selector = "
|
1692
|
+
selector = ".spacer div:not([class])"
|
1714
1693
|
elif (
|
1715
1694
|
self.is_element_present('script[src*="challenges.c"]')
|
1716
1695
|
and self.is_element_present(
|
@@ -1722,6 +1701,8 @@ class CDPMethods():
|
|
1722
1701
|
"div#turnstile-widget div:not([class])"
|
1723
1702
|
):
|
1724
1703
|
selector = "div#turnstile-widget div:not([class])"
|
1704
|
+
elif self.is_element_present("ngx-turnstile div:not([class])"):
|
1705
|
+
selector = "ngx-turnstile div:not([class])"
|
1725
1706
|
elif self.is_element_present(
|
1726
1707
|
'form div:not([class]):has(input[name*="cf-turn"])'
|
1727
1708
|
):
|
@@ -1742,6 +1723,14 @@ class CDPMethods():
|
|
1742
1723
|
selector = ".cf-turnstile-wrapper"
|
1743
1724
|
elif self.is_element_present('[class="cf-turnstile"]'):
|
1744
1725
|
selector = '[class="cf-turnstile"]'
|
1726
|
+
elif self.is_element_present(
|
1727
|
+
'[id*="turnstile"] div:not([class])'
|
1728
|
+
):
|
1729
|
+
selector = '[id*="turnstile"] div:not([class])'
|
1730
|
+
elif self.is_element_present(
|
1731
|
+
'[class*="turnstile"] div:not([class])'
|
1732
|
+
):
|
1733
|
+
selector = '[class*="turnstile"] div:not([class])'
|
1745
1734
|
elif self.is_element_present(
|
1746
1735
|
'[data-callback="onCaptchaSuccess"]'
|
1747
1736
|
):
|
@@ -1793,9 +1782,11 @@ class CDPMethods():
|
|
1793
1782
|
self.loop.run_until_complete(self.page.evaluate(script))
|
1794
1783
|
self.loop.run_until_complete(self.page.wait())
|
1795
1784
|
elif (
|
1796
|
-
self.is_element_present(
|
1797
|
-
|
1798
|
-
|
1785
|
+
self.is_element_present(
|
1786
|
+
'form [id*="turnstile"] div:not([class])'
|
1787
|
+
)
|
1788
|
+
or self.is_element_present(
|
1789
|
+
'form [class*="turnstile"] div:not([class])'
|
1799
1790
|
)
|
1800
1791
|
):
|
1801
1792
|
script = (
|
@@ -1803,11 +1794,33 @@ class CDPMethods():
|
|
1803
1794
|
'form [id*="turnstile"]');
|
1804
1795
|
var index = 0, length = $elements.length;
|
1805
1796
|
for(; index < length; index++){
|
1797
|
+
$elements[index].setAttribute('align', 'left');}
|
1798
|
+
var $elements = document.querySelectorAll(
|
1799
|
+
'form [class*="turnstile"]');
|
1800
|
+
var index = 0, length = $elements.length;
|
1801
|
+
for(; index < length; index++){
|
1806
1802
|
$elements[index].setAttribute('align', 'left');}"""
|
1807
1803
|
)
|
1808
1804
|
with suppress(Exception):
|
1809
1805
|
self.loop.run_until_complete(self.page.evaluate(script))
|
1810
1806
|
self.loop.run_until_complete(self.page.wait())
|
1807
|
+
elif (
|
1808
|
+
self.is_element_present(
|
1809
|
+
'[style*="text-align: center;"] div:not([class])'
|
1810
|
+
)
|
1811
|
+
):
|
1812
|
+
script = (
|
1813
|
+
"""var $elements = document.querySelectorAll(
|
1814
|
+
'[style*="text-align: center;"]');
|
1815
|
+
var index = 0, length = $elements.length;
|
1816
|
+
for(; index < length; index++){
|
1817
|
+
the_style = $elements[index].getAttribute('style');
|
1818
|
+
new_style = the_style.replaceAll('center', 'left');
|
1819
|
+
$elements[index].setAttribute('style', new_style);}"""
|
1820
|
+
)
|
1821
|
+
with suppress(Exception):
|
1822
|
+
self.loop.run_until_complete(self.page.evaluate(script))
|
1823
|
+
self.loop.run_until_complete(self.page.wait())
|
1811
1824
|
with suppress(Exception):
|
1812
1825
|
time.sleep(0.08)
|
1813
1826
|
element_rect = self.get_gui_element_rect(selector, timeout=1)
|
@@ -2163,6 +2176,10 @@ class CDPMethods():
|
|
2163
2176
|
time.sleep(0.1)
|
2164
2177
|
raise Exception("Element {%s} was not visible!" % selector)
|
2165
2178
|
|
2179
|
+
def wait_for_element(self, selector, **kwargs):
|
2180
|
+
"""Same as wait_for_element_visible()"""
|
2181
|
+
return self.wait_for_element_visible(selector, **kwargs)
|
2182
|
+
|
2166
2183
|
def wait_for_element_not_visible(self, selector, timeout=None):
|
2167
2184
|
"""Wait for element to not be visible on page. (May still be in DOM)"""
|
2168
2185
|
if not timeout:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.41.
|
3
|
+
Version: 4.41.11
|
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
|
@@ -81,13 +81,13 @@ Requires-Dist: platformdirs>=4.4.0; python_version >= "3.9"
|
|
81
81
|
Requires-Dist: typing-extensions>=4.13.2
|
82
82
|
Requires-Dist: sbvirtualdisplay>=1.4.0
|
83
83
|
Requires-Dist: MarkupSafe==2.1.5; python_version < "3.9"
|
84
|
-
Requires-Dist: MarkupSafe>=3.0.
|
84
|
+
Requires-Dist: MarkupSafe>=3.0.3; python_version >= "3.9"
|
85
85
|
Requires-Dist: Jinja2>=3.1.6
|
86
86
|
Requires-Dist: six>=1.17.0
|
87
87
|
Requires-Dist: parse>=1.20.2
|
88
88
|
Requires-Dist: parse-type>=0.6.6
|
89
89
|
Requires-Dist: colorama>=0.4.6
|
90
|
-
Requires-Dist: pyyaml>=6.0.
|
90
|
+
Requires-Dist: pyyaml>=6.0.3
|
91
91
|
Requires-Dist: pygments>=2.19.2
|
92
92
|
Requires-Dist: pyreadline3>=3.5.3; platform_system == "Windows"
|
93
93
|
Requires-Dist: tabcompleter>=1.4.0
|
@@ -130,7 +130,7 @@ Requires-Dist: parameterized==0.9.0
|
|
130
130
|
Requires-Dist: behave==1.2.6
|
131
131
|
Requires-Dist: soupsieve==2.7; python_version < "3.9"
|
132
132
|
Requires-Dist: soupsieve~=2.8; python_version >= "3.9"
|
133
|
-
Requires-Dist: beautifulsoup4~=4.
|
133
|
+
Requires-Dist: beautifulsoup4~=4.14.2
|
134
134
|
Requires-Dist: pyotp==2.9.0
|
135
135
|
Requires-Dist: python-xlib==0.33; platform_system == "Linux"
|
136
136
|
Requires-Dist: markdown-it-py==3.0.0; python_version < "3.10"
|
@@ -164,7 +164,7 @@ Provides-Extra: pdfminer
|
|
164
164
|
Requires-Dist: pdfminer.six==20250324; python_version < "3.9" and extra == "pdfminer"
|
165
165
|
Requires-Dist: pdfminer.six==20250506; python_version >= "3.9" and extra == "pdfminer"
|
166
166
|
Requires-Dist: cryptography==39.0.2; python_version < "3.9" and extra == "pdfminer"
|
167
|
-
Requires-Dist: cryptography==46.0.
|
167
|
+
Requires-Dist: cryptography==46.0.2; python_version >= "3.9" and extra == "pdfminer"
|
168
168
|
Requires-Dist: cffi==1.17.1; python_version < "3.9" and extra == "pdfminer"
|
169
169
|
Requires-Dist: cffi==2.0.0; python_version >= "3.9" and extra == "pdfminer"
|
170
170
|
Requires-Dist: pycparser==2.22; python_version < "3.9" and extra == "pdfminer"
|
@@ -309,6 +309,7 @@ with SB(uc=True, test=True, locale="en") as sb:
|
|
309
309
|
sb.activate_cdp_mode(url)
|
310
310
|
sb.sleep(2.2)
|
311
311
|
sb.uc_gui_click_captcha()
|
312
|
+
# (The rest is for testing and demo purposes)
|
312
313
|
sb.assert_text("Username", '[for="user_login"]', timeout=3)
|
313
314
|
sb.assert_element('label[for="user_login"]')
|
314
315
|
sb.highlight('button:contains("Sign in")')
|
@@ -13,7 +13,7 @@ six>=1.17.0
|
|
13
13
|
parse>=1.20.2
|
14
14
|
parse-type>=0.6.6
|
15
15
|
colorama>=0.4.6
|
16
|
-
pyyaml>=6.0.
|
16
|
+
pyyaml>=6.0.3
|
17
17
|
pygments>=2.19.2
|
18
18
|
tabcompleter>=1.4.0
|
19
19
|
pdbp>=1.7.1
|
@@ -34,7 +34,7 @@ pytest-metadata==3.1.1
|
|
34
34
|
pytest-ordering==0.6
|
35
35
|
parameterized==0.9.0
|
36
36
|
behave==1.2.6
|
37
|
-
beautifulsoup4~=4.
|
37
|
+
beautifulsoup4~=4.14.2
|
38
38
|
pyotp==2.9.0
|
39
39
|
mdurl==0.1.2
|
40
40
|
rich<15,>=14.1.0
|
@@ -77,7 +77,7 @@ pip>=25.2
|
|
77
77
|
websockets>=15.0.1
|
78
78
|
filelock>=3.19.1
|
79
79
|
platformdirs>=4.4.0
|
80
|
-
MarkupSafe>=3.0.
|
80
|
+
MarkupSafe>=3.0.3
|
81
81
|
requests~=2.32.5
|
82
82
|
trio~=0.30.0
|
83
83
|
cssselect==1.3.0
|
@@ -140,7 +140,7 @@ pycparser==2.22
|
|
140
140
|
|
141
141
|
[pdfminer:python_version >= "3.9"]
|
142
142
|
pdfminer.six==20250506
|
143
|
-
cryptography==46.0.
|
143
|
+
cryptography==46.0.2
|
144
144
|
cffi==2.0.0
|
145
145
|
pycparser==2.23
|
146
146
|
|
@@ -167,13 +167,13 @@ setup(
|
|
167
167
|
'typing-extensions>=4.13.2',
|
168
168
|
"sbvirtualdisplay>=1.4.0",
|
169
169
|
'MarkupSafe==2.1.5;python_version<"3.9"',
|
170
|
-
'MarkupSafe>=3.0.
|
170
|
+
'MarkupSafe>=3.0.3;python_version>="3.9"',
|
171
171
|
"Jinja2>=3.1.6",
|
172
172
|
"six>=1.17.0",
|
173
173
|
'parse>=1.20.2',
|
174
174
|
'parse-type>=0.6.6',
|
175
175
|
'colorama>=0.4.6',
|
176
|
-
'pyyaml>=6.0.
|
176
|
+
'pyyaml>=6.0.3',
|
177
177
|
'pygments>=2.19.2',
|
178
178
|
'pyreadline3>=3.5.3;platform_system=="Windows"',
|
179
179
|
"tabcompleter>=1.4.0",
|
@@ -216,7 +216,7 @@ setup(
|
|
216
216
|
"behave==1.2.6", # Newer ones had issues
|
217
217
|
'soupsieve==2.7;python_version<"3.9"',
|
218
218
|
'soupsieve~=2.8;python_version>="3.9"',
|
219
|
-
"beautifulsoup4~=4.
|
219
|
+
"beautifulsoup4~=4.14.2",
|
220
220
|
'pyotp==2.9.0',
|
221
221
|
'python-xlib==0.33;platform_system=="Linux"',
|
222
222
|
'markdown-it-py==3.0.0;python_version<"3.10"',
|
@@ -270,7 +270,7 @@ setup(
|
|
270
270
|
'pdfminer.six==20250324;python_version<"3.9"',
|
271
271
|
'pdfminer.six==20250506;python_version>="3.9"',
|
272
272
|
'cryptography==39.0.2;python_version<"3.9"',
|
273
|
-
'cryptography==46.0.
|
273
|
+
'cryptography==46.0.2;python_version>="3.9"',
|
274
274
|
'cffi==1.17.1;python_version<"3.9"',
|
275
275
|
'cffi==2.0.0;python_version>="3.9"',
|
276
276
|
'pycparser==2.22;python_version<"3.9"',
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.41.9 → seleniumbase-4.41.11}/seleniumbase/undetected/cdp_driver/_contradict.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{seleniumbase-4.41.9 → seleniumbase-4.41.11}/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.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/__init__.py
RENAMED
File without changes
|
File without changes
|
{seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/font_color
RENAMED
File without changes
|
File without changes
|
File without changes
|
{seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/grid_hub.py
RENAMED
File without changes
|
{seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/grid_node.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat
RENAMED
File without changes
|
{seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh
RENAMED
File without changes
|
{seleniumbase-4.41.9 → seleniumbase-4.41.11}/seleniumbase/utilities/selenium_ide/__init__.py
RENAMED
File without changes
|
{seleniumbase-4.41.9 → seleniumbase-4.41.11}/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
|