Chrome 驱动程序异常:消息:会话未创建:Chrome 无法启动:崩溃

问题描述 投票:0回答:1

我正在运行 python 3.12。用于测试的 chrome 和 chrome 驱动程序都是相同的版本,即 123.0.6312.58 - 这已经过检查和验证

它在我的 Mac 上运行得非常好。但是,当我运行 dockerized 应用程序时,我收到错误

024-03-20 19:53:58 03/20/2024 06:53:58PM - ERROR - helper_functions.py::helper_functions::__init__:36 - Chrome driver exception: Message: session not created: Chrome failed to start: crashed.
2024-03-20 19:53:58   (disconnected: unable to connect to renderer)
2024-03-20 19:53:58   (The process started from chrome location /usr/local/bin/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
2024-03-20 19:53:58 Stacktrace:
2024-03-20 19:53:58 #0 0x555555cc9993 <unknown>
2024-03-20 19:53:58 #1 0x5555559c4136 <unknown>
2024-03-20 19:53:58 #2 0x5555559f8448 <unknown>
2024-03-20 19:53:58 #3 0x5555559f443d <unknown>
2024-03-20 19:53:58 #4 0x555555a3d239 <unknown>

我的docker配置看起来像这样

FROM --platform=linux/amd64 ubuntu:20.04


ENV PATH /usr/local/bin:$PATH


RUN set -eux; \
    apt-get update && \
    apt-get install -y --no-install-recommends \
        ca-certificates \
        tzdata \
        wget \
        unzip \
    ;


RUN apt-get install -y git
RUN apt-get install -y python3.12
RUN apt-get install -y python3-pip
RUN apt-get update &&  apt-get install -y libgbm1 gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
    libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libnss3 lsb-release xdg-utils wget ca-certificates


RUN set -eux; \
    wget -O chrome-linux64.zip https://storage.googleapis.com/chrome-for-testing-public/123.0.6312.58/linux64/chrome-linux64.zip && \
    unzip chrome-linux64.zip && \
    mv chrome-linux64/* /usr/local/bin/ && \
    chmod +x /usr/local/bin/chrome && \
    rm -rf chrome-linux64.zip chrome-linux64


RUN set -eux; \
    wget -O chromedriver-linux64.zip https://storage.googleapis.com/chrome-for-testing-public/123.0.6312.58/linux64/chromedriver-linux64.zip && \
    unzip chromedriver-linux64.zip && \
    mv chromedriver-linux64/chromedriver /usr/local/bin/chromedriver && \
    chmod +x /usr/local/bin/chromedriver && \
    rm -rf chromedriver-linux64.zip chromedriver-linux64


COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt


RUN mkdir /home/test
WORKDIR /home/test



COPY . .


ENTRYPOINT ["behave"]

CMD ["-v", "features/scenarios", "-D", "browser=chrome", "-f", "html", "-o", "test-results/report.html"]

环境

  • 硒4.18
  • Ubuntu Linux Docker 镜像
  • 行为1.2.7dev5
python google-chrome selenium-webdriver
1个回答
0
投票

让 Chrome 在 Docker 中运行是很棘手的。我尝试像您一样运行容器,但遇到了类似的错误。在创建 Selenium 驱动程序时传递这些额外的

Chrome CLI 参数
对我有用: Dockerfile

尝试以类似的方式更新 Behave 使用的 
from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument("start-maximized") options.add_argument("enable-automation") options.add_argument("--headless") options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") options.add_argument("--disable-browser-side-navigation") options.add_argument("--disable-gpu") options.add_argument("--window-size=1920,1080") driver = webdriver.Chrome(options)

创建代码。希望这有帮助。

这些参数的作用以及其他可能的相关问题在这些参考文献中进行了描述:

指向每个参数问题的链接:
    https://stackoverflow.com/a/52340526/8682376
  • 有关发生情况的更多解释:
  • https://stackoverflow.com/a/50642913/8682376
PS。一个完整的最小可重现示例将非常有用。没有它,人们只能猜测您的具体问题。

PPS。从您的

selenium.webdriver.Chrome

来看,您仍在容器中使用Python 3.8(而不是3.12)。谨防这可能会产生的其他问题:)

尝试使用 

Dockerfile

查看您的容器,以验证

docker exec -it <mycontainer> bash
pip
(和
python3
)都解析为默认系统 python 环境,即
behave
基础映像的 python 3.8。

尝试

安装3.12。注意构建日志(ubuntu:20.04 有帮助)。当您执行

docker build --progress=plain
时,它会显示:
apt-get install -y python3.12

因此没有安装
Note, selecting 'postgresql-plpython3-12' for regex 'python3.12'

(即使安装了,也不会在系统级别激活3.12环境,因此仅调用

python3.12
不足以使用它)。您可以尝试选择另一个基本映像,或者例如,为了简单起见,通过
pyenv
设置您的 python 环境。

© www.soinside.com 2019 - 2024. All rights reserved.