RSelenium的rsDriver()无法连接本地4567端口问题求助
RSelenium本地运行及Mac ARM适配解决方案
一、手动指定Chromedriver到rsDriver()
如果你已经下载了对应版本的Chromedriver,可通过以下两种方式传入参数:
方法1:将Chromedriver加入系统PATH(推荐)
- 把下载的chromedriver移动到Mac默认PATH目录:
mv ~/Downloads/chromedriver /usr/local/bin/ - 赋予执行权限:
chmod +x /usr/local/bin/chromedriver - 调用rsDriver时关闭自动版本检查,直接使用本地驱动:
library(RSelenium) # 启动驱动 driver <- rsDriver( browser = "chrome", chromever = NULL, # 禁用自动下载,使用PATH中的驱动 check = FALSE # 关闭版本检查,避免ARM架构下的冲突 ) # 获取客户端对象 remDr <- driver[["client"]]
方法2:直接在代码中指定Chromedriver路径
如果不想修改系统PATH,可手动指定驱动所在文件夹:
library(RSelenium) library(wdman) # 启动指定路径的Chromedriver服务 chrome_service <- chrome( port = 4567L, chromever = NULL, path = "/Users/你的用户名/Downloads/" # 替换为你的chromedriver所在文件夹路径 ) # 连接到驱动 remDr <- remoteDriver( remoteServerAddr = "localhost", port = 4567L, browserName = "chrome" ) remDr$open()
二、Mac ARM芯片(M1/M2/M3)适配注意事项
ARM芯片下的核心问题是Chrome与Chromedriver版本必须严格匹配,且需下载ARM架构的驱动:
- 打开Chrome → 右上角菜单 → 「关于Google Chrome」,确认当前Chrome版本。
- 下载对应版本的ARM64版Chromedriver(不要选择Intel版)。
- 运行时添加权限参数,避免沙盒报错:
driver <- rsDriver( browser = "chrome", chromever = NULL, check = FALSE, extraCapabilities = list( chromeOptions = list( args = c("--no-sandbox", "--disable-dev-shm-usage") ) ) )
三、本地运行RSelenium的完整流程
- 安装依赖包:
install.packages(c("RSelenium", "wdman")) - 按照上述步骤配置Chromedriver。
- 启动驱动并测试:
remDr$navigate("https://www.example.com") # 打开测试网页验证 - 使用完毕后关闭资源:
remDr$close() driver$server$stop()
内容的提问来源于stack exchange,提问作者Canovice
相关产品推荐
相关产品推荐

