google-chrome-devtools - Puppeteer 拦截请求并在 json 中响应
问题描述
因此,puppeteer 提供了非常基本的示例,用于拦截对图片 url 的请求,并使用不同的 url 响应不同的图片。他们的文档中的示例: https ://github.com/webdriverio/webdriverio/tree/master/packages/devtools
我的问题是我试图拦截一个 XHR 请求并用我自己的 json 响应。我似乎找不到这方面的文档。如果有人可以分享更多关于此的文档,那就太好了。或者提供这方面的例子。
我希望能够基于 GET 或 POST 请求等 http 方法进行拦截。并基于 URL 路径。能够使用通配符就好了/api/v1/foo/:id
,它会识别:id
出通配符并且可以接受那里的任何东西。
然后能够以 200 的状态和自定义的 json 响应进行响应。最终,我正在寻找那个。
我的猜测是这样的:
page.on('request', interceptedRequest => {
if (interceptedRequest.url({method: POST, body: {<some json object>} } ).endsWith('/api/v1/foo/12345')) {
return interceptedRequest.continue({
status: 200,
body: {some json object }
})
}
interceptedRequest.continue()
})
解决方案
您可以使用Mockiavelli - 为 Puppeteer 请求模拟库。它可以根据方法和路径响应请求,并内置对路径参数(:param
)的支持。它与 jest 和 jest-puppeteer 集成得最好,但适用于任何测试库。
推荐阅读
- javascript - 从计算返回数据到嵌套字段
- android - AOSP 使用 jni 库构建应用程序
- python - 如何创建点将沿椭圆线移动的动画?
- .net-core - 使用事件时 Blazor 状态未在子组件之间更新
- vue.js - 安全共享使用不同图形框架 vuetify/quasar 构建的 npm 组件
- google-analytics - 使用 Google Analytics 的全局站点代码 (gtag.js) 测量滚动深度
- git - 更改 .gitconfig 的默认位置
- javascript - 我为视频、背景图像和图像编写了延迟加载,但它在 safari 上不起作用
- python - 自适应阈值错误:(-215:Assertion failed) src.type() == CV_8UC1 in function 'adaptiveThreshold'
- java - 什么是从 com.amazonaws.Response 提取响应正文到 JSON 字符串的最佳方法