Selenium运行报错:the driver executable must exist 技术求助
解决Selenium驱动不存在的异常问题
先看你的代码里存在的几个语法/拼写错误,这是首先要修正的:
- 导入语句拼写错误:
原代码:import org.openqa selenium.chrome.ChromeDriver;
修正为:import org.openqa.selenium.chrome.ChromeDriver;(补全org.openqa后的点) - Driver实例化错误:
原代码:WebDriver driver = new Chrome driver();
修正为:WebDriver driver = new ChromeDriver();(去掉Chrome和driver之间的空格) - 类名拼写建议:
SeliniumTest建议修正为SeleniumTest(虽然不影响运行,但符合规范拼写)
接下来针对驱动路径的核心问题,分系统处理:
Windows系统
- 报错显示系统在
c:\TestProject\drivers\chromedriver.exe路径下找不到驱动,先确认:- 驱动文件确实存放在该路径下,文件名是
chromedriver.exe(注意不要有多余后缀或拼写错误) - 代码里要写完整的绝对路径,注意转义反斜杠:
或者用正斜杠避免转义:System.setProperty("webdriver.chrome.driver", "c:\\TestProject\\drivers\\chromedriver.exe");System.setProperty("webdriver.chrome.driver", "c:/TestProject/drivers/chromedriver.exe");
- 驱动文件确实存放在该路径下,文件名是
- 如果驱动放在项目根目录,也可以用相对路径,但要确保IDE的工作目录是项目根目录:
System.setProperty("webdriver.chrome.driver", "./chromedriver.exe");
Mac系统
- Mac系统的驱动文件名是
chromedriver(无.exe后缀),代码里路径要对应修改:- 绝对路径示例:
System.setProperty("webdriver.chrome.driver", "/Users/你的用户名/TestProject/drivers/chromedriver"); - 相对路径示例:
System.setProperty("webdriver.chrome.driver", "./chromedriver");
- 绝对路径示例:
- 必须给驱动添加执行权限:打开终端,进入驱动所在目录,执行命令:
chmod +x chromedriver
更省心的方案(无需手动管理驱动)
使用WebDriverManager自动下载匹配当前Chrome版本的驱动,无需手动设置路径:
- 以Maven为例,先添加依赖:
<dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>5.6.3</version> </dependency> - 代码中替换
System.setProperty行,改为自动初始化驱动:WebDriverManager.chromedriver().setup();
修正后的完整代码示例(WebDriverManager版本):
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import io.github.bonigarcia.wdm.WebDriverManager; public class SeleniumTest { public static void main(String [] args) { WebDriverManager.chromedriver().setup(); WebDriver driver = new ChromeDriver(); driver.get("https://www.google.com"); // 后续测试逻辑 driver.quit(); // 测试结束后关闭浏览器 } }
内容的提问来源于stack exchange,提问作者L B
相关产品推荐
相关产品推荐

