Ubuntu运行Selenium测试报IllegalStateException:驱动程序不存在求助
解决Ubuntu上Selenium运行时"The driver executable does not exist"异常
这个问题我之前帮不少开发者排查过,核心原因很明确——你在Ubuntu(Linux系统)里用了Windows专属的geckodriver.exe!.exe格式是Windows系统的可执行文件,Linux系统根本识别不了它,自然会抛出驱动不存在的异常。下面是一步步的解决方法:
步骤1:替换为Ubuntu适配的geckodriver
先删掉你当前的geckodriver.exe文件,然后去Mozilla官方的geckodriver发布页面,选择对应你Ubuntu系统架构的版本(比如64位系统选geckodriver-vX.X.X-linux64.tar.gz,把X替换成最新的版本号)下载到本地。
步骤2:解压并配置驱动执行权限
- 打开终端,进入存放下载文件的目录,执行解压命令:
tar -xvzf geckodriver-vX.X.X-linux64.tar.gz - 给解压后的
geckodriver文件添加执行权限(Ubuntu默认会限制陌生文件的运行权限):chmod +x geckodriver
步骤3:修改代码中的驱动路径
把你代码里的路径从:
System.setProperty("webdriver.gecko.driver", "/root/Desktop/jarselenium/geckodriver.exe");
改成指向解压后的无.exe后缀的文件:
System.setProperty("webdriver.gecko.driver", "/root/Desktop/jarselenium/geckodriver");
可选优化:让系统自动识别驱动(不用写全路径)
如果你不想每次在代码里写完整的驱动路径,可以把geckodriver移动到系统的PATH目录下,比如/usr/local/bin:
sudo mv geckodriver /usr/local/bin/
之后代码里可以直接删掉System.setProperty这一行,Selenium会自动在系统PATH中找到geckodriver。
额外检查点
- 确认驱动路径是否正确:在终端执行
ls /root/Desktop/jarselenium/geckodriver,如果能显示文件信息,说明路径没问题。 - 确认Ubuntu上已安装Firefox:执行
firefox --version检查,要是没安装,用sudo apt install firefox命令快速安装。
内容的提问来源于stack exchange,提问作者user8305604
相关产品推荐
相关产品推荐

