Google chrome devtools Puppeter拦截请求并用json响应

Google chrome devtools Puppeter拦截请求并用json响应,google-chrome-devtools,puppeteer,webdriver-io,Google Chrome Devtools,Puppeteer,Webdriver Io,所以Puppeter提供了一个非常基本的例子,可以截取一个指向pic的url请求,并用一个不同的url响应另一个pic。他们文档中的示例如下: 我的问题是我试图截获一个XHR请求并用我自己的json响应。我似乎找不到这方面的文件。如果有人能分享更多关于这方面的文档,那就太好了。或者提供这方面的例子 我希望能够基于http方法(如GET或POST请求)进行拦截。并基于URL路径。能够使用通配符以及/api/v1/foo/:id 它会识别出:id是一个通配符,可以接受那里的任何内容 然后能够以20

所以Puppeter提供了一个非常基本的例子,可以截取一个指向pic的url请求,并用一个不同的url响应另一个pic。他们文档中的示例如下:

我的问题是我试图截获一个XHR请求并用我自己的json响应。我似乎找不到这方面的文件。如果有人能分享更多关于这方面的文档,那就太好了。或者提供这方面的例子

我希望能够基于http方法(如GET或POST请求)进行拦截。并基于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()
    })
page.on('request',interceptedRequest=>{
if(interceptedRequest.url({method:POST,body:{}}).endsWith('/api/v1/foo/12345')){
returninterceptedrequest.continue({
现状:200,
正文:{some json object}
})
}
interceptedRequest.continue()
})

您可以为木偶演员使用-请求模拟库。它可以基于方法和路径响应请求,并内置对路径参数的支持(
:param
)。它与jest和jest Puppeter集成得最好,但可以与任何测试库一起使用。

您可以使用-请求Puppeter模拟库。它可以基于方法和路径响应请求,并内置对路径参数的支持(
:param
)。它与jest和jest Puppeter集成得最好,但可与任何测试库一起使用。

这是否回答了您的问题?另请参见。这是否回答了您的问题?另见。