[4] [DFN[ChromeDriver]] は、 [[Chrome]] 用の [[WebDriver]] [[サーバー]]です。

[REFS[
- [1] [CITE[ChromeDriver]]
( ([TIME[2014-10-27 18:18:21 +09:00]] 版))
<https://sites.google.com/a/chromium.org/chromedriver/>
-
[2] [CITE[ChromeDriver - selenium - Information about the Chrome Driver - Browser automation framework - Google Project Hosting]]
( ([TIME[2014-10-30 08:34:50 +09:00]] 版))
<https://code.google.com/p/selenium/wiki/ChromeDriver>
]REFS]

* 入手

[8] 
[[ChromeDriver]]
は
[[Chrome]]
本体と揃ったバージョンのものが必要です。
(バージョンが違うエラーが出て[[セッション]]作成に失敗します。)

[9] 
最新安定版 [[Chrome]] 用の
[[ChromeDriver]]
のバージョンは、
<https://chromedriver.storage.googleapis.com/LATEST_RELEASE>
で取得できます。
[CODE[https://chromedriver.storage.googleapis.com/[VAR[バージョン]]/chromedriver_linux64.zip]]
で [[ChromeDriver]] を取得できます。

[10] 
[[Chromium]]
の最新バージョンは
<https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2FLAST_CHANGE?alt=media>
で取得できます。
ここから
[CODE[https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F[VAR[バージョン]]%2Fchrome-linux.zip?alt=media]]
で
[[Chromium]] [[Webブラウザー]]を取得でき、
[CODE[https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2F[VAR[バージョン]]%2Fchromedriver_linux64.zip?alt=media]]
で
[[ChromeDriver]]
を取得できます。

* ChromeDriver に接続できない


[3] 謎の [CODE(HTTP)[[[401]]]] エラーが返る時はアクセス元のチェックで弾かれている可能性があります。
値なしの [CODE[[[--whitelisted-ips]]]] を指定するとなおるかもしれません。

* Chrome が起動しない

[5] 
unknown error: Chrome failed to start: exited abnormally.\n  (unknown error: DevToolsActivePort file doesn't exist)\n  (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

[6] このエラーはよくわからないけど [[Chrome]] が起動できなかったという意味だそうです。
[CODE[--no-sandbox]]
をつけろっていう回答が多いですが、
それで解決しなければ、もっと根本的なところを疑ってみましょう。

[7] 
例えば依存ライブラリ― ([CODE[.so]] ファイル) がなくて起動できないときにもこのエラーが出ます。

* 大きな画像データでクラッシュする

[17] 
[[Docker]]
で
[[ChromeDriver]]
を動かしていると、
小さな画像の処理はうまくいくのに、
大きな画像の処理がうまくいかず、
session deleted because of page crash
エラーが出ることがあります。
[CODE[img]]
や
[[CSS]]
の[[画像処理]]や、
[[スクリーンショット]]などが失敗したり、しなかったりします。

[18] 
[CODE[docker run]]
の実行時のオプションに
[CODE[[[--shm-size]] 2g]]
のように指定しておくと、
解消します。

[19] 
[[Fargate]]
ではこれに相当するオプションが使えません。そこで
[[WebDriver]]
のセッション作成時のオプションで

[PRE(code)[
"desiredCapabilities": {
  "chromeOptions": [
    "args": [
       "--disable-dev-shm-usage"
     ]
    }
}
]PRE]

... を指定することで、回避できます。


[11] [CITE@en[1097 - session deleted because of page crash - Grid v.2.45.0 - Node config : {seleniumProtocol=WebDriver, platform=LINUX, browserName=chrome, maxInstances=5} - chromedriver]]
([TIME[2020-10-16T02:14:07.000Z]])
<https://bugs.chromium.org/p/chromedriver/issues/detail?id=1097>

[12] [CITE@en[519952 - http://www.google.com/adwords crashes in selenium/node-chrome-debug docker container - chromium]]
([TIME[2020-10-16T02:14:17.000Z]])
<https://bugs.chromium.org/p/chromium/issues/detail?id=519952>

[13] [CITE@en[UnknownError: session deleted because of page crash from tab crashed · Issue #20 · elgalu/docker-selenium]]
([TIME[2020-10-16T02:14:29.000Z]])
<https://github.com/elgalu/docker-selenium/issues/20>

[14] [CITE@en[UnknownError: session deleted because of page crash from tab crashed · Issue #20 · elgalu/docker-selenium]]
([TIME[2020-10-16T02:14:29.000Z]])
<https://github.com/elgalu/docker-selenium/issues/20>

[15] [CITE@en[736452 - Add an option to use /tmp instead of /dev/shm - chromium]]
([TIME[2020-10-16T02:44:21.000Z]])
<https://bugs.chromium.org/p/chromium/issues/detail?id=736452>

[16] [CITE@en[Fargate doesn't support docker shm parameter needed for stable Firefox and Chrome · Issue #8 · xilution/xilution-selenium-grid]]
([TIME[2020-10-16T02:44:37.000Z]])
<https://github.com/xilution/xilution-selenium-grid/issues/8>

* 既定ポート番号の非互換変更

- [21] 
[CITE@en[6f33d75f071e322c4a3e49b0a4ac2022e5b6cada - chromium/src - Git at Google]], [TIME[2024-12-24T02:29:17.000Z]] <https://chromium.googlesource.com/chromium/src/+/6f33d75f071e322c4a3e49b0a4ac2022e5b6cada>
- [23] [CITE@en-US[Chromedriver issues August 2024 - Page 2 - AutoIt General Help and Support - AutoIt Forums]], [TIME[2024-12-24T02:29:37.000Z]] <https://www.autoitscript.com/forum/topic/212201-chromedriver-issues-august-2024/page/2/>
- [22] 
[CITE@ja[ChromeDriver(EdgeDriver)のVer.128からデフォルトポート9515がランダムに変更されました。 #Excel - Qiita]], [TIME[2024-12-24T02:29:27.000Z]] <https://qiita.com/yaju/items/3c4e516746c8db830c9c>


[24] なんでこんなことするの!?

[25] 
[[WebDriver]] 界隈は[[非互換変更]]しまくりで本当に治安が悪いよなあ...

[26] 
しかもコミットログ以外に公式の情報が見つからないとか...


* メモ

[20] [CITE@en[3857 - Host header or origin header is specified and is not whitelisted or localhost - chromedriver]], [TIME[2022-02-17T04:38:14.000Z]] <https://bugs.chromium.org/p/chromedriver/issues/detail?id=3857>