无法在Selenium 3.10.0中启动Firefox 0.19.1的技术求助
解决Selenium 3.10.0启动Firefox时的连接异常问题
嘿,我来帮你搞定这个Firefox启动失败的问题!你遇到的org.openqa.selenium.WebDriverException: java.net.ConnectException错误,大概率是版本不兼容或者配置细节出了问题,下面给你几个针对性的解决方案:
先查版本兼容性!这是核心问题
Selenium、geckodriver和Firefox浏览器三者的版本必须严格匹配,不然很容易出连接问题:
- 你用的Selenium 3.10.0,对应的geckodriver推荐版本是v0.20.0及以上,而你现在用的v0.19.1和3.10.0确实存在兼容性冲突,这很可能是问题根源
- 另外,Firefox浏览器版本也要和geckodriver匹配:比如geckodriver v0.20.0支持Firefox 55-57,v0.21.0支持55-59,你得确认自己的Firefox版本在对应范围内,建议升级到兼容的稳定版
代码小调整,避免潜在坑
你的代码逻辑没问题,但可以优化下路径写法和显式配置,减少出错概率:
- 用
File.separator适配不同系统的路径分隔符,避免硬写反斜杠出问题 - 显式指定Firefox的安装路径,防止系统找不到默认位置
优化后的代码参考:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxOptions; import java.io.File; public class SampleClass { public static void main(String[] args) { // 用File.separator适配Windows/Linux的路径分隔符 String geckoDriverPath = "E:" + File.separator + "geckodriver-v0.19.1-win32" + File.separator + "geckodriver.exe"; System.setProperty("webdriver.gecko.driver", geckoDriverPath); // 显式指定Firefox的安装路径,替换成你自己的实际路径 FirefoxOptions options = new FirefoxOptions(); options.setBinary("C:\\Program Files\\Mozilla Firefox\\firefox.exe"); WebDriver driver = new FirefoxDriver(options); driver.get("https://www.google.co.in/?gfe_rd=cr&dcr=0&ei=pvK5WsHVGKSIX7qArmA"); } }
其他排查小技巧
- 检查geckodriver的权限:右键它,看看是不是被杀毒软件拦截了,或者直接以管理员身份运行你的IDE/程序
- 临时关闭防火墙或代理:有时候本地防火墙会阻止Selenium和geckodriver之间的本地连接
- 换个Firefox配置文件:如果你的Firefox用户配置文件损坏,也会导致启动失败,可以在代码里指定临时配置文件:
options.addArguments("-profile", "C:\\temp\\firefox-temp-profile"); // 自定义一个临时路径就行
内容的提问来源于stack exchange,提问作者Manjunath Kotagi
相关产品推荐
相关产品推荐

