如何检测与 puppeteer 一起使用的 chrome 的版本?

How to detect version of chrome used with puppeteer?

我读到 puppeteer 使用最新版本的 chrome, 我在哪里可以找到它使用的版本

我不想访问 window 上的导航器对象来获取它。基本上没有运行时。只是想知道 puppeteer 作为一个包是否在某处列出了它的依赖关系

基本上,我想查找所有 CSS 和 javascript 支持,我可以假设来自 'can I use' 或 chrome 等其他网站的参考资料。

使用browser.version()函数在运行时找出使用的版本。

如果您有 page 对象,您可以像这样使用它:

const version = await page.browser().version();

要在不启动的情况下找出哪个 Chromium 版本与 puppeteer 版本捆绑在一起,您应该查看发行说明,总有一个关于使用的 Chromium 版本的部分。

示例(摘自 v1.14.0 的发行说明):

Big Changes

  • Chromium 75.0.3738.0 (r641577)

在最新版本的node中,上面的代码returns一个promise对象。

您需要执行类似的操作才能获取浏览器版本

await page.browser().version().then(function(version) {
console.log(version);
});

应该打印这样的东西HeadlessChrome/84.0.4143.2

另一种通过命令获取 puppeteer 版本的方法,并检查 https://www.npmjs.com/package/puppeteer

中安装的 puppeteer 支持的 chrome 版本
cat <puppeteer_dir>/package.json | grep "\"version\":"

对我来说,puppeteer_dir= /home/packages/node_modules/puppeteer

结果是 "version": "5.3.1" 并且支持的 chrome 版本是 chrome-85

如果您在项目的根目录中(与您的 node_modules 目录相同级别),您可以 运行 在节点中执行此操作

(async()=>{const x = require("puppeteer"); console.log(await(await(await x.launch()).newPage()).browser().version())})()

我的结果: > HeadlessChrome/91.0.4469.0

我发现此方法更简单,因为您可以 运行 在您的服务器上使用它而无需进行文件操作。

(假设您不能使用顶级异步等待)