RStudio Server下RSelenium连接Firefox报SessionNotCreatedException错误求助
RSelenium调用Firefox浏览器启动失败解决方案
错误根因
你遇到的SessionNotCreatedException错误,核心是Selenium的geckodriver驱动没有找到Firefox浏览器的安装路径,既没有在系统默认路径检测到可执行文件,也没有在启动参数中指定路径。
解决步骤
第一步:确认Firefox安装位置
首先确认你运行RStudio Server的系统已经正确安装Firefox,记录Firefox可执行文件的绝对路径:
- Windows默认路径:
C:/Program Files/Mozilla Firefox/firefox.exe - Linux默认路径:
/usr/bin/firefox - MacOS默认路径:
/Applications/Firefox.app/Contents/MacOS/firefox
注意:如果RStudio Server部署在远端服务器,需要在服务端系统安装Firefox,而非仅在本地客户端安装
第二步:手动指定Firefox路径启动驱动
在调用rsDriver时通过extraCapabilities参数传入Firefox的路径配置,代码示例如下:
library(RSelenium) # 替换下方路径为你系统中Firefox的实际安装路径 firefox_config <- list( "moz:firefoxOptions" = list( binary = "C:/Program Files/Mozilla Firefox/firefox.exe" ) ) rD <- rsDriver( browser = "firefox", extraCapabilities = firefox_config )
其他异常排查
如果修改后仍无法启动,可按以下方向排查:
- 版本兼容问题:确认geckodriver版本和Firefox版本匹配,不匹配可手动下载对应版本的geckodriver放到系统PATH路径下,启动时添加
geckover = "对应版本号"参数指定版本。 - Java版本适配:你当前使用的Java 1.8版本适配Selenium 4.x可能存在冲突,建议升级到Java 11及以上版本。
- 无界面环境适配:如果RStudio Server部署在无桌面的Linux服务器上,需要开启Firefox无头模式,修改配置如下:
firefox_config <- list( "moz:firefoxOptions" = list( binary = "/usr/bin/firefox", args = list("--headless", "--no-sandbox", "--disable-dev-shm-usage") ) ) - 端口占用问题:默认端口被占用时,可手动指定未被占用的端口,比如添加参数
port = 4567L。
内容的提问来源于stack exchange,提问作者Eugene Paulia
相关产品推荐
相关产品推荐

