Linux环境TeamCity代理运行Selenium时Chromedriver不可执行如何解决
问题根因
不是webdriver.chrome.driver属性配置错误,从报错日志可以看到程序已经正确定位到了/opt/buildagent/work/815e6cc9c618cd9d/_drivers/chromedriver文件,问题是Linux系统下的二进制文件缺少可执行权限。
你的TeamCity构建代理运行在Linux环境,这类系统默认不会给普通文件赋予执行权限,而chromedriver是二进制可执行文件,必须有执行权限才能被Selenium调用。
解决方案
你可以选择任意一种方案处理:
- 方案1:在TeamCity构建配置中添加前置命令行步骤,执行以下命令即可:
该方案不需要修改代码,每次构建拉取代码后自动给驱动文件赋予执行权限,适配性最高。chmod +x _drivers/chromedriver - 方案2:如果使用Git做版本控制,可以直接给仓库中的chromedriver文件添加可执行权限标记,本地执行以下命令后提交推送即可:
后续所有构建拉取代码时都会自动保留该文件的可执行权限,不需要额外加构建步骤。git update-index --chmod=+x _drivers/chromedriver
补充排查点
如果配置权限后仍然报错,需要确认两个点:
- 你存放在
_drivers目录下的chromedriver是Linux版本,而非Windows/macOS版本 - chromedriver的大版本号和TeamCity代理服务器上安装的Chrome浏览器大版本号一致
内容的提问来源于stack exchange,提问作者Kev
相关产品推荐
相关产品推荐

