puppeteer - 使用“Network.requestIntercepted”时如何中止请求Puppeteer(与setRequestInterception的request.abort()相同)?
问题描述
我无法使用该setRequestInterception
功能进行拦截,一些重要的请求没有通过它。
相反,我使用了Network.setRequestInterception
,除了无法中止不需要的请求之外,它还不错。
如果我故意用if else语句忽略它,很多请求不会离开浏览器,导致很多错误处于挂起状态。
request.abort()
使用时我需要一个备用命令Network.requestIntercepted
,这是我的代码:
const client = await page.target().createCDPSession();
await client.send('Network.enable');
await client.send('Network.setRequestInterception',{
patterns:[
{urlPattern :'*'}
]
});
client.on('Network.requestIntercepted',async({interceptionId,request})=>{
if (request.url.indexOf('Loading') == -1 ){
await client.send('Network.continueInterceptedRequest',{
interceptionId
});
}else{
//I want request.abort()
}
});
谢谢!!
解决方案
似乎同样'Network.continueInterceptedRequest'
可以用于中止:
}else{
await client.send('Network.continueInterceptedRequest', {
interceptionId,
errorReason: 'Aborted',
});
}
推荐阅读
- google-kubernetes-engine - 通过 VPC Network Peering 将 Mongodb Atlas 连接到 GKE
- apache-camel - Apache Camel maximumReconnectAttempts 仍在重新连接
- ios - 在模拟器中运行的 iOS 15 上的 WKWebView 崩溃
- ios - 在 Swift 中访问 Objective-c 枚举,在单元测试目标中显示“无法在范围内找到类型”
- c++ - Cmake 错误:找不到 Freetype(缺少:FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS)
- http - 查询字符串参数的 wso2 ESB URL 编码
- python - 在位于当前目录子文件夹的终端中运行 Python 模块
- ffmpeg - 如何修复 ffmpeg 错误 Unknown-sized element at 0x16cbc in parent with final size
- angular - 拼接方法只有一次
- php - 将我的 MySQL Query 插入到 php 中,不断给出错误