diff --git a/stagehand/page.py b/stagehand/page.py index c0b83d46..efa8fa1a 100644 --- a/stagehand/page.py +++ b/stagehand/page.py @@ -104,7 +104,7 @@ async def goto( return result async def act( - self, action_or_result: Union[str, ObserveResult], **kwargs + self, action_or_result: Union[str, ObserveResult, dict], **kwargs ) -> ActResult: """ Execute an AI action or a pre-observed action via the Stagehand server. @@ -136,6 +136,10 @@ async def act( payload = options.model_dump(exclude_none=True, by_alias=True) elif isinstance(action_or_result, ActOptions): payload = action_or_result.model_dump(exclude_none=True, by_alias=True) + elif isinstance(action_or_result, dict): + payload = ObserveResult(**action_or_result).model_dump( + exclude_none=True, by_alias=True + ) else: raise TypeError( "Invalid arguments for 'act'. Expected str, ObserveResult, or ActOptions."