| 301 | |
| 302 | |
| 303 | class Driver: |
| 304 | DRIVER_START_RETRIES = 3 |
| 305 | DRIVER_START_INTERVAL = 1 |
| 306 | |
| 307 | def __init__(self, driver_class, request): |
| 308 | self.driver_class = driver_class |
| 309 | self._request = request |
| 310 | self._driver = None |
| 311 | self._service = None |
| 312 | self._server = None |
| 313 | self.options = driver_class |
| 314 | self.headless = driver_class |
| 315 | self.bidi = driver_class |
| 316 | |
| 317 | @classmethod |
| 318 | def clean_options(cls, driver_class, request): |
| 319 | return cls(driver_class, request).options |
| 320 | |
| 321 | @property |
| 322 | def supported_drivers(self): |
| 323 | return SupportedDrivers() |
| 324 | |
| 325 | @property |
| 326 | def supported_options(self): |
| 327 | return SupportedOptions() |
| 328 | |
| 329 | @property |
| 330 | def supported_bidi_drivers(self): |
| 331 | return SupportedBidiDrivers() |
| 332 | |
| 333 | @property |
| 334 | def driver_class(self): |
| 335 | return self._driver_class |
| 336 | |
| 337 | @driver_class.setter |
| 338 | def driver_class(self, cls_name): |
| 339 | if cls_name.lower() not in self.supported_drivers: |
| 340 | raise AttributeError(f"Invalid driver class {cls_name.lower()}") |
| 341 | self._driver_class = getattr(self.supported_drivers, cls_name.lower()) |
| 342 | |
| 343 | @property |
| 344 | def exe_platform(self): |
| 345 | if sys.platform == "win32": |
| 346 | return "Windows" |
| 347 | elif sys.platform == "darwin": |
| 348 | return "Darwin" |
| 349 | elif sys.platform == "linux": |
| 350 | return "Linux" |
| 351 | else: |
| 352 | return sys.platform.title() |
| 353 | |
| 354 | @property |
| 355 | def browser_path(self): |
| 356 | if self._request.config.option.binary: |
| 357 | return _resolve_bazel_path(self._request.config.option.binary) |
| 358 | return None |
| 359 | |
| 360 | @property |
no outgoing calls