You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.1 KiB
4.1 KiB
Flock Freight 登录后查价录制 SOP(Step 12.78)
匿名 marketing 仍走
npm run record:flock(get-a-quote)。
本文件仅覆盖:客户配置 Flock 账密后的登录态查价路径。
前置
- 准备 Flock 官网账密(
.env的FLOCK_LOGIN_EMAIL/FLOCK_LOGIN_PASSWORD,或管理端客户「查价网站账密」) - 本机已装 Playwright Chromium/Chrome;
RPA_BROWSER_CHANNEL=chrome推荐 - 关闭会干扰 codegen 的自动填密插件(或全程手动粘贴)
启动
npm run record:flock -- --logged-in
# 或指定入口
npm run record:flock -- --logged-in https://app.flockfreight.com/login
Windows:
powershell -ExecutionPolicy Bypass -File scripts/record-flock.ps1 -LoggedIn
产物约定:
| 类型 | 路径 |
|---|---|
| codegen 脚本 | .rpa/recordings/flock-logged-in-<时间戳>.js |
| storageState | .rpa/flock-logged-in-storage.json |
与匿名 .rpa/flock-storage.json 隔离,禁止混用。
人工路径(必须完整一次)
标准样例:Pickup ZIP 90001 → Delivery ZIP 75201;托盘/重量/尺寸按清单(或登录后表单等价字段)。
- codegen 打开登录页(若未登录)
- 手动粘贴邮箱/密码并提交(脚本不自动填)
- 进入登录后查价入口(记录最终 URL;常见 Let's build a quote / Quick)
- 按页面真实字段走完:ZIP/Type/Packaging/Class/Description/提交 → 等到报价结果出现
- 关闭 codegen 窗口,确认 js + storage 落盘
录制后必填清单(从 js 摘抄)
将下列项填入下方「附录 A」;正式写入 .env 的 FLOCK_SELECTOR_* / 登录后 UI 适配可与下一步同做。
| # | 项 | 说明 |
|---|---|---|
| 1 | 登录页 URL | 默认 https://app.flockfreight.com/login |
| 2 | 登录后报价入口 URL | 出「Let's build a quote」或等价表单的首个稳定 URL |
| 3 | FLOCK_SELECTOR_LOGIN_EMAIL |
email 输入 |
| 4 | FLOCK_SELECTOR_LOGIN_PASSWORD |
password 输入 |
| 5 | FLOCK_SELECTOR_LOGIN_SUBMIT |
登录提交 |
| 6 | 表单可见标记 | heading / 关键文案(供 isFlockLoggedInQuoteForm) |
| 7 | 提货/派送 ZIP 或地址字段 | |
| 8 | Type / Packaging / Freight Class / Description | 登录后必填项 |
| 9 | 提交报价 selector | 如 Generate my quote |
| 10 | 出报价特征 | 网络 URL 模式或结果 DOM 文案 |
录制后可运行:
npx tsx scripts/finalize-flock-logged-in-recording.ts
禁止
- 用匿名
get-a-quote录制冒充登录后页(字段不同) - 用手猜 selector 跳过本 SOP
- 把登录态 storage 写进匿名
FLOCK_STORAGE_STATE_PATH
附录 A — 本次录制摘抄(人工回填)
2026-07-15 15:58:人工重录完整路径(
flock-logged-in-20260715-155553.js),已出报价quote/TSM-TQ8Q。
警告:原始 js 曾含明文账密,已脱敏为REDACTED;勿提交真实密码。脱敏基线:scripts/fixtures/flock-logged-in-quote-baseline.js。
| 项 | 值 |
|---|---|
| 录制脚本文件 | .rpa/recordings/flock-logged-in-20260715-155553.js |
| storageState | .rpa/flock-logged-in-storage.json(存在) |
| 登录页 URL | https://app.flockfreight.com/login |
| 登录后入口 | https://app.flockfreight.com/home → header-new-quote-button → quick-form-toggle |
| 结果页示例 | https://app.flockfreight.com/quote/{id}(本次 quote/TSM-TQ8Q) |
| LOGIN_EMAIL | getByRole('textbox', { name: 'Email Address' }) → Next |
| LOGIN_PASSWORD | getByRole('textbox', { name: 'Password' }) |
| LOGIN_SUBMIT | getByRole('button', { name: 'Log in' }) |
| 表单可见标记 | Quick:quick-form-toggle;提交 testid quote-request-quick-form__submit_button |
| ZIP/地址字段 | Pickup ZIP Code / Delivery ZIP Code |
| 提货/派送类型 | combobox Pickup Type * / Delivery Type * |
| 货物字段 | Quantity / Packaging(Bags 时有 Length/Width)/ Height / Weight / Freight Class(含 density)/ Description / Stackable |
| 出报价特征 | /quote/{id};Standard-fulfillment-option / FlockDirect®-fulfillment-option |
| 录制日期 | 2026-07-15 |