|
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