@@ -151,6 +151,8 @@ def __init__(self, driver_class, request):
151151 self ._driver = None
152152 self ._service = None
153153 self .options = driver_class
154+ self .headless = driver_class
155+ self .bidi = driver_class
154156
155157 @property
156158 def supported_drivers (self ):
@@ -198,15 +200,27 @@ def driver_path(self):
198200
199201 @property
200202 def headless (self ):
201- if self ._request .config .option .headless :
202- return True
203- return False
203+ return self ._headless
204+
205+ @headless .setter
206+ def headless (self , cls_name ):
207+ self ._headless = self ._request .config .option .headless
208+ if self ._headless :
209+ if cls_name .lower () == "chrome" or cls_name .lower () == "edge" :
210+ self ._options .add_argument ("--headless=new" )
211+ if cls_name .lower () == "firefox" :
212+ self ._options .add_argument ("-headless" )
204213
205214 @property
206215 def bidi (self ):
207- if self ._request .config .option .bidi :
208- return True
209- return False
216+ return self ._bidi
217+
218+ @bidi .setter
219+ def bidi (self , cls_name ):
220+ self ._bidi = self ._request .config .option .bidi
221+ if self ._bidi :
222+ self ._options .web_socket_url = True
223+ self ._options .unhandled_prompt_behavior = "ignore"
210224
211225 @property
212226 def options (self ):
@@ -240,16 +254,6 @@ def options(self, cls_name):
240254 for arg in self .browser_args .split ():
241255 self ._options .add_argument (arg )
242256
243- if self .headless :
244- if cls_name .lower () == "chrome" or cls_name .lower () == "edge" :
245- self ._options .add_argument ("--headless=new" )
246- if cls_name .lower () == "firefox" :
247- self ._options .add_argument ("-headless" )
248-
249- if self .bidi :
250- self ._options .web_socket_url = True
251- self ._options .unhandled_prompt_behavior = "ignore"
252-
253257 @property
254258 def service (self ):
255259 executable = self .driver_path
0 commit comments