我在puppeteer中切换选项卡时出错:
update sb_admins_servers_groups
Set srv_group_id=4
Where srv_group_id=-1
当我在没有第3行的情况下运行此代码时,会触发错误:
错误:错误:协议错误(Runtime.evaluate):会话已关闭。 页面很可能已关闭。 在CDPSession.send(c:\ path \ node_modules \ puppeteer \ lib \ Connection.js:172:29) at ExecutionContext.evaluateHandle(c:\ path \ node_modules \ puppeteer \ lib \ ExecutionContext.js:56:77) 在EventEmitter._document._documentPromise._contextPromise.then(c:\ path \ node_modules \ puppeteer \ lib \ FrameManager.js:310:38)
并且await page2.waitForSelector('#save');
await page2.click('#save'); //for saving and closing the page
await page2.waitFor(4000); // !!it will crash if I remove this line!!
const allPages = await browser.pages();
const page1 = await allPages[0];
await page1.waitFor(5000);// change nothing even if I wait 10 seconds
await page1.waitForSelector("selector")//crash if I delete 3rd line
对我不起作用,它会冻结页面。
我想知道如果我不使用第2页上的 waitFor(4000)这个功能会崩溃,如果有办法自动等待不浪费时间
或者也许我应该在点击按钮后等待page2完全关闭?
答案 0 :(得分:0)
您可能需要等待script
完成执行:
await page.waitForResponse(response => {
return response.request().resourceType() === 'script';
});
或者等待其他东西加载/完成/完成,ressourceType
:document, stylesheet, image, media, font, script, texttrack, xhr, fetch, eventsource, websocket, manifest, other