RSelenium启动便携版Opera报4568端口连接被拒如何解决
配置错误点说明
你的代码里有5处核心配置错误,是导致端口拒连的直接原因:
- 浏览器标识配置错误:要启动Opera却把
browserName参数设成了"chrome",Selenium无法匹配对应浏览器驱动 - 能力项配置完全错位:Opera的二进制路径被错误放到了火狐专属的
moz:firefoxOptions配置块下,Selenium读不到Opera的启动路径,驱动启动后直接崩溃,端口自然无法监听 - 端口不匹配:wdman的selenium服务默认启动端口是4567,你硬写远程连接端口为4568,连的是根本没服务的端口
- 驱动版本不匹配:你的Opera版本是84,却下载了98版本的operadriver,大版本不兼容会直接导致驱动启动失败
- JVM参数传参格式错误:你把驱动路径参数包在了list里命名为opera,wdman无法正确读取该参数,根本没把驱动路径传给Selenium
修正后的运行代码
先下载大版本号和你84版Opera完全对应的64位驱动替换现有驱动,再运行以下代码:
library(RSelenium) library(wdman) # 启动Selenium服务,正确传入Opera驱动路径,固定端口为默认4567 se <- wdman::selenium( check = FALSE, port = 4567L, jvmargs = paste0( "-Dwebdriver.opera.driver=", normalizePath("J:/Download/operadriver_win64/operadriver_win64/operadriver.exe") ) ) # 正确配置Opera远程连接参数 rd <- remoteDriver( browserName = "opera", port = 4567L, extraCapabilities = list( operaOptions = list( binary = normalizePath("J:/Download/Opera/opera.exe") ) ) ) # 启动连接 rd$open()
常见异常排查
如果运行后还是报错,按以下顺序检查:
- 先在浏览器访问
http://localhost:4567/wd/hub/status,如果页面无法打开,说明Selenium服务没启动成功,优先检查驱动和浏览器版本是否匹配、文件路径是否正确 - 如果便携版Opera启动后立刻闪退,在
operaOptions里新增args = list("--no-sandbox")参数,规避系统权限限制 - 确保所有文件路径不包含中文、特殊空格,用
normalizePath处理后可以直接在资源管理器打开对应文件
内容的提问来源于stack exchange,提问作者Akalit
相关产品推荐
相关产品推荐

