讲师中心 微信公众号
AI工具推荐 视频效率加速

webcli

Polar Sponsor
爱发电 赞助
.NET 9.0

使用 webcli 无头浏览器浏览网页、读取页面内容、点击按钮、填写表单、截取屏幕截图并获取可访问性快照。

webcli — 无头浏览器 CLI. 您可以通过webcli 命令访问无头浏览器

功能概述

webcli — 无头浏览器 CLI. 您可以通过webcli 命令访问无头浏览器是一项面向实际任务的技能,主要用于使用它来浏览网站、 阅读内容、 与元素互动、 获取截图和获取访问权限。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

webcli — 无头浏览器命令行工具

您可通过 webcli 命令访问一个无头浏览器。使用它可导航网站、读取页面内容、与元素交互、截取屏幕截图,以及获取可访问性快照。

前提条件

npm install -g @erdinccurebal/webcli
npx playwright install chromium

项目主页:https://webcli.erdinc.curebal.dev/ 代码仓库:https://github.com/erdinccurebal/webcli

命令参考

导航

webcli go                     # 导航至指定 URL(自动启动守护进程)
webcli go  -w networkidle     # 等待网络请求完成
webcli go  -t mytab           # 在指定名称的标签页中打开
webcli back                        # 返回上一页
webcli forward                     # 前进到下一页
webcli reload                      # 重新加载当前页面

读取页面内容

webcli source                      # 获取页面全部可见文本
webcli links                       # 列出所有链接(文本 + href)
webcli forms                       # 列出所有表单及其输入字段
webcli html              # 获取指定元素的 innerHTML
webcli attr   # 获取指定元素的属性值
webcli eval ""                 # 执行 JavaScript 并返回结果
webcli title                       # 获取页面标题
webcli url                         # 获取当前 URL
webcli value             # 获取 input / textarea 的值
webcli count             # 统计匹配元素的数量
webcli box               # 获取元素边界框(x, y, w, h)
webcli styles  [props..] # 获取计算后的 CSS 样式
webcli visible           # 检查元素是否可见
webcli enabled           # 检查元素是否启用
webcli checked           # 检查复选框是否已勾选

可访问性快照(推荐 AI Agent 使用)

webcli snapshot                    # 获取含引用标识(@e1、@e2…)的可访问性树
webcli snapshot --all              # 包含非交互式元素
webcli snapshot --max-depth 5      # 限制树的最大深度

该快照为所有交互式元素分配确定性的引用标识。可在其他命令中使用这些引用:

webcli snapshot                    # 获取可访问性树:[button @e1] "Submit",[textbox @e2] "Email"
webcli fill @e2 "user@example.com" # 使用引用填充
webcli click @e1                   # 使用引用点击

交互

webcli click "<可见文本>"         # 根据可见文本点击元素
webcli click @e1                   # 根据快照中的引用点击元素
webcli clicksel ""   # 根据 CSS 选择器点击元素
webcli dblclick "<文本>"           # 根据可见文本双击元素
webcli hover "<选择器>"          # 将鼠标悬停在元素上
webcli fill "<选择器>" "<值>"     # 填充输入字段(表单操作首选)
webcli type "<文本>"               # 键盘输入(仅对已聚焦元素有效)
webcli select "<选择器>" "<值>"   # 选择下拉菜单选项
webcli press Enter                 # 按下键盘按键(Enter、Tab、Escape 等)
webcli focus "<选择器>"          # 聚焦到指定元素
webcli check "<选择器>"         # 勾选复选框
webcli uncheck "<选择器>"       # 取消勾选复选框
webcli drag "<起始位置>" "<目标位置>" # 在两个选择器之间执行拖放操作
webcli upload "<选择器>" <文件路径>  # 向 input[type=file] 元素上传文件
webcli scroll down 500             # 页面滚动(up/down/left/right,单位:像素)

等待

webcli wait "<选择器>"           # 等待 CSS 选择器对应的元素变为可见
webcli waitfor "<文本>"            # 等待指定文本出现在页面上
webcli sleep 2000                  # 暂停 N 毫秒

截图与 PDF

webcli screenshot                  # 截取整页截图(返回保存路径)
webcli screenshot -o page.png      # 保存为指定文件名
webcli screenshot --no-full        # 仅截取视口区域(viewport-only)
webcli screenshot --annotate       # 截图并标注编号的交互式元素
webcli pdf                         # 将当前页面保存为 PDF
webcli pdf -o page.pdf             # 将 PDF 保存为指定文件名

