我的印象是 Chrome Headless 是一个功能齐全的 Chrome 版本,它可以运行任何 Chrome 桌面也可以运行的东西。但是,Chrome Headless 似乎无法显示来自 Google 地图和 Google 地球的 3D 页面。
谷歌地图网址示例:
https://www.google.co.uk/maps/@51.6506889,-0.4041839,40a,35y,113.57h,73.36t/data=!3m1!1e3
谷歌地球:
https://earth.google.com/web/@51.6499525,-0.40162489,64.98644774a,251.31324967d,35y,111.968
这是来自终端的示例:
chrome --headless --disable-gpu --screenshot https://earth.google.com/web/@51.6499525,-0.40162489,64.98644774a,251.31324967d,35y,111.96869586h,49.99995375t,0r
还有一个使用 puppeteer 的例子
const puppeteer = require('puppeteer');
async function run() {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setViewport({width:2880, height:1800});
await page.goto('https://www.google.co.uk/maps/@51.5516152,0.7010375,66a,35y,170.86h,79.21t/data=!3m1!1e3', {"waitUntil" : "networkidle"});
await page.screenshot({ path: './example-2d.png' });
browser.close();
}
run();
预期的结果是什么?
我希望结果的呈现方式与桌面版 Chrome 浏览器中的呈现方式相同。
相反会发生什么?
对于谷歌地图链接,它以 2D 而不是 3D 呈现。
对于谷歌地球,会给出一条错误消息:
哦,快!您的浏览器尚不支持新版 Google 地球。请在 Chrome 中尝试此链接。如果您没有安装 Chrome,请在此处下载。
有谁知道为什么会这样?是否需要在 Chrome 中启用某些功能才能正确渲染地图和地球?