Selenium启动Chrome失败:SessionNotCreatedException问题求助
解决Selenium启动Chrome时的SessionNotCreatedException(企业管理环境)
先修正代码中的基础问题
你的代码里有一个不完整的导入语句:org.openqa.,需要补充完整为:
import org.openqa.selenium.chrome.ChromeDriver;
核心解决方案:添加ChromeOptions参数
针对DevToolsActivePort file doesn't exist错误和企业管理Chrome的限制,给ChromeDriver添加以下启动参数,绕过部分策略和启动限制:
修改后的完整代码:
import java.time.Duration; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import io.github.bonigarcia.wdm.WebDriverManager; public class GoogleTest { public static void main(String[] args) { WebDriverManager.chromedriver().clearDriverCache().setup(); // 配置Chrome启动参数 ChromeOptions options = new ChromeOptions(); options.addArguments("--no-sandbox"); // 禁用沙箱,企业环境必备 options.addArguments("--disable-dev-shm-usage"); // 避免共享内存不足 options.addArguments("--remote-debugging-port=9222"); // 指定调试端口,解决DevToolsActivePort问题 options.addArguments("--disable-features=VizDisplayCompositor"); // 绕过部分渲染策略 options.addArguments("--start-maximized"); // 直接启动最大化窗口,替代代码中的maximize options.addArguments("--disable-browser-side-navigation"); // 减少页面跳转时的崩溃 WebDriver driver = new ChromeDriver(options); driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5)); driver.get("https://google.com"); } }
针对企业策略自动恢复的额外措施
如果注册表修改策略后自动恢复,可以尝试:
- 以管理员身份运行你的IDE或Java命令行,部分企业策略会对普通权限进程生效,管理员权限可能绕过
- 下载Chrome便携版(无需安装),将其路径通过
options.setBinary("path/to/chrome-portable.exe")指定给ChromeDriver,企业策略通常不会覆盖便携版 - 检查后台是否有企业管理的Chrome策略推送进程(如Google Update相关服务),暂时停止该进程(需确认企业合规要求)
内容的提问来源于stack exchange,提问作者Trupz
相关产品推荐
相关产品推荐

