处理对话框立即在新选项卡中打开

Handle dialog immediately opened in new tab

我正在为 link 通过新选项卡打开应用程序的情况编写 Playwright 测试。用户单击 link,并打开一个带有自定义应用程序的新选项卡 url。

浏览器通常会询问“是否要打开此 link”,用户必须单击接受或取消。

在 Playwright 中,新页面被阻止,直到 对话框被确认。如果我无权访问该页面,是否可以通过某种方式监听对话事件?

const context = page.context();

async function newPageOpened(): Promise<void> {
  const newPage = await context.waitForEvent('page')
  // I won't have access to newPage unless I manually click the Accept button 

  newPage.on('dialog', (dialog) => {
    void dialog.accept();
  });
}

async function action(): Promise<void> {
  // Click the link
}

await Promise.all([newPageOpened, action()])

该对话框是 Chrome(仅)实现。剧作家不知道如何处理它们。因此,您将无法使用 dialog 事件将其关闭。
可以关注这个issue here.