11
8

【selenium】コンテナにChrome version 115 以降に対応するChromedriverを入れる方法

Last updated at Posted at 2023-12-31

目的

seleniumでChromeを使う場合、ChromeとChromedriverのバージョンを対応しているものにしないと不具合に繋がります。
今回はコンテナ内でChrome version 115 以降に対応したChromedriverの取得方法の備忘録になります。

仕様環境

Docker
Python 3.11
selenium 4.1.0
Chromeバージョン 120.0.6099.129

Chrome version 115 以降でのChrimedriverの選択

Chrimedriverのダウンロード先は以下の公式サイトより確認できます。
version 114以前とは別のサイトになりました。
https://googlechromelabs.github.io/chrome-for-testing/

2024/01/01時点での対応状況は以下のようになっています。
image.png

今回使用するChromeバージョンは「120.0.6099.129」ですが、まだ(uncoming)となっているため、時点で最新の「120.0.6099.109」を使います。

各プラットフォームに対応したドライバーがあるため、環境に合わせたものを選択してください。
今回はコンテナで環境を整えるため、以下の「linux64」を使います。
スクリーンショット 2023-12-25 091511.png

chromedriver URL
https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/120.0.6099.109/linux64/chromedriver-linux64.zip

Dockerfile

ここまでで使用するChrimedriverが選択できました。
ということでseleniumを動かすための環境を定義したdockerfileをどんっ。

dockerfile
FROM python:3.11

ARG FUNCTION_DIR="/my_function"

# ChromeとChromedriverのインストールに必要なパッケージをインストール
RUN apt-get update && apt-get install -y wget unzip

# Google Chromeの最新安定版をインストール
RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
RUN dpkg -i google-chrome-stable_current_amd64.deb; apt-get -fy install

# Chromedriverをインストール
# 今回は「120.0.6099.109」を使用
RUN wget https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/120.0.6099.109/linux64/chromedriver-linux64.zip
RUN unzip chromedriver-linux64.zip
RUN mv chromedriver-linux64/chromedriver /usr/bin/chromedriver
RUN chown root:root /usr/bin/chromedriver
RUN chmod +x /usr/bin/chromedriver

# requirements.txtを使用して関数の依存関係をインストールする。
COPY requirements.txt  .
RUN  pip3 install -r requirements.txt --target ${FUNCTION_DIR}

COPY src ${FUNCTION_DIR}/src

適宜ほしいドライバーに合わせてUドライバーのRLを書き換えてください。

requirements.txt
selenium==4.1.0

【参考】Chrome version 114 以前の場合との違い

version 114以前であればChrimedriverのダウンロード先はこちらになります。

・注意点としてchromedriverファイルの配置場所がversion 115前後で変更されていました。
 こちらは適宜確認してみてください。

dockerfile (version 114以前)
RUN mv chromedriver /usr/bin/chromedriver
dockerfile (version 115以降)
RUN mv chromedriver-linux64/chromedriver /usr/bin/chromedriver

まとめ

最初ChromeとChromedriverのバージョンが対応していないせいで予期せぬエラーで沼ってしまっていました。
Chrome version によってダウンロード先やdockerfileの書き方が異なるため、それを知っていればもっと早く解決できたかと思います。

同じように沼っている人がいたら参考にしてください。

11
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8