Javascript 你能使用Puppeter获得浏览器的所有网络流量(请求和响应)吗?

Javascript 你能使用Puppeter获得浏览器的所有网络流量(请求和响应)吗?,javascript,web-crawler,google-chrome-headless,puppeteer,Javascript,Web Crawler,Google Chrome Headless,Puppeteer,我试图抓取页面上的相关元素,然后单击其中的每一个元素,以便捕获到页面和最终登录url之间的重定向 const page = await browser.newPage(); const url = "someurl"; await page.goto(url, { waitUntil: 'networkidle0', timeout: 30000 }); //Grab the clickable elements let anchors, buttons, elements;

我试图抓取页面上的相关元素,然后单击其中的每一个元素,以便捕获到页面和最终登录url之间的重定向

const page = await browser.newPage();
const url = "someurl";

await page.goto(url, {
    waitUntil: 'networkidle0',
    timeout: 30000
});

//Grab the clickable elements
let anchors, buttons, elements;
anchors = await page.$$('a');
buttons = await page.$$('button');
elements = anchors.concat(buttons);

// Click each element and wait for navigation
for (var i = elements.length - 1; i >= 0; i--) {

    // targetcreated event fires once new page is opened
    const newPagePromise = new Promise(fulfill => browser.once('targetcreated', target => fulfill(target.page())));

    elements[i].click({button: 'middle'});

    // wait for newPage to be created from above promise
    const newPage = await newPagePromise;
    if(newPage != null){
        newPage.on('request', interceptedRequest => {
            console.log(`InterceptedRequest.url: ${interceptedRequest.url}`);
        });
    }
}
页面的初始重定向发生在我可以通过
page.on('request'..)
功能设置页面以保存重定向之前

是否有一种方法可以全局设置任何新页面,使其具有如上所述的页面。或者有一种方法可以管理浏览器的所有响应


非常感谢木偶师dev,这是一个很棒的工具。

尝试过这个。创建新页面、侦听器等时,会在浏览器中引发“targetcreated”事件,您可以从中获取目标对象
const newPagePromise=newpromise(fulfill=>browser.once('targetcreated',target=>fulfill(target.page()));等待元素[0]。单击({按钮:'middle'});const newPage=等待newPage承诺我设置了page.on(),但似乎捕获它太晚了,所以我没有捕获初始重定向(这正是我需要的)。据我所知,目前这只是一个bug/功能请求。