是否有一个事件可以检测到Chrome上的制表符的加载纺车何时停止? 我尝试过:
networkidle0,networkidle2,domcontentloaded
没有成功
我需要等到页面加载时的现在我使用30秒的waitFor
致谢
答案 0 :(得分:3)
您可以尝试手动检查框架的_lifecycleEvents
。
当该帧获得networkIdle
循环事件时,此函数将解决。
function waitForFrameLoaded(frame) {
let fulfill;
const promise = new Promise(x => fulfill = x);
frame._frameManager.on('Events.FrameManager.LifecycleEvent', checkFrame)
checkFrame(frame);
return promise;
function checkFrame(eventFrame) {
if (eventFrame == frame && eventFrame._lifecycleEvents.has('networkIdle'))
fulfill(frame);
}
}
使用该功能,您可以执行以下操作:
const browser = await puppeteer.launch({ headless: false});
const page = await browser.newPage();
await page.goto("https://www.translatetheweb.com/?from=&to=fr&ref=SERP&refd=www.bing.com&dl=fr&rr=UC&a=https%3a%2f%2fwww.247freepoker.com%2f");
const frameElement = await page.waitForSelector('#frmTgt')
const frame = await frameElement.contentFrame();
await waitForFrameLoaded(frame);