控制台与错误

webcli console on                  # 开始捕获控制台日志
webcli console off                 # 停止捕获
webcli console                     # 显示已捕获的控制台消息
webcli errors                      # 显示页面错误

对话框处理

webcli dialog accept               # 接受 alert / confirm 对话框
webcli dialog accept "输入文本"    # 向 prompt 对话框输入文本并确认
webcli dialog dismiss              # 取消/关闭对话框

框架(iframe)切换

webcli frame "<选择器>"          # 切换至指定 iframe
webcli frame main                  # 切换回主框架(main frame)

存储(localStorage)

webcli storage get                 # 获取全部 localStorage 数据
webcli storage get mykey           # 获取指定键的值
webcli storage set mykey myvalue   # 设置指定键的值
webcli storage clear               # 清空全部 localStorage

状态管理

webcli state save session.json     # 保存 cookies + localStorage + sessionStorage
webcli state load session.json     # 恢复完整的浏览器状态

浏览器设置

webcli viewport 1920 1080          # 修改视口尺寸
webcli useragent "<字符串>"        # 修改 User-Agent 字符串
webcli device "iPhone 14"          # 模拟设备(同时修改视口和 UA)
webcli network on                  # 开始记录网络请求
webcli network off                 # 停止记录
webcli network                     # 显示网络请求日志

Cookie 管理

webcli cookie export               # 将 cookies 导出为 JSON 格式
webcli cookie import <文件路径>     # 从 JSON 文件导入 cookies

标签页与守护进程管理

webcli tabs                        # 列出当前所有打开的标签页
webcli quit                        # 关闭当前标签页
webcli quit -t mytab               # 关闭指定名称的标签页
webcli status                      # 显示守护进程信息(PID、运行时长、标签页列表)
webcli stop                        # 停止守护进程并关闭浏览器

全局选项

所有命令均支持以下选项:

  • -t, --tab — 指定目标标签页(默认为 "default")
  • --json — 以结构化 JSON 格式输出结果
  • --timeout — 设置命令超时时间(默认:30000 毫秒)

最佳实践

推荐的 AI Agent 工作流

  1. webcli go — 导航至目标页面
  2. webcli snapshot — 获取带引用标识的可访问性树
  3. 使用引用标识进行交互:webcli click @e1、webcli fill @e2 "value"
  4. 再次执行 webcli snapshot 查看更新后的页面状态
  5. 如需视觉确认,执行 webcli screenshot

替代工作流(纯文本方式)

  1. webcli go — 导航至目标页面
  2. webcli source — 读取页面全文本内容
  3. 使用 webcli click、webcli fill、webcli press 进行交互
  4. 再次执行 webcli source 查看操作结果

表单填写

  • 始终使用 webcli fill 填充输入字段——它能正确设置 React/Vue 中受控组件(controlled inputs)的值
  • 按钮点击请使用 webcli click 或 webcli clicksel
  • 提交表单建议使用 webcli press Enter
  • 提交后,建议先执行 webcli sleep 1000,再执行 webcli source 验证结果

多标签页浏览

webcli go https://site-a.com -t research
webcli go https://site-b.com -t reference
webcli source -t research          # 读取指定标签页内容
webcli source -t reference

错误恢复

  • 若命令超时,可尝试先执行 webcli sleep 2000,再重试
  • 若找不到目标元素,可用 webcli source 检查当前页面实际内容
  • 若守护进程疑似卡死,可执行 webcli stop 后重试命令
  • 与动态加载的内容交互前,建议先使用 webcli wait ""

重要说明

  • 在尝试任何交互操作前,请务必先用 webcli source 或 webcli snapshot 读取页面内容
  • 为获得最可靠的元素定位能力,优先使用 webcli snapshot + 引用标识的方式
  • 表单输入操作中,优先使用 webcli fill 而非 webcli type
  • 在可行的前提下,优先使用 webcli click(按可见文本)而非 webcli clicksel(按 CSS 选择器)
  • 高频交互之间建议插入 webcli sleep,确保页面有足够时间完成更新
  • 守护进程在命令间持续运行——除非页面本身发生变化,否则无需重复导航
目录

热门AI工具

更多
UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

0

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

0

2026.10.22

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

0

2026.10.22

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

0

2026.10.22

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

0

2026.10.22

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

0

2026.10.22

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

0

2026.10.22

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn