Java/Selenium中ChromeDriver路径配置异常无法执行问题排查
你遇到的情况很特殊:用Firefox驱动的配置项webdriver.gecko.driver指定ChromeDriver反而能运行Chrome测试,换成Chrome官方要求的webdriver.chrome.driver配置项却触发NoSuchDriverException。这本质是因为前者绕过了Selenium对ChromeDriver的合规校验,后者触发了校验才暴露了驱动文件的真实问题。以下是针对性的排查和解决步骤:
检查驱动文件的执行权限
- Windows系统:右键点击
chromedriver.exe,进入「属性」-「常规」,确认底部没有「解除阻止」按钮(如果有,点击解除)。 - Linux/macOS系统:打开终端,进入项目的
drivers目录,执行chmod +x chromedriver,给驱动赋予可执行权限。
- Windows系统:右键点击
替换为绝对路径
相对路径可能受Eclipse的工作目录影响,换成绝对路径彻底排除路径问题:// Windows示例 System.setProperty("webdriver.chrome.driver", "D:/workspace/your-project/drivers/chromedriver.exe"); // Linux/macOS示例 System.setProperty("webdriver.chrome.driver", "/home/user/workspace/your-project/drivers/chromedriver");验证驱动文件完整性
重新下载Chrome 117对应版本的ChromeDriver,对比官方提供的文件哈希值,确认下载的文件没有损坏。部分情况下,中断的下载会生成无法执行的残缺文件。检查Selenium版本兼容性
Chrome 117需要搭配Selenium 4.11.0及以上版本,如果你使用的Selenium版本低于这个范围,升级到最新稳定版即可解决兼容性问题。
你的测试代码参考
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class ChromeTestDemo { public static void main(String[] args) { // 正确配置项(原报错写法) System.setProperty("webdriver.chrome.driver", "drivers/chromedriver"); WebDriver driver = new ChromeDriver(); try { driver.get("https://www.google.com"); } finally { driver.quit(); } } }
错误堆栈示例
org.openqa.selenium.NoSuchDriverException: Unable to execute chromedriver located at drivers/chromedriver
Build info: version: '4.9.0', revision: 'd7057100a6'
System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '13.5', java.version: '17.0.8'
Driver info: driver.version: ChromeDriver
内容的提问来源于stack exchange,提问作者T A.

