Javascript (节点:13276)未处理的PromisejectionWarning:错误:无法接受已处理的对话框
(节点:13276)未处理的PromisejectionWarning:未处理的承诺 拒绝。此错误源于在异步 函数没有catch块,或者拒绝了 未使用.catch()处理。在未处理的服务器上终止节点进程 承诺拒绝,使用CLI标志Javascript (节点:13276)未处理的PromisejectionWarning:错误:无法接受已处理的对话框,javascript,node.js,testing,puppeteer,Javascript,Node.js,Testing,Puppeteer,(节点:13276)未处理的PromisejectionWarning:未处理的承诺 拒绝。此错误源于在异步 函数没有catch块,或者拒绝了 未使用.catch()处理。在未处理的服务器上终止节点进程 承诺拒绝,使用CLI标志--未处理拒绝=严格 (见附件)。 (拒绝id:2) 大家好,在我调用这个函数两次之后,我从标题中得到了上面的警告: async function delete_page(page, page_id) { await page.goto('http://127.0.0
--未处理拒绝=严格
(见附件)。
(拒绝id:2)
大家好,在我调用这个函数两次之后,我从标题中得到了上面的警告:
async function delete_page(page, page_id) {
await page.goto('http://127.0.0.1:3000/page/' + page_id,
{ waitUntil: 'domcontentloaded' });
const navPromise = page.waitForNavigation();
page.on('dialog', async function(dialog) {
await dialog.accept();
});
await page.click("#delete-page-button");
await navPromise;
}
我在这里调用函数delete_page():
我怎样才能摆脱这个警告?谢谢 错误是说你不能做两次
wait dialog.accept();
您这样做了两次,因为每次调用delete\u页面
时都会注册一个新事件
您可以在after
函数中执行此操作,而不是在delete\u页面中执行此操作
page.on('dialog',异步函数(dialog){
等待对话框。接受();
});
您还可以使用一次
函数,该函数将仅被调用。。。一旦但你需要确保每次通话都会有一个对话,这样你就不会有超过一次的注册
page.once('dialog',异步函数(dialog){
等待对话框。接受();
});
我知道,我已经考虑过这个解决方案,但是我还需要在其他测试中调用函数delete_page()。这是唯一的解决办法吗?增加了另一种可能性。
after(async function() {
this.timeout(0);
await logout(page);
await login(page, 'AdminTester', 'password');
await delete_page(page, 'test');
await delete_page(page, 'test2');
await logout(page);
await page.close();
});