OneOS 证照批量导出
硬性规则(每次必做)
- 先重置再选车牌。车牌筛选项有缓存 bug,会默认带出历史查询车牌。每次执行前必须:
- 优先点筛选区「重 置」;或
- 点车牌号选择器右侧
.ant-select-clear清空按钮。 - 禁止在未重置时直接往已有标签上追加车牌。
- 一条
run-code跑完全流程,禁止逐步 snapshot → click → snapshot 慢路径(仅卡死时再 snapshot)。 - 导出弹窗先出现,「批量导出证照」不要
waitForEvent('download');在点「确 定」时再等下载。 - 默认保存目录:
~/Downloads/oneos-certificates/。 - 页面:
https://lnoneos.com/operations/vehicle-biz/certificates。
速度优化清单
| 做法 | 原因 |
|---|---|
复用 -s=oneos 持久会话 + auth-state.json | 省登录与冷启动 |
npx @playwright/cli 只在会话不存在时 open | 避免重复开浏览器 |
整段流程一次 run-code | 砍掉多轮工具往返 |
| 已知 UI 文案操作,不重新探索 | 「重 置 / 查 询 / 批量导出证照 / 确 定」 |
| 下载超时 180s,成功即返回路径 | 不额外截图除非失败 |
标准执行(复制即用)
用户给出车牌列表后(例:粤AGP9836,粤AGQ0178,粤AGR0772):
PW='npx --yes @playwright/cli -s=oneos'
OUT="$HOME/Downloads/oneos-certificates"
mkdir -p "$OUT"
# 若无会话:open + 可选 state-load
$PW list 2>/dev/null | grep -q 'oneos:' || \
$PW open "https://lnoneos.com/operations/vehicle-biz/certificates" --browser=chrome --persistent --headed
$PW goto "https://lnoneos.com/operations/vehicle-biz/certificates"
# 定位本 Skill 目录(npx skills add / 手动安装均可)
SKILL_DIR="$(python3 - <<'PY'
from pathlib import Path
home = Path.home()
cands = [
home/'.agents/skills/oneos-certificate-batch-export',
home/'.cursor/skills/oneos-certificate-batch-export',
home/'.claude/skills/oneos-certificate-batch-export',
]
for p in cands:
if (p/'scripts'/'export-once.js').exists():
print(p); break
else:
raise SystemExit('skill not found; run: npx skills add 15810879921-coder/oneos-certificate-batch-export -g -y')
PY
)"
PLATES_JSON='["粤AGP9836","粤AGQ0178","粤AGR0772"]' \
OUT="$OUT" \
$PW run-code --filename="$SKILL_DIR/scripts/export-once.js"
将 PLATES_JSON 换成用户给出的车牌列表。
登录
- 若落到
/auth/login:请用户在 headed 窗口登录,或$PW state-load "$OUT/auth-state.json"后goto。 - 登录成功后:
$PW state-save "$OUT/auth-state.json"。
完成标准
- 返回 zip 绝对路径与文件大小。
- 用 Python/
unzip -l确认 zip 内出现目标车牌(不要求每种证照齐全——库中无文件则不会进包)。 - 向用户只回报:路径 + 车牌覆盖情况;不复述探索过程。
失败处理
- 重置后车牌仍异常:再点一次「重 置」,
reload后重跑同一run-code。 - 点「确 定」无下载:snapshot 弹窗是否仍打开 / 是否有 toast 报错,再重试一次「确 定」。