Selenium4搭配WebDriverManager启动Firefox测试报geckodriver参数错误
问题原因
Selenium 4.x 版本针对Firefox驱动新增了CDP协议相关的支持,启动geckodriver时会默认传递--websocket-port参数,而该参数仅在geckodriver 0.30.0及以上版本才支持,你当前使用的0.29.0版本无法识别该参数,因此触发报错。
可行解决方案
方案1:升级geckodriver到匹配版本
你可以直接通过WebDriverManager指定要下载的geckodriver版本,添加如下代码即可强制拉取0.30.0及以上版本:WebDriverManager.firefoxdriver().driverVersion("0.30.0").setup();如果你希望默认拉取最新正式版geckodriver,也可以直接调用:
WebDriverManager.firefoxdriver().forceDownload().setup();避免本地缓存的旧版本驱动被复用。
方案2:禁用Selenium的websocket端口参数传递
如果你暂时无法升级geckodriver,可以在初始化FirefoxOptions时添加配置,关闭websocket端口自动分配逻辑:FirefoxOptions options = new FirefoxOptions(); options.setCapability("moz:websocketPort", null); WebDriver driver = new FirefoxDriver(options);方案3:回退依赖版本(不推荐)
如果上述方案都不适用,你可以暂时将Selenium版本回退到3.x系列,或者WebDriverManager版本回退到4.x系列,避免版本兼容问题。
内容的提问来源于stack exchange,提问作者Gaetan
相关产品推荐
相关产品推荐

