makecindy / makecindy/cindy

支持 Playwright/Chromium/CDP 浏览器后端,开放真实点击能力用于 SPA 自动化

Open
#851 0 comments 0 reactions 0 assignees View on GitHub
feature
Dominant language
TypeScript
Stars
2.7k
Forks
395
Avg merge
21h 48m
Merged PRs (30d)
776

Description

**提交人**: Sofina
**客户端版本**: 0.1.20

---

## 使用场景
在 Cindy 中使用浏览器自动化操作招聘网站(例如 BOSS 直聘)时,需要完成真实用户交互:打开候选人详情、点击「打招呼」、选择职位并发送消息。

这类页面是 SPA,候选人详情和操作按钮通常不暴露稳定链接,必须依赖真实点击 / hover / DOM snapshot 识别可交互元素。

## 当前限制
当前浏览器工具显示后端为:

```text
backend: rsb-webview
```

在该后端下:

```text
action 'snapshot' not yet supported in rsb-webview backend
```

同时工具级真实点击不可用,只能通过 JS 合成事件尝试点击。但 BOSS 直聘页面对合成点击不响应,导致:

- 无法可靠打开候选人详情页 / 弹窗
- 无法触发「打招呼」按钮
- 无法完成不可撤回的真实外发操作

## 复现路径
1. 打开 BOSS 直聘招聘端搜索页,例如:`https://www.zhipin.com/web/frame/search/`
2. 使用 Cindy 浏览器工具查看状态,后端为 `rsb-webview`
3. 调用 `snapshot`,返回 `snapshot not yet supported`
4. 尝试通过 JS 合成点击候选人卡片 / 姓名 / hover 元素,页面不进入详情,也不出现可操作的「打招呼」流程

## 诉求
希望 Cindy App 在「设置 → 自动操作 / 浏览器」中开放浏览器后端切换,支持至少一种完整自动化后端,例如:

- Playwright / bundled Chromium
- CDP / Chrome DevTools Protocol,连接本地 Chrome/Chromium
- 其他支持真实点击、hover、type、snapshot/ref 的浏览器后端

## 建议方案
理想能力:

- `snapshot` 可读取可交互元素并返回 ref
- `act.click(ref)` 执行真实点击,而不是仅 JS 合成事件
- 支持 hover、type、press、wait 等完整交互
- 可复用持久登录态
- 保留当前轻量 `rsb-webview` 作为默认/低成本模式,但允许用户切换到完整自动化模式

## 价值
这能让 Cindy 可靠操作 BOSS 直聘、招聘后台、OA/CRM、内部管理台等 SPA 网站,完成真实业务自动化,而不是只能读取页面或执行有限 JS。
---
**OS**: darwin arm64 (25.5.0)
**界面语言**: zh-CN

Contributor guide

Open the contributing guide

Research direction

Start with the browser tool's current rsb-webview backend and the Settings → Automation/Browser entry point; inspect how snapshot and action are exposed. Define the backend-switching scope around Playwright or CDP, then verify that snapshot refs, real click, hover, type, press, wait, and persistent login work on the reported SPA workflow while preserving rsb-webview as the default.

Written by the indexing model from the issue text.

Assessment

Tech stack
playwright, typescript
Domain
desktop, devtools, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.