1. ホーム
  2. r

[解決済み] セッションが作成されません。このバージョンのChromeDriverはChromeバージョンにしか対応していません ChromeDriver ChromeでSeleniumを使用した場合の74エラー

2022-04-21 16:31:07

質問

RSeleniumをrsDriver関数を使って実行しようとしていますが rD <- rsDriver() 新しいバージョンのChromeが必要だというメッセージが表示されます。

> rD <- rsDriver()
checking Selenium Server versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking chromedriver versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking geckodriver versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking phantomjs versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
[1] "Connecting to remote server"

Selenium message:session not created: This version of ChromeDriver only supports Chrome version 74
  (Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Mac OS X 10.14.3 x86_64)

Could not open chrome browser.
Client error message:
     Summary: SessionNotCreatedException
     Detail: A new session could not be created.
     Further Details: run errorDetails method
Check server log for further details.

エラーメッセージでは、Chromeのバージョン74.0.3729.6が必要なようですが、Chromeの設定を見ると、最新の安定版(73.0.3683.75)であることが分かります。さらにググってみると、74.0.3729.6はChromeのプレリリース開発版です。RSeleniumでChromeDriverを使うには、これをインストールする必要があるのでしょうか?

Chromeを使うことに固執しているわけではないのですが、rsDriverにFirefoxを使わせることができないのです。 browser = "firefox" rsDriverはChromeDriverが私のChromeのバージョンをサポートしていないという同じエラーメッセージを表示します。

私のセッション情報は

R version 3.5.2 (2018-12-20)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.3

Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib

locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] wdman_0.2.4     forcats_0.3.0   stringr_1.3.1   dplyr_0.7.8     purrr_0.2.5     readr_1.3.1     tidyr_0.8.2    
 [8] tibble_2.0.1    ggplot2_3.1.0   tidyverse_1.2.1 rvest_0.3.2     xml2_1.2.0      RSelenium_1.7.5

解決方法は?

今日、同じ問題に遭遇し、Googleからこの投稿と他の投稿を見つけました。私はあなたのコードの修正として、より直接的な解決策を持っているかもしれないと思います。前の回答は、バージョンの不一致を特定する上で正しいです。

提案された解決策を試しましたが、無駄でした。私のパソコンでは、バージョンは正しいことがわかりました。しかし、このミスマッチエラーは、コンピュータにインストールされている実際のバージョンから生じたものではなく、RSeleniumのコードがデフォルト引数でChrome/ChromeDriverの"最新" バージョンを求めているのです。参照 ?rsDriver() のヘルプページで引数を確認できます。

コードを実行すると binman::list_versions("chromedriver") ヘルプで指定されているように、その関数に対応したバージョンを識別することができます。私の場合、以下のコードで接続を確立することができました。

driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68", extraCapabilities = eCaps)

Chromeのバージョンを指定する場合は chromever= 引数で指定します。私は最も近いバージョンを使用しなければなりませんでしたが(私のクロームのバージョンは "73.0.3683.75"でした)。

お役に立てれば幸いです。