新闻中心
Sublime开发Chrome DevTools协议(CDP)应用_自动化浏览器操作
Sublime Text 不支持 CDP 通信,但可作为轻量编辑器配合 Python/Node.js 开发 CDP 自动化脚本;需 Chrome 启动时启用 --remote-debugging-port,再通过 cdp 或 puppeteer-core 连接调试端口实现页面控制、请求拦截等功能。

Sublime Text 本身不直接支持 Chrome DevTools Protocol(CDP)通信,它不是浏览器自动化工具,也没有内置的 CDP 客户端能力。但你可以用 Sublime 作为代码编辑器,配合 Python、Node.js 等语言开发基于 CDP 的自动化应用——比如控制 Chrome/Edge 浏览器、抓取页面信息、拦截请求、注入脚本等。
为什么用 Sublime 写 CDP 应用?
Sublime 启动快、轻量、插件生态成熟,适合写小型 CDP 工具或调试脚本。你不需要 WebStorm 或 VS Code 的重型功能,只要能高效写 Python/JS、快速运行、查看日志就够了。
- 用 Sublime + Python + python-devtools(如
cdp或pychrome)写本地自动化脚本 - 用 Sublime + Node.js + p
uppeteer-core 连接已启动的 Chrome 实例(跳过 Puppeteer 自启逻辑,直连 CDP 端口) - 借助 Sublime Build System 一键运行 CDP 脚本并查看终端输出
快速连上 Chrome 的 CDP 端口
Chrome 必须以远程调试模式启动,才能被外部程序通过 WebSocket 连接:
- 命令行启动(macOS/Linux):
google-chrome --remote-debugging-port=9222 --no-first-run --no-default-browser-check - Windows:
chrome.exe --remote-debugging-port=9222 --user-data-dir=/tmp/chrome_dev_test(注意指定独立 user-data-dir) - 启动后访问
http://localhost:9222/json可看到当前页面列表和 WebSocket 调试地址(如ws://localhost:9222/devtools/page/xxx)
在 Sublime 中写一个最小 CDP 控制脚本(Python 示例)
安装依赖:pip install cdp(推荐轻量库 cdp)
新建 cdp_hello.py,内容如下:
GemDesign
AI高保真原型设计工具
652
查看详情
import cdp
from cdp import browser, page, runtime
<p>async def main():</p><h1>连接本地 CDP 端口</h1><pre class="brush:php;toolbar:false;">async with cdp.connect("http://localhost:9222") as conn:
# 获取第一页 target(tab)
targets = await conn.execute(browser.get_targets())
page_target = next(t for t in targets if t.type == "page")
# 建立 page session
async with conn.open_session(page_target) as session:
await session.execute(page.enable())
await session.execute(page.n*igate("https://example.com"))
await session.execute(page.reload())
# 执行 JS 并获取结果
result = await session.execute(runtime.evaluate("document.title"))
print("Page title:", result.result.value)if name == "main": import asyncio asyncio.run(main())
在 Sublime 中配置 Python 构建系统(Tools → Build System → New Build System),粘贴:
{
"cmd": ["python3", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
保存后按 Cmd+B(macOS)或 Ctrl+B(Win/Linux)即可运行并查看输出。
常见问题与绕过技巧
-
Connection refused:确认 Chrome 是用
--remote-debugging-port启动的,且没被防火墙拦截 -
No targets found:打开一个网页标签页再试;或用
browser.get_browser_contexts()查看上下文 -
想无头但还要 CDP:加
--headless=new(Chrome 112+),但需确保端口仍开放 -
不想每次手动启 Chrome:在脚本里用
subprocess.Popen自动拉起带调试参数的 Chrome 进程
基本上就这些。Sublime 不是 CDP 运行环境,而是你的“趁手小刀”——写得清楚、跑得明白、改得顺手就行。
以上就是Sublime开发Chrome DevTools协议(CDP)应用_自动化浏览器操作的详细内容,更多请关注其它相关文章!
# 你不
# 天津网站优化推广运营
# 什么是seo引流技术
# 龙岗区网站建设论坛
# 上海推广营销咨询报价表
# 关键词排名商品怎么排
# 网站推广人工优化方案
# 查关键词50以内的排名
# seo排名哪家性价比高
# 喜庆素材网站建设ppt
# 电商网站建设外包公司
# 解决问题
# 中文网
# 就行
# 相关文章
# 自动化浏览器
# 可以用
# 运行环境
# 器中
# 编辑器
# 一键
# windows
# go
# node
# json
# node.js
# js
# sublime
# python
# linux
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
mysql密码锁定怎么解锁_mysql密码锁定解锁后修改密码步骤
1688商家版怎样分析买家画像精准供货_1688商家版分析买家画像精准供货【供货策略】
如何在复杂的电商平台中优雅地管理共享资源并确保正确重定向,使用spryker-shop/resource-share-page模块助你一臂之力
优化 Jest 模拟:强制未实现函数抛出错误以提升测试效率
树莓派传感器触发:通过Twilio API发送WhatsApp消息教程
在Socket.IO连接中实现Access Token自动更新与动态重连
Golang如何实现简单的Web表单_Golang表单提交与验证处理方法
Windows 11怎么彻底关闭定位_Windows 11服务中禁用Geolocation
使用Python高效删除Word宏并转换DOCM为DOCX格式
必由学官网首页入口 必由学教师网页版登录指南
uc浏览器网页版入口 uc浏览器网页版最新网址
Composer中的^和~符号代表什么_精通Composer版本号语义化约束
Yandex官网免登录入口_俄罗斯Yandex搜索引擎一键访问
VS Code远程开发时如何处理文件权限问题
React/Next.js中实现列表项的动态选择与移动
AO3网页版最新入口合集 Archive of Our Own在线访问指南
支付宝解绑银行卡步骤_支付宝如何解除绑定银行卡
Win11蓝牙耳机断连怎么解决 Win11蓝牙设置重新配对与驱动更新【技巧】
windows10怎么查看硬盘序列号_windows10硬盘id查询命令
PPT平滑切换怎么做 PPT炫酷“平滑”切换动画制作教程【必学】
QQ邮箱网页版邮箱入口 QQ邮箱官方登录平台
一加 14R 快充无反应_一加 14R 充电优化
4399免费游戏网址入口 4399小游戏免费入口点开即玩
处理动态列数据:J*a ArrayList的正确初始化与字符累加教程
J*aScript:在map操作中高效处理空数组
《明末:渊虚之羽》设计师谈设计角色:那会刚毕业 充满激情
sublime侧边栏怎么增强功能_SideBarEnhancements for sublime安装与配置
Python大型XML文件高效流式解析教程
PS5 Pro有点优势但不多! 《燕云十六声》PS5平台与PC性能画面对比
谷歌浏览器最新官方入口链接 谷歌浏览器网页版官网导航
解决macOS Tkinter应用双击启动崩溃:PyInstaller打包指南
优化 Python 函数中的条件逻辑:解决 if-else 嵌套与参数选择问题
俄罗斯浏览器官网直达链接 俄罗斯浏览器最新在线入口导航
抖音隐秘迷城小游戏入口_ 抖音冒险解谜小游戏秒玩
Golang如何使用new_Go new分配内存机制讲解
利用Bokeh CustomJS动态控制DataTable列可见性
快速CSGO开箱网站指南 CSGO开箱平台推荐
探索高级语言到C/C++的转译路径:以Go为例及内存管理策略
如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略
我的世界官方游戏入口 我的世界官网平台直达链接
漫蛙漫画官方主页入口 漫蛙MANWA网页直达访问链接
Python实时数据流中的动态最值查找策略
QQ邮箱正确登录入口_QQ邮箱官方网站使用地址
outlook中文官网入口地址 outlook官方中文版直达首页链接
魅族20怎样在浏览器开无图省流_iPhone魅族20浏览器开无图省流【流量节省】
J*aScript中localStorage数据的获取、清洗与格式化教程
如何在CSS中使用浮动制作导航栏_float实现水平菜单
高德地图怎么看全景照片_高德地图全景照片浏览教程
Win11 BitLocker密码忘了怎么办 Win11找回BitLocker恢复密钥方法【解决】
J*aScript DOM操作:高效清空列表元素的策略与实践


2025-12-08
浏览次数:次
返回列表
uppeteer-core 连接已启动的 Chrome 实例(跳过 Puppeteer 自启逻辑,直连 CDP 端口)