当无头模式为真时,人偶操作者不会转到 chrome://version

puppeteer wont go to chrome://version when headless mode is true

所以我正在使用 puppeteer.connect 方法并尝试转到 chrome://version 以提取 puppeteer 正在使用的用户代理,因此当无头模式为 false 时,它​​会做的很好但是当尝试无头模式时它会给出这个错误

 Error: net::ERR_INVALID_URL at chrome://version

代码示例:

 browser = await puppeteer.connect({ browserURL, defaultViewport: null });
 page = await browser.newPage();

  await page.goto('chrome://version');
  const useragent = await page.waitForSelector('#useragent');
  const UserAgent = await page.evaluate(element => element.innerText, useragent);

发生这种情况是因为 Chrome 出于安全原因专门阻止以这种方式访问​​本地文件。

总之,您无需打开版本页面即可获取用户代理。因为有它的方法:

await browser.userAgent(); 

它 returns:<Promise<string>> 解析为浏览器的原始用户代理的承诺。