Hogwarts测试开发
07-03·北京测吧员工
搭一个更稳的浏览器自动化 Agent 三
2. 超时和重试不能省Playwright 默认的操作超时是 30 秒,但网络慢的时候经常不够。我的做法是把超时设到 60 秒,然后封装一层带重试的调用:def robust_click(selector: str, retries: int = 3):    for i in range(retries):        try:            _page.click(selector, timeout=60000)            return f"已点击 {selector}"        except Exception as e:            if i == retries - 1:                return f"点击失败: {str(e)}"            # 等待一下再试            time.sleep(2 ** i)  # 指数退避重试的时候用指数退避(1s、2s、4s),别一失败就立刻重试,那样大概率还是失败。3. 状态管理要清晰多轮对话场景下,浏览器状态容易乱。我遇到过 Agent 以为浏览器还开着,实际上早就关了的尴尬情况。解决办法是在 State 里记录浏览器状态:class BrowserState(TypedDict):    user_input: str    browser_running: bool  # 新增    steps: list    result: str每次执行工具前先检查状态,该启动的启动,该关闭的关闭。4. 日志要能救命Agent 跑起来像个黑盒,出错了根本不知道是哪一步的问题。我加了个简单的日志装饰器:每个工具函数都加上 @log_tool,出问题了看日志就知道卡在哪。
发布于 北京
分享
评论
未登录
友善发言
image-upload
评论
加载中