support shadow dom mutation observer (#2206)

Co-authored-by: lawyzheng <lawyzheng1106@gmail.com>
This commit is contained in:
Shuchang Zheng
2025-04-21 22:36:56 +08:00
committed by GitHub
parent fc72240c03
commit f2eef5aa6d
3 changed files with 46 additions and 25 deletions

View File

@@ -7,7 +7,7 @@ from typing import Any, Awaitable, Callable, Self
import structlog
from playwright._impl._errors import TimeoutError
from playwright.async_api import Frame, Locator, Page
from playwright.async_api import ElementHandle, Frame, Locator, Page
from pydantic import BaseModel, PrivateAttr
from skyvern.config import settings
@@ -712,9 +712,9 @@ class IncrementalScrapePage:
return self.element_tree_trimmed
async def start_listen_dom_increment(self) -> None:
js_script = "() => startGlobalIncrementalObserver()"
await SkyvernFrame.evaluate(frame=self.skyvern_frame.get_frame(), expression=js_script)
async def start_listen_dom_increment(self, element: ElementHandle | None = None) -> None:
js_script = "(element) => startGlobalIncrementalObserver(element)"
await SkyvernFrame.evaluate(frame=self.skyvern_frame.get_frame(), expression=js_script, arg=element)
async def stop_listen_dom_increment(self) -> None:
# check if the DOM has navigated away or refreshed