我正在尝试使用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
今天我遇到了同样的问题,并从Google找到了这篇文章和其他文章。我想我可能有更直接的解决方案来修改您的代码。先前的答案在确定版本不匹配方面是正确的。
我尝试了建议的解决方案,但没有成功。我发现计算机上的版本正确。但是,此不匹配错误不是由计算机上安装的实际版本引起的,而是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=
希望这可以帮助!