检查是否使用 puppeteer 打开了新标签页

Check if a new if a new tab was opened with puppeteer

我正在使用 Puppeteer 收集远程招聘的公司列表。我试图从中收集数据的页面有一个号召性用语,它不是 <a href="" blank"_tab",而是 <button></button>。该按钮也没有任何数据属性,它提示我单击该按钮时在新选项卡中打开的页面的 URL 是什么。我现在正试图找到一种方法来捕捉新选项卡的打开,通过单击所述按钮,然后获取新打开的选项卡的 URL 。木偶师可以做到这一点吗?

解决方案是通过browser.pages()方法调用提取浏览器的所有页面。 在你的木偶项目中,你总是从初始化浏览器开始。 puppeteer 虚拟浏览器确实包含 pages() 方法。 Usage of pages().

你现在要做的:首先获取你当前所在页面的当前url。然后流式传输 browser.pages() 方法的结果。在流式传输数组时,您只能获取当前选项卡的索引。您刚刚使用按钮打开的选项卡是具有该索引 + 1(数组中的下一个元素)的页面...

How to handle multiple tabs

Puppeteer Documentation about pages()