在页面上执行操作之后,在Puppeteer中执行新操作之前,是否有等待网络请求解决的方法?
我需要使用page.select()
与页面上的选择菜单进行交互,这将导致动态图像和字体加载到页面中。我需要等待这些请求完成,然后再执行下一个操作。
-
注意事项:
-
// launch puppeteer
const browser = await puppeteer.launch({});
// load new page
const page = await browser.newPage();
// go to URL and wait for initial requests to resolve
await page.goto(pageUrl, {
waitUntil: "networkidle0"
});
// START LOOP
for (let value of lotsOfValues) {
// interact with select menu
await page.select('select', value);
// wait for network requests to complete (images, fonts)
??
// screenshot page with new content
await pageElement.screenshot({
type: "jpeg",
quality: 100
});
} // END LOOP
// close
await browser.close();
答案 0 :(得分:0)
此问题的答案在于使用t
并监视后续请求,等待它们旋转,然后继续执行下一个任务(感谢@Guarev 指出了正确的方向) )。
该模块(https://github.com/jtassin/pending-xhr-puppeteer)确实可以做到这一点,但适用于XHR请求。我对其进行了修改,以查找“图像”和“字体”类型。
最终代码如下:
t
B