macOS下RSelenium运行失败:更新Java后出现httr调用未定义错误
解决macOS更新Java后RSelenium无法连接Firefox的问题
问题背景
更新Java前,使用rsDriver启动Selenium连接Firefox一切正常;更新Java后出现连接失败,报错端口4410被拒绝,且因需从目标网站下载内容无法使用Docker。
错误日志
rs_driver_object=rsDriver(browser="firefox", port=4410L, verbose=TRUE) 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" Could not open firefox browser. Client error message: Undefined error in httr call. httr output: Failed to connect to localhost port 4410 after 0 ms: Connection refused Check server log for further details. Warning message: In rsDriver(browser = "firefox", port = 4410L, verbose = TRUE) :
解决步骤
1. 验证Java与Selenium版本兼容性
- 查看当前Java版本:
java -version - Selenium版本对Java有明确要求:
- Selenium 3.x 最高兼容Java 11,不支持Java 17+
- Selenium 4.x 支持Java 8、11、17
- 若使用旧版Selenium,要么降级Java到11,要么升级Selenium到4.x版本。
2. 手动指定兼容的Selenium Server版本
在rsDriver中明确指定与当前Java匹配的Selenium版本,示例:
rs_driver_object <- rsDriver( browser = "firefox", port = 4410L, verbose = TRUE, version = "4.10.0" # 替换为兼容的版本号 )
3. 确保Geckodriver与Firefox、Selenium兼容
- 检查Firefox版本,下载对应版本的Geckodriver
- 手动指定Geckodriver路径:
rs_driver_object <- rsDriver( browser = "firefox", port = 4410L, verbose = TRUE, geckodriver = "/usr/local/bin/geckodriver" # 替换为你的Geckodriver路径 )
4. 检查端口占用情况
- 查看端口4410是否被其他进程占用:
lsof -i :4410 - 若有占用进程,执行
kill -9 <PID>杀掉进程,或者更换端口(比如4411)重新尝试。
5. 手动启动Selenium Server再连接
先通过命令行手动启动Selenium Server(指定兼容的Java版本和Selenium包):
java -jar selenium-server-standalone-4.10.0.jar --port 4410
然后在R中直接连接已启动的服务器:
library(RSelenium) remDr <- remoteDriver(remoteServerAddr = "localhost", port = 4410L, browserName = "firefox") remDr$open()
6. 检查macOS安全权限
更新Java后,macOS可能阻止了Selenium或Geckodriver运行:
- 打开系统偏好设置 > 安全性与隐私
- 查看是否有提示“已阻止geckodriver/selenium-server运行”,点击“允许”即可。
内容的提问来源于stack exchange,提问作者lasagna
相关产品推荐
相关产品推荐

