【问题标题】:Could not Execute the Chromdriver from the Docker ( /usr/local/bin/chromedriver )无法从 Docker ( /usr/local/bin/chromedriver ) 执行 Chromdriver
【发布时间】:2021-09-28 07:47:58
【问题描述】:

我正在尝试从 docker 容器中执行 chrome 驱动程序,但没有成功,到目前为止我做了以下操作。

  1. 实施 Microsoft Azure Functions
  2. 实施 Dockerfile
  3. 成功运行 docker 容器

Python 文件

def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request. 11:38')




    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument('--disable-dev-shm-usage')
    path_to_chrome=os.path.join(os.getcwd(),'/usr/local/bin/chromedriver')



    driver = webdriver.Chrome(executable_path=path_to_chrome, chrome_options=chrome_options)

Dockerfile

FROM mcr.microsoft.com/azure-functions/python:3.0-python3.8

# 0. Install essential packages
RUN apt-get update \
    && apt-get install -y \
        build-essential \
        cmake \
        git \
        wget \
        unzip \
    && rm -rf /var/lib/apt/lists/*

# 1. Install Chrome (root image is debian)
# See https://stackoverflow.com/questions/49132615/installing-chrome-in-docker-file
ARG CHROME_VERSION="google-chrome-stable"
RUN wget -q -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 update -qqy \
  && apt-get -qqy install \
    ${CHROME_VERSION:-google-chrome-stable} \
  && rm /etc/apt/sources.list.d/google-chrome.list \
  && rm -rf /var/lib/apt/lists/* /var/cache/apt/*

# 2. Install Chrome driver used by Selenium
RUN LATEST=$(wget -q -O - http://chromedriver.storage.googleapis.com/LATEST_RELEASE) && \
    wget http://chromedriver.storage.googleapis.com/$LATEST/chromedriver_linux64.zip && \
    unzip chromedriver_linux64.zip && ln -s $PWD/chromedriver /usr/local/bin/chromedriver

ENV PATH="/usr/local/bin/chromedriver:${PATH}"

# 3. Install selenium in Python
RUN pip install -U selenium

# 4. Finally, copy python code to image
COPY . /home/site/wwwroot

# 5. Install other packages in requirements.txt
RUN cd /home/site/wwwroot && \
    pip install -r requirements.txt

【问题讨论】:

    标签: python docker selenium selenium-chromedriver azure-functions


    【解决方案1】:

    检查 chromedriver 是否在该路径中
    要检查打开的 CMD 并输入 chromedriver(假设您的 chromedriver 可执行文件仍然这样命名)并在出现 Starting ChromeDriver 2.15.322448 时按回车,则 PATH 已正确设置

    或者,您可以像这样使用 chromedriver 的直接路径:

    driver = webdriver.Chrome('/path/to/chromedriver') 
    

    所以在你的具体情况下:

    driver = webdriver.Chrome("C:/Users/Username/Downloads/chromedriver_win32/chromedriver.exe") 
    

    另外,你需要安装 selenium 包

    尝试使用apk add chromium-chromedriver
    https://pkgs.alpinelinux.org/package/v3.9/community/x86_64/chromium-chromedriver 安装 Alpine 存储库中提供的 chromedriver 的 Alpine 兼容版本

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-09
      • 2019-04-11
      • 2019-10-14
      • 2017-11-26
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 2019-01-15
      相关资源
      最近更新 更多