使用Chrome DevTools Protocol 打开一个网站,怎么判断页面已经加载完成
时间: 2024-10-23 20:20:12 浏览: 16
chrome_devtool_book:Chrome DevTools手册中文版
在Chrome DevTools Protocol中,你可以通过`Page.loadEventFired`事件来检测一个网页是否已完全加载。这个事件会在资源加载完成后、DOMContentLoaded事件(表示DOM结构已经准备好)之后触发。以下是步骤:
1. 首先,你需要连接到目标浏览器,并选择对应的页面。在DevTools Protocol文档中,你可以找到相关的API,如`Target.connect`用于创建连接。
```json
{
"method": "Target.connect",
"params": {
"targetId": "<your-page-id>"
}
}
```
2. 接着,开启监听`Page.loadEventFired`事件。当页面加载完成时,会发送一个事件通知:
```json
{
"id": <request-id>,
"method": "Page.enable",
"params": {}
}
```
然后添加一个监听器:
```json
{
"method": "Runtime.addEventListener",
"params": {
"type": "loadEventFired",
"listener": {
"functionName": "handleLoadEvent",
"useCapture": false,
"details": {}
},
"options": {}
}
}
// 这里是处理函数,例如:
{
"id": <request-id>,
"method": "Runtime.callFunctionOn",
"params": {
"frameId": "<frame-id>",
"functionDeclaration": "() => { /* handle the load event here */ }",
"awaitPromise": true
}
}
```
当你接收到`loadEventFired`事件后,就可以认为页面已经加载完成了。
阅读全文