|
29 | 29 | from .logging import StagehandLogger, default_log_handler
|
30 | 30 | from .metrics import StagehandFunctionName, StagehandMetrics
|
31 | 31 | from .page import StagehandPage
|
32 |
| -from .utils import make_serializable |
| 32 | +from .utils import get_download_path, make_serializable |
33 | 33 |
|
34 | 34 | load_dotenv()
|
35 | 35 |
|
@@ -512,27 +512,6 @@ async def init(self):
|
512 | 512 | )
|
513 | 513 | self._playwright_page = self._page._page
|
514 | 514 |
|
515 |
| - # Set up download behavior via CDP |
516 |
| - try: |
517 |
| - # Create CDP session for the page |
518 |
| - cdp_session = await self._context.new_cdp_session( |
519 |
| - self._playwright_page |
520 |
| - ) |
521 |
| - # Enable download behavior |
522 |
| - await cdp_session.send( |
523 |
| - "Browser.setDownloadBehavior", |
524 |
| - { |
525 |
| - "behavior": "allow", |
526 |
| - "downloadPath": "downloads", |
527 |
| - "eventsEnabled": True, |
528 |
| - }, |
529 |
| - ) |
530 |
| - self.logger.debug("Set up CDP download behavior") |
531 |
| - except Exception as e: |
532 |
| - self.logger.warning( |
533 |
| - f"Failed to set up CDP download behavior: {str(e)}" |
534 |
| - ) |
535 |
| - |
536 | 515 | except Exception:
|
537 | 516 | await self.close()
|
538 | 517 | raise
|
@@ -561,6 +540,23 @@ async def init(self):
|
561 | 540 | # Should not happen due to __init__ validation
|
562 | 541 | raise RuntimeError(f"Invalid env value: {self.env}")
|
563 | 542 |
|
| 543 | + # Set up download behavior via CDP |
| 544 | + try: |
| 545 | + # Create CDP session for the page |
| 546 | + cdp_session = await self._context.new_cdp_session(self._playwright_page) |
| 547 | + # Enable download behavior |
| 548 | + await cdp_session.send( |
| 549 | + "Browser.setDownloadBehavior", |
| 550 | + { |
| 551 | + "behavior": "allow", |
| 552 | + "downloadPath": get_download_path(self), |
| 553 | + "eventsEnabled": True, |
| 554 | + }, |
| 555 | + ) |
| 556 | + self.logger.debug("Set up CDP download behavior") |
| 557 | + except Exception as e: |
| 558 | + self.logger.warning(f"Failed to set up CDP download behavior: {str(e)}") |
| 559 | + |
564 | 560 | self._initialized = True
|
565 | 561 |
|
566 | 562 | def agent(self, **kwargs) -> Agent:
|
|
0 commit comments