NodeJS 使用 Puppeteer 处理弹出窗口

NodeJS Handle Pop-up with Puppeteer

出于培训目的,我在 Amazon 的特定页面上单击打开内部 "pop-up" 的按钮。 因此,Puppeteer 看不到弹出窗口,我无法单击和处理元素。

让我们从 https://www.amazon.de/ 开始。

使用 puppeteer,我是 运行:

await page.evaluate(() =>{
        document.querySelector('.nav-a.nav-a-2.a-popover-trigger.a-declarative').click();
        }
      });

打开内部弹出窗口。

如何处理这个新的内部页面:在输入框中键入文本,然后单击元素?

实际上它不是弹出窗口而是弹出窗口。在您实际单击选择器

后,它将在 DOM 中可见和访问
await page.evaluate(() =>{
   document.querySelector('.nav-a.nav-a-2.a-popover-trigger.a-declarative').click();
});

要不确定是否可以使用弹出窗口,您需要等待加载。

await page.waitForSelector(".a-popover.a-popover-modal.a-declarative");

之后您可以单击并在弹出窗口中键入您想要的文本。