seleniumbase 4.22.4__py3-none-any.whl → 4.22.6__py3-none-any.whl
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/__version__.py +1 -1
- seleniumbase/behave/behave_sb.py +8 -0
- seleniumbase/console_scripts/run.py +2 -1
- seleniumbase/console_scripts/sb_install.py +1 -1
- seleniumbase/core/browser_launcher.py +84 -21
- seleniumbase/fixtures/base_case.py +10 -2
- seleniumbase/plugins/driver_manager.py +26 -0
- seleniumbase/plugins/pytest_plugin.py +15 -0
- seleniumbase/plugins/sb_manager.py +27 -0
- seleniumbase/plugins/selenium_plugin.py +12 -0
- {seleniumbase-4.22.4.dist-info → seleniumbase-4.22.6.dist-info}/LICENSE +1 -1
- {seleniumbase-4.22.4.dist-info → seleniumbase-4.22.6.dist-info}/METADATA +7 -6
- {seleniumbase-4.22.4.dist-info → seleniumbase-4.22.6.dist-info}/RECORD +16 -16
- {seleniumbase-4.22.4.dist-info → seleniumbase-4.22.6.dist-info}/WHEEL +0 -0
- {seleniumbase-4.22.4.dist-info → seleniumbase-4.22.6.dist-info}/entry_points.txt +0 -0
- {seleniumbase-4.22.4.dist-info → seleniumbase-4.22.6.dist-info}/top_level.txt +0 -0
seleniumbase/__version__.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
# seleniumbase package
|
2
|
-
__version__ = "4.22.
|
2
|
+
__version__ = "4.22.6"
|
seleniumbase/behave/behave_sb.py
CHANGED
@@ -226,6 +226,7 @@ def get_configured_sb(context):
|
|
226
226
|
sb.chromium_arg = None
|
227
227
|
sb.firefox_arg = None
|
228
228
|
sb.firefox_pref = None
|
229
|
+
sb.disable_features = None
|
229
230
|
sb.proxy_string = None
|
230
231
|
sb.proxy_bypass_list = None
|
231
232
|
sb.proxy_pac_url = None
|
@@ -748,6 +749,13 @@ def get_configured_sb(context):
|
|
748
749
|
firefox_pref = sb.firefox_pref # revert to default
|
749
750
|
sb.firefox_pref = firefox_pref
|
750
751
|
continue
|
752
|
+
# Handle: -D disable-features="F1,F2" / disable_features="F1,F2"
|
753
|
+
if low_key in ["disable-features", "disable_features"]:
|
754
|
+
disable_features = userdata[key]
|
755
|
+
if disable_features == "true":
|
756
|
+
disable_features = sb.disable_features # revert to default
|
757
|
+
sb.disable_features = disable_features
|
758
|
+
continue
|
751
759
|
# Handle: -D proxy=SERVER:PORT / proxy=USERNAME:PASSWORD@SERVER:PORT
|
752
760
|
if low_key in ["proxy", "proxy-server", "proxy-string"]:
|
753
761
|
proxy_string = userdata[key]
|
@@ -75,10 +75,11 @@ def show_basic_usage():
|
|
75
75
|
seleniumbase_logo = logo_helper.get_seleniumbase_logo()
|
76
76
|
print(seleniumbase_logo)
|
77
77
|
print("")
|
78
|
-
time.sleep(0.
|
78
|
+
time.sleep(0.28) # Enough time to see the logo
|
79
79
|
show_package_location()
|
80
80
|
show_version_info()
|
81
81
|
print("")
|
82
|
+
time.sleep(0.72) # Enough time to see the version
|
82
83
|
sc = ""
|
83
84
|
sc += ' * USAGE: "seleniumbase [COMMAND] [PARAMETERS]"\n'
|
84
85
|
sc += ' * OR: "sbase [COMMAND] [PARAMETERS]"\n'
|
@@ -50,7 +50,7 @@ IS_WINDOWS = shared_utils.is_windows()
|
|
50
50
|
DRIVER_DIR = os.path.dirname(os.path.realpath(drivers.__file__))
|
51
51
|
LOCAL_PATH = "/usr/local/bin/" # On Mac and Linux systems
|
52
52
|
DEFAULT_CHROMEDRIVER_VERSION = "114.0.5735.90" # (If can't find LATEST_STABLE)
|
53
|
-
DEFAULT_GECKODRIVER_VERSION = "v0.
|
53
|
+
DEFAULT_GECKODRIVER_VERSION = "v0.34.0"
|
54
54
|
DEFAULT_EDGEDRIVER_VERSION = "115.0.1901.183" # (If can't find LATEST_STABLE)
|
55
55
|
|
56
56
|
|
@@ -763,6 +763,7 @@ def _set_chrome_options(
|
|
763
763
|
user_data_dir,
|
764
764
|
extension_zip,
|
765
765
|
extension_dir,
|
766
|
+
disable_features,
|
766
767
|
binary_location,
|
767
768
|
driver_version,
|
768
769
|
page_load_strategy,
|
@@ -1044,6 +1045,7 @@ def _set_chrome_options(
|
|
1044
1045
|
binary_loc = detect_b_ver.get_binary_location(br_app, True)
|
1045
1046
|
if os.path.exists(binary_loc):
|
1046
1047
|
binary_location = binary_loc
|
1048
|
+
extra_disabled_features = []
|
1047
1049
|
if chromium_arg:
|
1048
1050
|
# Can be a comma-separated list of Chromium args
|
1049
1051
|
chromium_arg_list = chromium_arg.split(",")
|
@@ -1069,8 +1071,13 @@ def _set_chrome_options(
|
|
1069
1071
|
)
|
1070
1072
|
if os.path.exists(binary_loc):
|
1071
1073
|
binary_location = binary_loc
|
1074
|
+
elif "disable-features=" in chromium_arg_item:
|
1075
|
+
d_f = chromium_arg_item.split("disable-features=")[-1]
|
1076
|
+
extra_disabled_features.append(d_f)
|
1072
1077
|
elif len(chromium_arg_item) >= 3:
|
1073
1078
|
chrome_options.add_argument(chromium_arg_item)
|
1079
|
+
if disable_features:
|
1080
|
+
extra_disabled_features.extend(disable_features.split(","))
|
1074
1081
|
if devtools and not headless:
|
1075
1082
|
chrome_options.add_argument("--auto-open-devtools-for-tabs")
|
1076
1083
|
if user_agent:
|
@@ -1089,19 +1096,36 @@ def _set_chrome_options(
|
|
1089
1096
|
if headless or headless2 or is_using_uc(undetectable, browser_name):
|
1090
1097
|
chrome_options.add_argument("--disable-renderer-backgrounding")
|
1091
1098
|
chrome_options.add_argument("--disable-backgrounding-occluded-windows")
|
1099
|
+
chrome_options.add_argument("--disable-client-side-phishing-detection")
|
1100
|
+
chrome_options.add_argument("--disable-oopr-debug-crash-dump")
|
1101
|
+
chrome_options.add_argument("--disable-top-sites")
|
1092
1102
|
chrome_options.add_argument("--ash-no-nudges")
|
1103
|
+
chrome_options.add_argument("--no-crash-upload")
|
1093
1104
|
chrome_options.add_argument("--deny-permission-prompts")
|
1105
|
+
included_disabled_features = []
|
1094
1106
|
if user_data_dir:
|
1095
|
-
|
1096
|
-
|
1097
|
-
|
1098
|
-
|
1099
|
-
)
|
1107
|
+
included_disabled_features.append("OptimizationHintsFetching")
|
1108
|
+
included_disabled_features.append("Translate")
|
1109
|
+
included_disabled_features.append("OptimizationTargetPrediction")
|
1110
|
+
included_disabled_features.append("PrivacySandboxSettings4")
|
1111
|
+
included_disabled_features.append("DownloadBubble")
|
1112
|
+
included_disabled_features.append("DownloadBubbleV2")
|
1113
|
+
for item in extra_disabled_features:
|
1114
|
+
if item not in included_disabled_features:
|
1115
|
+
included_disabled_features.append(item)
|
1116
|
+
d_f_string = ",".join(included_disabled_features)
|
1117
|
+
chrome_options.add_argument("--disable-features=%s" % d_f_string)
|
1100
1118
|
else:
|
1101
|
-
|
1102
|
-
|
1103
|
-
|
1104
|
-
)
|
1119
|
+
included_disabled_features.append("OptimizationHintsFetching")
|
1120
|
+
included_disabled_features.append("Translate")
|
1121
|
+
included_disabled_features.append("OptimizationTargetPrediction")
|
1122
|
+
included_disabled_features.append("DownloadBubble")
|
1123
|
+
included_disabled_features.append("DownloadBubbleV2")
|
1124
|
+
for item in extra_disabled_features:
|
1125
|
+
if item not in included_disabled_features:
|
1126
|
+
included_disabled_features.append(item)
|
1127
|
+
d_f_string = ",".join(included_disabled_features)
|
1128
|
+
chrome_options.add_argument("--disable-features=%s" % d_f_string)
|
1105
1129
|
if (
|
1106
1130
|
is_using_uc(undetectable, browser_name)
|
1107
1131
|
and (
|
@@ -1338,6 +1362,7 @@ def get_driver(
|
|
1338
1362
|
user_data_dir=None,
|
1339
1363
|
extension_zip=None,
|
1340
1364
|
extension_dir=None,
|
1365
|
+
disable_features=None,
|
1341
1366
|
binary_location=None,
|
1342
1367
|
driver_version=None,
|
1343
1368
|
page_load_strategy=None,
|
@@ -1550,6 +1575,7 @@ def get_driver(
|
|
1550
1575
|
user_data_dir,
|
1551
1576
|
extension_zip,
|
1552
1577
|
extension_dir,
|
1578
|
+
disable_features,
|
1553
1579
|
binary_location,
|
1554
1580
|
driver_version,
|
1555
1581
|
page_load_strategy,
|
@@ -1605,6 +1631,7 @@ def get_driver(
|
|
1605
1631
|
user_data_dir,
|
1606
1632
|
extension_zip,
|
1607
1633
|
extension_dir,
|
1634
|
+
disable_features,
|
1608
1635
|
binary_location,
|
1609
1636
|
driver_version,
|
1610
1637
|
page_load_strategy,
|
@@ -1664,6 +1691,7 @@ def get_remote_driver(
|
|
1664
1691
|
user_data_dir,
|
1665
1692
|
extension_zip,
|
1666
1693
|
extension_dir,
|
1694
|
+
disable_features,
|
1667
1695
|
binary_location,
|
1668
1696
|
driver_version,
|
1669
1697
|
page_load_strategy,
|
@@ -1784,6 +1812,7 @@ def get_remote_driver(
|
|
1784
1812
|
user_data_dir,
|
1785
1813
|
extension_zip,
|
1786
1814
|
extension_dir,
|
1815
|
+
disable_features,
|
1787
1816
|
binary_location,
|
1788
1817
|
driver_version,
|
1789
1818
|
page_load_strategy,
|
@@ -1816,6 +1845,9 @@ def get_remote_driver(
|
|
1816
1845
|
platform_name = desired_caps[key]
|
1817
1846
|
elif re.match("[a-zA-Z0-9]*:[a-zA-Z0-9]*", key):
|
1818
1847
|
extension_capabilities[key] = desired_caps[key]
|
1848
|
+
cap_str = str(desired_caps).lower()
|
1849
|
+
if "browserstack" in cap_str or "bstack" in cap_str:
|
1850
|
+
chrome_options.set_capability("bstack:options", desired_caps)
|
1819
1851
|
chrome_options.set_capability("cloud:options", capabilities)
|
1820
1852
|
if selenoid:
|
1821
1853
|
snops = selenoid_options
|
@@ -1876,6 +1908,9 @@ def get_remote_driver(
|
|
1876
1908
|
platform_name = desired_caps[key]
|
1877
1909
|
elif re.match("[a-zA-Z0-9]*:[a-zA-Z0-9]*", key):
|
1878
1910
|
extension_capabilities[key] = desired_caps[key]
|
1911
|
+
cap_str = str(desired_caps).lower()
|
1912
|
+
if "browserstack" in cap_str or "bstack" in cap_str:
|
1913
|
+
firefox_options.set_capability("bstack:options", desired_caps)
|
1879
1914
|
firefox_options.set_capability("cloud:options", capabilities)
|
1880
1915
|
if selenoid:
|
1881
1916
|
snops = selenoid_options
|
@@ -1949,6 +1984,7 @@ def get_remote_driver(
|
|
1949
1984
|
user_data_dir,
|
1950
1985
|
extension_zip,
|
1951
1986
|
extension_dir,
|
1987
|
+
disable_features,
|
1952
1988
|
binary_location,
|
1953
1989
|
driver_version,
|
1954
1990
|
page_load_strategy,
|
@@ -2016,6 +2052,9 @@ def get_remote_driver(
|
|
2016
2052
|
remote_options = ArgOptions()
|
2017
2053
|
for cap_name, cap_value in desired_caps.items():
|
2018
2054
|
remote_options.set_capability(cap_name, cap_value)
|
2055
|
+
cap_str = str(desired_caps).lower()
|
2056
|
+
if "browserstack" in cap_str or "bstack" in cap_str:
|
2057
|
+
remote_options.set_capability("bstack:options", desired_caps)
|
2019
2058
|
driver = webdriver.Remote(
|
2020
2059
|
command_executor=address,
|
2021
2060
|
options=remote_options,
|
@@ -2066,6 +2105,7 @@ def get_local_driver(
|
|
2066
2105
|
user_data_dir,
|
2067
2106
|
extension_zip,
|
2068
2107
|
extension_dir,
|
2108
|
+
disable_features,
|
2069
2109
|
binary_location,
|
2070
2110
|
driver_version,
|
2071
2111
|
page_load_strategy,
|
@@ -2561,18 +2601,6 @@ def get_local_driver(
|
|
2561
2601
|
edge_options.add_argument(
|
2562
2602
|
"--disable-autofill-keyboard-accessory-view[8]"
|
2563
2603
|
)
|
2564
|
-
edge_options.add_argument("--ash-no-nudges")
|
2565
|
-
edge_options.add_argument("--deny-permission-prompts")
|
2566
|
-
if user_data_dir:
|
2567
|
-
edge_options.add_argument(
|
2568
|
-
"--disable-features=OptimizationHintsFetching,Translate,"
|
2569
|
-
"OptimizationTargetPrediction,PrivacySandboxSettings4"
|
2570
|
-
)
|
2571
|
-
else:
|
2572
|
-
edge_options.add_argument(
|
2573
|
-
"--disable-features=OptimizationHintsFetching,Translate,"
|
2574
|
-
"OptimizationTargetPrediction"
|
2575
|
-
)
|
2576
2604
|
edge_options.add_argument("--disable-browser-side-navigation")
|
2577
2605
|
edge_options.add_argument("--disable-translate")
|
2578
2606
|
if not enable_ws:
|
@@ -2587,6 +2615,12 @@ def get_local_driver(
|
|
2587
2615
|
if headless or headless2 or is_using_uc(undetectable, browser_name):
|
2588
2616
|
edge_options.add_argument("--disable-renderer-backgrounding")
|
2589
2617
|
edge_options.add_argument("--disable-backgrounding-occluded-windows")
|
2618
|
+
edge_options.add_argument("--disable-client-side-phishing-detection")
|
2619
|
+
edge_options.add_argument("--disable-oopr-debug-crash-dump")
|
2620
|
+
edge_options.add_argument("--disable-top-sites")
|
2621
|
+
edge_options.add_argument("--ash-no-nudges")
|
2622
|
+
edge_options.add_argument("--no-crash-upload")
|
2623
|
+
edge_options.add_argument("--deny-permission-prompts")
|
2590
2624
|
if (
|
2591
2625
|
page_load_strategy
|
2592
2626
|
and page_load_strategy.lower() in ["eager", "none"]
|
@@ -2668,6 +2702,7 @@ def get_local_driver(
|
|
2668
2702
|
edge_options.add_argument("--disable-gpu")
|
2669
2703
|
if IS_LINUX:
|
2670
2704
|
edge_options.add_argument("--disable-dev-shm-usage")
|
2705
|
+
extra_disabled_features = []
|
2671
2706
|
set_binary = False
|
2672
2707
|
if chromium_arg:
|
2673
2708
|
# Can be a comma-separated list of Chromium args
|
@@ -2681,8 +2716,33 @@ def get_local_driver(
|
|
2681
2716
|
chromium_arg_item = "--" + chromium_arg_item
|
2682
2717
|
if "set-binary" in chromium_arg_item:
|
2683
2718
|
set_binary = True
|
2719
|
+
elif "disable-features=" in chromium_arg_item:
|
2720
|
+
d_f = chromium_arg_item.split("disable-features=")[-1]
|
2721
|
+
extra_disabled_features.append(d_f)
|
2684
2722
|
elif len(chromium_arg_item) >= 3:
|
2685
2723
|
edge_options.add_argument(chromium_arg_item)
|
2724
|
+
if disable_features:
|
2725
|
+
extra_disabled_features.extend(disable_features.split(","))
|
2726
|
+
included_disabled_features = []
|
2727
|
+
if user_data_dir:
|
2728
|
+
included_disabled_features.append("OptimizationHintsFetching")
|
2729
|
+
included_disabled_features.append("Translate")
|
2730
|
+
included_disabled_features.append("OptimizationTargetPrediction")
|
2731
|
+
included_disabled_features.append("PrivacySandboxSettings4")
|
2732
|
+
for item in extra_disabled_features:
|
2733
|
+
if item not in included_disabled_features:
|
2734
|
+
included_disabled_features.append(item)
|
2735
|
+
d_f_string = ",".join(included_disabled_features)
|
2736
|
+
edge_options.add_argument("--disable-features=%s" % d_f_string)
|
2737
|
+
else:
|
2738
|
+
included_disabled_features.append("OptimizationHintsFetching")
|
2739
|
+
included_disabled_features.append("Translate")
|
2740
|
+
included_disabled_features.append("OptimizationTargetPrediction")
|
2741
|
+
for item in extra_disabled_features:
|
2742
|
+
if item not in included_disabled_features:
|
2743
|
+
included_disabled_features.append(item)
|
2744
|
+
d_f_string = ",".join(included_disabled_features)
|
2745
|
+
edge_options.add_argument("--disable-features=%s" % d_f_string)
|
2686
2746
|
if (set_binary or IS_LINUX) and not binary_location:
|
2687
2747
|
br_app = "edge"
|
2688
2748
|
binary_loc = detect_b_ver.get_binary_location(br_app)
|
@@ -2822,6 +2882,7 @@ def get_local_driver(
|
|
2822
2882
|
user_data_dir,
|
2823
2883
|
extension_zip,
|
2824
2884
|
extension_dir,
|
2885
|
+
disable_features,
|
2825
2886
|
binary_location,
|
2826
2887
|
driver_version,
|
2827
2888
|
page_load_strategy,
|
@@ -3339,6 +3400,7 @@ def get_local_driver(
|
|
3339
3400
|
None, # user_data_dir
|
3340
3401
|
None, # extension_zip
|
3341
3402
|
None, # extension_dir
|
3403
|
+
None, # disable_features
|
3342
3404
|
binary_location,
|
3343
3405
|
driver_version,
|
3344
3406
|
page_load_strategy,
|
@@ -3556,6 +3618,7 @@ def get_local_driver(
|
|
3556
3618
|
None, # user_data_dir
|
3557
3619
|
None, # extension_zip
|
3558
3620
|
None, # extension_dir
|
3621
|
+
None, # disable_features
|
3559
3622
|
binary_location,
|
3560
3623
|
driver_version,
|
3561
3624
|
page_load_strategy,
|
@@ -3777,6 +3777,7 @@ class BaseCase(unittest.TestCase):
|
|
3777
3777
|
user_data_dir=None,
|
3778
3778
|
extension_zip=None,
|
3779
3779
|
extension_dir=None,
|
3780
|
+
disable_features=None,
|
3780
3781
|
binary_location=None,
|
3781
3782
|
driver_version=None,
|
3782
3783
|
page_load_strategy=None,
|
@@ -3835,6 +3836,7 @@ class BaseCase(unittest.TestCase):
|
|
3835
3836
|
user_data_dir - Chrome's User Data Directory to use (Chrome-only)
|
3836
3837
|
extension_zip - A Chrome Extension ZIP file to use (Chrome-only)
|
3837
3838
|
extension_dir - A Chrome Extension folder to use (Chrome-only)
|
3839
|
+
disable_features - the option to disable features on Chrome/Edge
|
3838
3840
|
binary_location - the path of the browser binary to use (Chromium)
|
3839
3841
|
driver_version - the chromedriver or uc_driver version to force
|
3840
3842
|
page_load_strategy - the option to change pageLoadStrategy (Chrome)
|
@@ -3960,6 +3962,8 @@ class BaseCase(unittest.TestCase):
|
|
3960
3962
|
extension_zip = self.extension_zip
|
3961
3963
|
if extension_dir is None:
|
3962
3964
|
extension_dir = self.extension_dir
|
3965
|
+
if disable_features is None:
|
3966
|
+
disable_features = self.disable_features
|
3963
3967
|
if binary_location is None:
|
3964
3968
|
binary_location = self.binary_location
|
3965
3969
|
if driver_version is None:
|
@@ -4040,6 +4044,7 @@ class BaseCase(unittest.TestCase):
|
|
4040
4044
|
user_data_dir=user_data_dir,
|
4041
4045
|
extension_zip=extension_zip,
|
4042
4046
|
extension_dir=extension_dir,
|
4047
|
+
disable_features=disable_features,
|
4043
4048
|
binary_location=binary_location,
|
4044
4049
|
driver_version=driver_version,
|
4045
4050
|
page_load_strategy=page_load_strategy,
|
@@ -6918,13 +6923,14 @@ class BaseCase(unittest.TestCase):
|
|
6918
6923
|
image = Image.open(image_file_path)
|
6919
6924
|
draw = ImageDraw.Draw(image)
|
6920
6925
|
draw.rectangle(
|
6921
|
-
(0, 0, (max_width *
|
6926
|
+
(0, 0, int(max_width * 8.32) + 10, 23 * len_text_rows + 2),
|
6922
6927
|
fill=(236, 236, 28),
|
6923
6928
|
)
|
6924
6929
|
draw.text(
|
6925
6930
|
(4, 2), # Coordinates
|
6926
6931
|
overlay_text, # Text
|
6927
|
-
(8, 38, 176), # Color
|
6932
|
+
fill=(8, 38, 176), # Color
|
6933
|
+
font_size=18, # Font Size
|
6928
6934
|
)
|
6929
6935
|
image.save(image_file_path, "PNG", quality=100, optimize=True)
|
6930
6936
|
|
@@ -14330,6 +14336,7 @@ class BaseCase(unittest.TestCase):
|
|
14330
14336
|
self.user_data_dir = sb_config.user_data_dir
|
14331
14337
|
self.extension_zip = sb_config.extension_zip
|
14332
14338
|
self.extension_dir = sb_config.extension_dir
|
14339
|
+
self.disable_features = sb_config.disable_features
|
14333
14340
|
self.binary_location = sb_config.binary_location
|
14334
14341
|
self.driver_version = sb_config.driver_version
|
14335
14342
|
self.page_load_strategy = sb_config.page_load_strategy
|
@@ -14651,6 +14658,7 @@ class BaseCase(unittest.TestCase):
|
|
14651
14658
|
user_data_dir=self.user_data_dir,
|
14652
14659
|
extension_zip=self.extension_zip,
|
14653
14660
|
extension_dir=self.extension_dir,
|
14661
|
+
disable_features=self.disable_features,
|
14654
14662
|
binary_location=self.binary_location,
|
14655
14663
|
driver_version=self.driver_version,
|
14656
14664
|
page_load_strategy=self.page_load_strategy,
|
@@ -108,6 +108,7 @@ def Driver(
|
|
108
108
|
user_data_dir=None, # Set the Chrome user data directory to use.
|
109
109
|
extension_zip=None, # Load a Chrome Extension .zip|.crx, comma-separated.
|
110
110
|
extension_dir=None, # Load a Chrome Extension directory, comma-separated.
|
111
|
+
disable_features=None, # "F1,F2" (Disable Chrome features, ","-separated.)
|
111
112
|
binary_location=None, # Set path of the Chromium browser binary to use.
|
112
113
|
driver_version=None, # Set the chromedriver or uc_driver version to use.
|
113
114
|
page_load_strategy=None, # Set Chrome PLS to "normal", "eager", or "none".
|
@@ -264,6 +265,30 @@ def Driver(
|
|
264
265
|
proxy_string = proxy_string[1:-1]
|
265
266
|
elif proxy_string.startswith("'") and proxy_string.endswith("'"):
|
266
267
|
proxy_string = proxy_string[1:-1]
|
268
|
+
c_a = chromium_arg
|
269
|
+
if c_a is None and "--chromium-arg" in arg_join:
|
270
|
+
if "--chromium-arg=" in arg_join:
|
271
|
+
c_a = arg_join.split("--chromium-arg=")[1].split(" ")[0]
|
272
|
+
elif "--chromium-arg " in arg_join:
|
273
|
+
c_a = arg_join.split("--chromium-arg ")[1].split(" ")[0]
|
274
|
+
if c_a:
|
275
|
+
if c_a.startswith('"') and c_a.endswith('"'):
|
276
|
+
c_a = c_a[1:-1]
|
277
|
+
elif c_a.startswith("'") and c_a.endswith("'"):
|
278
|
+
c_a = c_a[1:-1]
|
279
|
+
chromium_arg = c_a
|
280
|
+
d_f = disable_features
|
281
|
+
if d_f is None and "--disable-features" in arg_join:
|
282
|
+
if "--disable-features=" in arg_join:
|
283
|
+
d_f = arg_join.split("--disable-features=")[1].split(" ")[0]
|
284
|
+
elif "--disable-features " in arg_join:
|
285
|
+
d_f = arg_join.split("--disable-features ")[1].split(" ")[0]
|
286
|
+
if d_f:
|
287
|
+
if d_f.startswith('"') and d_f.endswith('"'):
|
288
|
+
d_f = d_f[1:-1]
|
289
|
+
elif c_a.startswith("'") and d_f.endswith("'"):
|
290
|
+
d_f = d_f[1:-1]
|
291
|
+
disable_features = d_f
|
267
292
|
user_agent = agent
|
268
293
|
recorder_mode = False
|
269
294
|
if recorder_ext:
|
@@ -505,6 +530,7 @@ def Driver(
|
|
505
530
|
user_data_dir=user_data_dir,
|
506
531
|
extension_zip=extension_zip,
|
507
532
|
extension_dir=extension_dir,
|
533
|
+
disable_features=disable_features,
|
508
534
|
binary_location=binary_location,
|
509
535
|
driver_version=driver_version,
|
510
536
|
page_load_strategy=page_load_strategy,
|
@@ -55,6 +55,7 @@ def pytest_addoption(parser):
|
|
55
55
|
--firefox-pref=SET (Set a Firefox preference:value set, comma-separated.)
|
56
56
|
--extension-zip=ZIP (Load a Chrome Extension .zip|.crx, comma-separated.)
|
57
57
|
--extension-dir=DIR (Load a Chrome Extension directory, comma-separated.)
|
58
|
+
--disable-features="F1,F2" (Disable features, comma-separated, no spaces.)
|
58
59
|
--binary-location=PATH (Set path of the Chromium browser binary to use.)
|
59
60
|
--driver-version=VER (Set the chromedriver or uc_driver version to use.)
|
60
61
|
--sjw (Skip JS Waits for readyState to be "complete" or Angular to load.)
|
@@ -199,6 +200,8 @@ def pytest_addoption(parser):
|
|
199
200
|
constants.Environment.DEVELOP,
|
200
201
|
constants.Environment.PRODUCTION,
|
201
202
|
constants.Environment.PERFORMANCE,
|
203
|
+
constants.Environment.REPLICA,
|
204
|
+
constants.Environment.FEDRAMP,
|
202
205
|
constants.Environment.OFFLINE,
|
203
206
|
constants.Environment.ONLINE,
|
204
207
|
constants.Environment.MASTER,
|
@@ -208,6 +211,7 @@ def pytest_addoption(parser):
|
|
208
211
|
constants.Environment.ALPHA,
|
209
212
|
constants.Environment.BETA,
|
210
213
|
constants.Environment.DEMO,
|
214
|
+
constants.Environment.GDPR,
|
211
215
|
constants.Environment.MAIN,
|
212
216
|
constants.Environment.TEST,
|
213
217
|
constants.Environment.GOV,
|
@@ -624,6 +628,16 @@ def pytest_addoption(parser):
|
|
624
628
|
(Can also be a comma-separated list of directories.)
|
625
629
|
Default: None.""",
|
626
630
|
)
|
631
|
+
parser.addoption(
|
632
|
+
"--disable_features",
|
633
|
+
"--disable-features",
|
634
|
+
action="store",
|
635
|
+
dest="disable_features",
|
636
|
+
default=None,
|
637
|
+
help="""Disable Chromium features from Chrome/Edge browsers.
|
638
|
+
Format: A comma-separated list of Chromium features.
|
639
|
+
Default: None.""",
|
640
|
+
)
|
627
641
|
parser.addoption(
|
628
642
|
"--binary_location",
|
629
643
|
"--binary-location",
|
@@ -1477,6 +1491,7 @@ def pytest_configure(config):
|
|
1477
1491
|
sb_config.firefox_pref = config.getoption("firefox_pref")
|
1478
1492
|
sb_config.extension_zip = config.getoption("extension_zip")
|
1479
1493
|
sb_config.extension_dir = config.getoption("extension_dir")
|
1494
|
+
sb_config.disable_features = config.getoption("disable_features")
|
1480
1495
|
sb_config.binary_location = config.getoption("binary_location")
|
1481
1496
|
sb_config.driver_version = config.getoption("driver_version")
|
1482
1497
|
sb_config.page_load_strategy = config.getoption("page_load_strategy")
|
@@ -72,6 +72,7 @@ def SB(
|
|
72
72
|
user_data_dir=None, # Set the Chrome user data directory to use.
|
73
73
|
extension_zip=None, # Load a Chrome Extension .zip|.crx, comma-separated.
|
74
74
|
extension_dir=None, # Load a Chrome Extension directory, comma-separated.
|
75
|
+
disable_features=None, # "F1,F2" (Disable Chrome features, ","-separated.)
|
75
76
|
binary_location=None, # Set path of the Chromium browser binary to use.
|
76
77
|
driver_version=None, # Set the chromedriver or uc_driver version to use.
|
77
78
|
skip_js_waits=None, # Skip JS Waits (readyState=="complete" and Angular).
|
@@ -325,6 +326,30 @@ def SB(
|
|
325
326
|
proxy_string = proxy_string[1:-1]
|
326
327
|
elif proxy_string.startswith("'") and proxy_string.endswith("'"):
|
327
328
|
proxy_string = proxy_string[1:-1]
|
329
|
+
c_a = chromium_arg
|
330
|
+
if c_a is None and "--chromium-arg" in arg_join:
|
331
|
+
if "--chromium-arg=" in arg_join:
|
332
|
+
c_a = arg_join.split("--chromium-arg=")[1].split(" ")[0]
|
333
|
+
elif "--chromium-arg " in arg_join:
|
334
|
+
c_a = arg_join.split("--chromium-arg ")[1].split(" ")[0]
|
335
|
+
if c_a:
|
336
|
+
if c_a.startswith('"') and c_a.endswith('"'):
|
337
|
+
c_a = c_a[1:-1]
|
338
|
+
elif c_a.startswith("'") and c_a.endswith("'"):
|
339
|
+
c_a = c_a[1:-1]
|
340
|
+
chromium_arg = c_a
|
341
|
+
d_f = disable_features
|
342
|
+
if d_f is None and "--disable-features" in arg_join:
|
343
|
+
if "--disable-features=" in arg_join:
|
344
|
+
d_f = arg_join.split("--disable-features=")[1].split(" ")[0]
|
345
|
+
elif "--disable-features " in arg_join:
|
346
|
+
d_f = arg_join.split("--disable-features ")[1].split(" ")[0]
|
347
|
+
if d_f:
|
348
|
+
if d_f.startswith('"') and d_f.endswith('"'):
|
349
|
+
d_f = d_f[1:-1]
|
350
|
+
elif c_a.startswith("'") and d_f.endswith("'"):
|
351
|
+
d_f = d_f[1:-1]
|
352
|
+
disable_features = d_f
|
328
353
|
user_agent = agent
|
329
354
|
recorder_mode = False
|
330
355
|
if recorder_ext:
|
@@ -731,6 +756,7 @@ def SB(
|
|
731
756
|
sb_config.chromium_arg = chromium_arg
|
732
757
|
sb_config.firefox_arg = firefox_arg
|
733
758
|
sb_config.firefox_pref = firefox_pref
|
759
|
+
sb_config.disable_features = disable_features
|
734
760
|
sb_config.proxy_string = proxy_string
|
735
761
|
sb_config.proxy_bypass_list = proxy_bypass_list
|
736
762
|
sb_config.proxy_pac_url = proxy_pac_url
|
@@ -833,6 +859,7 @@ def SB(
|
|
833
859
|
sb.chromium_arg = sb_config.chromium_arg
|
834
860
|
sb.firefox_arg = sb_config.firefox_arg
|
835
861
|
sb.firefox_pref = sb_config.firefox_pref
|
862
|
+
sb.disable_features = sb_config.disable_features
|
836
863
|
sb.proxy_string = sb_config.proxy_string
|
837
864
|
sb.proxy_bypass_list = sb_config.proxy_bypass_list
|
838
865
|
sb.proxy_pac_url = sb_config.proxy_pac_url
|
@@ -36,6 +36,7 @@ class SeleniumBrowser(Plugin):
|
|
36
36
|
--firefox-pref=SET (Set a Firefox preference:value set, comma-separated.)
|
37
37
|
--extension-zip=ZIP (Load a Chrome Extension .zip|.crx, comma-separated.)
|
38
38
|
--extension-dir=DIR (Load a Chrome Extension directory, comma-separated.)
|
39
|
+
--disable-features="F1,F2" (Disable features, comma-separated, no spaces.)
|
39
40
|
--binary-location=PATH (Set path of the Chromium browser binary to use.)
|
40
41
|
--driver-version=VER (Set the chromedriver or uc_driver version to use.)
|
41
42
|
--sjw (Skip JS Waits for readyState to be "complete" or Angular to load.)
|
@@ -365,6 +366,16 @@ class SeleniumBrowser(Plugin):
|
|
365
366
|
(Can also be a comma-separated list of directories.)
|
366
367
|
Default: None.""",
|
367
368
|
)
|
369
|
+
parser.addoption(
|
370
|
+
"--disable_features",
|
371
|
+
"--disable-features",
|
372
|
+
action="store",
|
373
|
+
dest="disable_features",
|
374
|
+
default=None,
|
375
|
+
help="""Disable Chromium features from Chrome/Edge browsers.
|
376
|
+
Format: A comma-separated list of Chromium features.
|
377
|
+
Default: None.""",
|
378
|
+
)
|
368
379
|
parser.addoption(
|
369
380
|
"--binary_location",
|
370
381
|
"--binary-location",
|
@@ -1089,6 +1100,7 @@ class SeleniumBrowser(Plugin):
|
|
1089
1100
|
test.test.user_data_dir = self.options.user_data_dir
|
1090
1101
|
test.test.extension_zip = self.options.extension_zip
|
1091
1102
|
test.test.extension_dir = self.options.extension_dir
|
1103
|
+
test.test.disable_features = self.options.disable_features
|
1092
1104
|
test.test.binary_location = self.options.binary_location
|
1093
1105
|
test.test.driver_version = self.options.driver_version
|
1094
1106
|
test.test.page_load_strategy = self.options.page_load_strategy
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: seleniumbase
|
3
|
-
Version: 4.22.
|
3
|
+
Version: 4.22.6
|
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
|
@@ -89,7 +89,7 @@ Requires-Dist: pytest-xdist ==3.5.0
|
|
89
89
|
Requires-Dist: parameterized ==0.9.0
|
90
90
|
Requires-Dist: sbvirtualdisplay ==1.3.0
|
91
91
|
Requires-Dist: behave ==1.2.6
|
92
|
-
Requires-Dist: beautifulsoup4 ==4.12.
|
92
|
+
Requires-Dist: beautifulsoup4 ==4.12.3
|
93
93
|
Requires-Dist: pygments ==2.17.2
|
94
94
|
Requires-Dist: tabcompleter ==1.3.0
|
95
95
|
Requires-Dist: pdbp ==1.5.0
|
@@ -112,7 +112,7 @@ Requires-Dist: urllib3 <2.2.0,>=1.26.18 ; python_version >= "3.10"
|
|
112
112
|
Requires-Dist: setuptools >=69.0.3 ; python_version >= "3.8"
|
113
113
|
Requires-Dist: filelock >=3.13.1 ; python_version >= "3.8"
|
114
114
|
Requires-Dist: platformdirs >=4.1.0 ; python_version >= "3.8"
|
115
|
-
Requires-Dist: trio ==0.
|
115
|
+
Requires-Dist: trio ==0.24.0 ; python_version >= "3.8"
|
116
116
|
Requires-Dist: selenium ==4.16.0 ; python_version >= "3.8"
|
117
117
|
Requires-Dist: pluggy ==1.3.0 ; python_version >= "3.8"
|
118
118
|
Requires-Dist: soupsieve ==2.5 ; python_version >= "3.8"
|
@@ -130,8 +130,8 @@ Requires-Dist: mccabe ==0.7.0 ; extra == 'flake8'
|
|
130
130
|
Requires-Dist: flake8 ==5.0.4 ; (python_version < "3.9") and extra == 'flake8'
|
131
131
|
Requires-Dist: pyflakes ==2.5.0 ; (python_version < "3.9") and extra == 'flake8'
|
132
132
|
Requires-Dist: pycodestyle ==2.9.1 ; (python_version < "3.9") and extra == 'flake8'
|
133
|
-
Requires-Dist: flake8 ==
|
134
|
-
Requires-Dist: pyflakes ==3.
|
133
|
+
Requires-Dist: flake8 ==7.0.0 ; (python_version >= "3.9") and extra == 'flake8'
|
134
|
+
Requires-Dist: pyflakes ==3.2.0 ; (python_version >= "3.9") and extra == 'flake8'
|
135
135
|
Requires-Dist: pycodestyle ==2.11.1 ; (python_version >= "3.9") and extra == 'flake8'
|
136
136
|
Provides-Extra: ipdb
|
137
137
|
Requires-Dist: ipdb ==0.13.13 ; extra == 'ipdb'
|
@@ -146,7 +146,7 @@ Requires-Dist: cffi ==1.16.0 ; (python_version >= "3.8") and extra == 'pdfminer'
|
|
146
146
|
Requires-Dist: cryptography ==41.0.7 ; (python_version >= "3.9") and extra == 'pdfminer'
|
147
147
|
Provides-Extra: pillow
|
148
148
|
Requires-Dist: Pillow ==9.5.0 ; (python_version < "3.8") and extra == 'pillow'
|
149
|
-
Requires-Dist: Pillow ==10.
|
149
|
+
Requires-Dist: Pillow ==10.2.0 ; (python_version >= "3.8") and extra == 'pillow'
|
150
150
|
Provides-Extra: psutil
|
151
151
|
Requires-Dist: psutil ==5.9.6 ; extra == 'psutil'
|
152
152
|
Provides-Extra: selenium-stealth
|
@@ -820,6 +820,7 @@ pytest test_coffee_cart.py --trace
|
|
820
820
|
--firefox-pref=SET # (Set a Firefox preference:value set, comma-separated.)
|
821
821
|
--extension-zip=ZIP # (Load a Chrome Extension .zip|.crx, comma-separated.)
|
822
822
|
--extension-dir=DIR # (Load a Chrome Extension directory, comma-separated.)
|
823
|
+
--disable-features="F1,F2" # (Disable features, comma-separated, no spaces.)
|
823
824
|
--binary-location=PATH # (Set path of the Chromium browser binary to use.)
|
824
825
|
--driver-version=VER # (Set the chromedriver or uc_driver version to use.)
|
825
826
|
--sjw # (Skip JS Waits for readyState to be "complete" or Angular to load.)
|
@@ -5,10 +5,10 @@ sbase/steps.py,sha256=bKT_u5bJkKzYWEuAXi9NVVRYYxQRCM1_YJUrNFFRVPY,42865
|
|
5
5
|
seleniumbase/ReadMe.md,sha256=5Bnv8gsyKQGABhLj0S4HXZdtVic98puQlIGYc7YHUm8,3612
|
6
6
|
seleniumbase/__init__.py,sha256=Mw4ShIWUF2Efjx-JuwUQLWF9nIbxcX-vu9AOGBp32ec,2123
|
7
7
|
seleniumbase/__main__.py,sha256=dn1p6dgCchmcH1zzTzzQvFwwdQQqnTGH6ULV9m4hv24,654
|
8
|
-
seleniumbase/__version__.py,sha256=
|
8
|
+
seleniumbase/__version__.py,sha256=zIvINUt58DWFMNgcFaSjsO3-xo3pBBiibPNroBrwC-U,46
|
9
9
|
seleniumbase/behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
10
|
seleniumbase/behave/behave_helper.py,sha256=elkl8P9eLulRAioLstE9baYNM9N_PHBmAOcajX-pH_Y,24198
|
11
|
-
seleniumbase/behave/behave_sb.py,sha256=
|
11
|
+
seleniumbase/behave/behave_sb.py,sha256=fy1yz96ED-M0cgfGp0jZlxNVegPYnLRJWj7lBSGMKlQ,56283
|
12
12
|
seleniumbase/behave/steps.py,sha256=8-N-NB2tnDsxaP4LSg-uSBgbwZYMS6ZEL1oggO1PCoU,390
|
13
13
|
seleniumbase/common/ReadMe.md,sha256=PwQsRSPRCXejL-fg4YyDzED_Yr6e7ddmGu3g2OcDrcQ,3286
|
14
14
|
seleniumbase/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -25,11 +25,11 @@ seleniumbase/console_scripts/ReadMe.md,sha256=YVnRDa4tUfUWb1fRxKLrzK1Rw0Idcpi1Pe
|
|
25
25
|
seleniumbase/console_scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
26
|
seleniumbase/console_scripts/logo_helper.py,sha256=F8pcANlWY6pdcMwHUdjjpjAD9i8XD0R5J-28eSh7QMM,1907
|
27
27
|
seleniumbase/console_scripts/rich_helper.py,sha256=U_zvXpalxVV8rtg8c8EnNNmnh45tii3AV5ZV3O3KbGA,2234
|
28
|
-
seleniumbase/console_scripts/run.py,sha256=
|
28
|
+
seleniumbase/console_scripts/run.py,sha256=KHmbWk98_urdehNs1s8yN0sKqLUdF3hEBqlE0nn3nAQ,58229
|
29
29
|
seleniumbase/console_scripts/sb_behave_gui.py,sha256=8uFTnHU3lPsxAlPFbGe4tH4fVryEbQeVBydwJZw3e9c,15403
|
30
30
|
seleniumbase/console_scripts/sb_caseplans.py,sha256=HrML5SU6E_3gC8Ae5byo5tnBidrs0sY3feJ8ug4cR4o,18415
|
31
31
|
seleniumbase/console_scripts/sb_commander.py,sha256=FdRLcEe3xOnnbU1bZI4_1ZLu5eKdR4JuIh37j5M-J00,13585
|
32
|
-
seleniumbase/console_scripts/sb_install.py,sha256
|
32
|
+
seleniumbase/console_scripts/sb_install.py,sha256=-4vc59TPJytxiOZJ5HQx8QfhNMYKmNxPnxcI-wpeWNg,45556
|
33
33
|
seleniumbase/console_scripts/sb_mkchart.py,sha256=QDDjA8N_Qy62Mgbe2fnSU8mhZbKTVyV9KJRKYz2Tf7Y,11232
|
34
34
|
seleniumbase/console_scripts/sb_mkdir.py,sha256=RW35r_POg59HXmRDT3-STt9qZbttgOOX15aQfj4et1Q,30297
|
35
35
|
seleniumbase/console_scripts/sb_mkfile.py,sha256=t2rxTZTz76RDeSbBdHLaHUDS6LT_p0ttm2H_uYdtBko,16480
|
@@ -40,7 +40,7 @@ seleniumbase/console_scripts/sb_print.py,sha256=bFXBFusrKZ0v2OwCVgTiHvDCi17HdJYA
|
|
40
40
|
seleniumbase/console_scripts/sb_recorder.py,sha256=2QQov64Erfnm1hnVleKX-c_llcsO6hhJKKxzcANcix0,10904
|
41
41
|
seleniumbase/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
42
42
|
seleniumbase/core/application_manager.py,sha256=e_0sjtI8cjY5BNyZj1QBR0j6_oCScxGmSXYEpcYwuZE,576
|
43
|
-
seleniumbase/core/browser_launcher.py,sha256=
|
43
|
+
seleniumbase/core/browser_launcher.py,sha256=8cSA_s1p9AeJ5WyFtvFRM_kTU79eRtWjRkI2Cqljru8,162266
|
44
44
|
seleniumbase/core/capabilities_parser.py,sha256=meIS2uHapTCq2ldfNAToC7r0cKmZDRXuYNKExM1GHDY,6038
|
45
45
|
seleniumbase/core/colored_traceback.py,sha256=DrRWfg7XEnKcgY59Xj7Jdk09H-XqHYBSUpB-DiZt6iY,2020
|
46
46
|
seleniumbase/core/create_db_tables.sql,sha256=VWPtrdiW_HQ6yETHjqTu-VIrTwvd8I8o1NfBeaVSHpU,972
|
@@ -70,7 +70,7 @@ seleniumbase/extensions/disable_csp.zip,sha256=YMifIIgEBiLrEFrS1sfW4Exh4br1V4oK1
|
|
70
70
|
seleniumbase/extensions/recorder.zip,sha256=OwrA8rmLHBq1jWsehw7rAy_EcwYVQkmtPW_RKjNtmW0,11896
|
71
71
|
seleniumbase/extensions/sbase_ext.zip,sha256=3s1N8zrVaMz8RQEOIoBzC3KDjtmHwVZRvVsX25Odr_s,8175
|
72
72
|
seleniumbase/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
73
|
-
seleniumbase/fixtures/base_case.py,sha256=
|
73
|
+
seleniumbase/fixtures/base_case.py,sha256=Bu84m9atQzyw5fNtuJ2UcXOLFnhc74Pjw2xhcYHmemE,687494
|
74
74
|
seleniumbase/fixtures/constants.py,sha256=o7gQVKt0nZoR4r0tRwkfWYiCxjEDG9e7D6EEEXG141I,13254
|
75
75
|
seleniumbase/fixtures/css_to_xpath.py,sha256=9ouDB1xl4MJ2os6JOgTIAyHKOQfuxtxvXC3O5hSnEKA,1954
|
76
76
|
seleniumbase/fixtures/errors.py,sha256=KyxuEVx_e3MPhVrJfNIa_3ltMpbCFxfy_jxK8RFNTns,555
|
@@ -92,13 +92,13 @@ seleniumbase/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
|
|
92
92
|
seleniumbase/plugins/base_plugin.py,sha256=vwvjF3Ws_q6dQaQxlO9GVpbSASxLtNlB5SV1m30Q32U,14962
|
93
93
|
seleniumbase/plugins/basic_test_info.py,sha256=8ov6n417gPbqqvrlT4zrch7l2XcRt-GF2ny6rR9AMWk,2108
|
94
94
|
seleniumbase/plugins/db_reporting_plugin.py,sha256=En09qUCoojrk9-vbcnsoHdSELoGmag2GDIyu3jTiJas,7331
|
95
|
-
seleniumbase/plugins/driver_manager.py,sha256=
|
95
|
+
seleniumbase/plugins/driver_manager.py,sha256=vFVOIbPgt1Jo6Hk3uIxQuJXu5hBsfosE1rdlKd2LIn0,20594
|
96
96
|
seleniumbase/plugins/page_source.py,sha256=loTnXxOj4kxEukuTZEiGyvKBhY3KDVDMnNlHHheTBDE,1889
|
97
|
-
seleniumbase/plugins/pytest_plugin.py,sha256=
|
97
|
+
seleniumbase/plugins/pytest_plugin.py,sha256=zoo3muEUfCIMS96mcsPpvxRHRvL2MoM1G-e_JjIr3Vk,94076
|
98
98
|
seleniumbase/plugins/s3_logging_plugin.py,sha256=WDfertQgGOW_SRJpFMaekYD6vBVW9VO62POtXXy2HCM,2319
|
99
|
-
seleniumbase/plugins/sb_manager.py,sha256=
|
99
|
+
seleniumbase/plugins/sb_manager.py,sha256=Wl6XAMYmSOlchq6Ab76pD56kDap9ZMQcSp7ecb80d6w,39578
|
100
100
|
seleniumbase/plugins/screen_shots.py,sha256=1hrXw-hzuZ1BR6Yh7AyWX2ABnvnP73-RCbwdz958gj4,1127
|
101
|
-
seleniumbase/plugins/selenium_plugin.py,sha256=
|
101
|
+
seleniumbase/plugins/selenium_plugin.py,sha256=wErmsKOzBFd9lDX9VVmxPauSpdjBDWScDk74QsCzJOY,54493
|
102
102
|
seleniumbase/resources/ReadMe.md,sha256=uminnO5_Uv-UZDKcc9a9s9kxisaYUps-H98Fp5PJcaU,2124
|
103
103
|
seleniumbase/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
104
104
|
seleniumbase/resources/favicon.ico,sha256=QPf_YK0QXa_--C4_CH-odh6OTHRQ9k-4O6WcCpXSdwM,1150
|
@@ -137,9 +137,9 @@ seleniumbase/utilities/selenium_grid/start-grid-hub.sh,sha256=KADv0RUHONLL2_I443
|
|
137
137
|
seleniumbase/utilities/selenium_ide/ReadMe.md,sha256=hznGeuMpkIimqMiZBW-4goIy2ltW4l8X9kb0YSPUQfE,4483
|
138
138
|
seleniumbase/utilities/selenium_ide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
139
139
|
seleniumbase/utilities/selenium_ide/convert_ide.py,sha256=pZFnqEJQEKZPyNFjkLD29s2HPQgCrWW9XJWpCPhWOoM,31691
|
140
|
-
seleniumbase-4.22.
|
141
|
-
seleniumbase-4.22.
|
142
|
-
seleniumbase-4.22.
|
143
|
-
seleniumbase-4.22.
|
144
|
-
seleniumbase-4.22.
|
145
|
-
seleniumbase-4.22.
|
140
|
+
seleniumbase-4.22.6.dist-info/LICENSE,sha256=odSYtWibXBnQ1gBg6CnDZ82n8kLF_if5-2nbqnEyD8k,1085
|
141
|
+
seleniumbase-4.22.6.dist-info/METADATA,sha256=TtIE9SmJ5nCwaBB3ZvVecTj9cHkLQIljNLJEasE7x6M,84253
|
142
|
+
seleniumbase-4.22.6.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
143
|
+
seleniumbase-4.22.6.dist-info/entry_points.txt,sha256=CNrh2EKNaHYEhO6pP1RJyVLB99LkDDYX7TnUK8xfjqk,623
|
144
|
+
seleniumbase-4.22.6.dist-info/top_level.txt,sha256=4N97aBOQ8ETCnDnokBsWb07lJfTaq3C1ZzYRxvLMxqU,19
|
145
|
+
seleniumbase-4.22.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|