我正在尝试使用 rsDriver 函数运行 RSelenium,但是当我运行时, rD <- rsDriver() 我收到一条消息,告诉我我需要更新版本的 Chrome:
rD <- rsDriver()
> 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 的预发布开发版本:我是否需要安装它才能将 ChromeDriver 与 RSelenium 一起使用?
我不喜欢使用 Chrome 的想法,但我无法让 rsDriver 使用 Firefox:当我指定 时browser = "firefox",rsDriver 给我同样的错误消息,关于 ChromeDriver 不支持我的 Chrome 版本。
browser = "firefox"
我的会话信息是:
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
我今天遇到了同样的问题,并从谷歌找到了这篇文章和其他文章。我想我可能有一个更直接的解决方案来修改你的代码。前面的答案在识别版本不匹配方面是正确的。
我尝试了建议的解决方案无济于事。我发现我的电脑上的版本是正确的。但是,这种不匹配错误不是由计算机上安装的实际版本引起的,而是 RSelenium 代码在默认参数下正在寻找 Chrome/ChromeDriver 的“最新”版本。有关参数,请参阅?rsDriver()帮助页面。
?rsDriver()
如果您binman::list_versions("chromedriver")按照帮助文档中的说明运行代码,则可以识别与该功能兼容的版本。就我而言,我能够使用以下代码建立连接。
binman::list_versions("chromedriver")
driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68", extraCapabilities = eCaps)
您应该能够使用chromever=参数指定您的 Chrome 版本。不过,我必须使用最接近的版本(我的 chrome 版本是“73.0.3683.75”)。
chromever=
希望这可以帮助!