【问题标题】:window-size not working in headless chrome in protractor inside docker but works in local窗口大小在 docker 内的量角器中无法在无头镀铬中工作,但在本地工作
【发布时间】:2018-09-13 23:40:04
【问题描述】:

问题: chrome 选项中的窗口大小在 docker 内运行的量角器中的无头 chrome 中不起作用。

设置:

chromedriver 版本:protractor 5.3.1 使用的 2.33

Dockerfile:

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 

量角器.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。

尝试了 3 次:

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

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

谁能指出什么问题。谢谢

【问题讨论】:

    标签: docker protractor selenium-chromedriver alpine google-chrome-headless


    【解决方案1】:

    这是一个内存问题。

    --shm-size=1gb
    

    解决了。

    感谢@sylvaindumont 提供解决方案。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 据我了解 start-maximized 不适用于无头模式。不管怎样,我试过了,结果很好。谢谢。
      猜你喜欢
      • 2018-01-02
      • 1970-01-01
      • 2017-12-23
      • 2018-08-24
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 2017-08-31
      • 2023-03-20
      相关资源
      最近更新 更多