docker 错误:selenium 找不到 chrome 驱动程序

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

这是我用于安装 google chrome 和 chromedriver 的 dockerfile 部分。我收到错误,selenium 找不到 chromedriver。如果我下载最新的 chromedriver 版本 126,那么我在构建过程中会收到错误,并且不会将目录和文件创建为 /tmp/usr/bin/chromedriver。

RUN wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | gpg - 
    -dearmor -o /usr/share/keyrings/google-linux-signing-key.gpg \
    && sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/google- 
    linux-signing-key.gpg] http://dl.google.com/linux/chrome/deb/ stable 
    main" >> /etc/apt/sources.list.d/google-chrome.list' \
    && apt-get update \
    && apt-get install -y google-chrome-stable \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get clean

RUN wget -q -O /tmp/chromedriver.zip 
    https://storage.googleapis.com/chrome-for-testing- 
    public/126.0.6478.126/linux64/chromedriver-linux64.zip \
     && unzip -o /tmp/chromedriver.zip -d /usr/bin \
     && ls -la /tmp/ \
     && mv /tmp/chromedriver /usr/bin/chromedriver \
     && chmod +x /usr/bin/chromedriver \
     && rm /tmp/chromedriver.zip

如果我使用 chromedriver 代码,在 docker 构建过程中会出现错误: mv:无法统计“/tmp/chromedriver”:没有这样的文件或目录

如果我注释掉 chromedriver 代码,在 docker run 期间会出现错误: selenium.common.exceptions.NoSuchDriverException:消息:无法找到或获取 chrome 驱动程序;有关此错误的文档,请访问:https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location

当我使用最新的 chrome 和驱动程序 126.0.6478.126 时,我可以改进什么?

python-3.x selenium-webdriver dockerfile selenium-chromedriver docker-desktop
1个回答
0
投票

我检查了一下,错误出在文件夹名称中。这是新命令,在 docker 构建过程中没有给出任何错误:

RUN wget -q -O /tmp/chromedriver.zip storage.googleapis.com/chrome-for- 
testing-public/126.0.6478.126/… \ && unzip -o /tmp/chromedriver.zip -d 
/tmp/ >> /build_logs/chromedriver_install.log \ && ls -la 
/tmp/chromedriver-linux64 \ && mv /tmp/chromedriver-linux64/chromedriver 
/usr/bin/chromedriver \ && chmod +x /usr/bin/chromedriver \ && rm 
/tmp/chromedriver.zip.

现在,我在 docker 运行期间遇到了新的错误。 错误:selenium.common.exceptions.SessionNotCreatedException:消息:会话未创建:Chrome 无法启动:正常退出。 (会话未创建:DevToolsActivePort 文件不存在)(从 chrome 位置 /usr/bin/google-chrome 启动的进程不再运行,因此 ChromeDriver 假设 Chrome 已崩溃。) Stacktrace:...... ......

我可以改进什么?

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