safely close the tab (#4103)

This commit is contained in:
LawyZheng
2025-11-26 15:05:37 +08:00
committed by GitHub
parent 8d09d9822a
commit 0ed55ad8bc
2 changed files with 13 additions and 2 deletions

View File

@@ -8,6 +8,7 @@ REPO_ROOT_DIR = SKYVERN_DIR.parent
INPUT_TEXT_TIMEOUT = 120000 # 2 minutes
PAGE_CONTENT_TIMEOUT = 300 # 5 mins
BROWSER_PAGE_CLOSE_TIMEOUT = 5 # 5 seconds
BROWSER_CLOSE_TIMEOUT = 180 # 3 minute
BROWSER_DOWNLOAD_MAX_WAIT_TIME = 120 # 2 minute
BROWSER_DOWNLOAD_TIMEOUT = 600 # 10 minute

View File

@@ -23,7 +23,13 @@ from playwright.async_api import BrowserContext, ConsoleMessage, Download, Page,
from pydantic import BaseModel, PrivateAttr
from skyvern.config import settings
from skyvern.constants import BROWSER_CLOSE_TIMEOUT, BROWSER_DOWNLOAD_TIMEOUT, NAVIGATION_MAX_RETRY_TIME, SKYVERN_DIR
from skyvern.constants import (
BROWSER_CLOSE_TIMEOUT,
BROWSER_DOWNLOAD_TIMEOUT,
BROWSER_PAGE_CLOSE_TIMEOUT,
NAVIGATION_MAX_RETRY_TIME,
SKYVERN_DIR,
)
from skyvern.exceptions import (
EmptyBrowserContext,
FailedToNavigateToUrl,
@@ -809,7 +815,11 @@ class BrowserState:
closing_pages=closing_pages,
)
for page in closing_pages:
await page.close()
try:
async with asyncio.timeout(BROWSER_PAGE_CLOSE_TIMEOUT):
await page.close()
except Exception:
LOG.warning("Error while closing the page", exc_info=True)
return reserved_pages