Jenkins运行Selenium WebDriver Java TestNG项目时遇报错及连接失败
解决Jenkins运行Selenium WebDriver Java TestNG项目的几个错误
刚在Jenkins上跑Selenium无头测试时踩过几乎一样的坑,给你逐个拆解解决:
1. Gtk区域设置警告问题
你看到的(firefox:10487): Gtk-WARNING **: C库不支持当前区域设置,使用备用'C'区域设置。是因为Jenkins运行时的环境没配置正确的UTF-8区域,导致Firefox启动时Gtk组件报错。
解决方法:
- 在Jenkins的构建步骤里,先加一个执行shell的步骤,设置环境变量:
再执行你的测试命令export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 - 或者在Jenkins全局配置的「全局属性」里,添加环境变量
LC_ALL和LANG,值都设为en_US.UTF-8,这样所有构建都会生效
2. geckodriver版本过时问题
你的geckodriver是0.19.1,这个版本太老了——它大概只适配Firefox 55-57版本,现在Firefox都更新到100+了,版本不兼容会导致各种奇怪的启动或运行错误。
解决方法:
- 先查Jenkins服务器上的Firefox版本:执行
firefox --version - 去Mozilla官方的geckodriver版本兼容列表确认对应版本,下载适配的新版本替换掉当前的geckodriver
- 确保Jenkins的PATH能找到新的geckodriver,或者在测试代码里指定它的绝对路径
3. about:neterror连接失败问题
这个错误页面说明测试脚本里的目标URL无法被Jenkins服务器上的Firefox访问,可能的原因:
- 网络连通性问题:在Jenkins服务器上手动用
curl https://你的目标URL测试,看能不能正常访问,检查服务器防火墙、代理设置是否允许访问目标站点 - HTTPS证书问题:如果目标站点是自签名证书,Firefox无头模式会拒绝访问,需要在代码里配置忽略证书错误:
FirefoxOptions options = new FirefoxOptions(); options.addArguments("-headless"); options.setAcceptInsecureCerts(true); WebDriver driver = new FirefoxDriver(options); - URL拼写错误:检查测试代码里的目标URL是否正确,比如有没有漏写
://、域名是否输错
内容的提问来源于stack exchange,提问作者ARUN DAVID JOHNSON
相关产品推荐
相关产品推荐

