@@ -149,6 +149,8 @@ def __init__(self, driver_class, request):
149149 self ._driver = None
150150 self ._service = None
151151 self .options = driver_class
152+ self .headless = driver_class
153+ self .bidi = driver_class
152154
153155 @property
154156 def supported_drivers (self ):
@@ -196,15 +198,27 @@ def driver_path(self):
196198
197199 @property
198200 def headless (self ):
199- if self ._request .config .option .headless :
200- return True
201- return False
201+ return self ._headless
202+
203+ @headless .setter
204+ def headless (self , cls_name ):
205+ self ._headless = self ._request .config .option .headless
206+ if self ._headless :
207+ if cls_name .lower () == "chrome" or cls_name .lower () == "edge" :
208+ self ._options .add_argument ("--headless=new" )
209+ if cls_name .lower () == "firefox" :
210+ self ._options .add_argument ("-headless" )
202211
203212 @property
204213 def bidi (self ):
205- if self ._request .config .option .bidi :
206- return True
207- return False
214+ return self ._bidi
215+
216+ @bidi .setter
217+ def bidi (self , cls_name ):
218+ self ._bidi = self ._request .config .option .bidi
219+ if self ._bidi :
220+ self ._options .web_socket_url = True
221+ self ._options .unhandled_prompt_behavior = "ignore"
208222
209223 @property
210224 def options (self ):
@@ -238,16 +252,6 @@ def options(self, cls_name):
238252 for arg in self .browser_args .split ():
239253 self ._options .add_argument (arg )
240254
241- if self .headless :
242- if cls_name .lower () == "chrome" or cls_name .lower () == "edge" :
243- self ._options .add_argument ("--headless=new" )
244- if cls_name .lower () == "firefox" :
245- self ._options .add_argument ("-headless" )
246-
247- if self .bidi :
248- self ._options .web_socket_url = True
249- self ._options .unhandled_prompt_behavior = "ignore"
250-
251255 @property
252256 def service (self ):
253257 executable = self .driver_path
0 commit comments