Selenium对接Sauce Labs运行TestNG报UnreachableBrowserException求解
问题根因
该报错核心是Java 8运行环境无法验证Sauce Labs远端服务的SSL证书,导致TLS握手失败,无法创建RemoteWebDriver会话。此前流程正常,通常是近期发生了三类变动:Sauce Labs官方更新了站点SSL证书、本地办公网络新增了SSL流量拦截代理、Java信任库配置被修改。
排查解决步骤
- 网络环境验证:优先切换到无代理的公网环境(如手机热点)重新运行测试,如果测试恢复正常,说明当前网络的SSL代理自签发证书未被Java信任,需将代理根证书导入Java信任库。
- 手动导入证书到JDK信任库:
- 用浏览器访问Sauce Labs的远端Hub地址
https://ondemand.saucelabs.com/wd/hub,点击地址栏的锁标识,导出站点根证书为CER格式保存到本地 - 定位运行测试所用的JDK 8安装路径,进入
jre/lib/security目录,执行以下证书导入命令:keytool -import -alias saucelabs_cert -keystore cacerts -file 你保存的证书本地路径.cer - 输入cacerts默认密码
changeit,确认信任证书即可生效。
- 用浏览器访问Sauce Labs的远端Hub地址
- 临时规避方案:仅用于临时测试验证,可在初始化RemoteWebDriver时自定义HttpClient配置,跳过SSL证书校验,该方案存在安全风险,不建议在正式测试流程中使用。
- 依赖版本适配:你当前使用的Selenium 3.141.0为2018年的旧版本,也可尝试升级到Selenium 3.x分支的最新稳定版,适配最新的证书校验规则。
内容的提问来源于stack exchange,提问作者Geetha Vedagiri
相关产品推荐
相关产品推荐

