---
last_reviewed: 2026-06-12
---

# bot — 浏览器自动化填报模块

使用 Playwright 操作财务报销系统，自动完成登录、填单、上传附件等操作。

## 模块清单

| 文件 | 说明 |
|------|------|
| `__init__.py` | 对外入口：`run_bot()` 和 `run_bot_web()`，负责类型判断和流程路由 |
| `base.py` | `BaseBot` 基类：浏览器生命周期、登录、导航、截图、日期格式化 |
| `travel.py` | 差旅报销填报流程：基本信息 → 差旅明细 → 支付方式 → 补助清单 → 附件上传 |
| `normal.py` | 普通发票报销填报流程：基本信息 → 总明细 → 支付方式 → 附件上传 |

## 架构设计

```
run_bot(config, travel_info, normal_info)
  ├── 创建 BaseBot，启动浏览器，登录门户
  ├── travel_info 存在 → travel.run(bot, travel_info)
  └── normal_info 存在 → normal.run(bot, normal_info)
```

- **`BaseBot`** 只保留公共操作（launch、login、navigate、create_new_form、close、screenshot）
- **差旅/普通流程** 作为独立函数接受 `bot: BaseBot` 参数，符合函数式编程偏好
- **`__init__.py`** 仅做路由分发，不包含具体填报逻辑

## 变更历史

- **2026-06-12**：从 `bot.py` 单文件重构为 `bot/` 包，分离差旅和普通报销逻辑