使用Google Chrome无头模式强制截图分辨率

5
我在使用Nightwatch和Chrome的无头模式时遇到了问题。我设置了一个脚本来对我的页面进行截屏,以便后来与之比较,以确定它们之间的差异。我遇到的问题是,根据运行我的脚本的机器不同,截图总是不同,因为它们的分辨率不同。
这是Nightwatch在我的Mac上捕获的屏幕截图。

Large screenshot

这是在CircleCI运行相同脚本时捕获的结果:

Small screenshot

有没有一种方法可以在无头模式下启动Chrome时强制执行屏幕分辨率?我已经使用了其他库,比如Puppeteer,它似乎在各方面都是一致的。窗口的宽度/高度总是被尊重的,但实际图像的大小是导致问题的原因。
以下是我的Nightwatch配置文件中启动设置的样子:
"chrome_launch" : {
  "launch_url" : "https://localhost:8000",
  "globals" : {
    "abortOnAssertionFailure": false,
    "env" : "local"
  },
  "desiredCapabilities": {
    "chromeOptions" : {
      "args" : ["window-size=1280,2480", "headless", "disable-gpu", "hide-scrollbars"]
    },
    "resolution": "1440x900"
  }
}

任何帮助都将不胜感激。
1个回答

7

我曾经遇到过同样的问题,在 Chrome 中传递这个参数 --force-device-scale-factor=1 对我有用:

google-chrome --headless --force-device-scale-factor=1 --window-size=1200,800


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接