docs: update user-facing docs with real test results from baidu.com verification
This commit is contained in:
+107
-102
@@ -1,143 +1,148 @@
|
||||
# VisionL 使用示例
|
||||
|
||||
> 面向智能体和人工用户的典型场景。
|
||||
> 基于实际测试验证的场景。
|
||||
|
||||
## 场景一:搜索引擎查询
|
||||
|
||||
```bash
|
||||
# 1. 打开百度
|
||||
visionl page open https://www.baidu.com --alias search
|
||||
# → {"ok":true,"data":{"id":"p_1234","alias":"search",...}}
|
||||
curl -s -X POST http://127.0.0.1:9527/pages \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"url":"https://www.baidu.com","alias":"search"}'
|
||||
|
||||
# 2. 输入搜索词
|
||||
visionl type search "#kw" "VisionL 浏览器"
|
||||
# 2. 获取首页文本
|
||||
curl -s http://127.0.0.1:9527/pages/search/text
|
||||
|
||||
# 3. 点击搜索
|
||||
visionl click search "#su"
|
||||
# 3. 输入搜索词并搜索
|
||||
curl -s -X POST http://127.0.0.1:9527/pages/search/type \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"selector":"#kw","text":"VisionL 浏览器"}'
|
||||
curl -s -X POST http://127.0.0.1:9527/pages/search/click \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"selector":"#su"}'
|
||||
curl -s -X POST http://127.0.0.1:9527/pages/search/wait \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"ms":2000}'
|
||||
|
||||
# 4. 等待结果加载
|
||||
visionl wait search --selector "#content_left"
|
||||
# 4. 获取搜索结果
|
||||
curl -s http://127.0.0.1:9527/pages/search/text
|
||||
|
||||
# 5. 获取页面文本
|
||||
visionl text search
|
||||
# → {"ok":true,"data":{"text":"搜索结果..."}}
|
||||
# 5. 截图保存
|
||||
curl -s http://127.0.0.1:9527/pages/search/screenshot | jq -r '.data.base64' | base64 -d > result.png
|
||||
|
||||
# 6. 用完关闭
|
||||
visionl page kill search
|
||||
# 6. 关闭
|
||||
curl -s -X DELETE http://127.0.0.1:9527/pages/search
|
||||
```
|
||||
|
||||
## 场景二:多页面信息收集
|
||||
|
||||
```bash
|
||||
# 同时打开多个信息源
|
||||
visionl page open https://news.ycombinator.com --alias hn
|
||||
visionl page open https://www.reddit.com/r/programming --alias reddit
|
||||
visionl page open https://github.com/trending --alias gh
|
||||
curl -s -X POST http://127.0.0.1:9527/pages \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"url":"https://www.baidu.com","alias":"baidu"}'
|
||||
curl -s -X POST http://127.0.0.1:9527/pages \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"url":"https://www.bing.com","alias":"bing"}'
|
||||
|
||||
# 分别提取内容
|
||||
visionl text hn
|
||||
visionl text reddit
|
||||
visionl text gh
|
||||
curl -s http://127.0.0.1:9527/pages/baidu/text
|
||||
curl -s http://127.0.0.1:9527/pages/bing/text
|
||||
|
||||
# 用完批量关闭
|
||||
visionl page kill-all
|
||||
# 查看所有页面
|
||||
curl -s http://127.0.0.1:9527/pages
|
||||
|
||||
# 关闭指定页面
|
||||
curl -s -X DELETE http://127.0.0.1:9527/pages/baidu
|
||||
```
|
||||
|
||||
## 场景三:表单填写
|
||||
## 场景三:Cookie 管理
|
||||
|
||||
```bash
|
||||
# 1. 打开登录页
|
||||
visionl page open https://example.com/login --alias login
|
||||
# 查看页面 Cookie(百度首页返回 8 个 Cookie)
|
||||
curl -s http://127.0.0.1:9527/pages/baidu/cookies
|
||||
|
||||
# 2. 填写表单
|
||||
visionl type login "#email" "user@example.com"
|
||||
visionl type login "#password" "s3cret"
|
||||
# 设置自定义 Cookie
|
||||
curl -s -X POST http://127.0.0.1:9527/pages/baidu/cookies \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"name":"session","value":"abc123","domain":".baidu.com"}'
|
||||
|
||||
# 3. 提交
|
||||
visionl click login "button[type=submit]"
|
||||
|
||||
# 4. 截图验证
|
||||
visionl screenshot login -o logged-in.png
|
||||
# 删除特定 Cookie
|
||||
curl -s -X DELETE http://127.0.0.1:9527/pages/baidu/cookies/session
|
||||
```
|
||||
|
||||
## 场景四:页面截图
|
||||
## 场景四:网络请求监控
|
||||
|
||||
```bash
|
||||
# 打开并截图
|
||||
visionl page open https://www.example.com --alias page
|
||||
visionl wait page --ms 2000 # 等待渲染
|
||||
visionl screenshot page -o page.png
|
||||
# 打开页面后查看网络请求日志
|
||||
curl -s http://127.0.0.1:9527/pages/baidu/network
|
||||
|
||||
# 滚动后截图
|
||||
visionl scroll page --down 600
|
||||
visionl screenshot page -o page-scrolled.png
|
||||
# 返回包含请求 URL、方法、状态码等信息:
|
||||
# [{"type":"response","url":"https://pss.bdstatic.com/...","status":200,...}]
|
||||
```
|
||||
|
||||
## 场景五:JS 数据提取
|
||||
|
||||
```bash
|
||||
# 获取页面标题
|
||||
curl -s -X POST http://127.0.0.1:9527/pages/baidu/eval \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"code":"document.title"}'
|
||||
# {"ok":true,"data":{"result":"百度一下,你就知道"}}
|
||||
|
||||
# 获取链接数量
|
||||
curl -s -X POST http://127.0.0.1:9527/pages/baidu/eval \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"code":"document.querySelectorAll(\"a\").length"}'
|
||||
|
||||
# 获取页面 meta 信息
|
||||
curl -s -X POST http://127.0.0.1:9527/pages/baidu/eval \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"code":"document.querySelector(\"meta[name=description]\")?.content"}'
|
||||
```
|
||||
|
||||
## 场景六:滚动截图
|
||||
|
||||
```bash
|
||||
# 滚动页面
|
||||
curl -s -X POST http://127.0.0.1:9527/pages/baidu/scroll \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"deltaY":500}'
|
||||
|
||||
# 滚动到底部
|
||||
curl -s -X POST http://127.0.0.1:9527/pages/baidu/scroll \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"toBottom":true}'
|
||||
|
||||
# 截图
|
||||
curl -s http://127.0.0.1:9527/pages/baidu/screenshot | jq -r '.data.base64' | base64 -d > scrolled.png
|
||||
```
|
||||
|
||||
## 场景七:切换指纹配置
|
||||
|
||||
```bash
|
||||
# 查看可用配置
|
||||
curl -s http://127.0.0.1:9527/profiles
|
||||
|
||||
# 使用 Windows Chrome 指纹打开页面
|
||||
curl -s -X POST http://127.0.0.1:9527/pages \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"url":"https://www.baidu.com","alias":"win","profile":"desktop-windows"}'
|
||||
```
|
||||
|
||||
## 场景八:页面持久化验证
|
||||
|
||||
```bash
|
||||
# 1. 打开页面
|
||||
visionl page open https://api.example.com/data --alias data
|
||||
curl -s -X POST http://127.0.0.1:9527/pages \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"url":"https://www.baidu.com","alias":"persistent"}'
|
||||
|
||||
# 2. 执行 JS 提取 JSON 数据
|
||||
visionl eval data "JSON.parse(document.body.innerText)"
|
||||
# → {"ok":true,"data":{"result":{"items":[...]}}}
|
||||
# 2. 关闭 curl 连接(页面不消失)
|
||||
# 3. 重新查询 — 页面仍在
|
||||
curl -s http://127.0.0.1:9527/pages/persistent
|
||||
# {"ok":true,"data":{"id":"p_xxx","status":"active",...}}
|
||||
|
||||
# 3. 获取页面标题
|
||||
visionl eval data "document.title"
|
||||
# → {"ok":true,"data":{"result":"API Data Page"}}
|
||||
```
|
||||
|
||||
## 场景六:REST 直通(高级)
|
||||
|
||||
```bash
|
||||
# 不使用子命令,直接调用 HTTP API
|
||||
visionl raw POST /pages '{"url":"https://example.com","alias":"test"}'
|
||||
# → {"ok":true,"data":{"id":"p_5678",...}}
|
||||
|
||||
visionl raw GET /pages/p_5678/text
|
||||
# → {"ok":true,"data":{"text":"..."}}
|
||||
|
||||
visionl raw DELETE /pages/p_5678
|
||||
# → {"ok":true,"data":null}
|
||||
```
|
||||
|
||||
## 场景七:智能体自动化工作流
|
||||
|
||||
LLM 通过 VisionL 完成机票比价:
|
||||
|
||||
```
|
||||
1. visionl page open https://flights.example.com --alias flights
|
||||
2. visionl type flights "#from" "北京"
|
||||
3. visionl type flights "#to" "上海"
|
||||
4. visionl type flights "#date" "2026-08-20"
|
||||
5. visionl click flights "#search"
|
||||
6. visionl wait flights --selector ".results"
|
||||
7. visionl text flights
|
||||
→ 提取票价信息
|
||||
8. visionl eval flights "document.querySelectorAll('.price').length"
|
||||
→ 统计结果数量
|
||||
9. visionl page kill flights
|
||||
```
|
||||
|
||||
## 场景八:长时间运行的任务
|
||||
|
||||
```bash
|
||||
# 打开监控面板
|
||||
visionl page open https://monitor.example.com --alias monitor --pretty
|
||||
# ✓ 页面已打开
|
||||
# ID: p_mon_001
|
||||
# URL: https://monitor.example.com
|
||||
# 别名: monitor
|
||||
|
||||
# ... 过了一段时间 ...
|
||||
|
||||
# 还是同一个页面
|
||||
visionl page list --pretty
|
||||
# ✓ 1 个页面
|
||||
# p_mon_001 monitor https://monitor.example.com active
|
||||
|
||||
# 刷新重新截图
|
||||
visionl navigate monitor https://monitor.example.com
|
||||
visionl screenshot monitor -o latest.png
|
||||
# 4. 只有显式 kill 才关闭
|
||||
curl -s -X DELETE http://127.0.0.1:9527/pages/persistent
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user