拦截某个请求并得到它的响应(puppeteer)

Dru*_*run 8 javascript request puppeteer

一旦该 puppeteer 转到某个 url,我希望它侦听所有发出的请求,然后找到一个特定的请求并返回其响应。响应应该是一个 json 对象。

我设法听取了所有请求并拦截了所需的请求,但我不知道如何得到它的响应。这是我的尝试:我收到错误TypeError: Cannot read property 'then' of null

有什么建议吗?

page.on('request',async(request)=>{
    console.log(request.url())

    if (request.url().includes('desiredrequest.json')){
        console.log('Request Intercepted')
        request.response().then(response => {
            return response.text();
        }).then(function(data) {
        console.log(data); // this will be a string
        alert(data)
        });
    }

    request.continue()
})
Run Code Online (Sandbox Code Playgroud)

mbi*_*bit 11

由于响应可能尚未到达,更好的方法是监听response事件并从中获取请求对象。

page.on('response', async(response) => {
    const request = response.request();
    if (request.url().includes('desiredrequest.json')){
        const text = await response.text();
        console.log(text);
    }
})
Run Code Online (Sandbox Code Playgroud)