14
14
sbase get chromedriver
15
15
sbase get geckodriver
16
16
sbase get edgedriver
17
- sbase get chromedriver 107
18
- sbase get chromedriver 107 .0.5304.62
17
+ sbase get chromedriver 108
18
+ sbase get chromedriver 108 .0.5359.71
19
19
sbase get chromedriver latest
20
20
sbase get chromedriver latest-1 # (Latest minus one)
21
21
sbase get chromedriver -p
42
42
selenium4_or_newer = False
43
43
if sys .version_info [0 ] == 3 and sys .version_info [1 ] >= 7 :
44
44
selenium4_or_newer = True
45
+ IS_ARM_MAC = False
46
+ if (
47
+ sys .platform .endswith ("darwin" )
48
+ and (
49
+ "arm" in platform .processor ().lower ()
50
+ or "arm64" in platform .version ().lower ()
51
+ )
52
+ ):
53
+ IS_ARM_MAC = True
45
54
DRIVER_DIR = os .path .dirname (os .path .realpath (drivers .__file__ ))
46
55
LOCAL_PATH = "/usr/local/bin/" # On Mac and Linux systems
47
56
DEFAULT_CHROMEDRIVER_VERSION = "72.0.3626.69" # (If can't find LATEST_STABLE)
48
57
DEFAULT_GECKODRIVER_VERSION = "v0.32.0"
49
- DEFAULT_EDGEDRIVER_VERSION = "106 .0.1370.42 " # (If can't find LATEST_STABLE)
58
+ DEFAULT_EDGEDRIVER_VERSION = "108 .0.1462.54 " # (If can't find LATEST_STABLE)
50
59
DEFAULT_OPERADRIVER_VERSION = "v.96.0.4664.45"
51
60
52
61
@@ -58,7 +67,7 @@ def invalid_run_command():
58
67
exp += " OR seleniumbase get [DRIVER] [OPTIONS]\n "
59
68
exp += " OR sbase get [DRIVER] [OPTIONS]\n "
60
69
exp += " (Drivers: chromedriver, geckodriver, edgedriver,\n "
61
- exp += " iedriver, operadriver)\n "
70
+ exp += " iedriver, operadriver, uc_driver )\n "
62
71
exp += " Options:\n "
63
72
exp += " VERSION Specify the version.\n "
64
73
exp += " Tries to detect the needed version.\n "
@@ -71,8 +80,8 @@ def invalid_run_command():
71
80
exp += " sbase get chromedriver\n "
72
81
exp += " sbase get geckodriver\n "
73
82
exp += " sbase get edgedriver\n "
74
- exp += " sbase get chromedriver 107 \n "
75
- exp += " sbase get chromedriver 107 .0.5304.62 \n "
83
+ exp += " sbase get chromedriver 108 \n "
84
+ exp += " sbase get chromedriver 108 .0.5359.71 \n "
76
85
exp += " sbase get chromedriver latest\n "
77
86
exp += " sbase get chromedriver latest-1\n "
78
87
exp += " sbase get chromedriver -p\n "
@@ -179,7 +188,9 @@ def main(override=None, intel_for_uc=None):
179
188
c3 = ""
180
189
cr = ""
181
190
182
- if name == "chromedriver" :
191
+ if name == "chromedriver" or name == "uc_driver" :
192
+ if name == "uc_driver" and IS_ARM_MAC :
193
+ intel_for_uc = True # uc_driver is generated from chromedriver
183
194
last = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE"
184
195
use_version = DEFAULT_CHROMEDRIVER_VERSION
185
196
@@ -229,10 +240,7 @@ def main(override=None, intel_for_uc=None):
229
240
invalid_run_command ()
230
241
if "darwin" in sys_plat :
231
242
if (
232
- (
233
- "arm" in platform .processor ().lower ()
234
- or "arm64" in platform .version ().lower ()
235
- )
243
+ IS_ARM_MAC
236
244
and not intel_for_uc
237
245
and int (use_version .split ("." )[0 ]) > 105
238
246
):
@@ -402,13 +410,7 @@ def main(override=None, intel_for_uc=None):
402
410
file_name = "edgedriver_win32.zip"
403
411
suffix = "WINDOWS"
404
412
elif "darwin" in sys_plat :
405
- if (
406
- (
407
- "arm" in platform .processor ().lower ()
408
- or "arm64" in platform .version ().lower ()
409
- )
410
- and int (use_version .split ("." )[0 ]) > 104
411
- ):
413
+ if IS_ARM_MAC and int (use_version .split ("." )[0 ]) > 104 :
412
414
file_name = "edgedriver_mac64_m1.zip"
413
415
else :
414
416
file_name = "edgedriver_mac64.zip"
@@ -645,18 +647,19 @@ def main(override=None, intel_for_uc=None):
645
647
for f_name in contents :
646
648
# Remove existing version if exists
647
649
new_file = os .path .join (downloads_folder , str (f_name ))
650
+ if (
651
+ intel_for_uc
652
+ and "darwin" in sys_plat
653
+ and new_file .endswith ("drivers/chromedriver" )
654
+ ):
655
+ new_file = new_file .replace (
656
+ "drivers/chromedriver" , "drivers/uc_driver"
657
+ )
648
658
if "Driver" in new_file or "driver" in new_file :
649
659
if os .path .exists (new_file ):
650
660
os .remove (new_file ) # Technically the old file now
651
661
print ("Extracting %s from %s ..." % (contents , file_name ))
652
- if (
653
- intel_for_uc
654
- and "darwin" in sys_plat
655
- and (
656
- "arm" in platform .processor ().lower ()
657
- or "arm64" in platform .version ().lower ()
658
- )
659
- ):
662
+ if intel_for_uc and IS_ARM_MAC :
660
663
f_name = "uc_driver"
661
664
new_file = os .path .join (downloads_folder , f_name )
662
665
if os .path .exists (new_file ):
@@ -873,6 +876,11 @@ def main(override=None, intel_for_uc=None):
873
876
make_executable (file_path )
874
877
print ("%s[%s] is now ready for use!%s" % (c1 , file_name , cr ))
875
878
print ("Location of [%s]:\n %s\n " % (file_name , file_path ))
879
+ if name == "uc_driver" and not IS_ARM_MAC :
880
+ print (
881
+ "%s[uc_driver] will be created from [chromedriver] at runtime!%s\n "
882
+ % (c5 , cr )
883
+ )
876
884
877
885
878
886
if __name__ == "__main__" :
0 commit comments