0

我正在使用 Playwright 库从网站获取数据。问题是该网站在打开时会显示一个弹出窗口,这会导致进程卡住,因为程序由于弹出窗口而无法获得任何按钮。

每次使用剧作家出现时,有没有办法关闭弹出窗口?

编辑:

页面正在创建一个弹出窗口。我检查了页面并了解到他们没有使用弹出窗口的模式,而是他们编写了内联 css 并将 div 装饰为弹出窗口。

4

2 回答 2

1

正如文档所说,如果没有"dialog"事件侦听器,Playwright 将自动关闭所有模式对话框。默认行为本质上等同于

page.on('dialog', dialog => dialog.dismiss());

如果在您的情况下它没有关闭,则很可能不是模态对话框(或剧作家中的错误)。

如果该页面打开另一个弹出页面,您可以按照本指南进行操作,但从您的描述来看,它听起来更像是一个模式对话框。

于 2021-10-15T18:00:47.010 回答
1

关闭实际弹出窗口

我认为browser.once("targetcreated", ...)如本期所述https://stackoverflow.com/a/57246544/2202112可能是您正在寻找的东西。

它允许您在新创建的目标上设置回调。

有关参考,请参阅有关“targetcreated”的 puppeteer 文档

关闭模式

  1. 找到关闭模式的按钮的选择器,例如.button-close.button-dismiss
  2. 在继续进一步抓取之前使用该page.click(selector, [options])方法单击按钮
于 2021-10-15T14:09:55.040 回答