laminar integration (#2887)
This commit is contained in:
@@ -14,6 +14,7 @@ from playwright.async_api import ElementHandle, Frame, Page
|
||||
from skyvern.config import settings
|
||||
from skyvern.constants import BUILDING_ELEMENT_TREE_TIMEOUT_MS, PAGE_CONTENT_TIMEOUT, SKYVERN_DIR
|
||||
from skyvern.exceptions import FailedToTakeScreenshot
|
||||
from skyvern.forge.sdk.trace import TraceManager
|
||||
|
||||
LOG = structlog.get_logger()
|
||||
|
||||
@@ -221,6 +222,7 @@ class SkyvernFrame:
|
||||
return await SkyvernFrame.evaluate(frame=frame, expression="() => document.location.href")
|
||||
|
||||
@staticmethod
|
||||
@TraceManager.traced_async(ignore_inputs=["file_path", "timeout"])
|
||||
async def take_scrolling_screenshot(
|
||||
page: Page,
|
||||
file_path: str | None = None,
|
||||
@@ -286,6 +288,7 @@ class SkyvernFrame:
|
||||
await skyvern_frame.scroll_to_x_y(x, y)
|
||||
|
||||
@staticmethod
|
||||
@TraceManager.traced_async(ignore_inputs=["page"])
|
||||
async def take_split_screenshots(
|
||||
page: Page,
|
||||
url: str | None = None,
|
||||
@@ -436,3 +439,21 @@ class SkyvernFrame:
|
||||
async def get_select_options(self, element: ElementHandle) -> tuple[list, str]:
|
||||
js_script = "([element]) => getSelectOptions(element)"
|
||||
return await self.evaluate(frame=self.frame, expression=js_script, arg=[element])
|
||||
|
||||
@TraceManager.traced_async()
|
||||
async def build_tree_from_body(
|
||||
self, frame_name: str | None, frame_index: int, timeout_ms: float = BUILDING_ELEMENT_TREE_TIMEOUT_MS
|
||||
) -> tuple[list[dict], list[dict]]:
|
||||
js_script = "async ([frame_name, frame_index]) => await buildTreeFromBody(frame_name, frame_index)"
|
||||
return await self.evaluate(
|
||||
frame=self.frame, expression=js_script, timeout_ms=timeout_ms, arg=[frame_name, frame_index]
|
||||
)
|
||||
|
||||
@TraceManager.traced_async()
|
||||
async def get_incremental_element_tree(
|
||||
self, wait_until_finished: bool = True, timeout_ms: float = BUILDING_ELEMENT_TREE_TIMEOUT_MS
|
||||
) -> tuple[list[dict], list[dict]]:
|
||||
js_script = "async ([wait_until_finished]) => await getIncrementElements(wait_until_finished)"
|
||||
return await self.evaluate(
|
||||
frame=self.frame, expression=js_script, timeout_ms=timeout_ms, arg=[wait_until_finished]
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user