使用WebDriverManager多版本Chrome时版本不匹配故障排查
问题原因与解决办法
问题根源
系统执行浏览器启动命令时,会按PATH环境变量的顺序查找可执行文件。如果/usr/local/bin在PATH里的优先级高于/usr/bin,系统会先找到/usr/local/bin/chrome(120旧版),而非/usr/bin/google-chrome(122新版)。而Selenium默认调用chrome命令启动浏览器,不会直接指定新版路径,因此触发版本不匹配的报错。
解决办法
调整PATH优先级
在测试启动前,把/usr/bin放到PATH最前面,让系统优先找到新版Chrome:export PATH=/usr/bin:$PATH也可以在Java代码里设置:
System.setProperty("path", "/usr/bin:" + System.getenv("PATH"));直接指定Chrome二进制路径
初始化ChromeDriver时,通过ChromeOptions明确指定新版Chrome的位置,绕开PATH查找逻辑:ChromeOptions options = new ChromeOptions(); options.setBinary("/usr/bin/google-chrome"); WebDriver driver = new ChromeDriver(options);重命名旧版Chrome
如果旧版仅用于特定测试,不需要全局调用,直接修改文件名避免冲突:mv /usr/local/bin/chrome /usr/local/bin/chrome-120
内容的提问来源于stack exchange,提问作者Deeepdigger
相关产品推荐
相关产品推荐

