1414 sbase get chromedriver
1515 sbase get geckodriver
1616 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
1919 sbase get chromedriver latest
2020 sbase get chromedriver latest-1 # (Latest minus one)
2121 sbase get chromedriver -p
4242selenium4_or_newer = False
4343if sys .version_info [0 ] == 3 and sys .version_info [1 ] >= 7 :
4444 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
4554DRIVER_DIR = os .path .dirname (os .path .realpath (drivers .__file__ ))
4655LOCAL_PATH = "/usr/local/bin/" # On Mac and Linux systems
4756DEFAULT_CHROMEDRIVER_VERSION = "72.0.3626.69" # (If can't find LATEST_STABLE)
4857DEFAULT_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)
5059DEFAULT_OPERADRIVER_VERSION = "v.96.0.4664.45"
5160
5261
@@ -58,7 +67,7 @@ def invalid_run_command():
5867 exp += " OR seleniumbase get [DRIVER] [OPTIONS]\n "
5968 exp += " OR sbase get [DRIVER] [OPTIONS]\n "
6069 exp += " (Drivers: chromedriver, geckodriver, edgedriver,\n "
61- exp += " iedriver, operadriver)\n "
70+ exp += " iedriver, operadriver, uc_driver )\n "
6271 exp += " Options:\n "
6372 exp += " VERSION Specify the version.\n "
6473 exp += " Tries to detect the needed version.\n "
@@ -71,8 +80,8 @@ def invalid_run_command():
7180 exp += " sbase get chromedriver\n "
7281 exp += " sbase get geckodriver\n "
7382 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 "
7685 exp += " sbase get chromedriver latest\n "
7786 exp += " sbase get chromedriver latest-1\n "
7887 exp += " sbase get chromedriver -p\n "
@@ -179,7 +188,9 @@ def main(override=None, intel_for_uc=None):
179188 c3 = ""
180189 cr = ""
181190
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
183194 last = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE"
184195 use_version = DEFAULT_CHROMEDRIVER_VERSION
185196
@@ -229,10 +240,7 @@ def main(override=None, intel_for_uc=None):
229240 invalid_run_command ()
230241 if "darwin" in sys_plat :
231242 if (
232- (
233- "arm" in platform .processor ().lower ()
234- or "arm64" in platform .version ().lower ()
235- )
243+ IS_ARM_MAC
236244 and not intel_for_uc
237245 and int (use_version .split ("." )[0 ]) > 105
238246 ):
@@ -402,13 +410,7 @@ def main(override=None, intel_for_uc=None):
402410 file_name = "edgedriver_win32.zip"
403411 suffix = "WINDOWS"
404412 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 :
412414 file_name = "edgedriver_mac64_m1.zip"
413415 else :
414416 file_name = "edgedriver_mac64.zip"
@@ -645,18 +647,19 @@ def main(override=None, intel_for_uc=None):
645647 for f_name in contents :
646648 # Remove existing version if exists
647649 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+ )
648658 if "Driver" in new_file or "driver" in new_file :
649659 if os .path .exists (new_file ):
650660 os .remove (new_file ) # Technically the old file now
651661 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 :
660663 f_name = "uc_driver"
661664 new_file = os .path .join (downloads_folder , f_name )
662665 if os .path .exists (new_file ):
@@ -873,6 +876,11 @@ def main(override=None, intel_for_uc=None):
873876 make_executable (file_path )
874877 print ("%s[%s] is now ready for use!%s" % (c1 , file_name , cr ))
875878 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+ )
876884
877885
878886if __name__ == "__main__" :
0 commit comments