无人值守的 agent 跑起来,第一道坎几乎都是登录。它远程跑、定时跑,身边没有人帮它输验证码,也没有一个已经登录好的浏览器给它复用。它只能自己来:打开浏览器、填账号密码、过掉登录时弹出来的滑块。
普通的 headless 浏览器这三关都过不去,要么一上来就被反爬识别,要么填了表单触发滑块就卡死。chrome-use 是冲着「让无人值守 agent 能自己走完登录」做的。这篇讲它怎么过这三关,以及还没搞定的部分。
三关
- 驱动真实 Chrome 不被识别:走 CDP 连真实 Chrome,不是 headless 指纹。
- 自己填凭据登录:配合 profile-use 从密码库取号取密码,填进表单。
- 过登录滑块:
solve-slider自动解网易易盾的缺口拼图。
下面挑后两关讲,它们是无人值守最容易死的地方。
一、填凭据:配合 profile-use
chrome-use 负责开浏览器、定位字段、填、提交。凭据从哪来、怎么不泄露,交给 profile-use 这个 skill。
profile-use 把账号密码放在密码库里(rbw,兼容 Bitwarden / 自建 Vaultwarden),在「要填的那一刻」才读一次,绝不写进任何 JSON、日志、截图或聊天记录。低敏字段(用户名、邮箱、手机号)直接填;密码这类高敏字段单独取、用完即弃。
实测知乎密码登录:profile-use 按域名 zhuanlan.zhihu.com 从库里取出手机号 + 密码,chrome-use 填进两个输入框、点登录。整个过程密码只在内存里过一遍,落地的只有一句「已填(脱敏)」。提交那一下触发了网易易盾滑块,正好接到第二关。
2FA 和 passkey 怎么办
无人值守碰到二次验证,记住一条:别去点原生的 passkey 弹窗。 那种「Bitwarden / 系统钥匙串」弹出来的选择框是操作系统级的窗口,不是网页元素,CDP 够不到,chrome-use 点不了它。两条能走的路:
- CDP 虚拟认证器:Chrome 的 CDP 有
WebAuthn域,注册一个虚拟认证器并预置凭据,passkey 仪式就在浏览器内部自动完成,根本不弹原生窗。这是 passkey 自动化的正解。 - 退回密码 + TOTP:多数站点(GitHub 的 sudo 二次确认就是)留了「用密码」入口,那是网页链接,chrome-use 能点;密码走 profile-use,TOTP 验证码 rbw 也能出。
二、过滑块(网易易盾)
填完表单一提交,知乎这类站点弹的是网易易盾的缺口拼图。人不在,这道墙就把流程堵死。solve-slider(v1.5.34 起内置)自己过它。
下图是算法定位缺口的结果。绿框是拼图块起点,红框是检测到的缺口,橙色箭头是要拖的距离。红框压在背景图那个凹槽上,偏差在 1 像素内。

易盾官方 demo 上 6 次全新加载、每次重新生成的拼图:
load 1: SOLVED attempts=1 err=-0.2px
load 2: SOLVED attempts=1 err=-0.8px
load 3: SOLVED attempts=1 err= 0.2px
load 4: SOLVED attempts=1 err=-0.5px
load 5: SOLVED attempts=1 err=-0.8px
load 6: SOLVED attempts=1 err=-0.5px
6/6,全部第一次尝试,落点离目标都在 0.8 像素以内。通过后易盾滑条变绿打勾:

三步怎么做的
一、算缺口在哪。 易盾给两张图:带凹槽的背景图,和拼图块的 PNG(透明底)。要拖多少像素等于缺口横坐标减拼图起点。常见做法截屏再抠图,但照片纹理(桅杆、船、山)会和缺口一起被抠进来,测不准。chrome-use 换条路:直接按 URL 把易盾自己的两张切片下载下来,在内存里算,不截屏,也没有 canvas 跨域污染。算法是灰度加 Sobel 竖向边缘加掩码归一化互相关,纯 Rust 写,不引 opencv,二进制还是单文件。
二、拖得像人。 这步是大多数破解死掉的地方。易盾不只看你拖到哪,还看你怎么拖:匀速、直线、瞬移,一看就是机器。chrome-use 用 humanize 生成带曲率、减速、抖动、变速的人类轨迹来拖。6 次拖动,易盾的行为校验一次没拦。
三、闭环纠偏。 手柄拖多少、拼图跟着动多少,这个比例每个站点、每种渲染模式都可能不一样,写死容易差几像素。所以拖完一趟先读拼图实际落点,差多少补多少,补到 1.5 像素内再松手。比例和缩放都不用预设,闭环自己收敛。知乎用的是弹窗(popup)模式、还带入场动画,这套也兼容了。
老实说,还没到头
- 后端指纹:易盾在服务端还看账号历史、IP、时序。就算这一拖完美,号或 IP 本身像机器,它仍可能判失败。这只有真机端到端才知道。
- 增强滑块:图标形状的拼块 + 背景里的诱饵图形,低对比度照片。当前检测器会被诱饵带偏,在做更稳的方法。
- 点选验证码:依次点击指定文字/图标,要识别 + 定位 + 顺序点击,是更硬的一关,在做。
但标准滑块这关已经过了,对无人值守来说,这是从「登录直接卡死」到「能自己往下走」的一步。
用法
# 安装(无 npm、无 token)
curl -fsSL https://raw.githubusercontent.com/leeguooooo/chrome-use/main/install.sh | sh
chrome-use solve-slider # 检测当前页的易盾滑块并自动解
chrome-use solve-slider 5 # 失败最多重试 5 次(每次刷新换一张拼图)
配合 profile-use 的完整无人值守登录:profile-use 取号取密码 → chrome-use 填表 → 提交 → solve-slider 过滑块。仓库在 github.com/leeguooooo/chrome-use。

微信
支付宝
评论
评论发布后会立即公开,如触发规则可能被审核下架。