Selenium'Chrome无法启动:退出异常'错误

Her*_*rch 6 selenium selenium-chromedriver

我关注https://github.com/RobCherry/docker-chromedriver/blob/master/Dockerfile作为示例,我的docker文件中包含以下内容:

RUN CHROMEDRIVER_VERSION=`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE` && \
    mkdir -p /opt/chromedriver-$CHROMEDRIVER_VERSION && \
    curl -sS -o /tmp/chromedriver_linux64.zip http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip && \
    unzip -qq /tmp/chromedriver_linux64.zip -d /opt/chromedriver-$CHROMEDRIVER_VERSION && \
    rm /tmp/chromedriver_linux64.zip && \
    chmod +x /opt/chromedriver-$CHROMEDRIVER_VERSION/chromedriver && \
    ln -fs /opt/chromedriver-$CHROMEDRIVER_VERSION/chromedriver /usr/local/bin/chromedriver

RUN curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
    echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list && \
    apt-get -yqq update && \
    apt-get -yqq install google-chrome-stable && \
    rm -rf /var/lib/apt/lists/*

ENV DISPLAY :20.0
ENV SCREEN_GEOMETRY "1440x900x24"
ENV CHROMEDRIVER_PORT 4444
ENV CHROMEDRIVER_WHITELISTED_IPS "127.0.0.1"
ENV CHROMEDRIVER_URL_BASE ''
EXPOSE 4444
Run Code Online (Sandbox Code Playgroud)

要创建我正在做的驱动程序:

webdriver.Chrome()
Run Code Online (Sandbox Code Playgroud)

但我得到:

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
  (Driver info: chromedriver=2.33.506092 (733a02544d189eeb751fe0d7ddca79a0ee28cce4),platform=Linux 4.4.27-boot2docker x86_64)
Run Code Online (Sandbox Code Playgroud)

我是否还需要执行其他操作才能启动Chrome?

Her*_*rch 21

搞定了.关键是要添加:

options = webdriver.ChromeOptions()
options.add_argument('--disable-extensions')
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
return webdriver.Chrome(chrome_options=options)
Run Code Online (Sandbox Code Playgroud)

  • 感谢您指出了这一点!在 Docker 实例中无头运行 Chrome 时,对我产生影响的标志实际上是“no-sandbox” - 如果我忽略它,Selenium 将失败并显示“错误:未知错误:Chrome 无法启动:崩溃” (2认同)