""" 浏览器工具测试脚本 用于诊断 browser-use 在不同配置下的行为 """ import asyncio import sys from pathlib import Path # 添加项目根目录到路径 sys.path.insert(0, str(Path(__file__).parent.parent.parent)) from agent.tools.builtin.browser.baseClass import ( init_browser_session, cleanup_browser_session, browser_navigate_to_url ) async def test_headless_true(): """测试 headless=True 模式""" print("\n" + "="*60) print("测试 1: headless=True 模式") print("="*60) try: session, tools = await init_browser_session( browser_type="local", headless=True ) print("✅ 浏览器会话初始化成功 (headless=True)") # 测试导航 result = await browser_navigate_to_url("https://www.example.com") print(f"✅ 导航成功: {result}") await cleanup_browser_session() print("✅ 清理成功") return True except Exception as e: print(f"❌ 失败: {e}") import traceback traceback.print_exc() return False async def test_headless_false(): """测试 headless=False 模式""" print("\n" + "="*60) print("测试 2: headless=False 模式") print("="*60) try: session, tools = await init_browser_session( browser_type="local", headless=False ) print("✅ 浏览器会话初始化成功 (headless=False)") # 测试导航 result = await browser_navigate_to_url("https://www.example.com") print(f"✅ 导航成功: {result}") await cleanup_browser_session() print("✅ 清理成功") return True except Exception as e: print(f"❌ 失败: {e}") import traceback traceback.print_exc() return False async def main(): print("浏览器工具诊断测试") print("="*60) # 测试 headless=True result1 = await test_headless_true() # 等待一下,确保资源释放 await asyncio.sleep(2) # 测试 headless=False result2 = await test_headless_false() # 总结 print("\n" + "="*60) print("测试总结") print("="*60) print(f"headless=True: {'✅ 通过' if result1 else '❌ 失败'}") print(f"headless=False: {'✅ 通过' if result2 else '❌ 失败'}") print("="*60) if __name__ == "__main__": asyncio.run(main())