Ubuntu20.04下Selenium ChromeDriver报InitializeSandbox gpu进程错误如何解决
错误原因分析
- 参数格式错误:现有代码中
no-sandbox和headless两个参数缺失前缀--,参数不生效导致沙箱相关校验触发报错。 - 驱动路径配置错误:
webdriver.chrome.driver对应的路径应为ChromeDriver可执行文件的路径,你当前填写的是Chrome浏览器本体的路径,会导致驱动和浏览器的交互逻辑异常,无法正常加载页面。 - 参数冲突:你同时配置了
--disable-gpu(禁用GPU加速)和--enable-native-gpu-memory-buffers(启用GPU内存缓冲区),两个参数逻辑冲突,直接触发GPU进程的沙箱初始化错误。 - headless模式兼容问题:旧版
--headless参数在Chrome 112及以上版本中已被弃用,兼容性差,容易出现页面加载无响应的问题。
修复方案
- 先下载和你本地Chrome版本完全匹配的ChromeDriver二进制文件,放到指定路径,比如
/usr/bin/chromedriver - 修正代码中的参数配置和驱动路径,参考如下修改后的代码:
String baseUrl = "https://somesite.com"; // 此处修改为ChromeDriver的实际路径,不是Chrome浏览器的路径 System.setProperty("webdriver.chrome.driver", "/usr/bin/chromedriver"); ChromeDriverService service = ChromeDriverService.createDefaultService(); ChromeOptions options = new ChromeOptions(); options.addArguments("--start-maximized"); options.addArguments("--disable-infobars"); options.addArguments("--disable-gpu"); options.addArguments("--disable-software-rasterizer"); // 补全参数前缀-- options.addArguments("--no-sandbox"); // 改用新版headless模式参数 options.addArguments("--headless=new"); // 额外添加规避沙箱错误的参数 options.addArguments("--disable-dev-shm-usage"); driver = new ChromeDriver(service, options); driver.get(baseUrl);
- 执行前给ChromeDriver添加可执行权限:
sudo chmod +x /usr/bin/chromedriver
内容的提问来源于stack exchange,提问作者kamilyrb
相关产品推荐
相关产品推荐

