我正在使用 R 编程语言。
我正在使用 Selenium 库。
早些时候(2023 年 8 月),我的代码运行时没有任何问题 - 但现在(2023 年 11 月)我收到以下错误:
library(RSelenium)
library(wdman)
library(netstat)
> selenium()
checking Selenium Server versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
....
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
$process
PROCESS 'file27547a8c5781.bat', running, pid 14124.
binman::list_versions("chromedriver")
$win32
[1] "113.0.5672.63" "114.0.5735.16" "114.0.5735.90"
seleium_object <- selenium(retcommand = T, check = F)
remote_driver <- rsDriver(browser = "chrome", chromever = "114.0.5735.90", verbose = F, port = free_port())
Selenium message:session not created: This version of ChromeDriver only supports Chrome version 114
Current browser version is 119.0.6045.105 with binary path C:\Program Files\Google\Chrome\Application\chrome.exe
Build info: version: '4.0.0-alpha-2', revision: 'f148142cf8', time: '2019-07-01T21:30:10'
System info: host: 'LAPTOP-4N315DJ4', ip: '192.168.2.249', os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_341'
Driver info: driver.version: unknown
remote stacktrace: Backtrace:
GetHandleVerifier [0x00ECA813+48355]
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.
#################################
# rest of R/selenium script (currently does not work
#remDr = remote_driver
#remDr$navigate("https://www.google.com/maps")
# Search for the CN Tower
#search_box <- remDr$findElement(using = 'css selector', "#searchboxinput")
#search_box$sendKeysToElement(list("CN Tower", key = "enter"))
#Sys.sleep(5)
# Get the URL of the current page
#url <- remDr$getCurrentUrl()[[1]]
# Extract the longitude and latitude from the URL
#long_lat <- gsub(".*@(-?[0-9.]+),(-?[0-9.]+),.*", "\\1,\\2", url)
#long_lat <- unlist(strsplit(long_lat, ","))
###############################################
我使用的 Chrome 版本似乎有问题。不过,我的 Chrome 版本似乎正确?
为了使我的代码更加流畅,我想修改我的代码,以便它下载最新版本的 Chrome/驱动程序并自动解决此问题。
可以直接在R中执行此操作吗?
谢谢!
> sessionInfo()
R version 4.1.3 (2022-03-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 22621)
Matrix products: default
locale:
[1] LC_COLLATE=English_Canada.1252 LC_CTYPE=English_Canada.1252 LC_MONETARY=English_Canada.1252 LC_NUMERIC=C
[5] LC_TIME=English_Canada.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] netstat_0.1.2 wdman_0.2.6 RSelenium_1.7.9 duckdb_0.7.1-1 DBI_1.1.3
loaded via a namespace (and not attached):
[1] Rcpp_1.0.8.3 rstudioapi_0.13 xml2_1.3.3 knitr_1.39 rappdirs_0.3.3 R6_2.5.1
[7] rlang_1.0.6 fastmap_1.1.0 httr_1.4.4 caTools_1.18.2 tools_4.1.3 xfun_0.30
[13] binman_0.1.3 tinytex_0.45 KernSmooth_2.23-20 cli_3.4.1 e1071_1.7-9 semver_0.2.0
[19] htmltools_0.5.3 class_7.3-20 yaml_2.3.5 digest_0.6.29 assertthat_0.2.1 processx_3.8.0
[25] ps_1.7.2 bitops_1.0-7 curl_4.3.2 evaluate_0.19 rmarkdown_2.14 proxy_0.4-26
[31] compiler_4.1.3 classInt_0.4-3 jsonlite_1.8.4
该错误是由于 Chrome 和 ChromeDriver 版本不兼容而导致的。错误消息“此版本的 ChromeDriver 仅支持 Chrome 版本 X”表示 ChromeDriver 与系统中安装的 Chrome 版本不兼容。解决这个问题的方法是: 更新 ChromeDriver:下载与 Chrome 浏览器兼容的最新版本 ChromeDriver。请在 ChromeDriver 官方网站上查看 ChromeDriver 的最新版本。 重新安装 ChromeDriver:如果 ChromeDriver 版本兼容,请重新安装 R/Selenium 脚本中的新版本 ChromeDriver。 验证兼容性:重新安装 ChromeDriver,执行 R/Selenium 脚本以验证问题的解决方案。 请注意以下步骤,解决版本不兼容问题并纠正 Chrome 使用 R/Selenium 的问题。
我不知道你想用 selenium 在 r 中做什么。您是在测试网站还是抓取?
如果您正在抓取,我建议找到一种使用 chromium 而不是 chrome selenium 驱动程序的方法。通常的实现是下载 chromium 浏览器,然后与它进行交互,类似于 selenium 与 chrome 的交互。最大的优点是您不会出现版本不匹配、chrome 未更新或 selenium chrome 驱动程序版本不匹配的情况。您可以选择要使用的 chromium 版本,并且仅当您指定新版本时它才会更改。