木偶拦截请求并在json中响应

时间:2020-02-24 06:26:56

标签: google-chrome-devtools puppeteer webdriver-io

因此,操纵up的人提供了一个非常基本的示例,即拦截对图片的url请求,并使用不同的URL响应不同的图片。来自他们的文档的示例在这里: https://github.com/webdriverio/webdriverio/tree/master/packages/devtools

我的问题是我正在尝试拦截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()
    })

1 个答案:

答案 0 :(得分:0)

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