chromedriver

ChromeDriver

[4] ChromeDriver は、 Chrome 用の WebDriver サーバーです。

入手

[8] ChromeDriverChrome 本体と揃ったバージョンのものが必要です。 (バージョンが違うエラーが出てセッション作成に失敗します。)

[9] 最新安定版 Chrome 用の ChromeDriver のバージョンは、 https://chromedriver.storage.googleapis.com/LATEST_RELEASE で取得できます。 https://chromedriver.storage.googleapis.com/バージョン/chromedriver_linux64.zipChromeDriver を取得できます。

[10] Chromium の最新バージョンは https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2FLAST_CHANGE?alt=media で取得できます。 ここから https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2Fバージョン%2Fchrome-linux.zip?alt=mediaChromium Webブラウザーを取得でき、 https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Linux_x64%2Fバージョン%2Fchromedriver_linux64.zip?alt=mediaChromeDriver を取得できます。

ChromeDriver に接続できない

[3] 謎の 401 エラーが返る時はアクセス元のチェックで弾かれている可能性があります。 値なしの --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 が起動できなかったという意味だそうです。 --no-sandbox をつけろっていう回答が多いですが、 それで解決しなければ、もっと根本的なところを疑ってみましょう。

[7] 例えば依存ライブラリ― (.so ファイル) がなくて起動できないときにもこのエラーが出ます。

大きな画像データでクラッシュする

[17] DockerChromeDriver を動かしていると、 小さな画像の処理はうまくいくのに、 大きな画像の処理がうまくいかず、 session deleted because of page crash エラーが出ることがあります。 imgCSS画像処理や、 スクリーンショットなどが失敗したり、しなかったりします。

[18] docker run の実行時のオプションに --shm-size 2g のように指定しておくと、 解消します。

[19] Fargate ではこれに相当するオプションが使えません。そこで WebDriver のセッション作成時のオプションで

"desiredCapabilities": {
  "chromeOptions": [
    "args": [
       "--disable-dev-shm-usage"
     ]
    }
}

... を指定することで、回避できます。

[11] 1097 - session deleted because of page crash - Grid v.2.45.0 - Node config : {seleniumProtocol=WebDriver, platform=LINUX, browserName=chrome, maxInstances=5} - chromedriver () https://bugs.chromium.org/p/chromedriver/issues/detail?id=1097

[12] 519952 - http://www.google.com/adwords crashes in selenium/node-chrome-debug docker container - chromium () https://bugs.chromium.org/p/chromium/issues/detail?id=519952

[13] UnknownError: session deleted because of page crash from tab crashed · Issue #20 · elgalu/docker-selenium () https://github.com/elgalu/docker-selenium/issues/20

[14] UnknownError: session deleted because of page crash from tab crashed · Issue #20 · elgalu/docker-selenium () https://github.com/elgalu/docker-selenium/issues/20

[15] 736452 - Add an option to use /tmp instead of /dev/shm - chromium () https://bugs.chromium.org/p/chromium/issues/detail?id=736452

[16] Fargate doesn't support docker shm parameter needed for stable Firefox and Chrome · Issue #8 · xilution/xilution-selenium-grid () https://github.com/xilution/xilution-selenium-grid/issues/8

メモ

[20] 3857 - Host header or origin header is specified and is not whitelisted or localhost - chromedriver, https://bugs.chromium.org/p/chromedriver/issues/detail?id=3857