Ubuntu 22.04中Selenium启动失败:SessionNotCreatedException求助
解决Ubuntu 22.04下Selenium ChromeDriver SessionNotCreatedException问题
以下是针对你问题的排查和解决步骤,按顺序尝试:
1. 先确认Chrome能正常启动
在终端直接执行命令:
google-chrome
如果Chrome无法弹出窗口,先解决Chrome本身的启动问题:
- 若提示依赖缺失(比如
libnss3、libatk-bridge2.0-0等),执行以下命令补全依赖:
sudo apt install libnss3 libatk-bridge2.0-0 libdrm-dev libxkbcommon-dev libgbm-dev libasound2 libatspi2.0-0 libxshmfence-dev
- 若用root用户运行,Chrome默认禁止,需加启动参数:
google-chrome --no-sandbox --disable-dev-shm-usage
2. 检查代码中的Chrome配置
确保代码里正确配置ChromeDriver,推荐用自动管理工具避免手动配置出错:
手动指定路径示例(Java)
System.setProperty("webdriver.chrome.driver", "/path/to/your/chromedriver"); ChromeOptions options = new ChromeOptions(); // 加入必要参数规避环境/权限问题 options.addArguments("--no-sandbox"); options.addArguments("--disable-dev-shm-usage"); options.addArguments("--headless=new"); // 不需要可视化窗口可加此参数 WebDriver driver = new ChromeDriver(options);
用WebDriverManager自动管理(推荐,无需手动下载driver)
在Maven依赖中添加:
<dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>5.6.3</version> </dependency>
代码替换为:
WebDriverManager.chromedriver().setup(); ChromeOptions options = new ChromeOptions(); options.addArguments("--no-sandbox"); options.addArguments("--disable-dev-shm-usage"); WebDriver driver = new ChromeDriver(options);
3. 再次验证ChromeDriver与Chrome版本兼容性
虽然你已确认,但再通过终端核对一次:
- 查看Chrome版本:
google-chrome --version
- 查看ChromeDriver版本:
/path/to/chromedriver --version
确保二者主版本完全一致(比如都是118.x.x.x),不一致则重新下载对应版本的ChromeDriver。
4. 检查ChromeDriver的权限
再次确认ChromeDriver有可执行权限:
chmod +x /path/to/chromedriver
同时确保当前用户对ChromeDriver所在目录有读写权限。
5. 升级Selenium版本
若使用旧版Selenium(比如3.x),可能不兼容新版Chrome,建议升级到Selenium 4.x:
Maven依赖示例:
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.15.0</version> </dependency>
内容的提问来源于stack exchange,提问作者thatimperfectme
相关产品推荐
相关产品推荐

