window-size 在 docker 内部的量角器中无法在无头 chrome 中工作,但在本地工作

window-size not working in headless chrome in protractor inside docker but works in local

问题: window-size in chrome 选项在无头 chrome 中量角器 运行 inside docker.

设置:

chrome驱动程序版本:量角器 5.3.1 使用的 2.33

Docker文件:

FROM node:9-alpine

RUN echo @edge http://nl.alpinelinux.org/alpine/edge/community >> /etc/apk/repositories \
    && apk add --no-cache \
    python \
    build-base \
    git \
    bash \
    openjdk8-jre-base \
    # chromium dependencies
    nss@edge \
    chromium-chromedriver@edge \
    chromium@edge 

Protractor.conf.js :

chromeDriver: '/usr/bin/chromedriver',
directConnect: true,

capabilities: {
    'browserName': 'chrome',
    'chromeOptions': {
       args: ['no-sandbox','headless','window-size=1366,768'],

同样的设置在没有 docker 环境的本地也有效。

错误: Chrome 打开但测试用例失败(不尝试访问应用 url)

 UnhandledPromiseRejectionWarning: WebDriverError: no such session

尝试过 1 次:

'window-size=1366,768'
'window-size=1366x768'
'--window-size=1366x768'
'screen-size=1366x768'

尝试了 2 次:

 onPrepare: function () {

         browser.driver.manage().window().setSize(1280, 1440);
}

这也可以锻炼 chrome 默认 window 尺寸。

尝试了 3 次:

尝试将量角器更新为 protractor@5.3.1(原为 5.1)并使用

'goog:chroomeOptions' : {
   args: ['no-sandbox','headless','window-size=1366,768'],
}

谁能指出问题所在。谢谢

尝试使用 chromeoptions 中的 --start-maximized chrome 选项。我遇到过一次这个问题,添加这个标志解决了这个问题。

这是内存问题。

--shm-size=1gb

已解决。

感谢@sylvaindumont 提供解决方案。