test_browser.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. """
  2. 浏览器工具测试脚本
  3. 用于诊断 browser-use 在不同配置下的行为
  4. """
  5. import asyncio
  6. import sys
  7. from pathlib import Path
  8. # 添加项目根目录到路径
  9. sys.path.insert(0, str(Path(__file__).parent.parent.parent))
  10. from agent.tools.builtin.browser.baseClass import (
  11. init_browser_session,
  12. cleanup_browser_session,
  13. browser_navigate_to_url
  14. )
  15. async def test_headless_true():
  16. """测试 headless=True 模式"""
  17. print("\n" + "="*60)
  18. print("测试 1: headless=True 模式")
  19. print("="*60)
  20. try:
  21. session, tools = await init_browser_session(
  22. browser_type="local",
  23. headless=True
  24. )
  25. print("✅ 浏览器会话初始化成功 (headless=True)")
  26. # 测试导航
  27. result = await browser_navigate_to_url("https://www.example.com")
  28. print(f"✅ 导航成功: {result}")
  29. await cleanup_browser_session()
  30. print("✅ 清理成功")
  31. return True
  32. except Exception as e:
  33. print(f"❌ 失败: {e}")
  34. import traceback
  35. traceback.print_exc()
  36. return False
  37. async def test_headless_false():
  38. """测试 headless=False 模式"""
  39. print("\n" + "="*60)
  40. print("测试 2: headless=False 模式")
  41. print("="*60)
  42. try:
  43. session, tools = await init_browser_session(
  44. browser_type="local",
  45. headless=False
  46. )
  47. print("✅ 浏览器会话初始化成功 (headless=False)")
  48. # 测试导航
  49. result = await browser_navigate_to_url("https://www.example.com")
  50. print(f"✅ 导航成功: {result}")
  51. await cleanup_browser_session()
  52. print("✅ 清理成功")
  53. return True
  54. except Exception as e:
  55. print(f"❌ 失败: {e}")
  56. import traceback
  57. traceback.print_exc()
  58. return False
  59. async def main():
  60. print("浏览器工具诊断测试")
  61. print("="*60)
  62. # 测试 headless=True
  63. result1 = await test_headless_true()
  64. # 等待一下,确保资源释放
  65. await asyncio.sleep(2)
  66. # 测试 headless=False
  67. result2 = await test_headless_false()
  68. # 总结
  69. print("\n" + "="*60)
  70. print("测试总结")
  71. print("="*60)
  72. print(f"headless=True: {'✅ 通过' if result1 else '❌ 失败'}")
  73. print(f"headless=False: {'✅ 通过' if result2 else '❌ 失败'}")
  74. print("="*60)
  75. if __name__ == "__main__":
  76. asyncio.run(main())