RSelenium调用firefox时报错localhost端口4567连接被拒绝如何解决?
RSelenium 火狐浏览器连接报错解决方案
- 优先更新驱动匹配规则
你设置了check = FALSE会关闭RSelenium自动匹配驱动版本的逻辑,最新版火狐和旧版GeckoDriver大概率不兼容,先修改代码开启自动校验:
如果自动下载失败,可以自行下载对应火狐版本的GeckoDriver,将可执行文件放到R工作目录或系统环境变量路径中。library(RSelenium) rs <- rsDriver(browser = "firefox", check = TRUE) - 排查端口占用问题
报错提示4567端口被拒绝,大概率是端口被其他程序占用,可手动指定其他空闲端口启动:
也可以在CMD中执行rs <- rsDriver(browser = "firefox", check = FALSE, port = 4568L)netstat -ano | findstr "4567"查询占用端口的进程ID,到任务管理器中结束对应进程后重试。 - 手动指定火狐浏览器路径
若系统没有识别到火狐安装路径,可以通过额外参数手动指定浏览器可执行文件位置,修改代码如下:
注意将路径替换为你本地火狐浏览器的实际安装路径。library(RSelenium) eCaps <- list("moz:firefoxOptions" = list(binary = "C:/Program Files/Mozilla Firefox/firefox.exe")) rs <- rsDriver(browser = "firefox", check = FALSE, extraCapabilities = eCaps) - 清理残留后台进程
之前运行异常留下的geckodriver、Java、火狐残留进程会导致启动失败,打开任务管理器,结束所有名称为geckodriver.exe、java.exe、firefox.exe的非用户主动启动的进程后重试。 - 临时关闭安全软件校验
部分防火墙、杀毒软件会拦截本地端口通信,可临时关闭安全软件测试,如能正常启动,将R、Java、火狐、GeckoDriver都加入安全软件白名单即可。 - 升级依赖包版本
旧版RSelenium不兼容新高版本火狐,执行install.packages("RSelenium")更新到最新版包后重试。
内容的提问来源于stack exchange,提问作者rg4s
相关产品推荐
相关产品推荐

