javascript - NodeJS 使用 Puppeteer 处理弹出窗口

标签 javascript node.js web-scraping popup puppeteer

出于培训目的,我在亚马逊的特定页面上单击一个按钮,打开一个内部“弹出窗口”。 因此,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");

之后,您可以单击并在弹出窗口中输入所需的文本。

关于javascript - NodeJS 使用 Puppeteer 处理弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60821266/

相关文章:

python - 获取 XPATH 和 CSS 选择器以使用 Selenium 进行抓取的最佳方法

javascript - FadeIn Div 在按键上的鼠标光标 [Javascript/JQuery]

javascript - 这是哪种 JavaScript 设计模式?

node.js - 在生产服务器上部署后,Nextjs 不使用图像 url 获取图像

javascript - Node 快车 : Send only custom error messages

javascript - 在nodejs collection.find()中没有从Mongodb集合中获取值。它什么也不返回

python - 从亚马逊网站获取 href 链接时出现问题。 xpath 找到的 href 链接比预期多得多。

python - 如何在 Python 中使用 praw 将已保存的 reddit 帖子列表抓取到 txt 文件

javascript - 如何将超链接设置为变量

javascript - 三行笨拙的代码合二为一?