seleniumbase 4.34.13__tar.gz → 4.34.15__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {seleniumbase-4.34.13/seleniumbase.egg-info → seleniumbase-4.34.15}/PKG-INFO +1 -1
- seleniumbase-4.34.15/seleniumbase/__version__.py +2 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/browser_launcher.py +26 -36
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/proxy_helper.py +7 -5
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/__init__.py +16 -10
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/webelement.py +3 -2
- {seleniumbase-4.34.13 → seleniumbase-4.34.15/seleniumbase.egg-info}/PKG-INFO +1 -1
- seleniumbase-4.34.13/seleniumbase/__version__.py +0 -2
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/.gitignore +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/LICENSE +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/MANIFEST.in +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/README.md +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/install.sh +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/pyproject.toml +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/pytest.ini +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/requirements.txt +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/sbase/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/sbase/__main__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/sbase/steps.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/__main__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/behave/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/behave/behave_helper.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/behave/behave_sb.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/behave/steps.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/common/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/common/decorators.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/common/encryption.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/common/exceptions.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/common/obfuscate.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/common/unobfuscate.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/config/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/config/ad_block_list.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/config/proxy_list.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/config/settings.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/console_scripts/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/console_scripts/logo_helper.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/console_scripts/rich_helper.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/console_scripts/run.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/console_scripts/sb_behave_gui.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/console_scripts/sb_caseplans.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/console_scripts/sb_commander.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/console_scripts/sb_install.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/console_scripts/sb_mkchart.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/console_scripts/sb_mkdir.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/console_scripts/sb_mkfile.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/console_scripts/sb_mkpres.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/console_scripts/sb_mkrec.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/console_scripts/sb_objectify.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/console_scripts/sb_print.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/console_scripts/sb_recorder.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/application_manager.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/capabilities_parser.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/colored_traceback.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/create_db_tables.sql +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/detect_b_ver.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/download_helper.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/encoded_images.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/jqc_helper.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/log_helper.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/mysql.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/recorder_helper.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/report_helper.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/s3_manager.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/sb_cdp.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/sb_driver.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/session_helper.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/settings_parser.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/style_sheet.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/testcase_manager.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/tour_helper.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/core/visual_helper.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/drivers/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/extensions/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/extensions/ad_block.zip +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/extensions/disable_csp.zip +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/extensions/recorder.zip +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/extensions/sbase_ext.zip +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/fixtures/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/fixtures/base_case.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/fixtures/constants.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/fixtures/css_to_xpath.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/fixtures/errors.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/fixtures/js_utils.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/fixtures/page_actions.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/fixtures/page_utils.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/fixtures/shared_utils.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/fixtures/unittest_helper.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/fixtures/words.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/fixtures/xpath_to_css.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/js_code/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/js_code/active_css_js.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/js_code/live_js.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/js_code/recorder_js.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/masterqa/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/masterqa/master_qa.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/plugins/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/plugins/base_plugin.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/plugins/basic_test_info.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/plugins/db_reporting_plugin.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/plugins/driver_manager.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/plugins/page_source.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/plugins/pytest_plugin.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/plugins/s3_logging_plugin.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/plugins/sb_manager.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/plugins/screen_shots.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/plugins/selenium_plugin.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/resources/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/translate/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/translate/chinese.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/translate/dutch.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/translate/french.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/translate/italian.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/translate/japanese.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/translate/korean.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/translate/master_dict.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/translate/portuguese.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/translate/russian.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/translate/spanish.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/translate/translator.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/cdp.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/cdp_driver/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/cdp_driver/_contradict.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/cdp_driver/browser.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/cdp_driver/cdp_util.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/cdp_driver/config.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/cdp_driver/connection.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/cdp_driver/element.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/cdp_driver/tab.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/dprocess.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/options.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/patcher.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/reactor.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/download_selenium_server.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/font_color +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/grid-hub +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/grid-node +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/grid_hub.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/grid_node.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/register-grid-node.bat +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/register-grid-node.sh +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/start-grid-hub.bat +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_ide/__init__.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_ide/convert_ide.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase.egg-info/SOURCES.txt +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase.egg-info/dependency_links.txt +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase.egg-info/entry_points.txt +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase.egg-info/requires.txt +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase.egg-info/top_level.txt +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/setup.cfg +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/setup.py +0 -0
- {seleniumbase-4.34.13 → seleniumbase-4.34.15}/virtualenv_install.sh +0 -0
@@ -107,7 +107,7 @@ def make_driver_executable_if_not(driver_path):
|
|
107
107
|
shared_utils.make_executable(driver_path)
|
108
108
|
|
109
109
|
|
110
|
-
def extend_driver(driver):
|
110
|
+
def extend_driver(driver, proxy_auth=False, use_uc=True):
|
111
111
|
# Extend the driver with new methods
|
112
112
|
driver.default_find_element = driver.find_element
|
113
113
|
driver.default_find_elements = driver.find_elements
|
@@ -235,6 +235,8 @@ def extend_driver(driver):
|
|
235
235
|
driver.reset_window_size = DM.reset_window_size
|
236
236
|
if hasattr(driver, "proxy"):
|
237
237
|
driver.set_wire_proxy = DM.set_wire_proxy
|
238
|
+
if proxy_auth and not use_uc:
|
239
|
+
time.sleep(0.11) # Proxy needs moment to load in Manifest V3
|
238
240
|
return driver
|
239
241
|
|
240
242
|
|
@@ -3591,6 +3593,7 @@ def get_local_driver(
|
|
3591
3593
|
Can also be used to spin up additional browsers for the same test."""
|
3592
3594
|
downloads_path = DOWNLOADS_FOLDER
|
3593
3595
|
b_path = binary_location
|
3596
|
+
use_uc = is_using_uc(undetectable, browser_name)
|
3594
3597
|
if use_wire:
|
3595
3598
|
pip_find_lock = fasteners.InterProcessLock(
|
3596
3599
|
constants.PipInstall.FINDLOCK
|
@@ -4064,7 +4067,7 @@ def get_local_driver(
|
|
4064
4067
|
edge_options.add_argument("--headless=old")
|
4065
4068
|
else:
|
4066
4069
|
edge_options.add_argument("--headless")
|
4067
|
-
if mobile_emulator and not
|
4070
|
+
if mobile_emulator and not use_uc:
|
4068
4071
|
emulator_settings = {}
|
4069
4072
|
device_metrics = {}
|
4070
4073
|
if (
|
@@ -4128,7 +4131,7 @@ def get_local_driver(
|
|
4128
4131
|
settings.CHROME_START_HEIGHT,
|
4129
4132
|
)
|
4130
4133
|
)
|
4131
|
-
if user_data_dir and not
|
4134
|
+
if user_data_dir and not use_uc:
|
4132
4135
|
abs_path = os.path.abspath(user_data_dir)
|
4133
4136
|
edge_options.add_argument("--user-data-dir=%s" % abs_path)
|
4134
4137
|
if extension_zip:
|
@@ -4163,7 +4166,7 @@ def get_local_driver(
|
|
4163
4166
|
edge_options.add_argument("--disable-prompt-on-repost")
|
4164
4167
|
if not enable_3d_apis:
|
4165
4168
|
edge_options.add_argument("--disable-3d-apis")
|
4166
|
-
if headless or headless2 or
|
4169
|
+
if headless or headless2 or use_uc:
|
4167
4170
|
edge_options.add_argument("--disable-renderer-backgrounding")
|
4168
4171
|
edge_options.add_argument("--disable-backgrounding-occluded-windows")
|
4169
4172
|
edge_options.add_argument("--disable-client-side-phishing-detection")
|
@@ -4235,10 +4238,7 @@ def get_local_driver(
|
|
4235
4238
|
edge_options.add_argument("--allow-running-insecure-content")
|
4236
4239
|
if user_agent:
|
4237
4240
|
edge_options.add_argument("--user-agent=%s" % user_agent)
|
4238
|
-
if (
|
4239
|
-
IS_LINUX
|
4240
|
-
or (IS_MAC and not is_using_uc(undetectable, browser_name))
|
4241
|
-
):
|
4241
|
+
if IS_LINUX or (IS_MAC and not use_uc):
|
4242
4242
|
edge_options.add_argument("--no-sandbox")
|
4243
4243
|
if remote_debug:
|
4244
4244
|
# To access the Debugger, go to: edge://inspect/#devices
|
@@ -4252,10 +4252,7 @@ def get_local_driver(
|
|
4252
4252
|
if swiftshader:
|
4253
4253
|
edge_options.add_argument("--use-gl=angle")
|
4254
4254
|
edge_options.add_argument("--use-angle=swiftshader-webgl")
|
4255
|
-
elif
|
4256
|
-
not is_using_uc(undetectable, browser_name)
|
4257
|
-
and not enable_3d_apis
|
4258
|
-
):
|
4255
|
+
elif not use_uc and not enable_3d_apis:
|
4259
4256
|
edge_options.add_argument("--disable-gpu")
|
4260
4257
|
if IS_LINUX:
|
4261
4258
|
edge_options.add_argument("--disable-dev-shm-usage")
|
@@ -4502,14 +4499,14 @@ def get_local_driver(
|
|
4502
4499
|
and len(saved_mcv.split(".")) == 4
|
4503
4500
|
):
|
4504
4501
|
driver_version = saved_mcv
|
4505
|
-
if
|
4502
|
+
if use_uc:
|
4506
4503
|
use_br_version_for_uc = True
|
4507
4504
|
if (
|
4508
4505
|
(headless or headless2)
|
4509
4506
|
and IS_WINDOWS
|
4510
4507
|
and major_chrome_version
|
4511
4508
|
and int(major_chrome_version) >= 117
|
4512
|
-
and not
|
4509
|
+
and not use_uc
|
4513
4510
|
and not (remote_debug or devtools or use_wire)
|
4514
4511
|
and not (proxy_string or multi_proxy or proxy_pac_url)
|
4515
4512
|
and (not chromium_arg or "debug" not in chromium_arg)
|
@@ -4565,7 +4562,7 @@ def get_local_driver(
|
|
4565
4562
|
use_version = ch_driver_version
|
4566
4563
|
disable_build_check = True
|
4567
4564
|
uc_driver_version = None
|
4568
|
-
if
|
4565
|
+
if use_uc:
|
4569
4566
|
if use_br_version_for_uc or driver_version == "mlatest":
|
4570
4567
|
uc_driver_version = get_uc_driver_version(full=True)
|
4571
4568
|
full_ch_driver_version = uc_driver_version
|
@@ -4626,7 +4623,6 @@ def get_local_driver(
|
|
4626
4623
|
"\nWarning: Could not make chromedriver"
|
4627
4624
|
" executable: %s" % e
|
4628
4625
|
)
|
4629
|
-
use_uc = is_using_uc(undetectable, browser_name)
|
4630
4626
|
make_uc_driver_from_chromedriver = False
|
4631
4627
|
local_ch_exists = (
|
4632
4628
|
LOCAL_CHROMEDRIVER and os.path.exists(LOCAL_CHROMEDRIVER)
|
@@ -4843,7 +4839,7 @@ def get_local_driver(
|
|
4843
4839
|
service_args = []
|
4844
4840
|
if disable_build_check:
|
4845
4841
|
service_args = ["--disable-build-check"]
|
4846
|
-
if
|
4842
|
+
if use_uc:
|
4847
4843
|
uc_lock = fasteners.InterProcessLock(
|
4848
4844
|
constants.MultiBrowser.DRIVER_FIXING_LOCK
|
4849
4845
|
)
|
@@ -4872,20 +4868,14 @@ def get_local_driver(
|
|
4872
4868
|
"\nWarning: Could not make uc_driver"
|
4873
4869
|
" executable: %s" % e
|
4874
4870
|
)
|
4875
|
-
if
|
4876
|
-
not headless
|
4877
|
-
or not IS_LINUX
|
4878
|
-
or is_using_uc(undetectable, browser_name)
|
4879
|
-
):
|
4871
|
+
if not headless or not IS_LINUX or use_uc:
|
4880
4872
|
uc_activated = False
|
4881
4873
|
try:
|
4882
|
-
if (
|
4883
|
-
os.path.exists(LOCAL_CHROMEDRIVER)
|
4884
|
-
or is_using_uc(undetectable, browser_name)
|
4885
|
-
):
|
4874
|
+
if os.path.exists(LOCAL_CHROMEDRIVER) or use_uc:
|
4886
4875
|
if headless and not IS_LINUX:
|
4887
4876
|
undetectable = False # No support for headless
|
4888
|
-
|
4877
|
+
use_uc = is_using_uc(undetectable, browser_name)
|
4878
|
+
if use_uc:
|
4889
4879
|
from seleniumbase import undetected
|
4890
4880
|
from urllib.error import URLError
|
4891
4881
|
if IS_LINUX:
|
@@ -5185,7 +5175,7 @@ def get_local_driver(
|
|
5185
5175
|
driver = webdriver.Chrome(
|
5186
5176
|
service=service, options=chrome_options
|
5187
5177
|
)
|
5188
|
-
return extend_driver(driver)
|
5178
|
+
return extend_driver(driver, proxy_auth, use_uc)
|
5189
5179
|
if not auto_upgrade_chromedriver:
|
5190
5180
|
raise # Not an obvious fix.
|
5191
5181
|
else:
|
@@ -5436,11 +5426,11 @@ def get_local_driver(
|
|
5436
5426
|
'Emulation.setDeviceMetricsOverride',
|
5437
5427
|
set_device_metrics_override
|
5438
5428
|
)
|
5439
|
-
return extend_driver(driver)
|
5429
|
+
return extend_driver(driver, proxy_auth, use_uc)
|
5440
5430
|
else: # Running headless on Linux (and not using --uc)
|
5441
5431
|
try:
|
5442
5432
|
driver = webdriver.Chrome(options=chrome_options)
|
5443
|
-
return extend_driver(driver)
|
5433
|
+
return extend_driver(driver, proxy_auth, use_uc)
|
5444
5434
|
except Exception as e:
|
5445
5435
|
if not hasattr(e, "msg"):
|
5446
5436
|
raise
|
@@ -5462,7 +5452,7 @@ def get_local_driver(
|
|
5462
5452
|
driver = webdriver.Chrome(
|
5463
5453
|
service=service, options=chrome_options
|
5464
5454
|
)
|
5465
|
-
return extend_driver(driver)
|
5455
|
+
return extend_driver(driver, proxy_auth, use_uc)
|
5466
5456
|
mcv = None # Major Chrome Version
|
5467
5457
|
if "Current browser version is " in e.msg:
|
5468
5458
|
line = e.msg.split("Current browser version is ")[1]
|
@@ -5505,7 +5495,7 @@ def get_local_driver(
|
|
5505
5495
|
service=service,
|
5506
5496
|
options=chrome_options,
|
5507
5497
|
)
|
5508
|
-
return extend_driver(driver)
|
5498
|
+
return extend_driver(driver, proxy_auth, use_uc)
|
5509
5499
|
# Use the virtual display on Linux during headless errors
|
5510
5500
|
logging.debug(
|
5511
5501
|
"\nWarning: Chrome failed to launch in"
|
@@ -5523,9 +5513,9 @@ def get_local_driver(
|
|
5523
5513
|
driver = webdriver.Chrome(
|
5524
5514
|
service=service, options=chrome_options
|
5525
5515
|
)
|
5526
|
-
return extend_driver(driver)
|
5516
|
+
return extend_driver(driver, proxy_auth, use_uc)
|
5527
5517
|
except Exception as original_exception:
|
5528
|
-
if
|
5518
|
+
if use_uc:
|
5529
5519
|
raise
|
5530
5520
|
# Try again if Chrome didn't launch
|
5531
5521
|
with suppress(Exception):
|
@@ -5533,7 +5523,7 @@ def get_local_driver(
|
|
5533
5523
|
driver = webdriver.Chrome(
|
5534
5524
|
service=service, options=chrome_options
|
5535
5525
|
)
|
5536
|
-
return extend_driver(driver)
|
5526
|
+
return extend_driver(driver, proxy_auth, use_uc)
|
5537
5527
|
if user_data_dir:
|
5538
5528
|
print("\nUnable to set user_data_dir while starting Chrome!\n")
|
5539
5529
|
raise
|
@@ -5560,7 +5550,7 @@ def get_local_driver(
|
|
5560
5550
|
)
|
5561
5551
|
try:
|
5562
5552
|
driver = webdriver.Chrome(service=service)
|
5563
|
-
return extend_driver(driver)
|
5553
|
+
return extend_driver(driver, proxy_auth, use_uc)
|
5564
5554
|
except Exception:
|
5565
5555
|
raise original_exception
|
5566
5556
|
else:
|
@@ -94,21 +94,23 @@ def create_proxy_ext(
|
|
94
94
|
manifest_json = (
|
95
95
|
"""{\n"""
|
96
96
|
""""version": "1.0.0",\n"""
|
97
|
-
""""manifest_version":
|
97
|
+
""""manifest_version": 3,\n"""
|
98
98
|
""""name": "Chrome Proxy",\n"""
|
99
99
|
""""permissions": [\n"""
|
100
100
|
""" "proxy",\n"""
|
101
101
|
""" "tabs",\n"""
|
102
102
|
""" "unlimitedStorage",\n"""
|
103
103
|
""" "storage",\n"""
|
104
|
-
""" "<all_urls>",\n"""
|
105
104
|
""" "webRequest",\n"""
|
106
|
-
""" "
|
105
|
+
""" "webRequestAuthProvider"\n"""
|
106
|
+
"""],\n"""
|
107
|
+
""""host_permissions": [\n"""
|
108
|
+
""" "<all_urls>"\n"""
|
107
109
|
"""],\n"""
|
108
110
|
""""background": {\n"""
|
109
|
-
""" "
|
111
|
+
""" "service_worker": "background.js"\n"""
|
110
112
|
"""},\n"""
|
111
|
-
""""minimum_chrome_version":"
|
113
|
+
""""minimum_chrome_version":"88.0.0"\n"""
|
112
114
|
"""}"""
|
113
115
|
)
|
114
116
|
abs_path = os.path.abspath(".")
|
@@ -454,17 +454,20 @@ class Chrome(selenium.webdriver.chrome.webdriver.WebDriver):
|
|
454
454
|
self.start_session()
|
455
455
|
time.sleep(0.0075)
|
456
456
|
with suppress(Exception):
|
457
|
-
for
|
458
|
-
|
457
|
+
for window_handle in self.window_handles:
|
458
|
+
self.switch_to.window(window_handle)
|
459
|
+
if self.current_url.startswith(
|
460
|
+
"chrome-extension://"
|
461
|
+
):
|
459
462
|
self.close()
|
460
463
|
if self.service.is_connectable():
|
461
464
|
self.stop_client()
|
462
465
|
self.service.stop()
|
463
466
|
self.service.start()
|
464
467
|
self.start_session()
|
465
|
-
time.sleep(0.
|
466
|
-
|
467
|
-
|
468
|
+
time.sleep(0.003)
|
469
|
+
with suppress(Exception):
|
470
|
+
self.switch_to.window(self.window_handles[-1])
|
468
471
|
self._is_connected = True
|
469
472
|
|
470
473
|
def disconnect(self):
|
@@ -487,17 +490,20 @@ class Chrome(selenium.webdriver.chrome.webdriver.WebDriver):
|
|
487
490
|
self.start_session()
|
488
491
|
time.sleep(0.0075)
|
489
492
|
with suppress(Exception):
|
490
|
-
for
|
491
|
-
|
493
|
+
for window_handle in self.window_handles:
|
494
|
+
self.switch_to.window(window_handle)
|
495
|
+
if self.current_url.startswith(
|
496
|
+
"chrome-extension://"
|
497
|
+
):
|
492
498
|
self.close()
|
493
499
|
if self.service.is_connectable():
|
494
500
|
self.stop_client()
|
495
501
|
self.service.stop()
|
496
502
|
self.service.start()
|
497
503
|
self.start_session()
|
498
|
-
time.sleep(0.
|
499
|
-
|
500
|
-
|
504
|
+
time.sleep(0.003)
|
505
|
+
with suppress(Exception):
|
506
|
+
self.switch_to.window(self.window_handles[-1])
|
501
507
|
self._is_connected = True
|
502
508
|
|
503
509
|
def start_session(self, capabilities=None):
|
@@ -26,10 +26,11 @@ class WebElement(selenium.webdriver.remote.webelement.WebElement):
|
|
26
26
|
driver.js_click(selector, by=by, timeout=1)
|
27
27
|
else:
|
28
28
|
super().click()
|
29
|
+
driver = self._parent
|
29
30
|
if not reconnect_time:
|
30
|
-
|
31
|
+
driver.reconnect(0.5)
|
31
32
|
else:
|
32
|
-
|
33
|
+
driver.reconnect(reconnect_time)
|
33
34
|
|
34
35
|
def uc_reconnect(self, reconnect_time=None):
|
35
36
|
if not reconnect_time:
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/cdp_driver/__init__.py
RENAMED
File without changes
|
{seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/cdp_driver/_contradict.py
RENAMED
File without changes
|
File without changes
|
{seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/cdp_driver/cdp_util.py
RENAMED
File without changes
|
File without changes
|
{seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/undetected/cdp_driver/connection.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/__init__.py
RENAMED
File without changes
|
File without changes
|
{seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/font_color
RENAMED
File without changes
|
File without changes
|
{seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/grid-node
RENAMED
File without changes
|
{seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/grid_hub.py
RENAMED
File without changes
|
{seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/grid_node.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_grid/start-grid-hub.sh
RENAMED
File without changes
|
{seleniumbase-4.34.13 → seleniumbase-4.34.15}/seleniumbase/utilities/selenium_ide/__init__.py
RENAMED
File without changes
|
{seleniumbase-4.34.13 → seleniumbase-4.34.15}/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
|
File without changes
|
File without changes
|