Skip to content

Commit ca2fafb

Browse files
committed
Update output when calling "sbase get DRIVER"
1 parent fe0675d commit ca2fafb

File tree

3 files changed

+35
-19
lines changed

3 files changed

+35
-19
lines changed

seleniumbase/console_scripts/run.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838

3939
import colorama
4040
import sys
41+
from seleniumbase.fixtures import constants
4142

4243
colorama.init(autoreset=True)
4344

@@ -947,11 +948,18 @@ def main():
947948
import time
948949
from seleniumbase.console_scripts import sb_install
949950

951+
need_retry = False
950952
try:
951953
sb_install.main()
952-
except Exception:
953-
print("\nDriver download failed! Retrying in two seconds...")
954-
time.sleep(2)
954+
except Exception as e:
955+
invalid_run_cmd = constants.Warnings.INVALID_RUN_COMMAND
956+
if invalid_run_cmd in e.args[0].split("\n")[0]:
957+
raise
958+
print("\nDriver download failed! Retrying in 3 seconds...")
959+
time.sleep(3)
960+
print()
961+
need_retry = True
962+
if need_retry:
955963
sb_install.main()
956964
else:
957965
show_basic_usage()

seleniumbase/console_scripts/sb_install.py

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import tarfile
4141
import urllib3
4242
import zipfile
43+
from seleniumbase.fixtures import constants
4344
from seleniumbase import drivers # webdriver storage folder for SeleniumBase
4445

4546
urllib3.disable_warnings()
@@ -91,7 +92,7 @@ def invalid_run_command():
9192
exp += " (iedriver is required for InternetExplorer automation)\n"
9293
exp += " (operadriver is required for Opera Browser automation)\n"
9394
print("")
94-
raise Exception("INVALID RUN COMMAND!\n\n%s" % exp)
95+
raise Exception("%s\n\n%s" % (constants.Warnings.INVALID_RUN_COMMAND, exp))
9596

9697

9798
def make_executable(file_path):
@@ -529,12 +530,14 @@ def main(override=None):
529530
if file_name is None or download_url is None:
530531
invalid_run_command()
531532

532-
file_path = downloads_folder + "/" + file_name
533+
file_path = os.path.join(downloads_folder, file_name)
533534
if not os.path.exists(downloads_folder):
534535
os.makedirs(downloads_folder)
535536

