Mac运行Selenium JUnit测试(Chrome Driver)时出现SessionNotCreatedException
解决Mac上Selenium JUnit测试的SessionNotCreatedException(Chrome Driver安全授权问题)
问题重现
运行Selenium JUnit测试时抛出以下异常:
org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
已确认Chrome Driver版本与Chrome v110匹配,系统弹出“chromedriver开发者未知”的安全警告,手动在设置中授权后无效,尝试本地绝对路径、WebDriverManager等多种驱动导入方式,修改安全设置后问题仍存在。
解决方案
1. 移除Chrome Driver的Mac隔离标记
Mac会对下载的第三方文件添加隔离属性,这是安全警告反复出现的核心原因,用终端命令移除:
xattr -d com.apple.quarantine /你的chromedriver绝对路径
如果使用WebDriverManager,默认下载路径一般为 ~/.cache/selenium/chromedriver/mac64/对应版本号/chromedriver,替换成实际路径即可。
2. 确保驱动具备可执行权限
执行以下命令给chromedriver添加执行权限:
chmod +x /你的chromedriver绝对路径
3. WebDriverManager版本锁定(若使用该工具)
避免WebDriverManager自动下载不匹配的驱动,在代码中指定精确版本:
WebDriverManager.chromedriver().driverVersion("110.0.5481.77").setup();
版本号需与Chrome浏览器的版本完全一致(查看Chrome菜单→关于Google Chrome获取精确版本)。
4. 补充Chrome启动参数(可选)
若仍存在启动问题,可添加以下参数绕过部分系统限制:
ChromeOptions options = new ChromeOptions(); options.addArguments("--no-sandbox"); options.addArguments("--disable-dev-shm-usage"); WebDriver driver = new ChromeDriver(options);
5. 重新确认系统安全授权
运行测试后,若系统设置的隐私与安全性面板弹出新的授权提示,点击“允许”,随后重启IDE或终端,确保权限生效。
内容的提问来源于stack exchange,提问作者nicoag
相关产品推荐
相关产品推荐

