Skip to content

Commit 7ea682c

Browse files
authored
Merge pull request #68 from Serverless-Devs/fix/browser-navigate-wait-until
fix(browser): change default wait_until from load to domcontentloaded
2 parents 5dd5e41 + 32bb0ea commit 7ea682c

File tree

3 files changed

+39
-9
lines changed

3 files changed

+39
-9
lines changed

agentrun/integration/builtin/sandbox.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -751,20 +751,26 @@ def _get_playwright(self, sb: BrowserSandbox) -> "BrowserPlaywrightSync":
751751
Automatically recreates the connection when the thread that created it has exited,
752752
because Playwright's internal greenlet is bound to the thread that created it.
753753
"""
754-
if self._playwright_sync is not None and self._playwright_thread is not None:
754+
if (
755+
self._playwright_sync is not None
756+
and self._playwright_thread is not None
757+
):
755758
current_thread = threading.current_thread()
756759
creator_thread = self._playwright_thread
757-
if not creator_thread.is_alive() or current_thread is not creator_thread:
760+
if (
761+
not creator_thread.is_alive()
762+
or current_thread is not creator_thread
763+
):
758764
if not creator_thread.is_alive():
759765
logger.debug(
760-
"Playwright creating thread (id=%s) has exited, recreating"
761-
" connection",
766+
"Playwright creating thread (id=%s) has exited,"
767+
" recreating connection",
762768
creator_thread.ident,
763769
)
764770
else:
765771
logger.debug(
766-
"Playwright creating thread (id=%s) differs from current"
767-
" thread (id=%s), recreating connection",
772+
"Playwright creating thread (id=%s) differs from"
773+
" current thread (id=%s), recreating connection",
768774
creator_thread.ident,
769775
current_thread.ident,
770776
)
@@ -970,7 +976,7 @@ def goto(self, url: str) -> Dict[str, Any]:
970976
)
971977
def browser_navigate_back(
972978
self,
973-
wait_until: str = "load",
979+
wait_until: str = "domcontentloaded",
974980
timeout: Optional[float] = None,
975981
) -> Dict[str, Any]:
976982
"""返回上一页 / Go back to previous page"""
@@ -996,7 +1002,7 @@ def inner(sb: Sandbox):
9961002
)
9971003
def browser_go_forward(
9981004
self,
999-
wait_until: str = "load",
1005+
wait_until: str = "domcontentloaded",
10001006
timeout: Optional[float] = None,
10011007
) -> Dict[str, Any]:
10021008
"""前进到下一页 / Go forward to next page"""

tests/unittests/integration/test_browser_toolset_error_handling.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -520,3 +520,27 @@ def callback(sb):
520520
assert "error" in result
521521
toolset._reset_playwright.assert_not_called()
522522
assert toolset.sandbox is original_sandbox
523+
524+
525+
class TestBrowserNavigationDefaults:
526+
"""测试导航方法的默认参数 / Tests for default parameters of navigation methods"""
527+
528+
def test_browser_navigate_back_default_wait_until(self):
529+
"""browser_navigate_back 的默认 wait_until 为 domcontentloaded"""
530+
fields = BrowserToolSet.browser_navigate_back.args_schema.model_fields
531+
assert fields["wait_until"].default == "domcontentloaded"
532+
533+
def test_browser_go_forward_default_wait_until(self):
534+
"""browser_go_forward 的默认 wait_until 为 domcontentloaded"""
535+
fields = BrowserToolSet.browser_go_forward.args_schema.model_fields
536+
assert fields["wait_until"].default == "domcontentloaded"
537+
538+
def test_browser_navigate_back_default_timeout_is_none(self):
539+
"""browser_navigate_back 的默认 timeout 为 None"""
540+
fields = BrowserToolSet.browser_navigate_back.args_schema.model_fields
541+
assert fields["timeout"].default is None
542+
543+
def test_browser_go_forward_default_timeout_is_none(self):
544+
"""browser_go_forward 的默认 timeout 为 None"""
545+
fields = BrowserToolSet.browser_go_forward.args_schema.model_fields
546+
assert fields["timeout"].default is None

tests/unittests/integration/test_langchain_agui_integration.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ async def invoke_agent(request: AgentRequest):
639639
tools=tools,
640640
)
641641

642-
input_data = {
642+
input_data: Any = {
643643
"messages": [{
644644
"role": "user",
645645
"content": (

0 commit comments

Comments
 (0)