| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- """
- 浏览器工具测试 - 修复版
- 使用 trust_env=False 解决代理环境变量问题
- """
- import asyncio
- import sys
- import os
- from pathlib import Path
- # 添加项目根目录到路径
- sys.path.insert(0, str(Path(__file__).parent.parent.parent))
- # 关键修复:设置环境变量,让 httpx 忽略代理设置
- os.environ['NO_PROXY'] = '*'
- os.environ['no_proxy'] = '*'
- from browser_use import BrowserSession
- from browser_use.tools.service import Tools
- async def test_with_fix():
- """测试:使用修复后的配置"""
- print("\n" + "="*60)
- print("测试: 修复代理问题后的浏览器启动")
- print("="*60)
- try:
- session = BrowserSession(
- headless=True,
- is_local=True,
- executable_path="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
- )
- print("等待 Chrome 启动...")
- await asyncio.sleep(3)
- print("启动会话...")
- await session.start()
- print("✅ 浏览器会话启动成功")
- # 测试导航
- tools = Tools()
- print("测试导航到 example.com...")
- await tools.navigate(url="https://www.example.com", browser_session=session)
- print("✅ 导航成功")
- await session.close()
- return True
- except Exception as e:
- print(f"❌ 失败: {e}")
- import traceback
- traceback.print_exc()
- return False
- async def main():
- print("浏览器工具测试 - 修复版")
- print("="*60)
- print("修复方法: 设置 NO_PROXY 环境变量")
- print("="*60)
- result = await test_with_fix()
- print("\n" + "="*60)
- print("测试结果")
- print("="*60)
- print(f"状态: {'✅ 成功' if result else '❌ 失败'}")
- print("="*60)
- if result:
- print("\n💡 解决方案确认:")
- print("在代码开头添加以下环境变量设置即可解决问题:")
- print(" os.environ['NO_PROXY'] = '*'")
- print(" os.environ['no_proxy'] = '*'")
- if __name__ == "__main__":
- asyncio.run(main())
|