求助:RSelenium出现localhost端口连接拒绝错误及驱动版本适配问题
解决RSelenium连接拒绝与驱动版本适配问题
核心问题分析
你遇到的Connection refused本质是驱动与浏览器版本不匹配,叠加可能的Selenium Server兼容性、端口拦截问题,导致本地连接失败。以下是针对性解决步骤:
1. 手动指定匹配的ChromeDriver(推荐)
当Chrome版本过新,binman未收录对应驱动时,直接手动下载完全匹配的版本:
- 从Chrome官方驱动渠道下载与你当前Chrome版本完全一致的chromedriver(注意区分操作系统)
- 将下载的驱动文件放到本地任意路径(比如
C:/chromedriver/) - 修改代码,在
rsDriver中指定驱动路径:
library(tidyverse) library(RSelenium) library(netstat) # 指定本地chromedriver路径 rs_driver_var <- rsDriver( browser = "chrome", verbose = FALSE, port = free_port(), chromever = "C:/chromedriver/chromedriver.exe" # 替换为你的实际路径 ) remDr <- rs_driver_var$client # 注意:rsDriver启动后已自动打开浏览器,无需再调用remDr$open()
2. 降级Chrome到binman支持的版本
如果不想手动管理驱动,可将Chrome降级到binman::list_versions("chromedriver")中存在的最高版本:
- 运行
binman::list_versions("chromedriver")查看支持的驱动版本(比如114.0.5735.90) - 下载对应大版本的Chrome安装包(比如Chrome 114)并安装
- 重新运行原代码,binman会自动下载匹配的chromedriver
3. 更新Selenium Server版本
旧版Selenium Server可能与新驱动不兼容,手动更新到最新版:
# 安装最新版Selenium Server binman::install_versions("seleniumserver", "4.11.0") # 替换为当前最新版本号 # 启动时指定Selenium Server版本 rs_driver_var <- rsDriver( browser = "chrome", verbose = FALSE, port = free_port(), seleniumserverVersion = "4.11.0" )
4. 排查端口与权限问题
- 暂时关闭系统防火墙或杀毒软件,排查是否有本地连接拦截
- 手动指定端口而非使用
free_port(),比如port = 4445,确保该端口未被占用 - 以管理员身份运行RStudio,避免权限不足导致的端口绑定失败
内容的提问来源于stack exchange,提问作者User_Pamplemousse
相关产品推荐
相关产品推荐

