@@ -19,6 +19,10 @@ class SeleniumBrowser(Plugin):
1919 """
2020 This plugin adds the following command-line options to nosetests:
2121 --browser=BROWSER (The web browser to use. Default: "chrome".)
22+ --chrome (Shortcut for "--browser=chrome". On by default.)
23+ --edge (Shortcut for "--browser=edge".)
24+ --firefox (Shortcut for "--browser=firefox".)
25+ --safari (Shortcut for "--browser=safari".)
2226 --user-data-dir=DIR (Set the Chrome user data directory to use.)
2327 --protocol=PROTOCOL (The Selenium Grid protocol: http|https.)
2428 --server=SERVER (The Selenium Grid server/IP used for tests.)
@@ -103,13 +107,46 @@ def options(self, parser, env):
103107 Example: (--browser=firefox)""" ,
104108 )
105109 parser .add_option (
106- "--browser_version" ,
107- "--browser-version" ,
108- action = "store" ,
109- dest = "browser_version" ,
110- default = "latest" ,
111- help = """The browser version to use. Explicitly select
112- a version number or use "latest".""" ,
110+ "--chrome" ,
111+ action = "store_true" ,
112+ dest = "use_chrome" ,
113+ default = False ,
114+ help = """Shortcut for --browser=chrome. On by default.)""" ,
115+ )
116+ parser .add_option (
117+ "--edge" ,
118+ action = "store_true" ,
119+ dest = "use_edge" ,
120+ default = False ,
121+ help = """Shortcut for --browser=edge.)""" ,
122+ )
123+ parser .add_option (
124+ "--firefox" ,
125+ action = "store_true" ,
126+ dest = "use_firefox" ,
127+ default = False ,
128+ help = """Shortcut for --browser=firefox.)""" ,
129+ )
130+ parser .add_option (
131+ "--ie" ,
132+ action = "store_true" ,
133+ dest = "use_ie" ,
134+ default = False ,
135+ help = """Shortcut for --browser=ie.)""" ,
136+ )
137+ parser .add_option (
138+ "--opera" ,
139+ action = "store_true" ,
140+ dest = "use_opera" ,
141+ default = False ,
142+ help = """Shortcut for --browser=opera.)""" ,
143+ )
144+ parser .add_option (
145+ "--safari" ,
146+ action = "store_true" ,
147+ dest = "use_safari" ,
148+ default = False ,
149+ help = """Shortcut for --browser=safari.)""" ,
113150 )
114151 parser .add_option (
115152 "--cap_file" ,
@@ -622,7 +659,7 @@ def options(self, parser, env):
622659 action = "store_true" ,
623660 dest = "use_auto_ext" ,
624661 default = False ,
625- help = """Using this enables Chrome's Automation Extension .
662+ help = """(DEPRECATED) - Enable the automation extension .
626663 It's not required, but some commands & advanced
627664 features may need it.""" ,
628665 )
@@ -835,8 +872,88 @@ def configure(self, options, conf):
835872 proxy_helper .remove_proxy_zip_if_present ()
836873
837874 def beforeTest (self , test ):
838- sb_config ._context_of_runner = False # Context Manager Compatibility
839875 browser = self .options .browser
876+ test .test .browser = browser
877+ test .test .headless = None
878+ test .test .headless2 = None
879+ # As a shortcut, you can use "--edge" instead of "--browser=edge", etc,
880+ # but you can only specify one default browser. (Default: chrome)
881+ sb_config ._browser_shortcut = None
882+ sys_argv = sys .argv
883+ browser_changes = 0
884+ browser_set = None
885+ browser_text = None
886+ browser_list = []
887+ if "--browser=chrome" in sys_argv or "--browser chrome" in sys_argv :
888+ browser_changes += 1
889+ browser_set = "chrome"
890+ browser_list .append ("--browser=chrome" )
891+ if "--browser=edge" in sys_argv or "--browser edge" in sys_argv :
892+ browser_changes += 1
893+ browser_set = "edge"
894+ browser_list .append ("--browser=edge" )
895+ if "--browser=firefox" in sys_argv or "--browser firefox" in sys_argv :
896+ browser_changes += 1
897+ browser_set = "firefox"
898+ browser_list .append ("--browser=firefox" )
899+ if "--browser=opera" in sys_argv or "--browser opera" in sys_argv :
900+ browser_changes += 1
901+ browser_set = "opera"
902+ browser_list .append ("--browser=opera" )
903+ if "--browser=safari" in sys_argv or "--browser safari" in sys_argv :
904+ browser_changes += 1
905+ browser_set = "safari"
906+ browser_list .append ("--browser=safari" )
907+ if "--browser=ie" in sys_argv or "--browser ie" in sys_argv :
908+ browser_changes += 1
909+ browser_set = "ie"
910+ browser_list .append ("--browser=ie" )
911+ if "--browser=remote" in sys_argv or "--browser remote" in sys_argv :
912+ browser_changes += 1
913+ browser_set = "remote"
914+ browser_list .append ("--browser=remote" )
915+ browser_text = browser_set
916+ if "--chrome" in sys_argv and not browser_set == "chrome" :
917+ browser_changes += 1
918+ browser_text = "chrome"
919+ sb_config ._browser_shortcut = "chrome"
920+ browser_list .append ("--chrome" )
921+ if "--edge" in sys_argv and not browser_set == "edge" :
922+ browser_changes += 1
923+ browser_text = "edge"
924+ sb_config ._browser_shortcut = "edge"
925+ browser_list .append ("--edge" )
926+ if "--firefox" in sys_argv and not browser_set == "firefox" :
927+ browser_changes += 1
928+ browser_text = "firefox"
929+ sb_config ._browser_shortcut = "firefox"
930+ browser_list .append ("--firefox" )
931+ if "--ie" in sys_argv and not browser_set == "ie" :
932+ browser_changes += 1
933+ browser_text = "ie"
934+ sb_config ._browser_shortcut = "ie"
935+ browser_list .append ("--ie" )
936+ if "--opera" in sys_argv and not browser_set == "opera" :
937+ browser_changes += 1
938+ browser_text = "opera"
939+ sb_config ._browser_shortcut = "opera"
940+ browser_list .append ("--opera" )
941+ if "--safari" in sys_argv and not browser_set == "safari" :
942+ browser_changes += 1
943+ browser_text = "safari"
944+ sb_config ._browser_shortcut = "safari"
945+ browser_list .append ("--safari" )
946+ if browser_changes > 1 :
947+ message = "\n \n TOO MANY browser types were entered!"
948+ message += "\n There were %s found:\n > %s" % (
949+ browser_changes ,
950+ ", " .join (browser_list ),
951+ )
952+ message += "\n ONLY ONE default browser is allowed!"
953+ message += "\n Select a single browser & try again!\n "
954+ raise Exception (message )
955+ if browser_text :
956+ browser = browser_text
840957 if self .options .recorder_mode and browser not in ["chrome" , "edge" ]:
841958 message = (
842959 "\n \n Recorder Mode ONLY supports Chrome and Edge!"
@@ -876,6 +993,9 @@ def beforeTest(self, test):
876993 sb_config .is_pytest = False
877994 sb_config .is_context_manager = False
878995 test .test .browser = self .options .browser
996+ if sb_config ._browser_shortcut :
997+ self .options .browser = sb_config ._browser_shortcut
998+ test .test .browser = sb_config ._browser_shortcut
879999 test .test .cap_file = self .options .cap_file
8801000 test .test .cap_string = self .options .cap_string
8811001 test .test .headless = self .options .headless
@@ -1045,6 +1165,7 @@ def beforeTest(self, test):
10451165 sb_config ._is_timeout_changed = False
10461166 sb_config ._SMALL_TIMEOUT = settings .SMALL_TIMEOUT
10471167 sb_config ._LARGE_TIMEOUT = settings .LARGE_TIMEOUT
1168+ sb_config ._context_of_runner = False # Context Manager Compatibility
10481169 # The driver will be received later
10491170 self .driver = None
10501171 test .test .driver = self .driver
0 commit comments