@@ -264,8 +264,6 @@ def main(override=None, intel_for_uc=None):
264
264
).split ("." )[0 ]
265
265
if int (major_chrome_version ) < 72 :
266
266
major_chrome_version = None
267
- elif int (major_chrome_version ) > 114 :
268
- major_chrome_version = "114"
269
267
except Exception :
270
268
major_chrome_version = None
271
269
if major_chrome_version and major_chrome_version .isnumeric ():
@@ -317,6 +315,7 @@ def main(override=None, intel_for_uc=None):
317
315
"Cannot determine which version of chromedriver to download!"
318
316
)
319
317
found_chromedriver = False
318
+ cft = False
320
319
if get_latest or get_latest_minus_one :
321
320
url_request = requests_get (last )
322
321
if url_request .ok :
@@ -329,17 +328,59 @@ def main(override=None, intel_for_uc=None):
329
328
url_req = requests_get (last )
330
329
if url_req .ok :
331
330
latest_version = url_req .text
332
- last = last + "_" + use_version
333
- url_request = requests_get (last )
334
- if url_request .ok :
335
- found_chromedriver = True
336
- use_version = url_request .text
337
- if use_version == latest_version :
338
- get_latest = True
331
+ if int (use_version ) < 115 :
332
+ last = last + "_" + use_version
333
+ url_request = requests_get (last )
334
+ if url_request .ok :
335
+ found_chromedriver = True
336
+ use_version = url_request .text
337
+ if use_version == latest_version :
338
+ get_latest = True
339
+ else :
340
+ cft = True
341
+ cft_latest_vpm_url = (
342
+ "https://googlechromelabs.github.io/"
343
+ "chrome-for-testing/latest-versions-per-milestone.json"
344
+ )
345
+ url_request = requests_get (cft_latest_vpm_url )
346
+ if url_request .ok :
347
+ use_ver = use_version
348
+ fver = url_request .json ()["milestones" ][use_ver ]["version" ]
349
+ found_chromedriver = True
350
+ use_version = str (fver )
351
+ if use_version == latest_version :
352
+ get_latest = True
339
353
download_url = (
340
354
"https://chromedriver.storage.googleapis.com/"
341
355
"%s/%s" % (use_version , file_name )
342
356
)
357
+ plat_arch = ""
358
+ if cft :
359
+ if IS_MAC :
360
+ if (
361
+ IS_ARM_MAC
362
+ and not intel_for_uc
363
+ ):
364
+ platform_code = "mac-arm64"
365
+ file_name = "chromedriver-mac-arm64.zip"
366
+ else :
367
+ platform_code = "mac-x64"
368
+ file_name = "chromedriver-mac-x64.zip"
369
+ elif IS_LINUX :
370
+ platform_code = "linux64"
371
+ file_name = "chromedriver-linux64.zip"
372
+ elif IS_WINDOWS :
373
+ if "64" in ARCH :
374
+ platform_code = "win64"
375
+ file_name = "chromedriver-win64.zip"
376
+ else :
377
+ platform_code = "win32"
378
+ file_name = "chromedriver-win32.zip"
379
+ plat_arch = file_name .split (".zip" )[0 ]
380
+ download_url = (
381
+ "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/"
382
+ "%s/%s/%s" % (use_version , platform_code , file_name )
383
+ )
343
384
url_request = None
344
385
if not found_chromedriver :
345
386
url_req = requests_get (last )
@@ -351,7 +392,7 @@ def main(override=None, intel_for_uc=None):
351
392
if found_chromedriver or url_request .ok :
352
393
p_version = use_version
353
394
p_version = c3 + use_version + cr
354
- if get_latest :
395
+ if get_latest or cft :
355
396
p_version = p_version + " " + c2 + "(Latest)" + cr
356
397
else :
357
398
n_l_s = "Not Latest"
@@ -736,24 +777,26 @@ def main(override=None, intel_for_uc=None):
736
777
):
737
778
for f_name in contents :
738
779
if (
739
- name == "chromedriver"
780
+ ( name == "chromedriver" or name == "uc_driver" )
740
781
and (
741
- f_name == "chromedriver"
742
- or f_name == "chromedriver.exe"
782
+ f_name . split ( "/" )[ - 1 ] == "chromedriver"
783
+ or f_name . split ( "/" )[ - 1 ] == "chromedriver.exe"
743
784
)
744
785
):
745
- driver_name = f_name
786
+ driver_name = f_name . split ( "/" )[ - 1 ]
746
787
driver_contents = [driver_name ]
747
788
# Remove existing version if exists
748
789
new_file = os .path .join (downloads_folder , str (f_name ))
749
- if (
750
- intel_for_uc
751
- and IS_MAC
752
- and new_file .endswith ("drivers/chromedriver" )
753
- ):
754
- new_file = new_file .replace (
755
- "drivers/chromedriver" , "drivers/uc_driver"
756
- )
790
+ if intel_for_uc and IS_MAC :
791
+ if new_file .endswith ("drivers/chromedriver" ):
792
+ new_file = new_file .replace (
793
+ "drivers/chromedriver" , "drivers/uc_driver"
794
+ )
795
+ elif "drivers/%s/chromedriver" % plat_arch in new_file :
796
+ new_file = new_file .replace (
797
+ "drivers/%s/chromedriver" % plat_arch ,
798
+ "drivers/%s/uc_driver" % plat_arch
799
+ )
757
800
if "Driver" in new_file or "driver" in new_file :
758
801
if os .path .exists (new_file ):
759
802
os .remove (new_file ) # Technically the old file now
@@ -767,18 +810,26 @@ def main(override=None, intel_for_uc=None):
767
810
os .remove (new_file )
768
811
zipinfos = zip_ref .infolist ()
769
812
for zipinfo in zipinfos :
770
- if zipinfo .filename == "chromedriver" :
813
+ if zipinfo .filename . split ( "/" )[ - 1 ] == "chromedriver" :
771
814
zipinfo .filename = "uc_driver"
772
815
zip_ref .extract (zipinfo , downloads_folder )
773
816
contents = zip_ref .namelist ()
774
817
if driver_contents :
775
818
contents = driver_contents
776
- elif name == "chromedriver" :
819
+ elif name == "chromedriver" or name == "uc_driver" :
777
820
zipinfos = zip_ref .infolist ()
778
821
for zipinfo in zipinfos :
822
+ if zipinfo .filename .split ("/" )[- 1 ] == "chromedriver" :
823
+ zipinfo .filename = "chromedriver"
824
+ elif zipinfo .filename .split ("/" )[- 1 ] == (
825
+ "chromedriver.exe"
826
+ ):
827
+ zipinfo .filename = "chromedriver.exe"
779
828
if (
780
- zipinfo .filename == "chromedriver"
781
- or zipinfo .filename == "chromedriver.exe"
829
+ zipinfo .filename .split ("/" )[- 1 ] == "chromedriver"
830
+ or zipinfo .filename .split ("/" )[- 1 ] == (
831
+ "chromedriver.exe"
832
+ )
782
833
):
783
834
zip_ref .extract (zipinfo , downloads_folder )
784
835
contents = zip_ref .namelist ()
0 commit comments