我试图抓取页面上的相关元素,然后单击每个元素以捕获其间的重定向和最终的登陆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'....)
功能保存重定向之前,页面的初始重定向发生了。
有没有办法全局设置任何新页面以获得如上所述的页面或管理浏览器的所有响应的方法?
非常感谢Puppeteer dev,一个很棒的工具。