Create or get browser context
(
self, playwright_proxy: Optional[Dict] = None, user_agent: Optional[str] = None
)
| 358 | raise |
| 359 | |
| 360 | async def _create_browser_context( |
| 361 | self, playwright_proxy: Optional[Dict] = None, user_agent: Optional[str] = None |
| 362 | ) -> BrowserContext: |
| 363 | """ |
| 364 | Create or get browser context |
| 365 | """ |
| 366 | if not self.browser: |
| 367 | raise RuntimeError("Browser not connected") |
| 368 | |
| 369 | # Get existing context or create new context |
| 370 | contexts = self.browser.contexts |
| 371 | |
| 372 | if contexts: |
| 373 | # Use existing first context |
| 374 | browser_context = contexts[0] |
| 375 | utils.logger.info("[CDPBrowserManager] Using existing browser context") |
| 376 | else: |
| 377 | # Create new context |
| 378 | context_options = { |
| 379 | "viewport": {"width": 1920, "height": 1080}, |
| 380 | "accept_downloads": True, |
| 381 | } |
| 382 | |
| 383 | # Set user agent |
| 384 | if user_agent: |
| 385 | context_options["user_agent"] = user_agent |
| 386 | utils.logger.info(f"[CDPBrowserManager] Setting user agent: {user_agent}") |
| 387 | |
| 388 | # Note: Proxy settings may not work in CDP mode since browser is already launched |
| 389 | if playwright_proxy: |
| 390 | utils.logger.warning( |
| 391 | "[CDPBrowserManager] Warning: Proxy settings may not work in CDP mode, " |
| 392 | "recommend configuring system proxy or browser proxy extension before launching browser" |
| 393 | ) |
| 394 | |
| 395 | browser_context = await self.browser.new_context(**context_options) |
| 396 | utils.logger.info("[CDPBrowserManager] Created new browser context") |
| 397 | |
| 398 | return browser_context |
| 399 | |
| 400 | async def add_stealth_script(self, script_path: str = "libs/stealth.min.js"): |
| 401 | """ |
no outgoing calls
no test coverage detected