使用WebDriverManager操作Firefox时遇403 Forbidden错误求助
解决Mac OS下Selenium+Firefox出现WebDriverManager 403 Forbidden错误
这种403错误通常是WebDriverManager在自动下载geckodriver(Firefox专属的WebDriver)时,请求被目标服务器拒绝导致的——毕竟Chrome的chromedriver和Firefox的geckodriver源不同,所以Chrome能正常运行但Firefox出问题是很常见的情况。结合你使用的Firefox 70.0.1(64位)和Mac OS环境,给你几个可行的解决办法:
办法1:强制指定geckodriver版本
Firefox 70.0.1对应的兼容geckodriver版本是0.26.0,你可以在代码里强制指定这个版本,避免WebDriverManager自动匹配时出现源请求错误:
WebDriverManager.firefoxdriver().driverVersion("0.26.0").setup();
这样WebDriverManager会直接请求对应版本的资源,降低因版本自动匹配引发的403概率。
办法2:手动下载geckodriver并配置路径
如果自动下载始终不行,干脆绕开WebDriverManager的自动机制:
- 找到对应Mac 64位的geckodriver 0.26.0安装包,解压后得到
geckodriver可执行文件 - 将文件放到系统默认PATH路径下(比如
/usr/local/bin/),或者自定义路径 - 代码里直接指定驱动路径初始化FirefoxDriver:
注意:如果用自定义路径,记得在终端给文件添加执行权限:// 如果放自定义路径,替换成你的实际路径 System.setProperty("webdriver.gecko.driver", "/usr/local/bin/geckodriver"); WebDriver driver = new FirefoxDriver();chmod +x /path/to/your/geckodriver
办法3:检查网络与代理设置
如果你的Mac处于公司/学校等受限网络环境,可能是代理拦截了WebDriverManager的下载请求:
- 尝试切换到个人网络(比如手机热点)再运行代码,看是否恢复正常
- 必须使用代理的话,给WebDriverManager配置代理信息:
把WebDriverManager.firefoxdriver().proxy("http://your-proxy-address:port").setup();your-proxy-address:port替换成你实际的代理地址和端口。
内容的提问来源于stack exchange,提问作者Shakir
相关产品推荐
相关产品推荐

