From 435b70da472525bfec4ced38a8446c878af2c27b Mon Sep 17 00:00:00 2001 From: d 3 n 7 <29033313+d3n7@users.noreply.github.com> Date: Mon, 15 May 2023 16:54:08 +0200 Subject: [PATCH] Update click.py to pass errors back to Agent (#4723) Instead of halting the entire program if this tool encounters an error, it should pass the error back to the agent to decide what to do. This may be best suited for @vowelparrot to review. --- langchain/tools/playwright/click.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/langchain/tools/playwright/click.py b/langchain/tools/playwright/click.py index 671faf43..eb68b23f 100644 --- a/langchain/tools/playwright/click.py +++ b/langchain/tools/playwright/click.py @@ -36,8 +36,11 @@ class ClickTool(BaseBrowserTool): raise ValueError(f"Synchronous browser not provided to {self.name}") page = get_current_page(self.sync_browser) # Navigate to the desired webpage before using this tool - page.click(selector) - return f"Clicked element '{selector}'" + try: + page.click(selector) + return f"Clicked element '{selector}'" + except Exception as e: + return f"Error '{e}'" async def _arun( self, @@ -49,5 +52,8 @@ class ClickTool(BaseBrowserTool): raise ValueError(f"Asynchronous browser not provided to {self.name}") page = await aget_current_page(self.async_browser) # Navigate to the desired webpage before using this tool - await page.click(selector) - return f"Clicked element '{selector}'" + try: + await page.click(selector) + return f"Clicked element '{selector}'" + except Exception as e: + return f"Error '{e}'"