木偶戏中的标签切换问题

时间:2018-03-14 17:24:54

标签: javascript automated-tests google-chrome-devtools integration-testing puppeteer

我在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完全关闭?

1 个答案:

答案 0 :(得分:0)

您可能需要等待script完成执行:

await page.waitForResponse(response => {             
    return response.request().resourceType() === 'script';
});

或者等待其他东西加载/完成/完成,ressourceTypedocument, stylesheet, image, media, font, script, texttrack, xhr, fetch, eventsource, websocket, manifest, other