clean up fullpage screenshot exp (#4102)

This commit is contained in:
LawyZheng
2025-11-26 14:55:02 +08:00
committed by GitHub
parent 1fff8a2ac6
commit 8d09d9822a
5 changed files with 4 additions and 43 deletions

View File

@@ -2198,11 +2198,6 @@ class ForgeAgent:
try:
screenshot = await browser_state.take_post_action_screenshot(
scrolling_number=scrolling_number,
use_playwright_fullpage=await app.EXPERIMENTATION_PROVIDER.is_feature_enabled_cached(
"ENABLE_PLAYWRIGHT_FULLPAGE",
task.workflow_run_id or task.task_id,
properties={"organization_id": task.organization_id},
),
)
await app.ARTIFACT_MANAGER.create_artifact(
step=step,
@@ -3069,13 +3064,7 @@ class ForgeAgent:
browser_state = app.BROWSER_MANAGER.get_for_task(task.task_id)
if browser_state is not None and await browser_state.get_working_page() is not None:
try:
screenshot = await browser_state.take_fullpage_screenshot(
use_playwright_fullpage=await app.EXPERIMENTATION_PROVIDER.is_feature_enabled_cached(
"ENABLE_PLAYWRIGHT_FULLPAGE",
task.workflow_run_id or task.task_id,
properties={"organization_id": task.organization_id},
)
)
screenshot = await browser_state.take_fullpage_screenshot()
await app.ARTIFACT_MANAGER.create_artifact(
step=last_step,
artifact_type=ArtifactType.SCREENSHOT_FINAL,

View File

@@ -383,13 +383,7 @@ class Block(BaseModel, abc.ABC):
)
else:
try:
screenshot = await browser_state.take_fullpage_screenshot(
use_playwright_fullpage=await app.EXPERIMENTATION_PROVIDER.is_feature_enabled_cached(
"ENABLE_PLAYWRIGHT_FULLPAGE",
workflow_run_id,
properties={"organization_id": str(organization_id)},
)
)
screenshot = await browser_state.take_fullpage_screenshot()
except Exception:
LOG.warning(
"Failed to take screenshot before executing the block, ignoring the exception",
@@ -693,13 +687,7 @@ class BaseTaskBlock(Block):
try:
# add screenshot artifact for the first task
screenshot = await browser_state.take_fullpage_screenshot(
use_playwright_fullpage=await app.EXPERIMENTATION_PROVIDER.is_feature_enabled_cached(
"ENABLE_PLAYWRIGHT_FULLPAGE",
workflow_run_id,
properties={"organization_id": str(organization_id)},
)
)
screenshot = await browser_state.take_fullpage_screenshot()
if screenshot:
await app.ARTIFACT_MANAGER.create_workflow_run_block_artifact(
workflow_run_block=workflow_run_block,

View File

@@ -378,13 +378,7 @@ async def _take_workflow_run_block_screenshot(
if not browser_state:
LOG.warning("No browser state found when creating workflow_run_block", workflow_run_id=workflow_run_id)
else:
screenshot = await browser_state.take_fullpage_screenshot(
use_playwright_fullpage=await app.EXPERIMENTATION_PROVIDER.is_feature_enabled_cached(
"ENABLE_PLAYWRIGHT_FULLPAGE",
workflow_run_id,
properties={"organization_id": str(organization_id)},
)
)
screenshot = await browser_state.take_fullpage_screenshot()
if screenshot:
await app.ARTIFACT_MANAGER.create_workflow_run_block_artifact(
workflow_run_block=workflow_run_block,

View File

@@ -1017,21 +1017,18 @@ class BrowserState:
async def take_fullpage_screenshot(
self,
file_path: str | None = None,
use_playwright_fullpage: bool = False, # TODO: THIS IS ONLY FOR EXPERIMENT. will be removed after experiment.
) -> bytes:
page = await self.__assert_page()
return await SkyvernFrame.take_scrolling_screenshot(
page=page,
file_path=file_path,
mode=ScreenshotMode.LITE,
use_playwright_fullpage=use_playwright_fullpage,
)
async def take_post_action_screenshot(
self,
scrolling_number: int,
file_path: str | None = None,
use_playwright_fullpage: bool = False, # TODO: THIS IS ONLY FOR EXPERIMENT. will be removed after experiment.
) -> bytes:
page = await self.__assert_page()
return await SkyvernFrame.take_scrolling_screenshot(
@@ -1039,5 +1036,4 @@ class BrowserState:
file_path=file_path,
mode=ScreenshotMode.LITE,
scrolling_number=scrolling_number,
use_playwright_fullpage=use_playwright_fullpage,
)

View File

@@ -240,18 +240,12 @@ class SkyvernFrame:
timeout: float = SettingsManager.get_settings().BROWSER_SCREENSHOT_TIMEOUT_MS,
mode: ScreenshotMode = ScreenshotMode.DETAILED,
scrolling_number: int = SettingsManager.get_settings().MAX_NUM_SCREENSHOTS,
use_playwright_fullpage: bool = False, # TODO: THIS IS ONLY FOR EXPERIMENT. will be removed after experiment.
) -> bytes:
if scrolling_number <= 0:
return await _current_viewpoint_screenshot_helper(
page=page, file_path=file_path, timeout=timeout, mode=mode
)
if use_playwright_fullpage:
return await _current_viewpoint_screenshot_helper(
page=page, file_path=file_path, timeout=timeout, full_page=True
)
if scrolling_number > SettingsManager.get_settings().MAX_NUM_SCREENSHOTS:
LOG.warning(
"scrolling_number is greater than the max number of screenshots, setting it to the max number of screenshots",