homebrew
Capybara
selenium-webdriver
chromedriver

Selenium::WebDriver::Error::UnknownError: unknown error: unknown sessionId への対応

Capybara + Selenium WebDriver + Chrome で E2E テストをしていて、下記のエラーが発生したので対応した。

Selenium::WebDriver::Error::UnknownError:
  unknown error: unknown sessionId
    (Session info: headless chrome=65.0.3325.162)
    (Driver info: chromedriver=2.36.540469 (1881fd7f8641508feb5166b7cae561d87723cfa8),platform=Mac OS X 10.12.6 x86_64)

環境

  • macOS Sierra(Mac OS X 10.12.6)
  • Ruby 2.2.8(あっ...)
  • capybara 2.6.2
  • selenium-webdriver 3.10.0
  • Google Chrome 65.0.3325.162
  • ChromeDriver 2.36.540469
  • Java 1.6.0_65

結論ファースト

ChromeDriver のバージョンを 2.35 にダウングレードさせたらエラーが解消した。ダウングレードの方法は下記。

試してみたバージョン

公式情報 https://chromedriver.storage.googleapis.com/2.37/notes.txt によると、ChromeDriver が対応する Chrome のバージョンは下記。

ChromeDriver Chrome
2.37 v64-66
2.36 v63-65
2.35 v62-64
2.34 v61-63

なのだけれど、手元で試した限りでは下記の結果となった。同じテスト(ログインフォームに値を入れてサブミットする)なのだけれど、発生したエラーが異なった。

ChromeDriver Chrome v65
2.37 NG(unknown error: unknown sessionId)
2.36 NG(unknown error: unknown sessionId)
2.35 OK
2.34 NG(unknown error: call function result missing 'value')

参考

不具合の内容は下記のバグレポート参照。

下記でも同じような不具合が報告されていて、みんな ChromeDriver と Chrome のバージョンの組み合わせには苦労しているんだなあという印象。