536537
if headless_ie_exists:
537-
headless_ie_file_path = downloads_folder + "/" + headless_ie_file_name
538+
headless_ie_file_path = os.path.join(
539+
downloads_folder, headless_ie_file_name
540+
)
538541
print(
539542
"\nDownloading %s from:\n%s ..."
540543
% (headless_ie_file_name, headless_ie_url)
@@ -572,7 +575,7 @@ def main(override=None):
572575
for f_name in contents:
573576
# Remove existing version if exists
574577
str_name = str(f_name)
575-
new_file = downloads_folder + "/" + str_name
578+
new_file = os.path.join(downloads_folder, str_name)
576579
if str_name == "%s/headless_ie_selenium.exe" % h_ie_fn:
577580
driver_file = str_name
578581
driver_path = new_file
@@ -628,7 +631,7 @@ def main(override=None):
628631
raise Exception("Zip file for OperaDriver is missing content!")
629632
for f_name in contents:
630633
# Remove existing version if exists
631-
new_file = downloads_folder + "/" + str(f_name)
634+
new_file = os.path.join(downloads_folder, str(f_name))
632635
if "Driver" in new_file or "driver" in new_file:
633636
if os.path.exists(new_file):
634637
os.remove(new_file) # Technically the old file now
@@ -638,7 +641,7 @@ def main(override=None):
638641
os.remove(zip_file_path)
639642
print("Unzip Complete!\n")
640643
for f_name in contents:
641-
new_file = downloads_folder + "/" + str(f_name)
644+
new_file = os.path.join(downloads_folder, str(f_name))
642645
pr_file = c3 + new_file + cr
643646
print("The file [%s] was saved to:\n%s\n" % (f_name, pr_file))
644647
print("Making [%s %s] executable ..." % (f_name, use_version))
@@ -685,7 +688,7 @@ def main(override=None):
685688
print(f_name)
686689
# Remove existing version if exists
687690
str_name = str(f_name)
688-
new_file = downloads_folder + "/" + str_name
691+
new_file = os.path.join(downloads_folder, str_name)
689692
if "darwin" in sys_plat or "linux" in sys_plat:
690693
# Mac / Linux
691694
if str_name == "msedgedriver":
@@ -715,9 +718,9 @@ def main(override=None):
715718
for file_to_remove in to_remove:
716719
if os.path.exists(file_to_remove):
717720
os.remove(file_to_remove)
718-
if os.path.exists(downloads_folder + "/" + "Driver_Notes/"):
721+
if os.path.exists(os.path.join(downloads_folder, "Driver_Notes/")):
719722
# Only works if the directory is empty
720-
os.rmdir(downloads_folder + "/" + "Driver_Notes/")
723+
os.rmdir(os.path.join(downloads_folder, "Driver_Notes/"))
721724
print(
722725
"The file [%s] was saved to:\n%s\n"
723726
% (driver_file, driver_path)
@@ -740,7 +743,7 @@ def main(override=None):
740743
for f_name in contents:
741744
# Remove existing version if exists
742745
str_name = str(f_name).split(inner_folder)[1]
743-
new_file = downloads_folder + "/" + str_name
746+
new_file = os.path.join(downloads_folder, str_name)
744747
if str_name == "operadriver" or str_name == "operadriver.exe":
745748
driver_file = str_name
746749
driver_path = new_file
@@ -753,8 +756,12 @@ def main(override=None):
753756
zip_ref.close()
754757
os.remove(zip_file_path)
755758
print("Unzip Complete!\n")
756-
inner_driver = downloads_folder + "/" + inner_folder + driver_file
757-
inner_sha = downloads_folder + "/" + inner_folder + "sha512_sum"
759+
inner_driver = os.path.join(
760+
downloads_folder, inner_folder, driver_file
761+
)
762+
inner_sha = os.path.join(
763+
downloads_folder, inner_folder, "sha512_sum"
764+
)
758765
shutil.copyfile(inner_driver, driver_path)
759766
pr_driver_path = c3 + driver_path + cr
760767
print(
@@ -774,9 +781,9 @@ def main(override=None):
774781
os.remove(inner_driver)
775782
if os.path.exists(inner_sha):
776783
os.remove(inner_sha)
777-
if os.path.exists(downloads_folder + "/" + inner_folder):
784+
if os.path.exists(os.path.join(downloads_folder, inner_folder)):
778785
# Only works if the directory is empty
779-
os.rmdir(downloads_folder + "/" + inner_folder)
786+
os.rmdir(os.path.join(downloads_folder, inner_folder))
780787
print("")
781788
elif len(contents) == 0:
782789
raise Exception("Zip file %s is empty!" % zip_file_path)
@@ -789,7 +796,7 @@ def main(override=None):
789796
if len(contents) == 1:
790797
for f_name in contents:
791798
# Remove existing version if exists
792-
new_file = downloads_folder + "/" + str(f_name)
799+
new_file = os.path.join(downloads_folder, str(f_name))
793800
if "Driver" in new_file or "driver" in new_file:
794801
if os.path.exists(new_file):
795802
os.remove(new_file) # Technically the old file now
@@ -799,7 +806,7 @@ def main(override=None):
799806
os.remove(tar_file_path)
800807
print("Unzip Complete!\n")
801808
for f_name in contents:
802-
new_file = downloads_folder + "/" + str(f_name)
809+
new_file = os.path.join(downloads_folder, str(f_name))
803810
pr_file = c3 + new_file + cr
804811
print("The file [%s] was saved to:\n%s\n" % (f_name, pr_file))
805812
print("Making [%s %s] executable ..." % (f_name, use_version))

seleniumbase/fixtures/constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ class Values:
122122
class Warnings:
123123
SCREENSHOT_UNDEFINED = "Unable to get screenshot!"
124124
PAGE_SOURCE_UNDEFINED = "Unable to get page source!"
125+
INVALID_RUN_COMMAND = "INVALID RUN COMMAND!"
125126

126127

127128
class JQuery:

0 commit comments

Comments
 (0)