seleniumbase 4.49.3__tar.gz → 4.49.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {seleniumbase-4.49.3/seleniumbase.egg-info → seleniumbase-4.49.4}/PKG-INFO +15 -12
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/README.md +13 -10
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/requirements.txt +1 -1
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/__version__.py +1 -1
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/__init__.py +3 -1
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/cdp_driver/browser.py +3 -1
- {seleniumbase-4.49.3 → seleniumbase-4.49.4/seleniumbase.egg-info}/PKG-INFO +15 -12
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase.egg-info/requires.txt +1 -1
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/setup.py +1 -1
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/.gitignore +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/LICENSE +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/MANIFEST.in +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/install.sh +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/pyproject.toml +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/pytest.ini +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/sbase/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/sbase/__main__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/sbase/steps.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/__main__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/behave/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/behave/behave_helper.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/behave/behave_sb.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/behave/steps.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/common/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/common/decorators.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/common/encryption.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/common/exceptions.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/common/obfuscate.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/common/unobfuscate.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/config/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/config/ad_block_list.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/config/proxy_list.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/config/settings.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/console_scripts/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/console_scripts/logo_helper.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/console_scripts/rich_helper.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/console_scripts/run.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/console_scripts/sb_commander.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/console_scripts/sb_install.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/console_scripts/sb_objectify.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/console_scripts/sb_print.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/console_scripts/sb_recorder.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/application_manager.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/browser_launcher.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/capabilities_parser.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/colored_traceback.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/create_db_tables.sql +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/detect_b_ver.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/download_helper.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/encoded_images.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/jqc_helper.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/log_helper.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/mysql.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/nest_asyncio.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/proxy_helper.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/recorder_helper.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/report_helper.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/s3_manager.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/sb_cdp.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/sb_driver.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/session_helper.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/settings_parser.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/style_sheet.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/testcase_manager.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/tour_helper.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/core/visual_helper.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/drivers/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/drivers/atlas_drivers/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/drivers/brave_drivers/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/drivers/cft_drivers/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/drivers/chromium_drivers/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/drivers/chs_drivers/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/drivers/comet_drivers/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/drivers/opera_drivers/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/extensions/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/extensions/ad_block.zip +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/extensions/disable_csp.zip +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/extensions/recorder.zip +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/extensions/sbase_ext.zip +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/fixtures/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/fixtures/base_case.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/fixtures/constants.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/fixtures/css_to_xpath.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/fixtures/errors.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/fixtures/js_utils.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/fixtures/page_actions.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/fixtures/page_utils.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/fixtures/shared_utils.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/fixtures/unittest_helper.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/fixtures/words.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/fixtures/xpath_to_css.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/js_code/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/js_code/active_css_js.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/js_code/live_js.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/js_code/recorder_js.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/masterqa/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/masterqa/master_qa.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/plugins/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/plugins/base_plugin.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/plugins/basic_test_info.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/plugins/driver_manager.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/plugins/page_source.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/plugins/pytest_plugin.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/plugins/sb_manager.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/plugins/screen_shots.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/plugins/selenium_plugin.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/resources/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/translate/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/translate/chinese.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/translate/dutch.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/translate/french.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/translate/italian.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/translate/japanese.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/translate/korean.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/translate/master_dict.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/translate/portuguese.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/translate/russian.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/translate/spanish.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/translate/translator.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/cdp.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/cdp_driver/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/cdp_driver/_contradict.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/cdp_driver/cdp_util.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/cdp_driver/config.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/cdp_driver/connection.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/cdp_driver/element.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/cdp_driver/tab.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/dprocess.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/options.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/patcher.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/reactor.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/webelement.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_grid/font_color +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase.egg-info/SOURCES.txt +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase.egg-info/dependency_links.txt +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase.egg-info/entry_points.txt +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase.egg-info/top_level.txt +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/setup.cfg +0 -0
- {seleniumbase-4.49.3 → seleniumbase-4.49.4}/virtualenv_install.sh +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: seleniumbase
|
|
3
|
-
Version: 4.49.
|
|
3
|
+
Version: 4.49.4
|
|
4
4
|
Summary: A framework for stealthy Chromium automation with CDP Mode. Includes CAPTCHA-bypass, E2E Testing, and a Playwright integration.
|
|
5
5
|
Home-page: https://github.com/seleniumbase/SeleniumBase
|
|
6
6
|
Author: Michael Mintz
|
|
@@ -59,7 +59,7 @@ Requires-Python: >=3.9
|
|
|
59
59
|
Description-Content-Type: text/markdown
|
|
60
60
|
License-File: LICENSE
|
|
61
61
|
Requires-Dist: pip>=26.0.1; python_version < "3.10"
|
|
62
|
-
Requires-Dist: pip>=26.1.
|
|
62
|
+
Requires-Dist: pip>=26.1.2; python_version >= "3.10"
|
|
63
63
|
Requires-Dist: packaging>=26.2
|
|
64
64
|
Requires-Dist: setuptools~=70.2; python_version < "3.10"
|
|
65
65
|
Requires-Dist: setuptools>=82.0.1; python_version >= "3.10"
|
|
@@ -262,7 +262,7 @@ Dynamic: summary
|
|
|
262
262
|
|
|
263
263
|
--------
|
|
264
264
|
|
|
265
|
-
<b>📝 Here's a Python example that uses <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md#-pure-cdp-mode-sb_cdp">Pure CDP Mode</a> (<code>sb_cdp</code>):</b><br />(It navigates to Browserscan
|
|
265
|
+
<b>📝 Here's a Python example that uses <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md#-pure-cdp-mode-sb_cdp">Pure CDP Mode</a> (<code>sb_cdp</code>):</b><br />(It navigates to Browserscan where it bypasses bot-detection.)
|
|
266
266
|
|
|
267
267
|
```python
|
|
268
268
|
from seleniumbase import sb_cdp
|
|
@@ -275,7 +275,7 @@ sb.quit()
|
|
|
275
275
|
|
|
276
276
|
<p align="center">
|
|
277
277
|
<img src="https://seleniumbase.github.io/cdn/img/results_normal.jpg" width="578" alt="BrowserScan Test Results: Normal">
|
|
278
|
-
<br><em>(All BrowserScan bot-detection checks were passed successfully.)</em>
|
|
278
|
+
<br><em>(All BrowserScan bot-detection checks were passed successfully.)</em></br>
|
|
279
279
|
</p>
|
|
280
280
|
|
|
281
281
|
<b>🎭 Here's an example script that uses <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/playwright/ReadMe.md"><span translate="no">Stealthy Playwright Mode</span></a>:</b><br />(Playwright connects to a stealthy SeleniumBase browser session.)
|
|
@@ -338,7 +338,7 @@ for element in elements:
|
|
|
338
338
|
|
|
339
339
|
<p align="center">
|
|
340
340
|
<img src="https://seleniumbase.github.io/other/sb_architecture.png" width="646" alt="Stealthy architecture flowchart">
|
|
341
|
-
<br><em>(For maximum stealth, use <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md">CDP Mode</a>, which includes <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/playwright/ReadMe.md">Stealthy Playwright Mode</a
|
|
341
|
+
<br><em>(For maximum stealth, use <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md">CDP Mode</a>, which includes <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/playwright/ReadMe.md">Stealthy Playwright Mode</a>.)</em></br>
|
|
342
342
|
</p>
|
|
343
343
|
|
|
344
344
|
--------
|
|
@@ -364,7 +364,7 @@ sb = sb_cdp.Chrome(url, use_chromium=True)
|
|
|
364
364
|
|
|
365
365
|
--------
|
|
366
366
|
|
|
367
|
-
<p align="left"><b>📝 <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py" target="_blank">This example</a> saves Google Search results with UC + CDP Mode:</b><br />(Results are saved as PDF, HTML, and PNG files)</p>
|
|
367
|
+
<p align="left"><b>📝 <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py" target="_blank">This example</a> saves Google Search results with UC + CDP Mode:</b><br />(Results are saved as PDF, HTML, and PNG files to <code>./latest_logs/</code>)</p>
|
|
368
368
|
|
|
369
369
|
```python
|
|
370
370
|
from seleniumbase import SB
|
|
@@ -385,7 +385,7 @@ with SB(uc=True, test=True) as sb:
|
|
|
385
385
|
|
|
386
386
|
--------
|
|
387
387
|
|
|
388
|
-
<p align="left"><b>📝 <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_gitlab.py" target="_blank">This example</a> bypasses Cloudflare's challenge page with UC + CDP Mode:</b></p>
|
|
388
|
+
<p align="left"><b>📝 <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_gitlab.py" target="_blank">This example</a> bypasses Cloudflare's challenge page with UC + CDP Mode:</b><br />(If the Turnstile isn't bypassed automatically, <b><code>sb.solve_captcha()</code></b> handles it.)</p>
|
|
389
389
|
|
|
390
390
|
```python
|
|
391
391
|
from seleniumbase import SB
|
|
@@ -403,9 +403,12 @@ with SB(uc=True, test=True, locale="en") as sb:
|
|
|
403
403
|
sb.post_message("SeleniumBase wasn't detected", duration=4)
|
|
404
404
|
```
|
|
405
405
|
|
|
406
|
+
<p align="center">
|
|
406
407
|
<img src="https://seleniumbase.github.io/other/cf_sec.jpg" alt="SeleniumBase" width="346"> <img src="https://seleniumbase.github.io/other/gitlab_bypass.png" alt="SeleniumBase" width="300">
|
|
408
|
+
<br><em>(Successfully bypassed bot-detection on a Cloudflare challenge page.)</em></br>
|
|
409
|
+
</p>
|
|
407
410
|
|
|
408
|
-
|
|
411
|
+
💡 <b><code>sb.solve_captcha()</code></b> handles CAPTCHAs that aren't bypassed automatically.<br />(If no CAPTCHA is present on the current page, then nothing happens.)
|
|
409
412
|
|
|
410
413
|
--------
|
|
411
414
|
|
|
@@ -703,10 +706,10 @@ pip install -e .
|
|
|
703
706
|
<summary> ▶️ Here's sample output from a chromedriver download. (<b>click to expand</b>)</summary>
|
|
704
707
|
|
|
705
708
|
```zsh
|
|
706
|
-
*** chromedriver to download =
|
|
709
|
+
*** chromedriver to download = 148.0.7778.178 (Latest Stable)
|
|
707
710
|
|
|
708
711
|
Downloading chromedriver-mac-arm64.zip from:
|
|
709
|
-
https://storage.googleapis.com/chrome-for-testing-public/
|
|
712
|
+
https://storage.googleapis.com/chrome-for-testing-public/148.0.7778.178/mac-arm64/chromedriver-mac-arm64.zip ...
|
|
710
713
|
Download Complete!
|
|
711
714
|
|
|
712
715
|
Extracting ['chromedriver'] from chromedriver-mac-arm64.zip ...
|
|
@@ -716,8 +719,8 @@ The file [chromedriver] was saved to:
|
|
|
716
719
|
~/github/SeleniumBase/seleniumbase/drivers/
|
|
717
720
|
chromedriver
|
|
718
721
|
|
|
719
|
-
Making [chromedriver
|
|
720
|
-
[chromedriver
|
|
722
|
+
Making [chromedriver 148.0.7778.178] executable ...
|
|
723
|
+
[chromedriver 148.0.7778.178] is now ready for use!
|
|
721
724
|
```
|
|
722
725
|
|
|
723
726
|
</details>
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
|
|
61
61
|
--------
|
|
62
62
|
|
|
63
|
-
<b>📝 Here's a Python example that uses <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md#-pure-cdp-mode-sb_cdp">Pure CDP Mode</a> (<code>sb_cdp</code>):</b><br />(It navigates to Browserscan
|
|
63
|
+
<b>📝 Here's a Python example that uses <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md#-pure-cdp-mode-sb_cdp">Pure CDP Mode</a> (<code>sb_cdp</code>):</b><br />(It navigates to Browserscan where it bypasses bot-detection.)
|
|
64
64
|
|
|
65
65
|
```python
|
|
66
66
|
from seleniumbase import sb_cdp
|
|
@@ -73,7 +73,7 @@ sb.quit()
|
|
|
73
73
|
|
|
74
74
|
<p align="center">
|
|
75
75
|
<img src="https://seleniumbase.github.io/cdn/img/results_normal.jpg" width="578" alt="BrowserScan Test Results: Normal">
|
|
76
|
-
<br><em>(All BrowserScan bot-detection checks were passed successfully.)</em>
|
|
76
|
+
<br><em>(All BrowserScan bot-detection checks were passed successfully.)</em></br>
|
|
77
77
|
</p>
|
|
78
78
|
|
|
79
79
|
<b>🎭 Here's an example script that uses <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/playwright/ReadMe.md"><span translate="no">Stealthy Playwright Mode</span></a>:</b><br />(Playwright connects to a stealthy SeleniumBase browser session.)
|
|
@@ -136,7 +136,7 @@ for element in elements:
|
|
|
136
136
|
|
|
137
137
|
<p align="center">
|
|
138
138
|
<img src="https://seleniumbase.github.io/other/sb_architecture.png" width="646" alt="Stealthy architecture flowchart">
|
|
139
|
-
<br><em>(For maximum stealth, use <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md">CDP Mode</a>, which includes <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/playwright/ReadMe.md">Stealthy Playwright Mode</a
|
|
139
|
+
<br><em>(For maximum stealth, use <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md">CDP Mode</a>, which includes <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/playwright/ReadMe.md">Stealthy Playwright Mode</a>.)</em></br>
|
|
140
140
|
</p>
|
|
141
141
|
|
|
142
142
|
--------
|
|
@@ -162,7 +162,7 @@ sb = sb_cdp.Chrome(url, use_chromium=True)
|
|
|
162
162
|
|
|
163
163
|
--------
|
|
164
164
|
|
|
165
|
-
<p align="left"><b>📝 <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py" target="_blank">This example</a> saves Google Search results with UC + CDP Mode:</b><br />(Results are saved as PDF, HTML, and PNG files)</p>
|
|
165
|
+
<p align="left"><b>📝 <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py" target="_blank">This example</a> saves Google Search results with UC + CDP Mode:</b><br />(Results are saved as PDF, HTML, and PNG files to <code>./latest_logs/</code>)</p>
|
|
166
166
|
|
|
167
167
|
```python
|
|
168
168
|
from seleniumbase import SB
|
|
@@ -183,7 +183,7 @@ with SB(uc=True, test=True) as sb:
|
|
|
183
183
|
|
|
184
184
|
--------
|
|
185
185
|
|
|
186
|
-
<p align="left"><b>📝 <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_gitlab.py" target="_blank">This example</a> bypasses Cloudflare's challenge page with UC + CDP Mode:</b></p>
|
|
186
|
+
<p align="left"><b>📝 <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_gitlab.py" target="_blank">This example</a> bypasses Cloudflare's challenge page with UC + CDP Mode:</b><br />(If the Turnstile isn't bypassed automatically, <b><code>sb.solve_captcha()</code></b> handles it.)</p>
|
|
187
187
|
|
|
188
188
|
```python
|
|
189
189
|
from seleniumbase import SB
|
|
@@ -201,9 +201,12 @@ with SB(uc=True, test=True, locale="en") as sb:
|
|
|
201
201
|
sb.post_message("SeleniumBase wasn't detected", duration=4)
|
|
202
202
|
```
|
|
203
203
|
|
|
204
|
+
<p align="center">
|
|
204
205
|
<img src="https://seleniumbase.github.io/other/cf_sec.jpg" alt="SeleniumBase" width="346"> <img src="https://seleniumbase.github.io/other/gitlab_bypass.png" alt="SeleniumBase" width="300">
|
|
206
|
+
<br><em>(Successfully bypassed bot-detection on a Cloudflare challenge page.)</em></br>
|
|
207
|
+
</p>
|
|
205
208
|
|
|
206
|
-
|
|
209
|
+
💡 <b><code>sb.solve_captcha()</code></b> handles CAPTCHAs that aren't bypassed automatically.<br />(If no CAPTCHA is present on the current page, then nothing happens.)
|
|
207
210
|
|
|
208
211
|
--------
|
|
209
212
|
|
|
@@ -501,10 +504,10 @@ pip install -e .
|
|
|
501
504
|
<summary> ▶️ Here's sample output from a chromedriver download. (<b>click to expand</b>)</summary>
|
|
502
505
|
|
|
503
506
|
```zsh
|
|
504
|
-
*** chromedriver to download =
|
|
507
|
+
*** chromedriver to download = 148.0.7778.178 (Latest Stable)
|
|
505
508
|
|
|
506
509
|
Downloading chromedriver-mac-arm64.zip from:
|
|
507
|
-
https://storage.googleapis.com/chrome-for-testing-public/
|
|
510
|
+
https://storage.googleapis.com/chrome-for-testing-public/148.0.7778.178/mac-arm64/chromedriver-mac-arm64.zip ...
|
|
508
511
|
Download Complete!
|
|
509
512
|
|
|
510
513
|
Extracting ['chromedriver'] from chromedriver-mac-arm64.zip ...
|
|
@@ -514,8 +517,8 @@ The file [chromedriver] was saved to:
|
|
|
514
517
|
~/github/SeleniumBase/seleniumbase/drivers/
|
|
515
518
|
chromedriver
|
|
516
519
|
|
|
517
|
-
Making [chromedriver
|
|
518
|
-
[chromedriver
|
|
520
|
+
Making [chromedriver 148.0.7778.178] executable ...
|
|
521
|
+
[chromedriver 148.0.7778.178] is now ready for use!
|
|
519
522
|
```
|
|
520
523
|
|
|
521
524
|
</details>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# seleniumbase package
|
|
2
|
-
__version__ = "4.49.
|
|
2
|
+
__version__ = "4.49.4"
|
|
@@ -305,7 +305,7 @@ class Chrome(selenium.webdriver.chrome.webdriver.WebDriver):
|
|
|
305
305
|
self._process_create_time = (
|
|
306
306
|
psutil.Process(self._process_pid).create_time()
|
|
307
307
|
)
|
|
308
|
-
except psutil.NoSuchProcess:
|
|
308
|
+
except (psutil.NoSuchProcess, PermissionError):
|
|
309
309
|
self._process_create_time = None
|
|
310
310
|
service_ = None
|
|
311
311
|
log_output = subprocess.PIPE
|
|
@@ -415,6 +415,8 @@ class Chrome(selenium.webdriver.chrome.webdriver.WebDriver):
|
|
|
415
415
|
return process.status() != psutil.STATUS_ZOMBIE
|
|
416
416
|
except psutil.NoSuchProcess:
|
|
417
417
|
return False
|
|
418
|
+
except PermissionError:
|
|
419
|
+
return None
|
|
418
420
|
|
|
419
421
|
def remove_cdc_props_as_needed(self):
|
|
420
422
|
cdc_props = self._get_cdc_props()
|
|
@@ -279,6 +279,8 @@ class Browser:
|
|
|
279
279
|
return process.status() != psutil.STATUS_ZOMBIE
|
|
280
280
|
except psutil.NoSuchProcess:
|
|
281
281
|
return False
|
|
282
|
+
except PermissionError:
|
|
283
|
+
return None
|
|
282
284
|
|
|
283
285
|
def get_rd_host(self):
|
|
284
286
|
return self.config.host
|
|
@@ -648,7 +650,7 @@ class Browser:
|
|
|
648
650
|
self._process_create_time = (
|
|
649
651
|
psutil.Process(self._process_pid).create_time()
|
|
650
652
|
)
|
|
651
|
-
except psutil.NoSuchProcess:
|
|
653
|
+
except (psutil.NoSuchProcess, PermissionError):
|
|
652
654
|
self._process_create_time = None
|
|
653
655
|
await asyncio.sleep(0.05)
|
|
654
656
|
self._http = HTTPApi((self.config.host, self.config.port))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: seleniumbase
|
|
3
|
-
Version: 4.49.
|
|
3
|
+
Version: 4.49.4
|
|
4
4
|
Summary: A framework for stealthy Chromium automation with CDP Mode. Includes CAPTCHA-bypass, E2E Testing, and a Playwright integration.
|
|
5
5
|
Home-page: https://github.com/seleniumbase/SeleniumBase
|
|
6
6
|
Author: Michael Mintz
|
|
@@ -59,7 +59,7 @@ Requires-Python: >=3.9
|
|
|
59
59
|
Description-Content-Type: text/markdown
|
|
60
60
|
License-File: LICENSE
|
|
61
61
|
Requires-Dist: pip>=26.0.1; python_version < "3.10"
|
|
62
|
-
Requires-Dist: pip>=26.1.
|
|
62
|
+
Requires-Dist: pip>=26.1.2; python_version >= "3.10"
|
|
63
63
|
Requires-Dist: packaging>=26.2
|
|
64
64
|
Requires-Dist: setuptools~=70.2; python_version < "3.10"
|
|
65
65
|
Requires-Dist: setuptools>=82.0.1; python_version >= "3.10"
|
|
@@ -262,7 +262,7 @@ Dynamic: summary
|
|
|
262
262
|
|
|
263
263
|
--------
|
|
264
264
|
|
|
265
|
-
<b>📝 Here's a Python example that uses <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md#-pure-cdp-mode-sb_cdp">Pure CDP Mode</a> (<code>sb_cdp</code>):</b><br />(It navigates to Browserscan
|
|
265
|
+
<b>📝 Here's a Python example that uses <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md#-pure-cdp-mode-sb_cdp">Pure CDP Mode</a> (<code>sb_cdp</code>):</b><br />(It navigates to Browserscan where it bypasses bot-detection.)
|
|
266
266
|
|
|
267
267
|
```python
|
|
268
268
|
from seleniumbase import sb_cdp
|
|
@@ -275,7 +275,7 @@ sb.quit()
|
|
|
275
275
|
|
|
276
276
|
<p align="center">
|
|
277
277
|
<img src="https://seleniumbase.github.io/cdn/img/results_normal.jpg" width="578" alt="BrowserScan Test Results: Normal">
|
|
278
|
-
<br><em>(All BrowserScan bot-detection checks were passed successfully.)</em>
|
|
278
|
+
<br><em>(All BrowserScan bot-detection checks were passed successfully.)</em></br>
|
|
279
279
|
</p>
|
|
280
280
|
|
|
281
281
|
<b>🎭 Here's an example script that uses <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/playwright/ReadMe.md"><span translate="no">Stealthy Playwright Mode</span></a>:</b><br />(Playwright connects to a stealthy SeleniumBase browser session.)
|
|
@@ -338,7 +338,7 @@ for element in elements:
|
|
|
338
338
|
|
|
339
339
|
<p align="center">
|
|
340
340
|
<img src="https://seleniumbase.github.io/other/sb_architecture.png" width="646" alt="Stealthy architecture flowchart">
|
|
341
|
-
<br><em>(For maximum stealth, use <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md">CDP Mode</a>, which includes <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/playwright/ReadMe.md">Stealthy Playwright Mode</a
|
|
341
|
+
<br><em>(For maximum stealth, use <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/ReadMe.md">CDP Mode</a>, which includes <a translate="no" href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/playwright/ReadMe.md">Stealthy Playwright Mode</a>.)</em></br>
|
|
342
342
|
</p>
|
|
343
343
|
|
|
344
344
|
--------
|
|
@@ -364,7 +364,7 @@ sb = sb_cdp.Chrome(url, use_chromium=True)
|
|
|
364
364
|
|
|
365
365
|
--------
|
|
366
366
|
|
|
367
|
-
<p align="left"><b>📝 <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py" target="_blank">This example</a> saves Google Search results with UC + CDP Mode:</b><br />(Results are saved as PDF, HTML, and PNG files)</p>
|
|
367
|
+
<p align="left"><b>📝 <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/raw_google.py" target="_blank">This example</a> saves Google Search results with UC + CDP Mode:</b><br />(Results are saved as PDF, HTML, and PNG files to <code>./latest_logs/</code>)</p>
|
|
368
368
|
|
|
369
369
|
```python
|
|
370
370
|
from seleniumbase import SB
|
|
@@ -385,7 +385,7 @@ with SB(uc=True, test=True) as sb:
|
|
|
385
385
|
|
|
386
386
|
--------
|
|
387
387
|
|
|
388
|
-
<p align="left"><b>📝 <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_gitlab.py" target="_blank">This example</a> bypasses Cloudflare's challenge page with UC + CDP Mode:</b></p>
|
|
388
|
+
<p align="left"><b>📝 <a href="https://github.com/seleniumbase/SeleniumBase/blob/master/examples/cdp_mode/raw_gitlab.py" target="_blank">This example</a> bypasses Cloudflare's challenge page with UC + CDP Mode:</b><br />(If the Turnstile isn't bypassed automatically, <b><code>sb.solve_captcha()</code></b> handles it.)</p>
|
|
389
389
|
|
|
390
390
|
```python
|
|
391
391
|
from seleniumbase import SB
|
|
@@ -403,9 +403,12 @@ with SB(uc=True, test=True, locale="en") as sb:
|
|
|
403
403
|
sb.post_message("SeleniumBase wasn't detected", duration=4)
|
|
404
404
|
```
|
|
405
405
|
|
|
406
|
+
<p align="center">
|
|
406
407
|
<img src="https://seleniumbase.github.io/other/cf_sec.jpg" alt="SeleniumBase" width="346"> <img src="https://seleniumbase.github.io/other/gitlab_bypass.png" alt="SeleniumBase" width="300">
|
|
408
|
+
<br><em>(Successfully bypassed bot-detection on a Cloudflare challenge page.)</em></br>
|
|
409
|
+
</p>
|
|
407
410
|
|
|
408
|
-
|
|
411
|
+
💡 <b><code>sb.solve_captcha()</code></b> handles CAPTCHAs that aren't bypassed automatically.<br />(If no CAPTCHA is present on the current page, then nothing happens.)
|
|
409
412
|
|
|
410
413
|
--------
|
|
411
414
|
|
|
@@ -703,10 +706,10 @@ pip install -e .
|
|
|
703
706
|
<summary> ▶️ Here's sample output from a chromedriver download. (<b>click to expand</b>)</summary>
|
|
704
707
|
|
|
705
708
|
```zsh
|
|
706
|
-
*** chromedriver to download =
|
|
709
|
+
*** chromedriver to download = 148.0.7778.178 (Latest Stable)
|
|
707
710
|
|
|
708
711
|
Downloading chromedriver-mac-arm64.zip from:
|
|
709
|
-
https://storage.googleapis.com/chrome-for-testing-public/
|
|
712
|
+
https://storage.googleapis.com/chrome-for-testing-public/148.0.7778.178/mac-arm64/chromedriver-mac-arm64.zip ...
|
|
710
713
|
Download Complete!
|
|
711
714
|
|
|
712
715
|
Extracting ['chromedriver'] from chromedriver-mac-arm64.zip ...
|
|
@@ -716,8 +719,8 @@ The file [chromedriver] was saved to:
|
|
|
716
719
|
~/github/SeleniumBase/seleniumbase/drivers/
|
|
717
720
|
chromedriver
|
|
718
721
|
|
|
719
|
-
Making [chromedriver
|
|
720
|
-
[chromedriver
|
|
722
|
+
Making [chromedriver 148.0.7778.178] executable ...
|
|
723
|
+
[chromedriver 148.0.7778.178] is now ready for use!
|
|
721
724
|
```
|
|
722
725
|
|
|
723
726
|
</details>
|
|
@@ -162,7 +162,7 @@ setup(
|
|
|
162
162
|
python_requires=">=3.9",
|
|
163
163
|
install_requires=[
|
|
164
164
|
'pip>=26.0.1;python_version<"3.10"',
|
|
165
|
-
'pip>=26.1.
|
|
165
|
+
'pip>=26.1.2;python_version>="3.10"',
|
|
166
166
|
'packaging>=26.2',
|
|
167
167
|
'setuptools~=70.2;python_version<"3.10"', # Newer ones had issues
|
|
168
168
|
'setuptools>=82.0.1;python_version>="3.10"',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.49.3 → seleniumbase-4.49.4}/seleniumbase/drivers/chromium_drivers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/cdp_driver/_contradict.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/undetected/cdp_driver/connection.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_grid/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_grid/grid_hub.py
RENAMED
|
File without changes
|
{seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_grid/grid_node.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat
RENAMED
|
File without changes
|
{seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh
RENAMED
|
File without changes
|
|
File without changes
|
{seleniumbase-4.49.3 → seleniumbase-4.49.4}/seleniumbase/utilities/selenium_ide/convert_ide.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|