current viewpoint screenshot and scrolling n screenshot (#2716)
Co-authored-by: lawyzheng <lawyzheng1106@gmail.com>
This commit is contained in:
@@ -307,7 +307,12 @@ class Block(BaseModel, abc.ABC):
|
||||
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_screenshot(full_page=True)
|
||||
screenshot = await browser_state.take_fullpage_screenshot(
|
||||
use_playwright_fullpage=app.EXPERIMENTATION_PROVIDER.is_feature_enabled_cached(
|
||||
"ENABLE_PLAYWRIGHT_FULLPAGE",
|
||||
str(organization_id),
|
||||
)
|
||||
)
|
||||
if screenshot:
|
||||
await app.ARTIFACT_MANAGER.create_workflow_run_block_artifact(
|
||||
workflow_run_block=workflow_run_block,
|
||||
@@ -569,8 +574,15 @@ class BaseTaskBlock(Block):
|
||||
browser_state = await app.BROWSER_MANAGER.get_or_create_for_workflow_run(
|
||||
workflow_run=workflow_run, url=self.url, browser_session_id=browser_session_id
|
||||
)
|
||||
# assert that the browser state is not None, otherwise we can't go through typing
|
||||
assert browser_state is not None
|
||||
# add screenshot artifact for the first task
|
||||
screenshot = await browser_state.take_screenshot(full_page=True)
|
||||
screenshot = await browser_state.take_fullpage_screenshot(
|
||||
use_playwright_fullpage=app.EXPERIMENTATION_PROVIDER.is_feature_enabled_cached(
|
||||
"ENABLE_PLAYWRIGHT_FULLPAGE",
|
||||
str(organization_id),
|
||||
)
|
||||
)
|
||||
if screenshot:
|
||||
await app.ARTIFACT_MANAGER.create_workflow_run_block_artifact(
|
||||
workflow_run_block=workflow_run_block,
|
||||
@@ -2486,6 +2498,7 @@ class TaskV2Block(Block):
|
||||
proxy_location=workflow_run.proxy_location,
|
||||
totp_identifier=self.totp_identifier,
|
||||
totp_verification_url=self.totp_verification_url,
|
||||
max_screenshot_scrolling_times=workflow_run.max_screenshot_scrolling_times,
|
||||
)
|
||||
await app.DATABASE.update_task_v2(
|
||||
task_v2.observer_cruise_id, status=TaskV2Status.queued, organization_id=organization_id
|
||||
@@ -2517,6 +2530,7 @@ class TaskV2Block(Block):
|
||||
workflow_permanent_id=workflow_run.workflow_permanent_id,
|
||||
workflow_run_id=workflow_run_id,
|
||||
browser_session_id=browser_session_id,
|
||||
max_screenshot_scrolling_times=workflow_run.max_screenshot_scrolling_times,
|
||||
)
|
||||
)
|
||||
result_dict = None
|
||||
|
||||
@@ -22,6 +22,7 @@ class WorkflowRequestBody(BaseModel):
|
||||
totp_verification_url: str | None = None
|
||||
totp_identifier: str | None = None
|
||||
browser_session_id: str | None = None
|
||||
max_screenshot_scrolling_times: int | None = None
|
||||
|
||||
@field_validator("webhook_callback_url", "totp_verification_url")
|
||||
@classmethod
|
||||
@@ -76,6 +77,7 @@ class Workflow(BaseModel):
|
||||
persist_browser_session: bool = False
|
||||
model: dict[str, Any] | None = None
|
||||
status: WorkflowStatus = WorkflowStatus.published
|
||||
max_screenshot_scrolling_times: int | None = None
|
||||
|
||||
created_at: datetime
|
||||
modified_at: datetime
|
||||
@@ -115,6 +117,7 @@ class WorkflowRun(BaseModel):
|
||||
failure_reason: str | None = None
|
||||
parent_workflow_run_id: str | None = None
|
||||
workflow_title: str | None = None
|
||||
max_screenshot_scrolling_times: int | None = None
|
||||
|
||||
queued_at: datetime | None = None
|
||||
started_at: datetime | None = None
|
||||
@@ -162,3 +165,4 @@ class WorkflowRunResponseBase(BaseModel):
|
||||
task_v2: TaskV2 | None = None
|
||||
workflow_title: str | None = None
|
||||
browser_session_id: str | None = None
|
||||
max_screenshot_scrolling_times: int | None = None
|
||||
|
||||
@@ -424,4 +424,5 @@ class WorkflowCreateYAMLRequest(BaseModel):
|
||||
model: dict[str, Any] | None = None
|
||||
workflow_definition: WorkflowDefinitionYAML
|
||||
is_saved_task: bool = False
|
||||
max_screenshot_scrolling_times: int | None = None
|
||||
status: WorkflowStatus = WorkflowStatus.published
|
||||
|
||||
Reference in New Issue
Block a user