@@ -902,6 +902,7 @@ def pytest_addoption(parser):
902
902
903
903
# Recorder Mode does not support headless browser runs.
904
904
# (Chromium does not allow extensions in Headless Mode)
905
+ using_recorder = False
905
906
if (
906
907
"--recorder" in sys_argv
907
908
or "--record" in sys_argv
@@ -912,11 +913,13 @@ def pytest_addoption(parser):
912
913
"\n \n Recorder Mode does NOT support Headless Mode!"
913
914
'\n (DO NOT combine "--recorder" with "--headless"!)\n '
914
915
)
916
+ using_recorder = True
915
917
916
918
# As a shortcut, you can use "--edge" instead of "--browser=edge", etc,
917
919
# but you can only specify one default browser for tests. (Default: chrome)
918
920
browser_changes = 0
919
921
browser_set = None
922
+ browser_text = None
920
923
browser_list = []
921
924
if "--browser=chrome" in sys_argv or "--browser chrome" in sys_argv :
922
925
browser_changes += 1
@@ -950,28 +953,35 @@ def pytest_addoption(parser):
950
953
browser_changes += 1
951
954
browser_set = "remote"
952
955
browser_list .append ("--browser=remote" )
956
+ browser_text = browser_set
953
957
if "--chrome" in sys_argv and not browser_set == "chrome" :
954
958
browser_changes += 1
959
+ browser_text = "chrome"
955
960
sb_config ._browser_shortcut = "chrome"
956
961
browser_list .append ("--chrome" )
957
962
if "--edge" in sys_argv and not browser_set == "edge" :
958
963
browser_changes += 1
964
+ browser_text = "edge"
959
965
sb_config ._browser_shortcut = "edge"
960
966
browser_list .append ("--edge" )
961
967
if "--firefox" in sys_argv and not browser_set == "firefox" :
962
968
browser_changes += 1
969
+ browser_text = "firefox"
963
970
sb_config ._browser_shortcut = "firefox"
964
971
browser_list .append ("--firefox" )
965
972
if "--ie" in sys_argv and not browser_set == "ie" :
966
973
browser_changes += 1
974
+ browser_text = "ie"
967
975
sb_config ._browser_shortcut = "ie"
968
976
browser_list .append ("--ie" )
969
977
if "--opera" in sys_argv and not browser_set == "opera" :
970
978
browser_changes += 1
979
+ browser_text = "opera"
971
980
sb_config ._browser_shortcut = "opera"
972
981
browser_list .append ("--opera" )
973
982
if "--safari" in sys_argv and not browser_set == "safari" :
974
983
browser_changes += 1
984
+ browser_text = "opera"
975
985
sb_config ._browser_shortcut = "safari"
976
986
browser_list .append ("--safari" )
977
987
if browser_changes > 1 :
@@ -983,6 +993,15 @@ def pytest_addoption(parser):
983
993
message += "\n ONLY ONE default browser is allowed!"
984
994
message += "\n Select a single browser & try again!\n "
985
995
raise Exception (message )
996
+ if (
997
+ using_recorder
998
+ and browser_changes == 1
999
+ and browser_text not in ["chrome" , "edge" ]
1000
+ ):
1001
+ message = (
1002
+ "\n \n Recorder Mode ONLY supports Chrome and Edge!"
1003
+ '\n (Your browser choice was: "%s")\n ' % browser_list [0 ])
1004
+ raise Exception (message )
986
1005
987
1006
988
1007
def pytest_configure (config ):
0 commit comments