Chromium CDP 开发(八):测试自定义的CDP指令

引言

在本节中,我们将使用 Postman 来测试我们自己实现的 CDP 指令。Postman 是一个强大的 API 测试工具,可以方便地发送请求并查看响应。通过配置 Postman,我们可以模拟发送 timerSend 指令,并观察浏览器的响应行为。这将帮助我们验证指令的正确性和功能实现。

启动浏览器

首先我们启动我们编译好的浏览器并添加两个必要的命令行参数

这里的两个参数

复制代码
//配置远程调试端口(CDP)
--remote-debugging-port=1085
//配置用户目录
--user-data-dir=cdp_test

其中 --remote-debugging-port=1085 是关键是配置我们如何访问这个浏览器的CDP入口

然后我们可以参考CDP官方文档使用Postman来进行CDP测试

Chrome DevTools Protocol

连接CDP

首先我们使用 /json/version 获取debugg的webSocket链接,这里的browser后面的id每次启动都会变所以每次要重新获取

根据刚才我们配置的--remote-debugging-port=1085 我们获取要访问http://127.0.0.1:1085/json/version来获取websocket地址

http://127.0.0.1:xxx/json/version 是一个用于获取 Chrome DevTools Protocol(CDP)版本信息的 HTTP 请求接口。

这个接口里最重要的是提供了对浏览器的CDP websocket接入

之后我们链接上这个websocket地址

成功链接就说明我们已经连接上了浏览器的CDP服务

进行CDP通信

然后我们需要发送一个JSON数据体来访问我们的CDP访问

这里参考一下格式

复制代码
{
    //RequestId 因为CDP的返回值都是异步所以要配置一个请求id 这样这个请求id发送的指令的返回值出现时会携带同样的Id配成一对
    "id":1,
    //请求具体的指令这里的规则是 Domain.command 必须先写域名然后是指令名
    "method": "Browser.timerSend",
    "params":{
        //enable是必填值
        "enable":true
        //interval 在pdl里因为是 optional 所以是选填值这里可以不填写
        //"interval":1
    }
}

使用步骤:

  1. 配置 WebSocket :在 Postman 中创建一个新的 WebSocket 请求,连接到 ws://127.0.0.1:1085/devtools/browser/id(请根据实际调试端口替换)。
  2. 发送请求 :将上述 JSON 数据发送到 WebSocket 连接中。这将触发 timerSend 指令。
  3. 接收响应:观察 Postman 的响应面板,以查看 CDP 返回的结果。如果设置正确,您将收到与请求 ID 一致的响应,表明指令已成功执行。

通过这种方式,您可以快速验证所实现的 CDP 指令是否正常工作,并进行进一步的调试和测试。

这就代表CDP指令编写成功

总结

相关推荐
zhangfeng11334 小时前
R geo 然后读取数据的时候 make.names(vnames, unique = TRUE): invalid multibyte string 9
开发语言·chrome·r语言·生物信息
未来之窗软件服务19 小时前
浏览器开发CEFSharp (十七)网页自定义下载—仙盟创梦IDE
chrome·浏览器开发·cefsharp·仙盟创梦ide·东方仙盟
John_ToDebug20 小时前
Chrome性能黑魔法:深入浅出PGO优化与实战指南
c++·chrome
清 晨1 天前
Web3.0应用成功的诀窍
web3·互联网·facebook·tiktok·instagram·指纹浏览器·clonbrowser
望获linux1 天前
【实时Linux实战系列】规避缺页中断:mlock/hugetlb 与页面预热
java·linux·服务器·数据库·chrome·算法
未来之窗软件服务2 天前
浏览器开发CEFSharp+X86 (十六)网页读取电子秤数据——仙盟创梦IDE
大数据·智能硬件·浏览器开发·仙盟创梦ide·东方仙盟·东方仙盟网页调用sdk
守城小轩2 天前
Firefox Window 开发流程(六)
firefox·指纹浏览器·浏览器开发·超级浏览器
守城小轩2 天前
Firefox Window 开发详解(二)
firefox·指纹浏览器·浏览器开发·超级浏览器
John_ToDebug2 天前
Chrome 核心事件循环揭秘:TaskSequenceManager 与 MessagePump 的设计与实现
c++·chrome
h_k100862 天前
Chrome 插件开发入门技术文章大纲
前端·chrome